; LLVM IR from BrunoLevy/learn-fpga :: LiteX/software/Libs/imgui/imgui_widgets.ll (ZN5ImGui12ColorPicker4EPKcPfiPKf)

; 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.ImVec2 = type { float, float }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImGuiWindow = type <{ ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, [2 x i8], i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, float, float, [4 x i8], %struct.ImGuiStorage, %struct.ImVector.3, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], i32, i32, i8, [7 x i8] }>
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiWindowTempData = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, %struct.ImVec2, i32, i16, i16, i32, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.0, ptr, ptr, i32, i32, i32, float, float, %struct.ImVector.1, %struct.ImVector.1 }
%struct.ImVec1 = type { float }
%struct.ImGuiMenuColumns = type <{ i32, i32, i16, i16, i16, i16, i16, [4 x i16], [2 x i8] }>
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImVec2ih = type { i16, i16 }
%struct.ImGuiStorage = type { %struct.ImVector.2 }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.4, %struct.ImVector.5, %struct.ImVector.6, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.10 }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImGuiContext = type <{ i8, i8, [6 x i8], %struct.ImGuiIO, %struct.ImGuiStyle, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i8, [7 x i8], ptr, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.11, %struct.ImGuiStorage, i32, %struct.ImVec2, [4 x i8], ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, float, i32, i32, i32, i8, i8, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i64, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, [2 x i8], ptr, i32, float, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, [4 x i8], %struct.ImGuiNextWindowData, %struct.ImVector.12, %struct.ImVector.13, %struct.ImVector.14, %struct.ImVector, %struct.ImVector.15, %struct.ImVector.16, %struct.ImVector.17, %struct.ImVector.17, i32, [4 x i8], %struct.ImVector.18, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ImRect, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, [4 x i8], %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, ptr, ptr, ptr, float, float, i8, [3 x i8], float, i32, i8, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, [4 x i8], %struct.ImVector.19, [16 x i8], i32, [4 x i8], %struct.ImVector.20, ptr, i32, [4 x i8], %struct.ImVector.21, %struct.ImPool, %struct.ImVector.1, %struct.ImVector.10, ptr, %struct.ImPool.23, %struct.ImVector.25, %struct.ImVector.26, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImFont, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, float, i8, i8, [2 x i8], float, float, float, float, i16, i16, float, [4 x i8], %struct.ImVector.27, %struct.ImVector, %struct.ImVec2, %struct.ImVec2, i8, i8, [2 x i8], float, %struct.ImGuiTextBuffer, %struct.ImVector.29, %struct.ImChunkStream, %struct.ImChunkStream.30, %struct.ImVector.31, i32, i8, [3 x i8], i32, [4 x i8], ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, [3 x i8], i32, i32, i32, i8, [3 x i8], i32, %struct.ImGuiMetricsConfig, [4 x i8], %struct.ImGuiStackTool, [120 x float], i32, i32, float, i32, i32, i32, [3073 x i8], [7 x i8] }>
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, [22 x i32], float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, float, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, [512 x i8], [20 x float], i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, i8, i32, i32, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x i8], [5 x i8], [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], [512 x float], [512 x float], [20 x float], [20 x float], float, i8, i16, %struct.ImVector.5 }
%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, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [53 x %struct.ImVec4] }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, float, i32, i32, i8, [3 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect }
%struct.ImGuiNextWindowData = type <{ i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, [3 x i8], %struct.ImRect, [4 x i8], ptr, ptr, float, %struct.ImVec2, [4 x i8] }>
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type { ptr, i32, i32, %struct.ImRect, i32, float, float, float }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.22, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImPool.23 = type { %struct.ImVector.24, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ i32, i32, i32, [4 x i8], %struct.ImVector.5, %struct.ImVector.27, %struct.ImVector.27, i8, [3 x i8], i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ImStb::STB_TexteditState" = type { i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, float, %"struct.ImStb::StbUndoState" }
%"struct.ImStb::StbUndoState" = type { [99 x %"struct.ImStb::StbUndoRecord"], [999 x i16], i16, i16, i32, i32 }
%"struct.ImStb::StbUndoRecord" = type { i32, i32, i32, i32 }
%struct.ImFont = type <{ %struct.ImVector.1, float, float, %struct.ImVector.5, %struct.ImVector.28, ptr, ptr, ptr, i16, i16, i16, i16, i8, [3 x i8], float, float, float, i32, [2 x i8], [2 x i8] }>
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.27 }
%struct.ImChunkStream.30 = type { %struct.ImVector.27 }
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.27 }
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiStackTool = type { i32, i32, i32, %struct.ImVector.32 }
%struct.ImVector.32 = type { i32, i32, ptr }

@GImGui = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [56 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui12ColorPicker4EPKcPfiPKf = external hidden unnamed_addr constant [84 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [6 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui6TextExEPKcS1_i(ptr noundef, ptr noundef, i32 noundef) #0

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui16GetCurrentWindowEv() #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #3 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) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef, float noundef) #2

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #5

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #6

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui4TextEPKcz(ptr noundef, ...) #7

declare noundef float @_ZN5ImGui13CalcItemWidthEv() #8

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #9

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

declare noundef float @_ZN5ImGui14GetFrameHeightEv() #8

declare void @_ZN10ImDrawList15AddCircleFilledERK6ImVec2fji(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), float noundef, i32 noundef, i32 noundef) #8

declare noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv() #8

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL10ImSaturatef(float noundef) #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef, float noundef, float noundef) #2

declare void @_ZN5ImGui5PopIDEv() #8

declare void @_ZN5ImGui14MarkItemEditedEj(i32 noundef) #8

declare void @_ZN10ImDrawList9AddCircleERK6ImVec2fjif(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), float noundef, i32 noundef, i32 noundef, float noundef) #8

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

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

declare void @_ZN5ImGui17RenderFrameBorderE6ImVec2S0_f(<2 x float>, <2 x float>, float noundef) #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL7ImClampIiET_S0_S0_S0_(i32 noundef, i32 noundef, i32 noundef) #2

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

declare void @_ZN5ImGui10BeginGroupEv() #8

declare void @_ZN5ImGui6PushIDEPKc(ptr noundef) #8

declare void @_ZN5ImGui12PopItemWidthEv() #8

declare noundef ptr @_ZN5ImGui19FindRenderedTextEndEPKcS1_(ptr noundef, ptr noundef) #8

declare void @_ZN5ImGui8EndGroupEv() #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef, i32 noundef) #2

; 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 #3 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN17ImGuiNextItemData10ClearFlagsEv(ptr noundef nonnull align 4 dereferenceable(17)) #2 align 2

declare void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef, float noundef, float noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #8

declare void @_ZN5ImGui20ColorConvertRGBtoHSVEfffRfS0_S0_(float noundef, float noundef, float noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #8

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL18ColorEditRestoreHSPKfPfS1_S1_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #7

declare void @_ZN5ImGui20OpenPopupOnItemClickEPKci(ptr noundef, i32 noundef) #8

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11ColorButtonEPKcRK6ImVec4i6ImVec2(ptr noundef, ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, <2 x float>) #0

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN5ImGui12ColorPicker4EPKcPfiPKf(ptr noundef %0, ptr noundef %1, i32 noundef %2, ptr noundef %3) #0 {
  %5 = alloca i1, align 1
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca float, align 4
  %17 = alloca i32, align 4
  %18 = alloca i8, align 1
  %19 = alloca %struct.ImVec2, align 4
  %20 = alloca float, align 4
  %21 = alloca float, align 4
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca [4 x float], align 16
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca float, align 4
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca %struct.ImVec2, align 4
  %34 = alloca %struct.ImVec2, align 4
  %35 = alloca float, align 4
  %36 = alloca float, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca i8, align 1
  %42 = alloca i8, align 1
  %43 = alloca i8, align 1
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca %struct.ImVec2, align 4
  %46 = alloca %struct.ImVec2, align 4
  %47 = alloca float, align 4
  %48 = alloca float, align 4
  %49 = alloca float, align 4
  %50 = alloca %struct.ImVec2, align 4
  %51 = alloca %struct.ImVec2, align 4
  %52 = alloca %struct.ImVec2, align 4
  %53 = alloca float, align 4
  %54 = alloca float, align 4
  %55 = alloca float, align 4
  %56 = alloca %struct.ImVec2, align 4
  %57 = alloca %struct.ImVec4, align 4
  %58 = alloca %struct.ImVec2, align 4
  %59 = alloca %struct.ImVec2, align 4
  %60 = alloca %struct.ImVec2, align 4
  %61 = alloca %struct.ImVec2, align 4
  %62 = alloca ptr, align 8
  %63 = alloca %struct.ImVec4, align 4
  %64 = alloca i32, align 4
  %65 = alloca %struct.ImVec2, align 4
  %66 = alloca %struct.ImVec4, align 4
  %67 = alloca %struct.ImVec2, align 4
  %68 = alloca %struct.ImVec4, align 4
  %69 = alloca i8, align 1
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca float, align 4
  %73 = alloca float, align 4
  %74 = alloca float, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca [7 x i32], align 16
  %80 = alloca %struct.ImVec4, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca %struct.ImVec4, align 4
  %84 = alloca %struct.ImVec2, align 4
  %85 = alloca float, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca float, align 4
  %89 = alloca float, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca %struct.ImVec2, align 4
  %93 = alloca %struct.ImVec2, align 4
  %94 = alloca %struct.ImVec2, align 4
  %95 = alloca %struct.ImVec2, align 4
  %96 = alloca float, align 4
  %97 = alloca float, align 4
  %98 = alloca %struct.ImVec2, align 4
  %99 = alloca float, align 4
  %100 = alloca i32, align 4
  %101 = alloca %struct.ImVec2, align 4
  %102 = alloca %struct.ImVec2, align 4
  %103 = alloca %struct.ImVec2, align 4
  %104 = alloca %struct.ImVec2, align 4
  %105 = alloca %struct.ImVec2, align 4
  %106 = alloca %struct.ImVec2, align 4
  %107 = alloca %struct.ImVec2, align 4
  %108 = alloca %struct.ImVec2, align 4
  %109 = alloca %struct.ImVec2, align 4
  %110 = alloca %struct.ImVec2, align 4
  %111 = alloca %struct.ImVec2, align 4
  %112 = alloca %struct.ImVec2, align 4
  %113 = alloca %struct.ImVec2, align 4
  %114 = alloca %struct.ImVec2, align 4
  %115 = alloca %struct.ImVec2, align 4
  %116 = alloca %struct.ImVec2, align 4
  %117 = alloca i32, align 4
  %118 = alloca %struct.ImVec2, align 4
  %119 = alloca %struct.ImVec2, align 4
  %120 = alloca float, align 4
  %121 = alloca %struct.ImVec2, align 4
  %122 = alloca %struct.ImVec2, align 4
  %123 = alloca %struct.ImVec2, align 4
  %124 = alloca %struct.ImVec2, align 4
  %125 = alloca float, align 4
  %126 = alloca float, align 4
  %127 = alloca %struct.ImRect, align 4
  %128 = alloca %struct.ImVec2, align 4
  %129 = alloca %struct.ImVec2, align 4
  %130 = alloca %struct.ImVec2, align 4
  %131 = alloca float, align 4
  %132 = alloca %struct.ImVec2, align 4
  %133 = alloca %struct.ImVec2, align 4
  %134 = alloca %struct.ImVec2, align 4
  %135 = alloca %struct.ImVec2, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store i32 %2, ptr %8, align 4, !tbaa !9
  store ptr %3, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #13
  %136 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %136, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #13
  %137 = call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  store ptr %137, ptr %11, align 8, !tbaa !5
  %138 = load ptr, ptr %11, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.ImGuiWindow, ptr %138, i32 0, i32 28
  %140 = load i8, ptr %139, align 1, !tbaa !11, !range !40, !noundef !41
  %141 = trunc i8 %140 to i1
  br i1 %141, label %142, label %143

142:                                              ; preds = %4
  store i1 false, ptr %5, align 1
  store i32 1, ptr %12, align 4
  br label %1424

143:                                              ; preds = %4
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #13
  %144 = load ptr, ptr %11, align 8, !tbaa !5
  %145 = getelementptr inbounds %struct.ImGuiWindow, ptr %144, i32 0, i32 72
  %146 = load ptr, ptr %145, align 8, !tbaa !42
  store ptr %146, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #13
  %147 = load ptr, ptr %10, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.ImGuiContext, ptr %147, i32 0, i32 4
  store ptr %148, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #13
  %149 = load ptr, ptr %10, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.ImGuiContext, ptr %149, i32 0, i32 3
  store ptr %150, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #13
  %151 = call noundef float @_ZN5ImGui13CalcItemWidthEv()
  store float %151, ptr %16, align 4, !tbaa !43
  %152 = load ptr, ptr %10, align 8, !tbaa !5
  %153 = getelementptr inbounds %struct.ImGuiContext, ptr %152, i32 0, i32 70
  call void @_ZN17ImGuiNextItemData10ClearFlagsEv(ptr noundef nonnull align 4 dereferenceable(17) %153)
  %154 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKc(ptr noundef %154)
  call void @_ZN5ImGui10BeginGroupEv()
  %155 = load i32, ptr %8, align 4, !tbaa !9
  %156 = and i32 %155, 256
  %157 = icmp ne i32 %156, 0
  br i1 %157, label %161, label %158

158:                                              ; preds = %143
  %159 = load i32, ptr %8, align 4, !tbaa !9
  %160 = or i32 %159, 16
  store i32 %160, ptr %8, align 4, !tbaa !9
  br label %161

161:                                              ; preds = %158, %143
  %162 = load i32, ptr %8, align 4, !tbaa !9
  %163 = and i32 %162, 8
  %164 = icmp ne i32 %163, 0
  br i1 %164, label %168, label %165

165:                                              ; preds = %161
  %166 = load ptr, ptr %7, align 8, !tbaa !5
  %167 = load i32, ptr %8, align 4, !tbaa !9
  call void @_ZN5ImGui23ColorPickerOptionsPopupEPKfi(ptr noundef %166, i32 noundef %167)
  br label %168

168:                                              ; preds = %165, %161
  %169 = load i32, ptr %8, align 4, !tbaa !9
  %170 = and i32 %169, 100663296
  %171 = icmp ne i32 %170, 0
  br i1 %171, label %188, label %172

172:                                              ; preds = %168
  %173 = load ptr, ptr %10, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.ImGuiContext, ptr %173, i32 0, i32 177
  %175 = load i32, ptr %174, align 4, !tbaa !44
  %176 = and i32 %175, 100663296
  %177 = icmp ne i32 %176, 0
  br i1 %177, label %178, label %182

178:                                              ; preds = %172
  %179 = load ptr, ptr %10, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.ImGuiContext, ptr %179, i32 0, i32 177
  %181 = load i32, ptr %180, align 4, !tbaa !44
  br label %183

182:                                              ; preds = %172
  br label %183

183:                                              ; preds = %182, %178
  %184 = phi i32 [ %181, %178 ], [ 177209344, %182 ]
  %185 = and i32 %184, 100663296
  %186 = load i32, ptr %8, align 4, !tbaa !9
  %187 = or i32 %186, %185
  store i32 %187, ptr %8, align 4, !tbaa !9
  br label %188

188:                                              ; preds = %183, %168
  %189 = load i32, ptr %8, align 4, !tbaa !9
  %190 = and i32 %189, 402653184
  %191 = icmp ne i32 %190, 0
  br i1 %191, label %208, label %192

192:                                              ; preds = %188
  %193 = load ptr, ptr %10, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.ImGuiContext, ptr %193, i32 0, i32 177
  %195 = load i32, ptr %194, align 4, !tbaa !44
  %196 = and i32 %195, 402653184
  %197 = icmp ne i32 %196, 0
  br i1 %197, label %198, label %202

198:                                              ; preds = %192
  %199 = load ptr, ptr %10, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.ImGuiContext, ptr %199, i32 0, i32 177
  %201 = load i32, ptr %200, align 4, !tbaa !44
  br label %203

202:                                              ; preds = %192
  br label %203

203:                                              ; preds = %202, %198
  %204 = phi i32 [ %201, %198 ], [ 177209344, %202 ]
  %205 = and i32 %204, 402653184
  %206 = load i32, ptr %8, align 4, !tbaa !9
  %207 = or i32 %206, %205
  store i32 %207, ptr %8, align 4, !tbaa !9
  br label %208

208:                                              ; preds = %203, %188
  %209 = load i32, ptr %8, align 4, !tbaa !9
  %210 = and i32 %209, 100663296
  %211 = call noundef zeroext i1 @_ZL14ImIsPowerOfTwoi(i32 noundef %210)
  br i1 %211, label %212, label %213

212:                                              ; preds = %208
  br label %215

213:                                              ; preds = %208
  call void @__assert_fail(ptr noundef @.str.112, ptr noundef @.str.2, i32 noundef 5160, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui12ColorPicker4EPKcPfiPKf) #14
  unreachable

214:                                              ; No predecessors!
  br label %215

215:                                              ; preds = %214, %212
  %216 = load i32, ptr %8, align 4, !tbaa !9
  %217 = and i32 %216, 402653184
  %218 = call noundef zeroext i1 @_ZL14ImIsPowerOfTwoi(i32 noundef %217)
  br i1 %218, label %219, label %220

219:                                              ; preds = %215
  br label %222

220:                                              ; preds = %215
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 5161, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui12ColorPicker4EPKcPfiPKf) #14
  unreachable

221:                                              ; No predecessors!
  br label %222

222:                                              ; preds = %221, %219
  %223 = load i32, ptr %8, align 4, !tbaa !9
  %224 = and i32 %223, 8
  %225 = icmp ne i32 %224, 0
  br i1 %225, label %233, label %226

226:                                              ; preds = %222
  %227 = load ptr, ptr %10, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.ImGuiContext, ptr %227, i32 0, i32 177
  %229 = load i32, ptr %228, align 4, !tbaa !44
  %230 = and i32 %229, 65536
  %231 = load i32, ptr %8, align 4, !tbaa !9
  %232 = or i32 %231, %230
  store i32 %232, ptr %8, align 4, !tbaa !9
  br label %233

233:                                              ; preds = %226, %222
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #13
  %234 = load i32, ptr %8, align 4, !tbaa !9
  %235 = and i32 %234, 2
  %236 = icmp ne i32 %235, 0
  %237 = zext i1 %236 to i64
  %238 = select i1 %236, i32 3, i32 4
  store i32 %238, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #13
  %239 = load i32, ptr %8, align 4, !tbaa !9
  %240 = and i32 %239, 65536
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %242, label %247

242:                                              ; preds = %233
  %243 = load i32, ptr %8, align 4, !tbaa !9
  %244 = and i32 %243, 2
  %245 = icmp ne i32 %244, 0
  %246 = xor i1 %245, true
  br label %247

247:                                              ; preds = %242, %233
  %248 = phi i1 [ false, %233 ], [ %246, %242 ]
  %249 = zext i1 %248 to i8
  store i8 %249, ptr %18, align 1, !tbaa !90
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #13
  %250 = load ptr, ptr %11, align 8, !tbaa !5
  %251 = getelementptr inbounds %struct.ImGuiWindow, ptr %250, i32 0, i32 54
  %252 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %251, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %19, ptr align 8 %252, i64 8, i1 false), !tbaa.struct !91
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #13
  %253 = call noundef float @_ZN5ImGui14GetFrameHeightEv()
  store float %253, ptr %20, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #13
  %254 = load float, ptr %20, align 4, !tbaa !43
  store float %254, ptr %21, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #13
  %255 = load float, ptr %21, align 4, !tbaa !43
  %256 = fmul float %255, 1.000000e+00
  %257 = load float, ptr %16, align 4, !tbaa !43
  %258 = load i8, ptr %18, align 1, !tbaa !90, !range !40, !noundef !41
  %259 = trunc i8 %258 to i1
  %260 = zext i1 %259 to i64
  %261 = select i1 %259, i32 2, i32 1
  %262 = sitofp i32 %261 to float
  %263 = load float, ptr %21, align 4, !tbaa !43
  %264 = load ptr, ptr %14, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.ImGuiStyle, ptr %264, i32 0, i32 16
  %266 = getelementptr inbounds %struct.ImVec2, ptr %265, i32 0, i32 0
  %267 = load float, ptr %266, align 4, !tbaa !92
  %268 = fadd float %263, %267
  %269 = fneg float %262
  %270 = call float @llvm.fmuladd.f32(float %269, float %268, float %257)
  %271 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %256, float noundef %270)
  store float %271, ptr %22, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #13
  %272 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 0
  %273 = load float, ptr %272, align 4, !tbaa !93
  %274 = load float, ptr %22, align 4, !tbaa !43
  %275 = fadd float %273, %274
  %276 = load ptr, ptr %14, align 8, !tbaa !5
  %277 = getelementptr inbounds %struct.ImGuiStyle, ptr %276, i32 0, i32 16
  %278 = getelementptr inbounds %struct.ImVec2, ptr %277, i32 0, i32 0
  %279 = load float, ptr %278, align 4, !tbaa !92
  %280 = fadd float %275, %279
  store float %280, ptr %23, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #13
  %281 = load float, ptr %23, align 4, !tbaa !43
  %282 = load float, ptr %21, align 4, !tbaa !43
  %283 = fadd float %281, %282
  %284 = load ptr, ptr %14, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.ImGuiStyle, ptr %284, i32 0, i32 16
  %286 = getelementptr inbounds %struct.ImVec2, ptr %285, i32 0, i32 0
  %287 = load float, ptr %286, align 4, !tbaa !92
  %288 = fadd float %283, %287
  store float %288, ptr %24, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #13
  %289 = load float, ptr %21, align 4, !tbaa !43
  %290 = fmul float %289, 0x3FC99999A0000000
  %291 = fptosi float %290 to i32
  %292 = sitofp i32 %291 to float
  store float %292, ptr %25, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #13
  %293 = getelementptr inbounds [4 x float], ptr %26, i64 0, i64 0
  %294 = load ptr, ptr %7, align 8, !tbaa !5
  %295 = load i32, ptr %17, align 4, !tbaa !9
  %296 = sext i32 %295 to i64
  %297 = mul i64 %296, 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %293, ptr align 4 %294, i64 %297, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #13
  %298 = load float, ptr %22, align 4, !tbaa !43
  %299 = fmul float %298, 0x3FB47AE140000000
  store float %299, ptr %27, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #13
  %300 = load float, ptr %22, align 4, !tbaa !43
  %301 = fmul float %300, 5.000000e-01
  store float %301, ptr %28, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #13
  %302 = load float, ptr %28, align 4, !tbaa !43
  %303 = load float, ptr %27, align 4, !tbaa !43
  %304 = fsub float %302, %303
  store float %304, ptr %29, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #13
  %305 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 0
  %306 = load float, ptr %305, align 4, !tbaa !93
  %307 = load float, ptr %22, align 4, !tbaa !43
  %308 = load float, ptr %21, align 4, !tbaa !43
  %309 = fadd float %307, %308
  %310 = call float @llvm.fmuladd.f32(float %309, float 5.000000e-01, float %306)
  %311 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %312 = load float, ptr %311, align 4, !tbaa !94
  %313 = load float, ptr %22, align 4, !tbaa !43
  %314 = call float @llvm.fmuladd.f32(float %313, float 5.000000e-01, float %312)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef %310, float noundef %314)
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #13
  %315 = load float, ptr %29, align 4, !tbaa !43
  %316 = load float, ptr %22, align 4, !tbaa !43
  %317 = fmul float %316, 0x3F9BA5E360000000
  %318 = fptosi float %317 to i32
  %319 = sitofp i32 %318 to float
  %320 = fsub float %315, %319
  store float %320, ptr %31, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #13
  %321 = load float, ptr %31, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef %321, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #13
  %322 = load float, ptr %31, align 4, !tbaa !43
  %323 = fmul float %322, -5.000000e-01
  %324 = load float, ptr %31, align 4, !tbaa !43
  %325 = fmul float %324, 0xBFEBB67A00000000
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef %323, float noundef %325)
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #13
  %326 = load float, ptr %31, align 4, !tbaa !43
  %327 = fmul float %326, -5.000000e-01
  %328 = load float, ptr %31, align 4, !tbaa !43
  %329 = fmul float %328, 0x3FEBB67A00000000
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %34, float noundef %327, float noundef %329)
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #13
  %330 = load ptr, ptr %7, align 8, !tbaa !5
  %331 = getelementptr inbounds float, ptr %330, i64 0
  %332 = load float, ptr %331, align 4, !tbaa !43
  store float %332, ptr %35, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #13
  %333 = load ptr, ptr %7, align 8, !tbaa !5
  %334 = getelementptr inbounds float, ptr %333, i64 1
  %335 = load float, ptr %334, align 4, !tbaa !43
  store float %335, ptr %36, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #13
  %336 = load ptr, ptr %7, align 8, !tbaa !5
  %337 = getelementptr inbounds float, ptr %336, i64 2
  %338 = load float, ptr %337, align 4, !tbaa !43
  store float %338, ptr %37, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #13
  %339 = load ptr, ptr %7, align 8, !tbaa !5
  %340 = getelementptr inbounds float, ptr %339, i64 0
  %341 = load float, ptr %340, align 4, !tbaa !43
  store float %341, ptr %38, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #13
  %342 = load ptr, ptr %7, align 8, !tbaa !5
  %343 = getelementptr inbounds float, ptr %342, i64 1
  %344 = load float, ptr %343, align 4, !tbaa !43
  store float %344, ptr %39, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #13
  %345 = load ptr, ptr %7, align 8, !tbaa !5
  %346 = getelementptr inbounds float, ptr %345, i64 2
  %347 = load float, ptr %346, align 4, !tbaa !43
  store float %347, ptr %40, align 4, !tbaa !43
  %348 = load i32, ptr %8, align 4, !tbaa !9
  %349 = and i32 %348, 134217728
  %350 = icmp ne i32 %349, 0
  br i1 %350, label %351, label %356

351:                                              ; preds = %247
  %352 = load float, ptr %38, align 4, !tbaa !43
  %353 = load float, ptr %39, align 4, !tbaa !43
  %354 = load float, ptr %40, align 4, !tbaa !43
  call void @_ZN5ImGui20ColorConvertRGBtoHSVEfffRfS0_S0_(float noundef %352, float noundef %353, float noundef %354, ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 4 dereferenceable(4) %37)
  %355 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZL18ColorEditRestoreHSPKfPfS1_S1_(ptr noundef %355, ptr noundef %35, ptr noundef %36, ptr noundef %37)
  br label %365

356:                                              ; preds = %247
  %357 = load i32, ptr %8, align 4, !tbaa !9
  %358 = and i32 %357, 268435456
  %359 = icmp ne i32 %358, 0
  br i1 %359, label %360, label %364

360:                                              ; preds = %356
  %361 = load float, ptr %35, align 4, !tbaa !43
  %362 = load float, ptr %36, align 4, !tbaa !43
  %363 = load float, ptr %37, align 4, !tbaa !43
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %361, float noundef %362, float noundef %363, ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 4 dereferenceable(4) %40)
  br label %364

364:                                              ; preds = %360, %356
  br label %365

365:                                              ; preds = %364, %351
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #13
  store i8 0, ptr %41, align 1, !tbaa !90
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #13
  store i8 0, ptr %42, align 1, !tbaa !90
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #13
  store i8 0, ptr %43, align 1, !tbaa !90
  call void @_ZN5ImGui12PushItemFlagEib(i32 noundef 8, i1 noundef zeroext true)
  %366 = load i32, ptr %8, align 4, !tbaa !9
  %367 = and i32 %366, 67108864
  %368 = icmp ne i32 %367, 0
  br i1 %368, label %369, label %458

369:                                              ; preds = %365
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #13
  %370 = load float, ptr %22, align 4, !tbaa !43
  %371 = load ptr, ptr %14, align 8, !tbaa !5
  %372 = getelementptr inbounds %struct.ImGuiStyle, ptr %371, i32 0, i32 16
  %373 = getelementptr inbounds %struct.ImVec2, ptr %372, i32 0, i32 0
  %374 = load float, ptr %373, align 4, !tbaa !92
  %375 = fadd float %370, %374
  %376 = load float, ptr %21, align 4, !tbaa !43
  %377 = fadd float %375, %376
  %378 = load float, ptr %22, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef %377, float noundef %378)
  %379 = call noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef @.str.113, ptr noundef nonnull align 4 dereferenceable(8) %44, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #13
  %380 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %380, label %381, label %452

381:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #13
  %382 = load ptr, ptr %10, align 8, !tbaa !5
  %383 = getelementptr inbounds %struct.ImGuiContext, ptr %382, i32 0, i32 3
  %384 = getelementptr inbounds %struct.ImGuiIO, ptr %383, i32 0, i32 64
  %385 = getelementptr inbounds [5 x %struct.ImVec2], ptr %384, i64 0, i64 0
  %386 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %385, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %386, ptr %45, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #13
  %387 = load ptr, ptr %10, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.ImGuiContext, ptr %387, i32 0, i32 3
  %389 = getelementptr inbounds %struct.ImGuiIO, ptr %388, i32 0, i32 36
  %390 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %389, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %390, ptr %46, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #13
  %391 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %45)
  store float %391, ptr %47, align 4, !tbaa !43
  %392 = load float, ptr %47, align 4, !tbaa !43
  %393 = load float, ptr %29, align 4, !tbaa !43
  %394 = fsub float %393, 1.000000e+00
  %395 = load float, ptr %29, align 4, !tbaa !43
  %396 = fsub float %395, 1.000000e+00
  %397 = fmul float %394, %396
  %398 = fcmp oge float %392, %397
  br i1 %398, label %399, label %421

399:                                              ; preds = %381
  %400 = load float, ptr %47, align 4, !tbaa !43
  %401 = load float, ptr %28, align 4, !tbaa !43
  %402 = fadd float %401, 1.000000e+00
  %403 = load float, ptr %28, align 4, !tbaa !43
  %404 = fadd float %403, 1.000000e+00
  %405 = fmul float %402, %404
  %406 = fcmp ole float %400, %405
  br i1 %406, label %407, label %421

407:                                              ; preds = %399
  %408 = getelementptr inbounds %struct.ImVec2, ptr %46, i32 0, i32 1
  %409 = load float, ptr %408, align 4, !tbaa !94
  %410 = getelementptr inbounds %struct.ImVec2, ptr %46, i32 0, i32 0
  %411 = load float, ptr %410, align 4, !tbaa !93
  %412 = call float @atan2f(float noundef %409, float noundef %411) #13
  %413 = fdiv float %412, 0x400921FB60000000
  %414 = fmul float %413, 5.000000e-01
  store float %414, ptr %35, align 4, !tbaa !43
  %415 = load float, ptr %35, align 4, !tbaa !43
  %416 = fcmp olt float %415, 0.000000e+00
  br i1 %416, label %417, label %420

417:                                              ; preds = %407
  %418 = load float, ptr %35, align 4, !tbaa !43
  %419 = fadd float %418, 1.000000e+00
  store float %419, ptr %35, align 4, !tbaa !43
  br label %420

420:                                              ; preds = %417, %407
  store i8 1, ptr %42, align 1, !tbaa !90
  store i8 1, ptr %41, align 1, !tbaa !90
  br label %421

421:                                              ; preds = %420, %399, %381
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #13
  %422 = load float, ptr %35, align 4, !tbaa !43
  %423 = fneg float %422
  %424 = fmul float %423, 2.000000e+00
  %425 = fmul float %424, 0x400921FB60000000
  %426 = call float @cosf(float noundef %425) #13
  store float %426, ptr %48, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #13
  %427 = load float, ptr %35, align 4, !tbaa !43
  %428 = fneg float %427
  %429 = fmul float %428, 2.000000e+00
  %430 = fmul float %429, 0x400921FB60000000
  %431 = call float @sinf(float noundef %430) #13
  store float %431, ptr %49, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #13
  %432 = load float, ptr %48, align 4, !tbaa !43
  %433 = load float, ptr %49, align 4, !tbaa !43
  %434 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %45, float noundef %432, float noundef %433)
  store <2 x float> %434, ptr %50, align 4
  %435 = call noundef zeroext i1 @_Z23ImTriangleContainsPointRK6ImVec2S1_S1_S1_(ptr noundef nonnull align 4 dereferenceable(8) %32, ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(8) %50)
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #13
  br i1 %435, label %436, label %451

436:                                              ; preds = %421
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #13
  %437 = load float, ptr %48, align 4, !tbaa !43
  %438 = load float, ptr %49, align 4, !tbaa !43
  %439 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %46, float noundef %437, float noundef %438)
  store <2 x float> %439, ptr %51, align 4
  %440 = call noundef zeroext i1 @_Z23ImTriangleContainsPointRK6ImVec2S1_S1_S1_(ptr noundef nonnull align 4 dereferenceable(8) %32, ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(8) %51)
  br i1 %440, label %443, label %441

441:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #13
  %442 = call <2 x float> @_Z22ImTriangleClosestPointRK6ImVec2S1_S1_S1_(ptr noundef nonnull align 4 dereferenceable(8) %32, ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(8) %51)
  store <2 x float> %442, ptr %52, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %51, ptr align 4 %52, i64 8, i1 false), !tbaa.struct !91
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #13
  br label %443

443:                                              ; preds = %441, %436
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #13
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #13
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #13
  call void @_Z27ImTriangleBarycentricCoordsRK6ImVec2S1_S1_S1_RfS2_S2_(ptr noundef nonnull align 4 dereferenceable(8) %32, ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(8) %51, ptr noundef nonnull align 4 dereferenceable(4) %53, ptr noundef nonnull align 4 dereferenceable(4) %54, ptr noundef nonnull align 4 dereferenceable(4) %55)
  %444 = load float, ptr %54, align 4, !tbaa !43
  %445 = fsub float 1.000000e+00, %444
  %446 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %445, float noundef 0x3F1A36E2E0000000, float noundef 1.000000e+00)
  store float %446, ptr %37, align 4, !tbaa !43
  %447 = load float, ptr %53, align 4, !tbaa !43
  %448 = load float, ptr %37, align 4, !tbaa !43
  %449 = fdiv float %447, %448
  %450 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %449, float noundef 0x3F1A36E2E0000000, float noundef 1.000000e+00)
  store float %450, ptr %36, align 4, !tbaa !43
  store i8 1, ptr %43, align 1, !tbaa !90
  store i8 1, ptr %41, align 1, !tbaa !90
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #13
  br label %451

451:                                              ; preds = %443, %421
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #13
  br label %452

452:                                              ; preds = %451, %369
  %453 = load i32, ptr %8, align 4, !tbaa !9
  %454 = and i32 %453, 8
  %455 = icmp ne i32 %454, 0
  br i1 %455, label %457, label %456

456:                                              ; preds = %452
  call void @_ZN5ImGui20OpenPopupOnItemClickEPKci(ptr noundef @.str.101, i32 noundef 1)
  br label %457

457:                                              ; preds = %456, %452
  br label %537

458:                                              ; preds = %365
  %459 = load i32, ptr %8, align 4, !tbaa !9
  %460 = and i32 %459, 33554432
  %461 = icmp ne i32 %460, 0
  br i1 %461, label %462, label %536

462:                                              ; preds = %458
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #13
  %463 = load float, ptr %22, align 4, !tbaa !43
  %464 = load float, ptr %22, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %56, float noundef %463, float noundef %464)
  %465 = call noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef @.str.114, ptr noundef nonnull align 4 dereferenceable(8) %56, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #13
  %466 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %466, label %467, label %510

467:                                              ; preds = %462
  %468 = load ptr, ptr %15, align 8, !tbaa !5
  %469 = getelementptr inbounds %struct.ImGuiIO, ptr %468, i32 0, i32 36
  %470 = getelementptr inbounds %struct.ImVec2, ptr %469, i32 0, i32 0
  %471 = load float, ptr %470, align 8, !tbaa !95
  %472 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 0
  %473 = load float, ptr %472, align 4, !tbaa !93
  %474 = fsub float %471, %473
  %475 = load float, ptr %22, align 4, !tbaa !43
  %476 = fsub float %475, 1.000000e+00
  %477 = fdiv float %474, %476
  %478 = call noundef float @_ZL10ImSaturatef(float noundef %477)
  store float %478, ptr %36, align 4, !tbaa !43
  %479 = load ptr, ptr %15, align 8, !tbaa !5
  %480 = getelementptr inbounds %struct.ImGuiIO, ptr %479, i32 0, i32 36
  %481 = getelementptr inbounds %struct.ImVec2, ptr %480, i32 0, i32 1
  %482 = load float, ptr %481, align 4, !tbaa !96
  %483 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %484 = load float, ptr %483, align 4, !tbaa !94
  %485 = fsub float %482, %484
  %486 = load float, ptr %22, align 4, !tbaa !43
  %487 = fsub float %486, 1.000000e+00
  %488 = fdiv float %485, %487
  %489 = call noundef float @_ZL10ImSaturatef(float noundef %488)
  %490 = fsub float 1.000000e+00, %489
  store float %490, ptr %37, align 4, !tbaa !43
  %491 = load ptr, ptr %10, align 8, !tbaa !5
  %492 = getelementptr inbounds %struct.ImGuiContext, ptr %491, i32 0, i32 180
  %493 = load i32, ptr %492, align 8, !tbaa !97
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #13
  %494 = load ptr, ptr %7, align 8, !tbaa !5
  %495 = getelementptr inbounds float, ptr %494, i64 0
  %496 = load float, ptr %495, align 4, !tbaa !43
  %497 = load ptr, ptr %7, align 8, !tbaa !5
  %498 = getelementptr inbounds float, ptr %497, i64 1
  %499 = load float, ptr %498, align 4, !tbaa !43
  %500 = load ptr, ptr %7, align 8, !tbaa !5
  %501 = getelementptr inbounds float, ptr %500, i64 2
  %502 = load float, ptr %501, align 4, !tbaa !43
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %57, float noundef %496, float noundef %499, float noundef %502, float noundef 0.000000e+00)
  %503 = call noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %57)
  %504 = icmp eq i32 %493, %503
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #13
  br i1 %504, label %505, label %509

505:                                              ; preds = %467
  %506 = load ptr, ptr %10, align 8, !tbaa !5
  %507 = getelementptr inbounds %struct.ImGuiContext, ptr %506, i32 0, i32 178
  %508 = load float, ptr %507, align 8, !tbaa !98
  store float %508, ptr %35, align 4, !tbaa !43
  br label %509

509:                                              ; preds = %505, %467
  store i8 1, ptr %43, align 1, !tbaa !90
  store i8 1, ptr %41, align 1, !tbaa !90
  br label %510

510:                                              ; preds = %509, %462
  %511 = load i32, ptr %8, align 4, !tbaa !9
  %512 = and i32 %511, 8
  %513 = icmp ne i32 %512, 0
  br i1 %513, label %515, label %514

514:                                              ; preds = %510
  call void @_ZN5ImGui20OpenPopupOnItemClickEPKci(ptr noundef @.str.101, i32 noundef 1)
  br label %515

515:                                              ; preds = %514, %510
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #13
  %516 = load float, ptr %23, align 4, !tbaa !43
  %517 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %518 = load float, ptr %517, align 4, !tbaa !94
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %58, float noundef %516, float noundef %518)
  call void @_ZN5ImGui18SetCursorScreenPosERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %58)
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #13
  %519 = load float, ptr %21, align 4, !tbaa !43
  %520 = load float, ptr %22, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %519, float noundef %520)
  %521 = call noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef @.str.115, ptr noundef nonnull align 4 dereferenceable(8) %59, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #13
  %522 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %522, label %523, label %535

523:                                              ; preds = %515
  %524 = load ptr, ptr %15, align 8, !tbaa !5
  %525 = getelementptr inbounds %struct.ImGuiIO, ptr %524, i32 0, i32 36
  %526 = getelementptr inbounds %struct.ImVec2, ptr %525, i32 0, i32 1
  %527 = load float, ptr %526, align 4, !tbaa !96
  %528 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %529 = load float, ptr %528, align 4, !tbaa !94
  %530 = fsub float %527, %529
  %531 = load float, ptr %22, align 4, !tbaa !43
  %532 = fsub float %531, 1.000000e+00
  %533 = fdiv float %530, %532
  %534 = call noundef float @_ZL10ImSaturatef(float noundef %533)
  store float %534, ptr %35, align 4, !tbaa !43
  store i8 1, ptr %42, align 1, !tbaa !90
  store i8 1, ptr %41, align 1, !tbaa !90
  br label %535

535:                                              ; preds = %523, %515
  br label %536

536:                                              ; preds = %535, %458
  br label %537

537:                                              ; preds = %536, %457
  %538 = load i8, ptr %18, align 1, !tbaa !90, !range !40, !noundef !41
  %539 = trunc i8 %538 to i1
  br i1 %539, label %540, label %564

540:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #13
  %541 = load float, ptr %24, align 4, !tbaa !43
  %542 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %543 = load float, ptr %542, align 4, !tbaa !94
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %60, float noundef %541, float noundef %543)
  call void @_ZN5ImGui18SetCursorScreenPosERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %60)
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #13
  %544 = load float, ptr %21, align 4, !tbaa !43
  %545 = load float, ptr %22, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %61, float noundef %544, float noundef %545)
  %546 = call noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef @.str.116, ptr noundef nonnull align 4 dereferenceable(8) %61, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #13
  %547 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %547, label %548, label %563

548:                                              ; preds = %540
  %549 = load ptr, ptr %15, align 8, !tbaa !5
  %550 = getelementptr inbounds %struct.ImGuiIO, ptr %549, i32 0, i32 36
  %551 = getelementptr inbounds %struct.ImVec2, ptr %550, i32 0, i32 1
  %552 = load float, ptr %551, align 4, !tbaa !96
  %553 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %554 = load float, ptr %553, align 4, !tbaa !94
  %555 = fsub float %552, %554
  %556 = load float, ptr %22, align 4, !tbaa !43
  %557 = fsub float %556, 1.000000e+00
  %558 = fdiv float %555, %557
  %559 = call noundef float @_ZL10ImSaturatef(float noundef %558)
  %560 = fsub float 1.000000e+00, %559
  %561 = load ptr, ptr %7, align 8, !tbaa !5
  %562 = getelementptr inbounds float, ptr %561, i64 3
  store float %560, ptr %562, align 4, !tbaa !43
  store i8 1, ptr %41, align 1, !tbaa !90
  br label %563

563:                                              ; preds = %548, %540
  br label %564

564:                                              ; preds = %563, %537
  call void @_ZN5ImGui11PopItemFlagEv()
  %565 = load i32, ptr %8, align 4, !tbaa !9
  %566 = and i32 %565, 256
  %567 = icmp ne i32 %566, 0
  br i1 %567, label %573, label %568

568:                                              ; preds = %564
  %569 = load ptr, ptr %14, align 8, !tbaa !5
  %570 = getelementptr inbounds %struct.ImGuiStyle, ptr %569, i32 0, i32 16
  %571 = getelementptr inbounds %struct.ImVec2, ptr %570, i32 0, i32 0
  %572 = load float, ptr %571, align 4, !tbaa !92
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef %572)
  call void @_ZN5ImGui10BeginGroupEv()
  br label %573

573:                                              ; preds = %568, %564
  %574 = load i32, ptr %8, align 4, !tbaa !9
  %575 = and i32 %574, 128
  %576 = icmp ne i32 %575, 0
  br i1 %576, label %596, label %577

577:                                              ; preds = %573
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #13
  %578 = load ptr, ptr %6, align 8, !tbaa !5
  %579 = call noundef ptr @_ZN5ImGui19FindRenderedTextEndEPKcS1_(ptr noundef %578, ptr noundef null)
  store ptr %579, ptr %62, align 8, !tbaa !5
  %580 = load ptr, ptr %6, align 8, !tbaa !5
  %581 = load ptr, ptr %62, align 8, !tbaa !5
  %582 = icmp ne ptr %580, %581
  br i1 %582, label %583, label %595

583:                                              ; preds = %577
  %584 = load i32, ptr %8, align 4, !tbaa !9
  %585 = and i32 %584, 256
  %586 = icmp ne i32 %585, 0
  br i1 %586, label %587, label %592

587:                                              ; preds = %583
  %588 = load ptr, ptr %14, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.ImGuiStyle, ptr %588, i32 0, i32 16
  %590 = getelementptr inbounds %struct.ImVec2, ptr %589, i32 0, i32 0
  %591 = load float, ptr %590, align 4, !tbaa !92
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef %591)
  br label %592

592:                                              ; preds = %587, %583
  %593 = load ptr, ptr %6, align 8, !tbaa !5
  %594 = load ptr, ptr %62, align 8, !tbaa !5
  call void @_ZN5ImGui6TextExEPKcS1_i(ptr noundef %593, ptr noundef %594, i32 noundef 0)
  br label %595

595:                                              ; preds = %592, %577
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #13
  br label %596

596:                                              ; preds = %595, %573
  %597 = load i32, ptr %8, align 4, !tbaa !9
  %598 = and i32 %597, 256
  %599 = icmp ne i32 %598, 0
  br i1 %599, label %673, label %600

600:                                              ; preds = %596
  call void @_ZN5ImGui12PushItemFlagEib(i32 noundef 16, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 16, ptr %63) #13
  %601 = load ptr, ptr %7, align 8, !tbaa !5
  %602 = getelementptr inbounds float, ptr %601, i64 0
  %603 = load float, ptr %602, align 4, !tbaa !43
  %604 = load ptr, ptr %7, align 8, !tbaa !5
  %605 = getelementptr inbounds float, ptr %604, i64 1
  %606 = load float, ptr %605, align 4, !tbaa !43
  %607 = load ptr, ptr %7, align 8, !tbaa !5
  %608 = getelementptr inbounds float, ptr %607, i64 2
  %609 = load float, ptr %608, align 4, !tbaa !43
  %610 = load i32, ptr %8, align 4, !tbaa !9
  %611 = and i32 %610, 2
  %612 = icmp ne i32 %611, 0
  br i1 %612, label %613, label %614

613:                                              ; preds = %600
  br label %618

614:                                              ; preds = %600
  %615 = load ptr, ptr %7, align 8, !tbaa !5
  %616 = getelementptr inbounds float, ptr %615, i64 3
  %617 = load float, ptr %616, align 4, !tbaa !43
  br label %618

618:                                              ; preds = %614, %613
  %619 = phi float [ 1.000000e+00, %613 ], [ %617, %614 ]
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %63, float noundef %603, float noundef %606, float noundef %609, float noundef %619)
  %620 = load i32, ptr %8, align 4, !tbaa !9
  %621 = and i32 %620, 128
  %622 = icmp ne i32 %621, 0
  br i1 %622, label %623, label %624

623:                                              ; preds = %618
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.117)
  br label %624

624:                                              ; preds = %623, %618
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #13
  store i32 403570752, ptr %64, align 4, !tbaa !9
  %625 = load i32, ptr %8, align 4, !tbaa !9
  %626 = load i32, ptr %64, align 4, !tbaa !9
  %627 = and i32 %625, %626
  %628 = load float, ptr %20, align 4, !tbaa !43
  %629 = fmul float %628, 3.000000e+00
  %630 = load float, ptr %20, align 4, !tbaa !43
  %631 = fmul float %630, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %65, float noundef %629, float noundef %631)
  %632 = load <2 x float>, ptr %65, align 4
  %633 = call noundef zeroext i1 @_ZN5ImGui11ColorButtonEPKcRK6ImVec4i6ImVec2(ptr noundef @.str.118, ptr noundef nonnull align 4 dereferenceable(16) %63, i32 noundef %627, <2 x float> %632)
  %634 = load ptr, ptr %9, align 8, !tbaa !5
  %635 = icmp ne ptr %634, null
  br i1 %635, label %636, label %672

636:                                              ; preds = %624
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.119)
  call void @llvm.lifetime.start.p0(i64 16, ptr %66) #13
  %637 = load ptr, ptr %9, align 8, !tbaa !5
  %638 = getelementptr inbounds float, ptr %637, i64 0
  %639 = load float, ptr %638, align 4, !tbaa !43
  %640 = load ptr, ptr %9, align 8, !tbaa !5
  %641 = getelementptr inbounds float, ptr %640, i64 1
  %642 = load float, ptr %641, align 4, !tbaa !43
  %643 = load ptr, ptr %9, align 8, !tbaa !5
  %644 = getelementptr inbounds float, ptr %643, i64 2
  %645 = load float, ptr %644, align 4, !tbaa !43
  %646 = load i32, ptr %8, align 4, !tbaa !9
  %647 = and i32 %646, 2
  %648 = icmp ne i32 %647, 0
  br i1 %648, label %649, label %650

649:                                              ; preds = %636
  br label %654

650:                                              ; preds = %636
  %651 = load ptr, ptr %9, align 8, !tbaa !5
  %652 = getelementptr inbounds float, ptr %651, i64 3
  %653 = load float, ptr %652, align 4, !tbaa !43
  br label %654

654:                                              ; preds = %650, %649
  %655 = phi float [ 1.000000e+00, %649 ], [ %653, %650 ]
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %66, float noundef %639, float noundef %642, float noundef %645, float noundef %655)
  %656 = load i32, ptr %8, align 4, !tbaa !9
  %657 = load i32, ptr %64, align 4, !tbaa !9
  %658 = and i32 %656, %657
  %659 = load float, ptr %20, align 4, !tbaa !43
  %660 = fmul float %659, 3.000000e+00
  %661 = load float, ptr %20, align 4, !tbaa !43
  %662 = fmul float %661, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %67, float noundef %660, float noundef %662)
  %663 = load <2 x float>, ptr %67, align 4
  %664 = call noundef zeroext i1 @_ZN5ImGui11ColorButtonEPKcRK6ImVec4i6ImVec2(ptr noundef @.str.120, ptr noundef nonnull align 4 dereferenceable(16) %66, i32 noundef %658, <2 x float> %663)
  br i1 %664, label %665, label %671

665:                                              ; preds = %654
  %666 = load ptr, ptr %7, align 8, !tbaa !5
  %667 = load ptr, ptr %9, align 8, !tbaa !5
  %668 = load i32, ptr %17, align 4, !tbaa !9
  %669 = sext i32 %668 to i64
  %670 = mul i64 %669, 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %666, ptr align 4 %667, i64 %670, i1 false)
  store i8 1, ptr %41, align 1, !tbaa !90
  br label %671

671:                                              ; preds = %665, %654
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #13
  br label %672

672:                                              ; preds = %671, %624
  call void @_ZN5ImGui11PopItemFlagEv()
  call void @_ZN5ImGui8EndGroupEv()
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #13
  br label %673

673:                                              ; preds = %672, %596
  %674 = load i8, ptr %42, align 1, !tbaa !90, !range !40, !noundef !41
  %675 = trunc i8 %674 to i1
  br i1 %675, label %679, label %676

676:                                              ; preds = %673
  %677 = load i8, ptr %43, align 1, !tbaa !90, !range !40, !noundef !41
  %678 = trunc i8 %677 to i1
  br i1 %678, label %679, label %727

679:                                              ; preds = %676, %673
  %680 = load i32, ptr %8, align 4, !tbaa !9
  %681 = and i32 %680, 134217728
  %682 = icmp ne i32 %681, 0
  br i1 %682, label %683, label %711

683:                                              ; preds = %679
  %684 = load float, ptr %35, align 4, !tbaa !43
  %685 = load float, ptr %36, align 4, !tbaa !43
  %686 = load float, ptr %37, align 4, !tbaa !43
  %687 = load ptr, ptr %7, align 8, !tbaa !5
  %688 = getelementptr inbounds float, ptr %687, i64 0
  %689 = load ptr, ptr %7, align 8, !tbaa !5
  %690 = getelementptr inbounds float, ptr %689, i64 1
  %691 = load ptr, ptr %7, align 8, !tbaa !5
  %692 = getelementptr inbounds float, ptr %691, i64 2
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %684, float noundef %685, float noundef %686, ptr noundef nonnull align 4 dereferenceable(4) %688, ptr noundef nonnull align 4 dereferenceable(4) %690, ptr noundef nonnull align 4 dereferenceable(4) %692)
  %693 = load float, ptr %35, align 4, !tbaa !43
  %694 = load ptr, ptr %10, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.ImGuiContext, ptr %694, i32 0, i32 178
  store float %693, ptr %695, align 8, !tbaa !98
  %696 = load float, ptr %36, align 4, !tbaa !43
  %697 = load ptr, ptr %10, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.ImGuiContext, ptr %697, i32 0, i32 179
  store float %696, ptr %698, align 4, !tbaa !99
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #13
  %699 = load ptr, ptr %7, align 8, !tbaa !5
  %700 = getelementptr inbounds float, ptr %699, i64 0
  %701 = load float, ptr %700, align 4, !tbaa !43
  %702 = load ptr, ptr %7, align 8, !tbaa !5
  %703 = getelementptr inbounds float, ptr %702, i64 1
  %704 = load float, ptr %703, align 4, !tbaa !43
  %705 = load ptr, ptr %7, align 8, !tbaa !5
  %706 = getelementptr inbounds float, ptr %705, i64 2
  %707 = load float, ptr %706, align 4, !tbaa !43
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %68, float noundef %701, float noundef %704, float noundef %707, float noundef 0.000000e+00)
  %708 = call noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %68)
  %709 = load ptr, ptr %10, align 8, !tbaa !5
  %710 = getelementptr inbounds %struct.ImGuiContext, ptr %709, i32 0, i32 180
  store i32 %708, ptr %710, align 8, !tbaa !97
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #13
  br label %726

711:                                              ; preds = %679
  %712 = load i32, ptr %8, align 4, !tbaa !9
  %713 = and i32 %712, 268435456
  %714 = icmp ne i32 %713, 0
  br i1 %714, label %715, label %725

715:                                              ; preds = %711
  %716 = load float, ptr %35, align 4, !tbaa !43
  %717 = load ptr, ptr %7, align 8, !tbaa !5
  %718 = getelementptr inbounds float, ptr %717, i64 0
  store float %716, ptr %718, align 4, !tbaa !43
  %719 = load float, ptr %36, align 4, !tbaa !43
  %720 = load ptr, ptr %7, align 8, !tbaa !5
  %721 = getelementptr inbounds float, ptr %720, i64 1
  store float %719, ptr %721, align 4, !tbaa !43
  %722 = load float, ptr %37, align 4, !tbaa !43
  %723 = load ptr, ptr %7, align 8, !tbaa !5
  %724 = getelementptr inbounds float, ptr %723, i64 2
  store float %722, ptr %724, align 4, !tbaa !43
  br label %725

725:                                              ; preds = %715, %711
  br label %726

726:                                              ; preds = %725, %683
  br label %727

727:                                              ; preds = %726, %676
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #13
  store i8 0, ptr %69, align 1, !tbaa !90
  %728 = load i32, ptr %8, align 4, !tbaa !9
  %729 = and i32 %728, 32
  %730 = icmp eq i32 %729, 0
  br i1 %730, label %731, label %817

731:                                              ; preds = %727
  %732 = load i8, ptr %18, align 1, !tbaa !90, !range !40, !noundef !41
  %733 = trunc i8 %732 to i1
  br i1 %733, label %734, label %736

734:                                              ; preds = %731
  %735 = load float, ptr %24, align 4, !tbaa !43
  br label %738

736:                                              ; preds = %731
  %737 = load float, ptr %23, align 4, !tbaa !43
  br label %738

738:                                              ; preds = %736, %734
  %739 = phi float [ %735, %734 ], [ %737, %736 ]
  %740 = load float, ptr %21, align 4, !tbaa !43
  %741 = fadd float %739, %740
  %742 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 0
  %743 = load float, ptr %742, align 4, !tbaa !93
  %744 = fsub float %741, %743
  call void @_ZN5ImGui13PushItemWidthEf(float noundef %744)
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #13
  store i32 428736538, ptr %70, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #13
  %745 = load i32, ptr %8, align 4, !tbaa !9
  %746 = load i32, ptr %70, align 4, !tbaa !9
  %747 = and i32 %745, %746
  %748 = or i32 %747, 4
  store i32 %748, ptr %71, align 4, !tbaa !9
  %749 = load i32, ptr %8, align 4, !tbaa !9
  %750 = and i32 %749, 1048576
  %751 = icmp ne i32 %750, 0
  br i1 %751, label %756, label %752

752:                                              ; preds = %738
  %753 = load i32, ptr %8, align 4, !tbaa !9
  %754 = and i32 %753, 7340032
  %755 = icmp eq i32 %754, 0
  br i1 %755, label %756, label %776

756:                                              ; preds = %752, %738
  %757 = load ptr, ptr %7, align 8, !tbaa !5
  %758 = load i32, ptr %71, align 4, !tbaa !9
  %759 = or i32 %758, 1048576
  %760 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef @.str.121, ptr noundef %757, i32 noundef %759)
  br i1 %760, label %761, label %775

761:                                              ; preds = %756
  %762 = load ptr, ptr %10, align 8, !tbaa !5
  %763 = getelementptr inbounds %struct.ImGuiContext, ptr %762, i32 0, i32 44
  %764 = load i32, ptr %763, align 4, !tbaa !100
  %765 = icmp ne i32 %764, 0
  br i1 %765, label %766, label %772

766:                                              ; preds = %761
  %767 = load ptr, ptr %10, align 8, !tbaa !5
  %768 = getelementptr inbounds %struct.ImGuiContext, ptr %767, i32 0, i32 48
  %769 = load i8, ptr %768, align 1, !tbaa !101, !range !40, !noundef !41
  %770 = trunc i8 %769 to i1
  %771 = xor i1 %770, true
  br label %772

772:                                              ; preds = %766, %761
  %773 = phi i1 [ false, %761 ], [ %771, %766 ]
  %774 = zext i1 %773 to i8
  store i8 %774, ptr %69, align 1, !tbaa !90
  store i8 1, ptr %41, align 1, !tbaa !90
  br label %775

775:                                              ; preds = %772, %756
  br label %776

776:                                              ; preds = %775, %752
  %777 = load i32, ptr %8, align 4, !tbaa !9
  %778 = and i32 %777, 2097152
  %779 = icmp ne i32 %778, 0
  br i1 %779, label %784, label %780

780:                                              ; preds = %776
  %781 = load i32, ptr %8, align 4, !tbaa !9
  %782 = and i32 %781, 7340032
  %783 = icmp eq i32 %782, 0
  br i1 %783, label %784, label %796

784:                                              ; preds = %780, %776
  %785 = load ptr, ptr %7, align 8, !tbaa !5
  %786 = load i32, ptr %71, align 4, !tbaa !9
  %787 = or i32 %786, 2097152
  %788 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef @.str.122, ptr noundef %785, i32 noundef %787)
  %789 = zext i1 %788 to i32
  %790 = load i8, ptr %41, align 1, !tbaa !90, !range !40, !noundef !41
  %791 = trunc i8 %790 to i1
  %792 = zext i1 %791 to i32
  %793 = or i32 %792, %789
  %794 = icmp ne i32 %793, 0
  %795 = zext i1 %794 to i8
  store i8 %795, ptr %41, align 1, !tbaa !90
  br label %796

796:                                              ; preds = %784, %780
  %797 = load i32, ptr %8, align 4, !tbaa !9
  %798 = and i32 %797, 4194304
  %799 = icmp ne i32 %798, 0
  br i1 %799, label %804, label %800

800:                                              ; preds = %796
  %801 = load i32, ptr %8, align 4, !tbaa !9
  %802 = and i32 %801, 7340032
  %803 = icmp eq i32 %802, 0
  br i1 %803, label %804, label %816

804:                                              ; preds = %800, %796
  %805 = load ptr, ptr %7, align 8, !tbaa !5
  %806 = load i32, ptr %71, align 4, !tbaa !9
  %807 = or i32 %806, 4194304
  %808 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef @.str.123, ptr noundef %805, i32 noundef %807)
  %809 = zext i1 %808 to i32
  %810 = load i8, ptr %41, align 1, !tbaa !90, !range !40, !noundef !41
  %811 = trunc i8 %810 to i1
  %812 = zext i1 %811 to i32
  %813 = or i32 %812, %809
  %814 = icmp ne i32 %813, 0
  %815 = zext i1 %814 to i8
  store i8 %815, ptr %41, align 1, !tbaa !90
  br label %816

816:                                              ; preds = %804, %800
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #13
  br label %817

817:                                              ; preds = %816, %727
  %818 = load i8, ptr %69, align 1, !tbaa !90, !range !40, !noundef !41
  %819 = trunc i8 %818 to i1
  br i1 %819, label %820, label %888

820:                                              ; preds = %817
  %821 = load i32, ptr %8, align 4, !tbaa !9
  %822 = and i32 %821, 134217728
  %823 = icmp ne i32 %822, 0
  br i1 %823, label %824, label %888

824:                                              ; preds = %820
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #13
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #13
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #13
  %825 = load ptr, ptr %7, align 8, !tbaa !5
  %826 = getelementptr inbounds float, ptr %825, i64 0
  %827 = load float, ptr %826, align 4, !tbaa !43
  %828 = load ptr, ptr %7, align 8, !tbaa !5
  %829 = getelementptr inbounds float, ptr %828, i64 1
  %830 = load float, ptr %829, align 4, !tbaa !43
  %831 = load ptr, ptr %7, align 8, !tbaa !5
  %832 = getelementptr inbounds float, ptr %831, i64 2
  %833 = load float, ptr %832, align 4, !tbaa !43
  call void @_ZN5ImGui20ColorConvertRGBtoHSVEfffRfS0_S0_(float noundef %827, float noundef %830, float noundef %833, ptr noundef nonnull align 4 dereferenceable(4) %72, ptr noundef nonnull align 4 dereferenceable(4) %73, ptr noundef nonnull align 4 dereferenceable(4) %74)
  %834 = load float, ptr %72, align 4, !tbaa !43
  %835 = fcmp ole float %834, 0.000000e+00
  br i1 %835, label %836, label %887

836:                                              ; preds = %824
  %837 = load float, ptr %35, align 4, !tbaa !43
  %838 = fcmp ogt float %837, 0.000000e+00
  br i1 %838, label %839, label %887

839:                                              ; preds = %836
  %840 = load float, ptr %74, align 4, !tbaa !43
  %841 = fcmp ole float %840, 0.000000e+00
  br i1 %841, label %842, label %864

842:                                              ; preds = %839
  %843 = load float, ptr %37, align 4, !tbaa !43
  %844 = load float, ptr %74, align 4, !tbaa !43
  %845 = fcmp une float %843, %844
  br i1 %845, label %846, label %864

846:                                              ; preds = %842
  %847 = load float, ptr %35, align 4, !tbaa !43
  %848 = load float, ptr %36, align 4, !tbaa !43
  %849 = load float, ptr %74, align 4, !tbaa !43
  %850 = fcmp ole float %849, 0.000000e+00
  br i1 %850, label %851, label %854

851:                                              ; preds = %846
  %852 = load float, ptr %37, align 4, !tbaa !43
  %853 = fmul float %852, 5.000000e-01
  br label %856

854:                                              ; preds = %846
  %855 = load float, ptr %74, align 4, !tbaa !43
  br label %856

856:                                              ; preds = %854, %851
  %857 = phi float [ %853, %851 ], [ %855, %854 ]
  %858 = load ptr, ptr %7, align 8, !tbaa !5
  %859 = getelementptr inbounds float, ptr %858, i64 0
  %860 = load ptr, ptr %7, align 8, !tbaa !5
  %861 = getelementptr inbounds float, ptr %860, i64 1
  %862 = load ptr, ptr %7, align 8, !tbaa !5
  %863 = getelementptr inbounds float, ptr %862, i64 2
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %847, float noundef %848, float noundef %857, ptr noundef nonnull align 4 dereferenceable(4) %859, ptr noundef nonnull align 4 dereferenceable(4) %861, ptr noundef nonnull align 4 dereferenceable(4) %863)
  br label %886

864:                                              ; preds = %842, %839
  %865 = load float, ptr %73, align 4, !tbaa !43
  %866 = fcmp ole float %865, 0.000000e+00
  br i1 %866, label %867, label %885

867:                                              ; preds = %864
  %868 = load float, ptr %35, align 4, !tbaa !43
  %869 = load float, ptr %73, align 4, !tbaa !43
  %870 = fcmp ole float %869, 0.000000e+00
  br i1 %870, label %871, label %874

871:                                              ; preds = %867
  %872 = load float, ptr %36, align 4, !tbaa !43
  %873 = fmul float %872, 5.000000e-01
  br label %876

874:                                              ; preds = %867
  %875 = load float, ptr %73, align 4, !tbaa !43
  br label %876

876:                                              ; preds = %874, %871
  %877 = phi float [ %873, %871 ], [ %875, %874 ]
  %878 = load float, ptr %74, align 4, !tbaa !43
  %879 = load ptr, ptr %7, align 8, !tbaa !5
  %880 = getelementptr inbounds float, ptr %879, i64 0
  %881 = load ptr, ptr %7, align 8, !tbaa !5
  %882 = getelementptr inbounds float, ptr %881, i64 1
  %883 = load ptr, ptr %7, align 8, !tbaa !5
  %884 = getelementptr inbounds float, ptr %883, i64 2
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %868, float noundef %877, float noundef %878, ptr noundef nonnull align 4 dereferenceable(4) %880, ptr noundef nonnull align 4 dereferenceable(4) %882, ptr noundef nonnull align 4 dereferenceable(4) %884)
  br label %885

885:                                              ; preds = %876, %864
  br label %886

886:                                              ; preds = %885, %856
  br label %887

887:                                              ; preds = %886, %836, %824
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #13
  br label %888

888:                                              ; preds = %887, %820, %817
  %889 = load i8, ptr %41, align 1, !tbaa !90, !range !40, !noundef !41
  %890 = trunc i8 %889 to i1
  br i1 %890, label %891, label %928

891:                                              ; preds = %888
  %892 = load i32, ptr %8, align 4, !tbaa !9
  %893 = and i32 %892, 134217728
  %894 = icmp ne i32 %893, 0
  br i1 %894, label %895, label %909

895:                                              ; preds = %891
  %896 = load ptr, ptr %7, align 8, !tbaa !5
  %897 = getelementptr inbounds float, ptr %896, i64 0
  %898 = load float, ptr %897, align 4, !tbaa !43
  store float %898, ptr %38, align 4, !tbaa !43
  %899 = load ptr, ptr %7, align 8, !tbaa !5
  %900 = getelementptr inbounds float, ptr %899, i64 1
  %901 = load float, ptr %900, align 4, !tbaa !43
  store float %901, ptr %39, align 4, !tbaa !43
  %902 = load ptr, ptr %7, align 8, !tbaa !5
  %903 = getelementptr inbounds float, ptr %902, i64 2
  %904 = load float, ptr %903, align 4, !tbaa !43
  store float %904, ptr %40, align 4, !tbaa !43
  %905 = load float, ptr %38, align 4, !tbaa !43
  %906 = load float, ptr %39, align 4, !tbaa !43
  %907 = load float, ptr %40, align 4, !tbaa !43
  call void @_ZN5ImGui20ColorConvertRGBtoHSVEfffRfS0_S0_(float noundef %905, float noundef %906, float noundef %907, ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 4 dereferenceable(4) %37)
  %908 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZL18ColorEditRestoreHSPKfPfS1_S1_(ptr noundef %908, ptr noundef %35, ptr noundef %36, ptr noundef %37)
  br label %927

909:                                              ; preds = %891
  %910 = load i32, ptr %8, align 4, !tbaa !9
  %911 = and i32 %910, 268435456
  %912 = icmp ne i32 %911, 0
  br i1 %912, label %913, label %926

913:                                              ; preds = %909
  %914 = load ptr, ptr %7, align 8, !tbaa !5
  %915 = getelementptr inbounds float, ptr %914, i64 0
  %916 = load float, ptr %915, align 4, !tbaa !43
  store float %916, ptr %35, align 4, !tbaa !43
  %917 = load ptr, ptr %7, align 8, !tbaa !5
  %918 = getelementptr inbounds float, ptr %917, i64 1
  %919 = load float, ptr %918, align 4, !tbaa !43
  store float %919, ptr %36, align 4, !tbaa !43
  %920 = load ptr, ptr %7, align 8, !tbaa !5
  %921 = getelementptr inbounds float, ptr %920, i64 2
  %922 = load float, ptr %921, align 4, !tbaa !43
  store float %922, ptr %37, align 4, !tbaa !43
  %923 = load float, ptr %35, align 4, !tbaa !43
  %924 = load float, ptr %36, align 4, !tbaa !43
  %925 = load float, ptr %37, align 4, !tbaa !43
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %923, float noundef %924, float noundef %925, ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 4 dereferenceable(4) %40)
  br label %926

926:                                              ; preds = %913, %909
  br label %927

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

928:                                              ; preds = %927, %888
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #13
  %929 = load ptr, ptr %14, align 8, !tbaa !5
  %930 = getelementptr inbounds %struct.ImGuiStyle, ptr %929, i32 0, i32 0
  %931 = load float, ptr %930, align 4, !tbaa !102
  %932 = call noundef float @_ZL10ImSaturatef(float noundef %931)
  %933 = call float @llvm.fmuladd.f32(float %932, float 2.550000e+02, float 5.000000e-01)
  %934 = fptosi float %933 to i32
  store i32 %934, ptr %75, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #13
  %935 = load i32, ptr %75, align 4, !tbaa !9
  %936 = shl i32 %935, 24
  %937 = or i32 %936, 0
  %938 = or i32 %937, 0
  %939 = or i32 %938, 0
  store i32 %939, ptr %76, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #13
  %940 = load i32, ptr %75, align 4, !tbaa !9
  %941 = shl i32 %940, 24
  %942 = or i32 %941, 16711680
  %943 = or i32 %942, 65280
  %944 = or i32 %943, 255
  store i32 %944, ptr %77, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #13
  %945 = load i32, ptr %75, align 4, !tbaa !9
  %946 = shl i32 %945, 24
  %947 = or i32 %946, 8388608
  %948 = or i32 %947, 32768
  %949 = or i32 %948, 128
  store i32 %949, ptr %78, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 28, ptr %79) #13
  %950 = load i32, ptr %75, align 4, !tbaa !9
  %951 = shl i32 %950, 24
  %952 = or i32 %951, 0
  %953 = or i32 %952, 0
  %954 = or i32 %953, 255
  store i32 %954, ptr %79, align 4, !tbaa !9
  %955 = getelementptr inbounds i32, ptr %79, i64 1
  %956 = load i32, ptr %75, align 4, !tbaa !9
  %957 = shl i32 %956, 24
  %958 = or i32 %957, 0
  %959 = or i32 %958, 65280
  %960 = or i32 %959, 255
  store i32 %960, ptr %955, align 4, !tbaa !9
  %961 = getelementptr inbounds i32, ptr %79, i64 2
  %962 = load i32, ptr %75, align 4, !tbaa !9
  %963 = shl i32 %962, 24
  %964 = or i32 %963, 0
  %965 = or i32 %964, 65280
  %966 = or i32 %965, 0
  store i32 %966, ptr %961, align 4, !tbaa !9
  %967 = getelementptr inbounds i32, ptr %79, i64 3
  %968 = load i32, ptr %75, align 4, !tbaa !9
  %969 = shl i32 %968, 24
  %970 = or i32 %969, 16711680
  %971 = or i32 %970, 65280
  %972 = or i32 %971, 0
  store i32 %972, ptr %967, align 4, !tbaa !9
  %973 = getelementptr inbounds i32, ptr %79, i64 4
  %974 = load i32, ptr %75, align 4, !tbaa !9
  %975 = shl i32 %974, 24
  %976 = or i32 %975, 16711680
  %977 = or i32 %976, 0
  %978 = or i32 %977, 0
  store i32 %978, ptr %973, align 4, !tbaa !9
  %979 = getelementptr inbounds i32, ptr %79, i64 5
  %980 = load i32, ptr %75, align 4, !tbaa !9
  %981 = shl i32 %980, 24
  %982 = or i32 %981, 16711680
  %983 = or i32 %982, 0
  %984 = or i32 %983, 255
  store i32 %984, ptr %979, align 4, !tbaa !9
  %985 = getelementptr inbounds i32, ptr %79, i64 6
  %986 = load i32, ptr %75, align 4, !tbaa !9
  %987 = shl i32 %986, 24
  %988 = or i32 %987, 0
  %989 = or i32 %988, 0
  %990 = or i32 %989, 255
  store i32 %990, ptr %985, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %80) #13
  %991 = load ptr, ptr %14, align 8, !tbaa !5
  %992 = getelementptr inbounds %struct.ImGuiStyle, ptr %991, i32 0, i32 0
  %993 = load float, ptr %992, align 4, !tbaa !102
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %80, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef %993)
  %994 = load float, ptr %35, align 4, !tbaa !43
  %995 = getelementptr inbounds %struct.ImVec4, ptr %80, i32 0, i32 0
  %996 = getelementptr inbounds %struct.ImVec4, ptr %80, i32 0, i32 1
  %997 = getelementptr inbounds %struct.ImVec4, ptr %80, i32 0, i32 2
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %994, float noundef 1.000000e+00, float noundef 1.000000e+00, ptr noundef nonnull align 4 dereferenceable(4) %995, ptr noundef nonnull align 4 dereferenceable(4) %996, ptr noundef nonnull align 4 dereferenceable(4) %997)
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #13
  %998 = call noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %80)
  store i32 %998, ptr %81, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr %83) #13
  %999 = load float, ptr %38, align 4, !tbaa !43
  %1000 = load float, ptr %39, align 4, !tbaa !43
  %1001 = load float, ptr %40, align 4, !tbaa !43
  %1002 = load ptr, ptr %14, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.ImGuiStyle, ptr %1002, i32 0, i32 0
  %1004 = load float, ptr %1003, align 4, !tbaa !102
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %83, float noundef %999, float noundef %1000, float noundef %1001, float noundef %1004)
  %1005 = call noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %83)
  call void @llvm.lifetime.end.p0(i64 16, ptr %83) #13
  store i32 %1005, ptr %82, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #13
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %84)
  %1006 = load i32, ptr %8, align 4, !tbaa !9
  %1007 = and i32 %1006, 67108864
  %1008 = icmp ne i32 %1007, 0
  br i1 %1008, label %1009, label %1180

1009:                                             ; preds = %928
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #13
  %1010 = load float, ptr %28, align 4, !tbaa !43
  %1011 = fdiv float 5.000000e-01, %1010
  store float %1011, ptr %85, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #13
  %1012 = load float, ptr %28, align 4, !tbaa !43
  %1013 = fptosi float %1012 to i32
  %1014 = sdiv i32 %1013, 12
  %1015 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef 4, i32 noundef %1014)
  store i32 %1015, ptr %86, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #13
  store i32 0, ptr %87, align 4, !tbaa !9
  br label %1016

1016:                                             ; preds = %1092, %1009
  %1017 = load i32, ptr %87, align 4, !tbaa !9
  %1018 = icmp slt i32 %1017, 6
  br i1 %1018, label %1020, label %1019

1019:                                             ; preds = %1016
  store i32 2, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #13
  br label %1095

1020:                                             ; preds = %1016
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #13
  %1021 = load i32, ptr %87, align 4, !tbaa !9
  %1022 = sitofp i32 %1021 to float
  %1023 = fdiv float %1022, 6.000000e+00
  %1024 = fmul float %1023, 2.000000e+00
  %1025 = load float, ptr %85, align 4, !tbaa !43
  %1026 = fneg float %1025
  %1027 = call float @llvm.fmuladd.f32(float %1024, float 0x400921FB60000000, float %1026)
  store float %1027, ptr %88, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #13
  %1028 = load i32, ptr %87, align 4, !tbaa !9
  %1029 = sitofp i32 %1028 to float
  %1030 = fadd float %1029, 1.000000e+00
  %1031 = fdiv float %1030, 6.000000e+00
  %1032 = fmul float %1031, 2.000000e+00
  %1033 = load float, ptr %85, align 4, !tbaa !43
  %1034 = call float @llvm.fmuladd.f32(float %1032, float 0x400921FB60000000, float %1033)
  store float %1034, ptr %89, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #13
  %1035 = load ptr, ptr %13, align 8, !tbaa !5
  %1036 = getelementptr inbounds %struct.ImDrawList, ptr %1035, i32 0, i32 2
  %1037 = getelementptr inbounds %struct.ImVector.6, ptr %1036, i32 0, i32 0
  %1038 = load i32, ptr %1037, align 8, !tbaa !103
  store i32 %1038, ptr %90, align 4, !tbaa !9
  %1039 = load ptr, ptr %13, align 8, !tbaa !5
  %1040 = load float, ptr %29, align 4, !tbaa !43
  %1041 = load float, ptr %28, align 4, !tbaa !43
  %1042 = fadd float %1040, %1041
  %1043 = fmul float %1042, 5.000000e-01
  %1044 = load float, ptr %88, align 4, !tbaa !43
  %1045 = load float, ptr %89, align 4, !tbaa !43
  %1046 = load i32, ptr %86, align 4, !tbaa !9
  call void @_ZN10ImDrawList9PathArcToERK6ImVec2fffi(ptr noundef nonnull align 8 dereferenceable(196) %1039, ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef %1043, float noundef %1044, float noundef %1045, i32 noundef %1046)
  %1047 = load ptr, ptr %13, align 8, !tbaa !5
  %1048 = load i32, ptr %77, align 4, !tbaa !9
  %1049 = load float, ptr %27, align 4, !tbaa !43
  call void @_ZN10ImDrawList10PathStrokeEjif(ptr noundef nonnull align 8 dereferenceable(196) %1047, i32 noundef %1048, i32 noundef 0, float noundef %1049)
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #13
  %1050 = load ptr, ptr %13, align 8, !tbaa !5
  %1051 = getelementptr inbounds %struct.ImDrawList, ptr %1050, i32 0, i32 2
  %1052 = getelementptr inbounds %struct.ImVector.6, ptr %1051, i32 0, i32 0
  %1053 = load i32, ptr %1052, align 8, !tbaa !103
  store i32 %1053, ptr %91, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #13
  %1054 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %1055 = load float, ptr %1054, align 4, !tbaa !93
  %1056 = load float, ptr %88, align 4, !tbaa !43
  %1057 = call float @cosf(float noundef %1056) #13
  %1058 = load float, ptr %29, align 4, !tbaa !43
  %1059 = call float @llvm.fmuladd.f32(float %1057, float %1058, float %1055)
  %1060 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 1
  %1061 = load float, ptr %1060, align 4, !tbaa !94
  %1062 = load float, ptr %88, align 4, !tbaa !43
  %1063 = call float @sinf(float noundef %1062) #13
  %1064 = load float, ptr %29, align 4, !tbaa !43
  %1065 = call float @llvm.fmuladd.f32(float %1063, float %1064, float %1061)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %92, float noundef %1059, float noundef %1065)
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #13
  %1066 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %1067 = load float, ptr %1066, align 4, !tbaa !93
  %1068 = load float, ptr %89, align 4, !tbaa !43
  %1069 = call float @cosf(float noundef %1068) #13
  %1070 = load float, ptr %29, align 4, !tbaa !43
  %1071 = call float @llvm.fmuladd.f32(float %1069, float %1070, float %1067)
  %1072 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 1
  %1073 = load float, ptr %1072, align 4, !tbaa !94
  %1074 = load float, ptr %89, align 4, !tbaa !43
  %1075 = call float @sinf(float noundef %1074) #13
  %1076 = load float, ptr %29, align 4, !tbaa !43
  %1077 = call float @llvm.fmuladd.f32(float %1075, float %1076, float %1073)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %93, float noundef %1071, float noundef %1077)
  %1078 = load ptr, ptr %13, align 8, !tbaa !5
  %1079 = load i32, ptr %90, align 4, !tbaa !9
  %1080 = load i32, ptr %91, align 4, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %94, ptr align 4 %92, i64 8, i1 false), !tbaa.struct !91
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %95, ptr align 4 %93, i64 8, i1 false), !tbaa.struct !91
  %1081 = load i32, ptr %87, align 4, !tbaa !9
  %1082 = sext i32 %1081 to i64
  %1083 = getelementptr inbounds [7 x i32], ptr %79, i64 0, i64 %1082
  %1084 = load i32, ptr %1083, align 4, !tbaa !9
  %1085 = load i32, ptr %87, align 4, !tbaa !9
  %1086 = add nsw i32 %1085, 1
  %1087 = sext i32 %1086 to i64
  %1088 = getelementptr inbounds [7 x i32], ptr %79, i64 0, i64 %1087
  %1089 = load i32, ptr %1088, align 4, !tbaa !9
  %1090 = load <2 x float>, ptr %94, align 4
  %1091 = load <2 x float>, ptr %95, align 4
  call void @_ZN5ImGui38ShadeVertsLinearColorGradientKeepAlphaEP10ImDrawListii6ImVec2S2_jj(ptr noundef %1078, i32 noundef %1079, i32 noundef %1080, <2 x float> %1090, <2 x float> %1091, i32 noundef %1084, i32 noundef %1089)
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #13
  br label %1092

1092:                                             ; preds = %1020
  %1093 = load i32, ptr %87, align 4, !tbaa !9
  %1094 = add nsw i32 %1093, 1
  store i32 %1094, ptr %87, align 4, !tbaa !9
  br label %1016, !llvm.loop !104

1095:                                             ; preds = %1019
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #13
  %1096 = load float, ptr %35, align 4, !tbaa !43
  %1097 = fmul float %1096, 2.000000e+00
  %1098 = fmul float %1097, 0x400921FB60000000
  %1099 = call float @cosf(float noundef %1098) #13
  store float %1099, ptr %96, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #13
  %1100 = load float, ptr %35, align 4, !tbaa !43
  %1101 = fmul float %1100, 2.000000e+00
  %1102 = fmul float %1101, 0x400921FB60000000
  %1103 = call float @sinf(float noundef %1102) #13
  store float %1103, ptr %97, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #13
  %1104 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %1105 = load float, ptr %1104, align 4, !tbaa !93
  %1106 = load float, ptr %96, align 4, !tbaa !43
  %1107 = load float, ptr %29, align 4, !tbaa !43
  %1108 = load float, ptr %28, align 4, !tbaa !43
  %1109 = fadd float %1107, %1108
  %1110 = fmul float %1106, %1109
  %1111 = call float @llvm.fmuladd.f32(float %1110, float 5.000000e-01, float %1105)
  %1112 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 1
  %1113 = load float, ptr %1112, align 4, !tbaa !94
  %1114 = load float, ptr %97, align 4, !tbaa !43
  %1115 = load float, ptr %29, align 4, !tbaa !43
  %1116 = load float, ptr %28, align 4, !tbaa !43
  %1117 = fadd float %1115, %1116
  %1118 = fmul float %1114, %1117
  %1119 = call float @llvm.fmuladd.f32(float %1118, float 5.000000e-01, float %1113)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %98, float noundef %1111, float noundef %1119)
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #13
  %1120 = load i8, ptr %42, align 1, !tbaa !90, !range !40, !noundef !41
  %1121 = trunc i8 %1120 to i1
  br i1 %1121, label %1122, label %1125

1122:                                             ; preds = %1095
  %1123 = load float, ptr %27, align 4, !tbaa !43
  %1124 = fmul float %1123, 0x3FE4CCCCC0000000
  br label %1128

1125:                                             ; preds = %1095
  %1126 = load float, ptr %27, align 4, !tbaa !43
  %1127 = fmul float %1126, 0x3FE19999A0000000
  br label %1128

1128:                                             ; preds = %1125, %1122
  %1129 = phi float [ %1124, %1122 ], [ %1127, %1125 ]
  store float %1129, ptr %99, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #13
  %1130 = load float, ptr %99, align 4, !tbaa !43
  %1131 = fdiv float %1130, 0x3FF6666660000000
  %1132 = fptosi float %1131 to i32
  %1133 = call noundef i32 @_ZL7ImClampIiET_S0_S0_S0_(i32 noundef %1132, i32 noundef 9, i32 noundef 32)
  store i32 %1133, ptr %100, align 4, !tbaa !9
  %1134 = load ptr, ptr %13, align 8, !tbaa !5
  %1135 = load float, ptr %99, align 4, !tbaa !43
  %1136 = load i32, ptr %81, align 4, !tbaa !9
  %1137 = load i32, ptr %100, align 4, !tbaa !9
  call void @_ZN10ImDrawList15AddCircleFilledERK6ImVec2fji(ptr noundef nonnull align 8 dereferenceable(196) %1134, ptr noundef nonnull align 4 dereferenceable(8) %98, float noundef %1135, i32 noundef %1136, i32 noundef %1137)
  %1138 = load ptr, ptr %13, align 8, !tbaa !5
  %1139 = load float, ptr %99, align 4, !tbaa !43
  %1140 = fadd float %1139, 1.000000e+00
  %1141 = load i32, ptr %78, align 4, !tbaa !9
  %1142 = load i32, ptr %100, align 4, !tbaa !9
  call void @_ZN10ImDrawList9AddCircleERK6ImVec2fjif(ptr noundef nonnull align 8 dereferenceable(196) %1138, ptr noundef nonnull align 4 dereferenceable(8) %98, float noundef %1140, i32 noundef %1141, i32 noundef %1142, float noundef 1.000000e+00)
  %1143 = load ptr, ptr %13, align 8, !tbaa !5
  %1144 = load float, ptr %99, align 4, !tbaa !43
  %1145 = load i32, ptr %77, align 4, !tbaa !9
  %1146 = load i32, ptr %100, align 4, !tbaa !9
  call void @_ZN10ImDrawList9AddCircleERK6ImVec2fjif(ptr noundef nonnull align 8 dereferenceable(196) %1143, ptr noundef nonnull align 4 dereferenceable(8) %98, float noundef %1144, i32 noundef %1145, i32 noundef %1146, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #13
  %1147 = load float, ptr %96, align 4, !tbaa !43
  %1148 = load float, ptr %97, align 4, !tbaa !43
  %1149 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef %1147, float noundef %1148)
  store <2 x float> %1149, ptr %102, align 4
  %1150 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %102)
  store <2 x float> %1150, ptr %101, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #13
  %1151 = load float, ptr %96, align 4, !tbaa !43
  %1152 = load float, ptr %97, align 4, !tbaa !43
  %1153 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef %1151, float noundef %1152)
  store <2 x float> %1153, ptr %104, align 4
  %1154 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %104)
  store <2 x float> %1154, ptr %103, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #13
  %1155 = load float, ptr %96, align 4, !tbaa !43
  %1156 = load float, ptr %97, align 4, !tbaa !43
  %1157 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %34, float noundef %1155, float noundef %1156)
  store <2 x float> %1157, ptr %106, align 4
  %1158 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %106)
  store <2 x float> %1158, ptr %105, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #13
  %1159 = call <2 x float> @_ZN5ImGui22GetFontTexUvWhitePixelEv()
  store <2 x float> %1159, ptr %107, align 4
  %1160 = load ptr, ptr %13, align 8, !tbaa !5
  call void @_ZN10ImDrawList11PrimReserveEii(ptr noundef nonnull align 8 dereferenceable(196) %1160, i32 noundef 6, i32 noundef 6)
  %1161 = load ptr, ptr %13, align 8, !tbaa !5
  %1162 = load i32, ptr %81, align 4, !tbaa !9
  call void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196) %1161, ptr noundef nonnull align 4 dereferenceable(8) %101, ptr noundef nonnull align 4 dereferenceable(8) %107, i32 noundef %1162)
  %1163 = load ptr, ptr %13, align 8, !tbaa !5
  %1164 = load i32, ptr %81, align 4, !tbaa !9
  call void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196) %1163, ptr noundef nonnull align 4 dereferenceable(8) %103, ptr noundef nonnull align 4 dereferenceable(8) %107, i32 noundef %1164)
  %1165 = load ptr, ptr %13, align 8, !tbaa !5
  %1166 = load i32, ptr %77, align 4, !tbaa !9
  call void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196) %1165, ptr noundef nonnull align 4 dereferenceable(8) %105, ptr noundef nonnull align 4 dereferenceable(8) %107, i32 noundef %1166)
  %1167 = load ptr, ptr %13, align 8, !tbaa !5
  call void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196) %1167, ptr noundef nonnull align 4 dereferenceable(8) %101, ptr noundef nonnull align 4 dereferenceable(8) %107, i32 noundef 0)
  %1168 = load ptr, ptr %13, align 8, !tbaa !5
  %1169 = load i32, ptr %76, align 4, !tbaa !9
  call void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196) %1168, ptr noundef nonnull align 4 dereferenceable(8) %103, ptr noundef nonnull align 4 dereferenceable(8) %107, i32 noundef %1169)
  %1170 = load ptr, ptr %13, align 8, !tbaa !5
  call void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196) %1170, ptr noundef nonnull align 4 dereferenceable(8) %105, ptr noundef nonnull align 4 dereferenceable(8) %107, i32 noundef 0)
  %1171 = load ptr, ptr %13, align 8, !tbaa !5
  %1172 = load i32, ptr %78, align 4, !tbaa !9
  call void @_ZN10ImDrawList11AddTriangleERK6ImVec2S2_S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %1171, ptr noundef nonnull align 4 dereferenceable(8) %101, ptr noundef nonnull align 4 dereferenceable(8) %103, ptr noundef nonnull align 4 dereferenceable(8) %105, i32 noundef %1172, float noundef 1.500000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #13
  %1173 = load float, ptr %36, align 4, !tbaa !43
  %1174 = call noundef float @_ZL10ImSaturatef(float noundef %1173)
  %1175 = call <2 x float> @_ZL6ImLerpRK6ImVec2S1_f(ptr noundef nonnull align 4 dereferenceable(8) %105, ptr noundef nonnull align 4 dereferenceable(8) %101, float noundef %1174)
  store <2 x float> %1175, ptr %109, align 4
  %1176 = load float, ptr %37, align 4, !tbaa !43
  %1177 = fsub float 1.000000e+00, %1176
  %1178 = call noundef float @_ZL10ImSaturatef(float noundef %1177)
  %1179 = call <2 x float> @_ZL6ImLerpRK6ImVec2S1_f(ptr noundef nonnull align 4 dereferenceable(8) %109, ptr noundef nonnull align 4 dereferenceable(8) %103, float noundef %1178)
  store <2 x float> %1179, ptr %108, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %84, ptr align 4 %108, i64 8, i1 false), !tbaa.struct !91
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #13
  br label %1325

1180:                                             ; preds = %928
  %1181 = load i32, ptr %8, align 4, !tbaa !9
  %1182 = and i32 %1181, 33554432
  %1183 = icmp ne i32 %1182, 0
  br i1 %1183, label %1184, label %1324

1184:                                             ; preds = %1180
  %1185 = load ptr, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #13
  %1186 = load float, ptr %22, align 4, !tbaa !43
  %1187 = load float, ptr %22, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %111, float noundef %1186, float noundef %1187)
  %1188 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %19, ptr noundef nonnull align 4 dereferenceable(8) %111)
  store <2 x float> %1188, ptr %110, align 4
  %1189 = load i32, ptr %77, align 4, !tbaa !9
  %1190 = load i32, ptr %81, align 4, !tbaa !9
  %1191 = load i32, ptr %81, align 4, !tbaa !9
  %1192 = load i32, ptr %77, align 4, !tbaa !9
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %1185, ptr noundef nonnull align 4 dereferenceable(8) %19, ptr noundef nonnull align 4 dereferenceable(8) %110, i32 noundef %1189, i32 noundef %1190, i32 noundef %1191, i32 noundef %1192)
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #13
  %1193 = load ptr, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #13
  %1194 = load float, ptr %22, align 4, !tbaa !43
  %1195 = load float, ptr %22, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %113, float noundef %1194, float noundef %1195)
  %1196 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %19, ptr noundef nonnull align 4 dereferenceable(8) %113)
  store <2 x float> %1196, ptr %112, align 4
  %1197 = load i32, ptr %76, align 4, !tbaa !9
  %1198 = load i32, ptr %76, align 4, !tbaa !9
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %1193, ptr noundef nonnull align 4 dereferenceable(8) %19, ptr noundef nonnull align 4 dereferenceable(8) %112, i32 noundef 0, i32 noundef 0, i32 noundef %1197, i32 noundef %1198)
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #13
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %114, ptr align 4 %19, i64 8, i1 false), !tbaa.struct !91
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #13
  %1199 = load float, ptr %22, align 4, !tbaa !43
  %1200 = load float, ptr %22, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %116, float noundef %1199, float noundef %1200)
  %1201 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %19, ptr noundef nonnull align 4 dereferenceable(8) %116)
  store <2 x float> %1201, ptr %115, align 4
  %1202 = load <2 x float>, ptr %114, align 4
  %1203 = load <2 x float>, ptr %115, align 4
  call void @_ZN5ImGui17RenderFrameBorderE6ImVec2S0_f(<2 x float> %1202, <2 x float> %1203, float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #13
  %1204 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 0
  %1205 = load float, ptr %1204, align 4, !tbaa !93
  %1206 = load float, ptr %36, align 4, !tbaa !43
  %1207 = call noundef float @_ZL10ImSaturatef(float noundef %1206)
  %1208 = load float, ptr %22, align 4, !tbaa !43
  %1209 = call float @llvm.fmuladd.f32(float %1207, float %1208, float %1205)
  %1210 = fadd float %1209, 5.000000e-01
  %1211 = fptosi float %1210 to i32
  %1212 = sitofp i32 %1211 to float
  %1213 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 0
  %1214 = load float, ptr %1213, align 4, !tbaa !93
  %1215 = fadd float %1214, 2.000000e+00
  %1216 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 0
  %1217 = load float, ptr %1216, align 4, !tbaa !93
  %1218 = load float, ptr %22, align 4, !tbaa !43
  %1219 = fadd float %1217, %1218
  %1220 = fsub float %1219, 2.000000e+00
  %1221 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %1212, float noundef %1215, float noundef %1220)
  %1222 = getelementptr inbounds %struct.ImVec2, ptr %84, i32 0, i32 0
  store float %1221, ptr %1222, align 4, !tbaa !93
  %1223 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %1224 = load float, ptr %1223, align 4, !tbaa !94
  %1225 = load float, ptr %37, align 4, !tbaa !43
  %1226 = fsub float 1.000000e+00, %1225
  %1227 = call noundef float @_ZL10ImSaturatef(float noundef %1226)
  %1228 = load float, ptr %22, align 4, !tbaa !43
  %1229 = call float @llvm.fmuladd.f32(float %1227, float %1228, float %1224)
  %1230 = fadd float %1229, 5.000000e-01
  %1231 = fptosi float %1230 to i32
  %1232 = sitofp i32 %1231 to float
  %1233 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %1234 = load float, ptr %1233, align 4, !tbaa !94
  %1235 = fadd float %1234, 2.000000e+00
  %1236 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %1237 = load float, ptr %1236, align 4, !tbaa !94
  %1238 = load float, ptr %22, align 4, !tbaa !43
  %1239 = fadd float %1237, %1238
  %1240 = fsub float %1239, 2.000000e+00
  %1241 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %1232, float noundef %1235, float noundef %1240)
  %1242 = getelementptr inbounds %struct.ImVec2, ptr %84, i32 0, i32 1
  store float %1241, ptr %1242, align 4, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #13
  store i32 0, ptr %117, align 4, !tbaa !9
  br label %1243

1243:                                             ; preds = %1286, %1184
  %1244 = load i32, ptr %117, align 4, !tbaa !9
  %1245 = icmp slt i32 %1244, 6
  br i1 %1245, label %1247, label %1246

1246:                                             ; preds = %1243
  store i32 5, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #13
  br label %1289

1247:                                             ; preds = %1243
  %1248 = load ptr, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #13
  %1249 = load float, ptr %23, align 4, !tbaa !43
  %1250 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %1251 = load float, ptr %1250, align 4, !tbaa !94
  %1252 = load i32, ptr %117, align 4, !tbaa !9
  %1253 = sitofp i32 %1252 to float
  %1254 = load float, ptr %22, align 4, !tbaa !43
  %1255 = fdiv float %1254, 6.000000e+00
  %1256 = call float @llvm.fmuladd.f32(float %1253, float %1255, float %1251)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %118, float noundef %1249, float noundef %1256)
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #13
  %1257 = load float, ptr %23, align 4, !tbaa !43
  %1258 = load float, ptr %21, align 4, !tbaa !43
  %1259 = fadd float %1257, %1258
  %1260 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %1261 = load float, ptr %1260, align 4, !tbaa !94
  %1262 = load i32, ptr %117, align 4, !tbaa !9
  %1263 = add nsw i32 %1262, 1
  %1264 = sitofp i32 %1263 to float
  %1265 = load float, ptr %22, align 4, !tbaa !43
  %1266 = fdiv float %1265, 6.000000e+00
  %1267 = call float @llvm.fmuladd.f32(float %1264, float %1266, float %1261)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %119, float noundef %1259, float noundef %1267)
  %1268 = load i32, ptr %117, align 4, !tbaa !9
  %1269 = sext i32 %1268 to i64
  %1270 = getelementptr inbounds [7 x i32], ptr %79, i64 0, i64 %1269
  %1271 = load i32, ptr %1270, align 4, !tbaa !9
  %1272 = load i32, ptr %117, align 4, !tbaa !9
  %1273 = sext i32 %1272 to i64
  %1274 = getelementptr inbounds [7 x i32], ptr %79, i64 0, i64 %1273
  %1275 = load i32, ptr %1274, align 4, !tbaa !9
  %1276 = load i32, ptr %117, align 4, !tbaa !9
  %1277 = add nsw i32 %1276, 1
  %1278 = sext i32 %1277 to i64
  %1279 = getelementptr inbounds [7 x i32], ptr %79, i64 0, i64 %1278
  %1280 = load i32, ptr %1279, align 4, !tbaa !9
  %1281 = load i32, ptr %117, align 4, !tbaa !9
  %1282 = add nsw i32 %1281, 1
  %1283 = sext i32 %1282 to i64
  %1284 = getelementptr inbounds [7 x i32], ptr %79, i64 0, i64 %1283
  %1285 = load i32, ptr %1284, align 4, !tbaa !9
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %1248, ptr noundef nonnull align 4 dereferenceable(8) %118, ptr noundef nonnull align 4 dereferenceable(8) %119, i32 noundef %1271, i32 noundef %1275, i32 noundef %1280, i32 noundef %1285)
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #13
  br label %1286

1286:                                             ; preds = %1247
  %1287 = load i32, ptr %117, align 4, !tbaa !9
  %1288 = add nsw i32 %1287, 1
  store i32 %1288, ptr %117, align 4, !tbaa !9
  br label %1243, !llvm.loop !106

1289:                                             ; preds = %1246
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #13
  %1290 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %1291 = load float, ptr %1290, align 4, !tbaa !94
  %1292 = load float, ptr %35, align 4, !tbaa !43
  %1293 = load float, ptr %22, align 4, !tbaa !43
  %1294 = call float @llvm.fmuladd.f32(float %1292, float %1293, float %1291)
  %1295 = fadd float %1294, 5.000000e-01
  %1296 = fptosi float %1295 to i32
  %1297 = sitofp i32 %1296 to float
  store float %1297, ptr %120, align 4, !tbaa !43
  %1298 = load float, ptr %23, align 4, !tbaa !43
  %1299 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %1300 = load float, ptr %1299, align 4, !tbaa !94
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %121, float noundef %1298, float noundef %1300)
  %1301 = load float, ptr %23, align 4, !tbaa !43
  %1302 = load float, ptr %21, align 4, !tbaa !43
  %1303 = fadd float %1301, %1302
  %1304 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %1305 = load float, ptr %1304, align 4, !tbaa !94
  %1306 = load float, ptr %22, align 4, !tbaa !43
  %1307 = fadd float %1305, %1306
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %122, float noundef %1303, float noundef %1307)
  %1308 = load <2 x float>, ptr %121, align 4
  %1309 = load <2 x float>, ptr %122, align 4
  call void @_ZN5ImGui17RenderFrameBorderE6ImVec2S0_f(<2 x float> %1308, <2 x float> %1309, float noundef 0.000000e+00)
  %1310 = load ptr, ptr %13, align 8, !tbaa !5
  %1311 = load float, ptr %23, align 4, !tbaa !43
  %1312 = fsub float %1311, 1.000000e+00
  %1313 = load float, ptr %120, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %123, float noundef %1312, float noundef %1313)
  %1314 = load float, ptr %25, align 4, !tbaa !43
  %1315 = fadd float %1314, 1.000000e+00
  %1316 = load float, ptr %25, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %124, float noundef %1315, float noundef %1316)
  %1317 = load float, ptr %21, align 4, !tbaa !43
  %1318 = fadd float %1317, 2.000000e+00
  %1319 = load ptr, ptr %14, align 8, !tbaa !5
  %1320 = getelementptr inbounds %struct.ImGuiStyle, ptr %1319, i32 0, i32 0
  %1321 = load float, ptr %1320, align 4, !tbaa !102
  %1322 = load <2 x float>, ptr %123, align 4
  %1323 = load <2 x float>, ptr %124, align 4
  call void @_ZL26RenderArrowsForVerticalBarP10ImDrawList6ImVec2S1_ff(ptr noundef %1310, <2 x float> %1322, <2 x float> %1323, float noundef %1318, float noundef %1321)
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #13
  br label %1324

1324:                                             ; preds = %1289, %1180
  br label %1325

1325:                                             ; preds = %1324, %1128
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #13
  %1326 = load i8, ptr %43, align 1, !tbaa !90, !range !40, !noundef !41
  %1327 = trunc i8 %1326 to i1
  %1328 = zext i1 %1327 to i64
  %1329 = select i1 %1327, float 1.000000e+01, float 6.000000e+00
  store float %1329, ptr %125, align 4, !tbaa !43
  %1330 = load ptr, ptr %13, align 8, !tbaa !5
  %1331 = load float, ptr %125, align 4, !tbaa !43
  %1332 = load i32, ptr %82, align 4, !tbaa !9
  call void @_ZN10ImDrawList15AddCircleFilledERK6ImVec2fji(ptr noundef nonnull align 8 dereferenceable(196) %1330, ptr noundef nonnull align 4 dereferenceable(8) %84, float noundef %1331, i32 noundef %1332, i32 noundef 12)
  %1333 = load ptr, ptr %13, align 8, !tbaa !5
  %1334 = load float, ptr %125, align 4, !tbaa !43
  %1335 = fadd float %1334, 1.000000e+00
  %1336 = load i32, ptr %78, align 4, !tbaa !9
  call void @_ZN10ImDrawList9AddCircleERK6ImVec2fjif(ptr noundef nonnull align 8 dereferenceable(196) %1333, ptr noundef nonnull align 4 dereferenceable(8) %84, float noundef %1335, i32 noundef %1336, i32 noundef 12, float noundef 1.000000e+00)
  %1337 = load ptr, ptr %13, align 8, !tbaa !5
  %1338 = load float, ptr %125, align 4, !tbaa !43
  %1339 = load i32, ptr %77, align 4, !tbaa !9
  call void @_ZN10ImDrawList9AddCircleERK6ImVec2fjif(ptr noundef nonnull align 8 dereferenceable(196) %1337, ptr noundef nonnull align 4 dereferenceable(8) %84, float noundef %1338, i32 noundef %1339, i32 noundef 12, float noundef 1.000000e+00)
  %1340 = load i8, ptr %18, align 1, !tbaa !90, !range !40, !noundef !41
  %1341 = trunc i8 %1340 to i1
  br i1 %1341, label %1342, label %1401

1342:                                             ; preds = %1325
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #13
  %1343 = load ptr, ptr %7, align 8, !tbaa !5
  %1344 = getelementptr inbounds float, ptr %1343, i64 3
  %1345 = load float, ptr %1344, align 4, !tbaa !43
  %1346 = call noundef float @_ZL10ImSaturatef(float noundef %1345)
  store float %1346, ptr %126, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 16, ptr %127) #13
  %1347 = load float, ptr %24, align 4, !tbaa !43
  %1348 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %1349 = load float, ptr %1348, align 4, !tbaa !94
  %1350 = load float, ptr %24, align 4, !tbaa !43
  %1351 = load float, ptr %21, align 4, !tbaa !43
  %1352 = fadd float %1350, %1351
  %1353 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %1354 = load float, ptr %1353, align 4, !tbaa !94
  %1355 = load float, ptr %22, align 4, !tbaa !43
  %1356 = fadd float %1354, %1355
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %127, float noundef %1347, float noundef %1349, float noundef %1352, float noundef %1356)
  %1357 = load ptr, ptr %13, align 8, !tbaa !5
  %1358 = getelementptr inbounds %struct.ImRect, ptr %127, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %128, ptr align 4 %1358, i64 8, i1 false), !tbaa.struct !91
  %1359 = getelementptr inbounds %struct.ImRect, ptr %127, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %129, ptr align 4 %1359, i64 8, i1 false), !tbaa.struct !91
  %1360 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %127)
  %1361 = fdiv float %1360, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %130, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %1362 = load <2 x float>, ptr %128, align 4
  %1363 = load <2 x float>, ptr %129, align 4
  %1364 = load <2 x float>, ptr %130, align 4
  call void @_ZN5ImGui36RenderColorRectWithAlphaCheckerboardEP10ImDrawList6ImVec2S2_jfS2_fi(ptr noundef %1357, <2 x float> %1362, <2 x float> %1363, i32 noundef 0, float noundef %1361, <2 x float> %1364, float noundef 0.000000e+00, i32 noundef 0)
  %1365 = load ptr, ptr %13, align 8, !tbaa !5
  %1366 = getelementptr inbounds %struct.ImRect, ptr %127, i32 0, i32 0
  %1367 = getelementptr inbounds %struct.ImRect, ptr %127, i32 0, i32 1
  %1368 = load i32, ptr %82, align 4, !tbaa !9
  %1369 = load i32, ptr %82, align 4, !tbaa !9
  %1370 = load i32, ptr %82, align 4, !tbaa !9
  %1371 = and i32 %1370, 16777215
  %1372 = load i32, ptr %82, align 4, !tbaa !9
  %1373 = and i32 %1372, 16777215
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %1365, ptr noundef nonnull align 4 dereferenceable(8) %1366, ptr noundef nonnull align 4 dereferenceable(8) %1367, i32 noundef %1368, i32 noundef %1369, i32 noundef %1371, i32 noundef %1373)
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #13
  %1374 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 1
  %1375 = load float, ptr %1374, align 4, !tbaa !94
  %1376 = load float, ptr %126, align 4, !tbaa !43
  %1377 = fsub float 1.000000e+00, %1376
  %1378 = load float, ptr %22, align 4, !tbaa !43
  %1379 = call float @llvm.fmuladd.f32(float %1377, float %1378, float %1375)
  %1380 = fadd float %1379, 5.000000e-01
  %1381 = fptosi float %1380 to i32
  %1382 = sitofp i32 %1381 to float
  store float %1382, ptr %131, align 4, !tbaa !43
  %1383 = getelementptr inbounds %struct.ImRect, ptr %127, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %132, ptr align 4 %1383, i64 8, i1 false), !tbaa.struct !91
  %1384 = getelementptr inbounds %struct.ImRect, ptr %127, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %133, ptr align 4 %1384, i64 8, i1 false), !tbaa.struct !91
  %1385 = load <2 x float>, ptr %132, align 4
  %1386 = load <2 x float>, ptr %133, align 4
  call void @_ZN5ImGui17RenderFrameBorderE6ImVec2S0_f(<2 x float> %1385, <2 x float> %1386, float noundef 0.000000e+00)
  %1387 = load ptr, ptr %13, align 8, !tbaa !5
  %1388 = load float, ptr %24, align 4, !tbaa !43
  %1389 = fsub float %1388, 1.000000e+00
  %1390 = load float, ptr %131, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %134, float noundef %1389, float noundef %1390)
  %1391 = load float, ptr %25, align 4, !tbaa !43
  %1392 = fadd float %1391, 1.000000e+00
  %1393 = load float, ptr %25, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %135, float noundef %1392, float noundef %1393)
  %1394 = load float, ptr %21, align 4, !tbaa !43
  %1395 = fadd float %1394, 2.000000e+00
  %1396 = load ptr, ptr %14, align 8, !tbaa !5
  %1397 = getelementptr inbounds %struct.ImGuiStyle, ptr %1396, i32 0, i32 0
  %1398 = load float, ptr %1397, align 4, !tbaa !102
  %1399 = load <2 x float>, ptr %134, align 4
  %1400 = load <2 x float>, ptr %135, align 4
  call void @_ZL26RenderArrowsForVerticalBarP10ImDrawList6ImVec2S1_ff(ptr noundef %1387, <2 x float> %1399, <2 x float> %1400, float noundef %1395, float noundef %1398)
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr %127) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #13
  br label %1401

1401:                                             ; preds = %1342, %1325
  call void @_ZN5ImGui8EndGroupEv()
  %1402 = load i8, ptr %41, align 1, !tbaa !90, !range !40, !noundef !41
  %1403 = trunc i8 %1402 to i1
  br i1 %1403, label %1404, label %1413

1404:                                             ; preds = %1401
  %1405 = getelementptr inbounds [4 x float], ptr %26, i64 0, i64 0
  %1406 = load ptr, ptr %7, align 8, !tbaa !5
  %1407 = load i32, ptr %17, align 4, !tbaa !9
  %1408 = sext i32 %1407 to i64
  %1409 = mul i64 %1408, 4
  %1410 = call i32 @memcmp(ptr noundef %1405, ptr noundef %1406, i64 noundef %1409) #15
  %1411 = icmp eq i32 %1410, 0
  br i1 %1411, label %1412, label %1413

1412:                                             ; preds = %1404
  store i8 0, ptr %41, align 1, !tbaa !90
  br label %1413

1413:                                             ; preds = %1412, %1404, %1401
  %1414 = load i8, ptr %41, align 1, !tbaa !90, !range !40, !noundef !41
  %1415 = trunc i8 %1414 to i1
  br i1 %1415, label %1416, label %1421

1416:                                             ; preds = %1413
  %1417 = load ptr, ptr %10, align 8, !tbaa !5
  %1418 = getelementptr inbounds %struct.ImGuiContext, ptr %1417, i32 0, i32 71
  %1419 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %1418, i32 0, i32 0
  %1420 = load i32, ptr %1419, align 8, !tbaa !107
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %1420)
  br label %1421

1421:                                             ; preds = %1416, %1413
  call void @_ZN5ImGui5PopIDEv()
  %1422 = load i8, ptr %41, align 1, !tbaa !90, !range !40, !noundef !41
  %1423 = trunc i8 %1422 to i1
  store i1 %1423, ptr %5, align 1
  store i32 1, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr %80) #13
  call void @llvm.lifetime.end.p0(i64 28, ptr %79) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #13
  br label %1424

1424:                                             ; preds = %1421, %142
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #13
  %1425 = load i1, ptr %5, align 1
  ret i1 %1425
}

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui23ColorPickerOptionsPopupEPKfi(ptr noundef, i32 noundef) #0

declare void @_ZN5ImGui12PushItemFlagEib(i32 noundef, i1 noundef zeroext) #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) #2

; Function Attrs: nounwind
declare float @atan2f(float noundef, float noundef) #11

; Function Attrs: nounwind
declare float @cosf(float noundef) #11

; Function Attrs: nounwind
declare float @sinf(float noundef) #11

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) #6

declare <2 x float> @_Z22ImTriangleClosestPointRK6ImVec2S1_S1_S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #8

declare void @_Z27ImTriangleBarycentricCoordsRK6ImVec2S1_S1_S1_RfS2_S2_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #8

declare void @_ZN5ImGui18SetCursorScreenPosERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) #8

declare void @_ZN5ImGui11PopItemFlagEv() #8

declare void @_ZN5ImGui13PushItemWidthEf(float noundef) #8

declare void @_ZN10ImDrawList9PathArcToERK6ImVec2fffi(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef, float noundef, i32 noundef) #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10ImDrawList10PathStrokeEjif(ptr noundef nonnull align 8 dereferenceable(196), i32 noundef, i32 noundef, float noundef) #12 align 2

declare void @_ZN5ImGui38ShadeVertsLinearColorGradientKeepAlphaEP10ImDrawListii6ImVec2S2_jj(ptr noundef, i32 noundef, i32 noundef, <2 x float>, <2 x float>, i32 noundef, i32 noundef) #8

declare <2 x float> @_ZN5ImGui22GetFontTexUvWhitePixelEv() #8

declare void @_ZN10ImDrawList11PrimReserveEii(ptr noundef nonnull align 8 dereferenceable(196), i32 noundef, i32 noundef) #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) #12 align 2

declare void @_ZN10ImDrawList11AddTriangleERK6ImVec2S2_S2_jf(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef) #8

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZL6ImLerpRK6ImVec2S1_f(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), float noundef) #6

declare void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, i32 noundef, i32 noundef, i32 noundef) #8

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL26RenderArrowsForVerticalBarP10ImDrawList6ImVec2S1_ff(ptr noundef, <2 x float>, <2 x float>, float noundef, float noundef) #0

declare void @_ZN5ImGui36RenderColorRectWithAlphaCheckerboardEP10ImDrawList6ImVec2S2_jfS2_fi(ptr noundef, <2 x float>, <2 x float>, i32 noundef, float noundef, <2 x float>, float noundef, i32 noundef) #8

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 #4 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 #7 = { 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 = { "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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { 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 #11 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { 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 #13 = { nounwind }
attributes #14 = { noreturn nounwind }
attributes #15 = { 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 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !15, i64 147}
!12 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !10, i64 8, !10, i64 12, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !13, i64 56, !13, i64 64, !14, i64 72, !14, i64 76, !10, i64 80, !10, i64 84, !10, i64 88, !13, i64 92, !13, i64 100, !13, i64 108, !13, i64 116, !13, i64 124, !13, i64 132, !15, i64 140, !15, i64 141, !15, i64 142, !15, i64 143, !15, i64 144, !15, i64 145, !15, i64 146, !15, i64 147, !15, i64 148, !15, i64 149, !15, i64 150, !15, i64 151, !15, i64 152, !7, i64 153, !16, i64 154, !16, i64 156, !16, i64 158, !16, i64 160, !10, i64 164, !7, i64 168, !7, i64 169, !7, i64 170, !15, i64 171, !10, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !7, i64 179, !10, i64 180, !10, i64 181, !10, i64 182, !13, i64 184, !13, i64 192, !17, i64 200, !18, i64 216, !24, i64 448, !24, i64 464, !24, i64 480, !24, i64 496, !24, i64 512, !24, i64 528, !24, i64 544, !25, i64 560, !25, i64 564, !10, i64 568, !14, i64 572, !14, i64 576, !26, i64 584, !28, i64 600, !14, i64 616, !10, i64 620, !6, i64 624, !29, i64 632, !6, i64 832, !6, i64 840, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !7, i64 888, !7, i64 896, !10, i64 928, !10, i64 932, !15, i64 936}
!13 = !{!"_ZTS6ImVec2", !14, i64 0, !14, i64 4}
!14 = !{!"float", !7, i64 0}
!15 = !{!"bool", !7, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = !{!"_ZTS8ImVectorIjE", !10, i64 0, !10, i64 4, !6, i64 8}
!18 = !{!"_ZTS19ImGuiWindowTempData", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !14, i64 56, !14, i64 60, !19, i64 64, !19, i64 68, !19, i64 72, !13, i64 76, !20, i64 84, !16, i64 88, !16, i64 90, !10, i64 92, !15, i64 96, !15, i64 97, !15, i64 98, !13, i64 100, !21, i64 108, !10, i64 136, !10, i64 140, !22, i64 144, !6, i64 160, !6, i64 168, !10, i64 176, !10, i64 180, !10, i64 184, !14, i64 188, !14, i64 192, !23, i64 200, !23, i64 216}
!19 = !{!"_ZTS6ImVec1", !14, i64 0}
!20 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!21 = !{!"_ZTS16ImGuiMenuColumns", !10, i64 0, !10, i64 4, !16, i64 8, !16, i64 10, !16, i64 12, !16, i64 14, !16, i64 16, !7, i64 18}
!22 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !10, i64 0, !10, i64 4, !6, i64 8}
!23 = !{!"_ZTS8ImVectorIfE", !10, i64 0, !10, i64 4, !6, i64 8}
!24 = !{!"_ZTS6ImRect", !13, i64 0, !13, i64 8}
!25 = !{!"_ZTS8ImVec2ih", !16, i64 0, !16, i64 2}
!26 = !{!"_ZTS12ImGuiStorage", !27, i64 0}
!27 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !10, i64 0, !10, i64 4, !6, i64 8}
!28 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !10, i64 0, !10, i64 4, !6, i64 8}
!29 = !{!"_ZTS10ImDrawList", !30, i64 0, !31, i64 16, !32, i64 32, !10, i64 48, !10, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !33, i64 88, !34, i64 104, !35, i64 120, !36, i64 136, !38, i64 168, !14, i64 192}
!30 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !10, i64 0, !10, i64 4, !6, i64 8}
!31 = !{!"_ZTS8ImVectorItE", !10, i64 0, !10, i64 4, !6, i64 8}
!32 = !{!"_ZTS8ImVectorI10ImDrawVertE", !10, i64 0, !10, i64 4, !6, i64 8}
!33 = !{!"_ZTS8ImVectorI6ImVec4E", !10, i64 0, !10, i64 4, !6, i64 8}
!34 = !{!"_ZTS8ImVectorIPvE", !10, i64 0, !10, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorI6ImVec2E", !10, i64 0, !10, i64 4, !6, i64 8}
!36 = !{!"_ZTS15ImDrawCmdHeader", !37, i64 0, !6, i64 16, !10, i64 24}
!37 = !{!"_ZTS6ImVec4", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12}
!38 = !{!"_ZTS18ImDrawListSplitter", !10, i64 0, !10, i64 4, !39, i64 8}
!39 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !10, i64 0, !10, i64 4, !6, i64 8}
!40 = !{i8 0, i8 2}
!41 = !{}
!42 = !{!12, !6, i64 624}
!43 = !{!14, !14, i64 0}
!44 = !{!45, !10, i64 12332}
!45 = !{!"_ZTS12ImGuiContext", !15, i64 0, !15, i64 1, !46, i64 8, !47, i64 5488, !6, i64 6536, !14, i64 6544, !14, i64 6548, !48, i64 6552, !49, i64 7064, !10, i64 7072, !10, i64 7076, !10, i64 7080, !15, i64 7084, !15, i64 7085, !15, i64 7086, !15, i64 7087, !15, i64 7088, !6, i64 7096, !22, i64 7104, !22, i64 7120, !22, i64 7136, !50, i64 7152, !26, i64 7168, !10, i64 7184, !13, i64 7188, !6, i64 7200, !6, i64 7208, !6, i64 7216, !6, i64 7224, !6, i64 7232, !13, i64 7240, !14, i64 7248, !10, i64 7252, !10, i64 7256, !10, i64 7260, !15, i64 7264, !15, i64 7265, !15, i64 7266, !15, i64 7267, !14, i64 7268, !14, i64 7272, !10, i64 7276, !10, i64 7280, !14, i64 7284, !15, i64 7288, !15, i64 7289, !15, i64 7290, !15, i64 7291, !15, i64 7292, !15, i64 7293, !15, i64 7294, !10, i64 7296, !10, i64 7300, !51, i64 7304, !13, i64 7312, !6, i64 7320, !52, i64 7328, !10, i64 7332, !10, i64 7336, !15, i64 7340, !15, i64 7341, !6, i64 7344, !10, i64 7352, !14, i64 7356, !10, i64 7360, !53, i64 7364, !54, i64 7384, !55, i64 7448, !56, i64 7560, !57, i64 7576, !58, i64 7592, !17, i64 7608, !59, i64 7624, !60, i64 7640, !61, i64 7656, !61, i64 7672, !10, i64 7688, !62, i64 7696, !6, i64 7712, !10, i64 7720, !10, i64 7724, !10, i64 7728, !10, i64 7732, !10, i64 7736, !10, i64 7740, !10, i64 7744, !10, i64 7748, !10, i64 7752, !10, i64 7756, !10, i64 7760, !10, i64 7764, !52, i64 7768, !20, i64 7772, !15, i64 7776, !15, i64 7777, !15, i64 7778, !15, i64 7779, !15, i64 7780, !15, i64 7781, !15, i64 7782, !10, i64 7784, !24, i64 7788, !15, i64 7804, !15, i64 7805, !15, i64 7806, !10, i64 7808, !10, i64 7812, !10, i64 7816, !10, i64 7820, !10, i64 7824, !10, i64 7828, !24, i64 7832, !24, i64 7848, !10, i64 7864, !10, i64 7868, !10, i64 7872, !63, i64 7880, !63, i64 7928, !63, i64 7976, !63, i64 8024, !6, i64 8072, !6, i64 8080, !6, i64 8088, !14, i64 8096, !14, i64 8100, !15, i64 8104, !14, i64 8108, !10, i64 8112, !15, i64 8116, !15, i64 8117, !15, i64 8118, !10, i64 8120, !10, i64 8124, !10, i64 8128, !64, i64 8136, !24, i64 8200, !10, i64 8216, !10, i64 8220, !14, i64 8224, !10, i64 8228, !10, i64 8232, !10, i64 8236, !10, i64 8240, !65, i64 8248, !7, i64 8264, !10, i64 8280, !66, i64 8288, !6, i64 8304, !10, i64 8312, !67, i64 8320, !68, i64 8336, !23, i64 8376, !39, i64 8392, !6, i64 8408, !70, i64 8416, !72, i64 8456, !73, i64 8472, !13, i64 8488, !74, i64 8496, !78, i64 12216, !10, i64 12328, !10, i64 12332, !14, i64 12336, !14, i64 12340, !10, i64 12344, !37, i64 12348, !80, i64 12364, !14, i64 12412, !15, i64 12416, !15, i64 12417, !14, i64 12420, !14, i64 12424, !14, i64 12428, !14, i64 12432, !16, i64 12436, !16, i64 12438, !14, i64 12440, !75, i64 12448, !17, i64 12464, !13, i64 12480, !13, i64 12488, !7, i64 12496, !15, i64 12497, !14, i64 12500, !81, i64 12504, !82, i64 12520, !83, i64 12536, !84, i64 12552, !85, i64 12568, !10, i64 12584, !15, i64 12588, !86, i64 12592, !6, i64 12600, !81, i64 12608, !6, i64 12624, !6, i64 12632, !14, i64 12640, !15, i64 12644, !10, i64 12648, !10, i64 12652, !10, i64 12656, !15, i64 12660, !10, i64 12664, !87, i64 12668, !88, i64 12688, !7, i64 12720, !10, i64 13200, !10, i64 13204, !14, i64 13208, !10, i64 13212, !10, i64 13216, !10, i64 13220, !7, i64 13224}
!46 = !{!"_ZTS7ImGuiIO", !10, i64 0, !10, i64 4, !13, i64 8, !14, i64 16, !14, i64 20, !6, i64 24, !6, i64 32, !14, i64 40, !14, i64 44, !14, i64 48, !7, i64 52, !14, i64 140, !14, i64 144, !6, i64 152, !6, i64 160, !14, i64 168, !15, i64 172, !6, i64 176, !13, i64 184, !15, i64 192, !15, i64 193, !15, i64 194, !15, i64 195, !15, i64 196, !15, i64 197, !14, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !13, i64 288, !7, i64 296, !14, i64 304, !14, i64 308, !15, i64 312, !15, i64 313, !15, i64 314, !15, i64 315, !7, i64 316, !7, i64 828, !15, i64 908, !15, i64 909, !15, i64 910, !15, i64 911, !15, i64 912, !15, i64 913, !15, i64 914, !14, i64 916, !10, i64 920, !10, i64 924, !10, i64 928, !10, i64 932, !10, i64 936, !13, i64 940, !15, i64 948, !10, i64 952, !10, i64 956, !13, i64 960, !7, i64 968, !7, i64 1008, !7, i64 1048, !7, i64 1053, !7, i64 1058, !7, i64 1068, !7, i64 1078, !7, i64 1083, !7, i64 1088, !7, i64 1096, !7, i64 1116, !7, i64 1136, !7, i64 1176, !7, i64 1196, !7, i64 3244, !7, i64 5292, !7, i64 5372, !14, i64 5452, !15, i64 5456, !16, i64 5458, !31, i64 5464}
!47 = !{!"_ZTS10ImGuiStyle", !14, i64 0, !14, i64 4, !13, i64 8, !14, i64 16, !14, i64 20, !13, i64 24, !13, i64 32, !10, i64 40, !14, i64 44, !14, i64 48, !14, i64 52, !14, i64 56, !13, i64 60, !14, i64 68, !14, i64 72, !13, i64 76, !13, i64 84, !13, i64 92, !13, i64 100, !14, i64 108, !14, i64 112, !14, i64 116, !14, i64 120, !14, i64 124, !14, i64 128, !14, i64 132, !14, i64 136, !14, i64 140, !14, i64 144, !10, i64 148, !13, i64 152, !13, i64 160, !13, i64 168, !13, i64 176, !14, i64 184, !15, i64 188, !15, i64 189, !15, i64 190, !14, i64 192, !14, i64 196, !7, i64 200}
!48 = !{!"_ZTS20ImDrawListSharedData", !13, i64 0, !6, i64 8, !14, i64 16, !14, i64 20, !14, i64 24, !37, i64 28, !10, i64 44, !7, i64 48, !14, i64 432, !7, i64 436, !6, i64 504}
!49 = !{!"double", !7, i64 0}
!50 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!51 = !{!"long long", !7, i64 0}
!52 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!53 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !14, i64 4, !10, i64 8, !10, i64 12, !15, i64 16}
!54 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !24, i64 12, !24, i64 28, !24, i64 44}
!55 = !{!"_ZTS19ImGuiNextWindowData", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !15, i64 56, !24, i64 60, !6, i64 80, !6, i64 88, !14, i64 96, !13, i64 100}
!56 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !6, i64 8}
!59 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!62 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !6, i64 8}
!63 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !10, i64 8, !10, i64 12, !24, i64 16, !10, i64 32, !14, i64 36, !14, i64 40, !14, i64 44}
!64 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !7, i64 24, !15, i64 57, !15, i64 58}
!65 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!68 = !{!"_ZTS6ImPoolI10ImGuiTableE", !69, i64 0, !26, i64 16, !10, i64 32, !10, i64 36}
!69 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !6, i64 8}
!70 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !71, i64 0, !26, i64 16, !10, i64 32, !10, i64 36}
!71 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !6, i64 8}
!74 = !{!"_ZTS19ImGuiInputTextState", !10, i64 0, !10, i64 4, !10, i64 8, !31, i64 16, !75, i64 32, !75, i64 48, !15, i64 64, !10, i64 68, !14, i64 72, !76, i64 76, !14, i64 3704, !15, i64 3708, !15, i64 3709, !15, i64 3710, !10, i64 3712}
!75 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !6, i64 8}
!76 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !10, i64 0, !10, i64 4, !10, i64 8, !7, i64 12, !10, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !14, i64 28, !77, i64 32}
!77 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !16, i64 3582, !16, i64 3584, !10, i64 3588, !10, i64 3592}
!78 = !{!"_ZTS6ImFont", !23, i64 0, !14, i64 16, !14, i64 20, !31, i64 24, !79, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !16, i64 80, !16, i64 82, !16, i64 84, !16, i64 86, !15, i64 88, !14, i64 92, !14, i64 96, !14, i64 100, !10, i64 104, !7, i64 108}
!79 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !6, i64 8}
!80 = !{!"_ZTS21ImGuiComboPreviewData", !24, i64 0, !13, i64 16, !13, i64 24, !13, i64 32, !14, i64 40, !10, i64 44}
!81 = !{!"_ZTS15ImGuiTextBuffer", !75, i64 0}
!82 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !6, i64 8}
!83 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !75, i64 0}
!84 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !75, i64 0}
!85 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !6, i64 8}
!86 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!87 = !{!"_ZTS18ImGuiMetricsConfig", !15, i64 0, !15, i64 1, !15, i64 2, !15, i64 3, !15, i64 4, !15, i64 5, !10, i64 8, !10, i64 12}
!88 = !{!"_ZTS14ImGuiStackTool", !10, i64 0, !10, i64 4, !10, i64 8, !89, i64 16}
!89 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !10, i64 0, !10, i64 4, !6, i64 8}
!90 = !{!15, !15, i64 0}
!91 = !{i64 0, i64 4, !43, i64 4, i64 4, !43}
!92 = !{!47, !14, i64 84}
!93 = !{!13, !14, i64 0}
!94 = !{!13, !14, i64 4}
!95 = !{!46, !14, i64 288}
!96 = !{!46, !14, i64 292}
!97 = !{!45, !10, i64 12344}
!98 = !{!45, !14, i64 12336}
!99 = !{!45, !14, i64 12340}
!100 = !{!45, !10, i64 7276}
!101 = !{!45, !15, i64 7289}
!102 = !{!47, !14, i64 0}
!103 = !{!29, !10, i64 32}
!104 = distinct !{!104, !105}
!105 = !{!"llvm.loop.mustprogress"}
!106 = distinct !{!106, !105}
!107 = !{!45, !10, i64 7384}


; 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.ImVec2 = type { float, float }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }

@GImGui = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [56 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui12ColorPicker4EPKcPfiPKf = external hidden unnamed_addr constant [84 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [6 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui6TextExEPKcS1_i(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #3 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) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef, float noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #5

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui4TextEPKcz(ptr noundef, ...) local_unnamed_addr #7

declare noundef float @_ZN5ImGui13CalcItemWidthEv() local_unnamed_addr #8

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #9

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

declare noundef float @_ZN5ImGui14GetFrameHeightEv() local_unnamed_addr #8

declare void @_ZN10ImDrawList15AddCircleFilledERK6ImVec2fji(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), float noundef, i32 noundef, i32 noundef) local_unnamed_addr #8

declare noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv() local_unnamed_addr #8

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL10ImSaturatef(float noundef) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef, float noundef, float noundef) local_unnamed_addr #2

declare void @_ZN5ImGui5PopIDEv() local_unnamed_addr #8

declare void @_ZN5ImGui14MarkItemEditedEj(i32 noundef) local_unnamed_addr #8

declare void @_ZN10ImDrawList9AddCircleERK6ImVec2fjif(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), float noundef, i32 noundef, i32 noundef, float noundef) local_unnamed_addr #8

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

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

declare void @_ZN5ImGui17RenderFrameBorderE6ImVec2S0_f(<2 x float>, <2 x float>, float noundef) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL7ImClampIiET_S0_S0_S0_(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @_ZN5ImGui10BeginGroupEv() local_unnamed_addr #8

declare void @_ZN5ImGui6PushIDEPKc(ptr noundef) local_unnamed_addr #8

declare void @_ZN5ImGui12PopItemWidthEv() local_unnamed_addr #8

declare noundef ptr @_ZN5ImGui19FindRenderedTextEndEPKcS1_(ptr noundef, ptr noundef) local_unnamed_addr #8

declare void @_ZN5ImGui8EndGroupEv() local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef, i32 noundef) local_unnamed_addr #2

; 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 #3 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN17ImGuiNextItemData10ClearFlagsEv(ptr noundef nonnull align 4 dereferenceable(17)) local_unnamed_addr #2 align 2

declare void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef, float noundef, float noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #8

declare void @_ZN5ImGui20ColorConvertRGBtoHSVEfffRfS0_S0_(float noundef, float noundef, float noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL18ColorEditRestoreHSPKfPfS1_S1_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

declare void @_ZN5ImGui20OpenPopupOnItemClickEPKci(ptr noundef, i32 noundef) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11ColorButtonEPKcRK6ImVec4i6ImVec2(ptr noundef, ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, <2 x float>) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN5ImGui12ColorPicker4EPKcPfiPKf(ptr noundef %0, ptr noundef %1, i32 noundef %2, ptr noundef readonly %3) local_unnamed_addr #0 {
  %5 = alloca %struct.ImVec2, align 8
  %6 = alloca [4 x float], align 16
  %7 = alloca %struct.ImVec2, align 4
  %8 = alloca %struct.ImVec2, align 4
  %9 = alloca %struct.ImVec2, align 4
  %10 = alloca %struct.ImVec2, align 4
  %11 = alloca float, align 4
  %12 = alloca float, align 4
  %13 = alloca float, align 4
  %14 = alloca float, align 4
  %15 = alloca float, align 4
  %16 = alloca float, align 4
  %17 = alloca %struct.ImVec2, align 4
  %18 = alloca %struct.ImVec2, align 8
  %19 = alloca %struct.ImVec2, align 8
  %20 = alloca %struct.ImVec2, align 8
  %21 = alloca %struct.ImVec2, align 8
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca %struct.ImVec4, align 4
  %27 = alloca %struct.ImVec2, align 4
  %28 = alloca %struct.ImVec2, align 4
  %29 = alloca %struct.ImVec2, align 4
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca %struct.ImVec4, align 4
  %32 = alloca %struct.ImVec2, align 8
  %33 = alloca %struct.ImVec4, align 4
  %34 = alloca %struct.ImVec2, align 8
  %35 = alloca %struct.ImVec4, align 4
  %36 = alloca float, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca [7 x i32], align 16
  %40 = alloca %struct.ImVec4, align 4
  %41 = alloca %struct.ImVec4, align 4
  %42 = alloca %struct.ImVec2, align 8
  %43 = alloca %struct.ImVec2, align 8
  %44 = alloca %struct.ImVec2, align 8
  %45 = alloca %struct.ImVec2, align 4
  %46 = alloca %struct.ImVec2, align 8
  %47 = alloca %struct.ImVec2, align 8
  %48 = alloca %struct.ImVec2, align 8
  %49 = alloca %struct.ImVec2, align 8
  %50 = alloca %struct.ImVec2, align 8
  %51 = alloca %struct.ImVec2, align 8
  %52 = alloca %struct.ImVec2, align 8
  %53 = alloca %struct.ImVec2, align 8
  %54 = alloca %struct.ImVec2, align 8
  %55 = alloca %struct.ImVec2, align 4
  %56 = alloca %struct.ImVec2, align 8
  %57 = alloca %struct.ImVec2, align 4
  %58 = alloca %struct.ImVec2, align 4
  %59 = alloca %struct.ImVec2, align 4
  %60 = alloca %struct.ImVec2, align 4
  %61 = alloca %struct.ImVec2, align 8
  %62 = alloca %struct.ImVec2, align 8
  %63 = alloca %struct.ImVec2, align 8
  %64 = alloca %struct.ImVec2, align 8
  %65 = alloca %struct.ImRect, align 8
  %66 = alloca %struct.ImVec2, align 8
  %67 = alloca %struct.ImVec2, align 8
  %68 = alloca %struct.ImVec2, align 8
  %69 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %70 = tail call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %71 = getelementptr inbounds i8, ptr %70, i64 147
  %72 = load i8, ptr %71, align 1, !tbaa !9, !range !39, !noundef !40
  %73 = trunc nuw i8 %72 to i1
  br i1 %73, label %640, label %74

74:                                               ; preds = %4
  %75 = getelementptr inbounds i8, ptr %70, i64 624
  %76 = load ptr, ptr %75, align 8, !tbaa !41
  %77 = getelementptr inbounds i8, ptr %69, i64 5488
  %78 = tail call noundef float @_ZN5ImGui13CalcItemWidthEv()
  %79 = getelementptr inbounds i8, ptr %69, i64 7364
  tail call void @_ZN17ImGuiNextItemData10ClearFlagsEv(ptr noundef nonnull align 4 dereferenceable(17) %79)
  tail call void @_ZN5ImGui6PushIDEPKc(ptr noundef %0)
  tail call void @_ZN5ImGui10BeginGroupEv()
  %80 = lshr i32 %2, 4
  %81 = and i32 %80, 16
  %82 = xor i32 %81, 16
  %spec.select = or i32 %82, %2
  %83 = and i32 %2, 8
  %.not405 = icmp eq i32 %83, 0
  br i1 %.not405, label %84, label %85

84:                                               ; preds = %74
  tail call void @_ZN5ImGui23ColorPickerOptionsPopupEPKfi(ptr noundef %1, i32 noundef %spec.select)
  br label %85

85:                                               ; preds = %84, %74
  %86 = and i32 %2, 100663296
  %.not406 = icmp eq i32 %86, 0
  br i1 %.not406, label %87, label %93

87:                                               ; preds = %85
  %88 = getelementptr inbounds i8, ptr %69, i64 12332
  %89 = load i32, ptr %88, align 4, !tbaa !42
  %90 = and i32 %89, 100663296
  %.not407 = icmp eq i32 %90, 0
  %91 = select i1 %.not407, i32 33554432, i32 %90
  %92 = or disjoint i32 %91, %spec.select
  br label %93

93:                                               ; preds = %87, %85
  %.1 = phi i32 [ %spec.select, %85 ], [ %92, %87 ]
  %94 = and i32 %.1, 402653184
  %.not408 = icmp eq i32 %94, 0
  br i1 %.not408, label %95, label %101

95:                                               ; preds = %93
  %96 = getelementptr inbounds i8, ptr %69, i64 12332
  %97 = load i32, ptr %96, align 4, !tbaa !42
  %98 = and i32 %97, 402653184
  %.not409 = icmp eq i32 %98, 0
  %99 = select i1 %.not409, i32 134217728, i32 %98
  %100 = or disjoint i32 %99, %.1
  br label %101

101:                                              ; preds = %95, %93
  %.2 = phi i32 [ %.1, %93 ], [ %100, %95 ]
  %102 = and i32 %.2, 100663296
  %103 = tail call noundef zeroext i1 @_ZL14ImIsPowerOfTwoi(i32 noundef %102)
  br i1 %103, label %105, label %104

104:                                              ; preds = %101
  tail call void @__assert_fail(ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.2, i32 noundef 5160, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui12ColorPicker4EPKcPfiPKf) #13
  unreachable

105:                                              ; preds = %101
  %106 = and i32 %.2, 402653184
  %107 = tail call noundef zeroext i1 @_ZL14ImIsPowerOfTwoi(i32 noundef %106)
  br i1 %107, label %109, label %108

108:                                              ; preds = %105
  tail call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.2, i32 noundef 5161, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui12ColorPicker4EPKcPfiPKf) #13
  unreachable

109:                                              ; preds = %105
  %110 = and i32 %.2, 8
  %.not410 = icmp eq i32 %110, 0
  br i1 %.not410, label %111, label %116

111:                                              ; preds = %109
  %112 = getelementptr inbounds i8, ptr %69, i64 12332
  %113 = load i32, ptr %112, align 4, !tbaa !42
  %114 = and i32 %113, 65536
  %115 = or i32 %114, %.2
  br label %116

116:                                              ; preds = %111, %109
  %.3 = phi i32 [ %.2, %109 ], [ %115, %111 ]
  %117 = and i32 %.3, 2
  %.not411 = icmp eq i32 %117, 0
  %118 = and i32 %.3, 65538
  %119 = icmp eq i32 %118, 65536
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #14
  %120 = getelementptr inbounds i8, ptr %70, i64 216
  %121 = load i64, ptr %120, align 8
  store i64 %121, ptr %5, align 8
  %122 = tail call noundef float @_ZN5ImGui14GetFrameHeightEv()
  %123 = select i1 %119, i32 2, i32 1
  %124 = uitofp nneg i32 %123 to float
  %125 = getelementptr inbounds i8, ptr %69, i64 5572
  %126 = load float, ptr %125, align 4, !tbaa !88
  %127 = fadd float %122, %126
  %128 = fneg float %124
  %129 = tail call float @llvm.fmuladd.f32(float %128, float %127, float %78)
  %130 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %122, float noundef %129)
  %131 = trunc i64 %121 to i32
  %132 = bitcast i32 %131 to float
  %133 = fadd float %130, %132
  %134 = load float, ptr %125, align 4, !tbaa !88
  %135 = fadd float %133, %134
  %136 = fadd float %122, %135
  %137 = fadd float %134, %136
  %138 = fmul float %122, 0x3FC99999A0000000
  %139 = fptosi float %138 to i32
  %140 = sitofp i32 %139 to float
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #14
  %141 = select i1 %.not411, i64 16, i64 12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(12) %6, ptr noundef nonnull align 4 dereferenceable(12) %1, i64 %141, i1 false)
  %142 = fmul float %130, 0x3FB47AE140000000
  %143 = fmul float %130, 5.000000e-01
  %144 = fsub float %143, %142
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #14
  %145 = fadd float %122, %130
  %146 = tail call float @llvm.fmuladd.f32(float %145, float 5.000000e-01, float %132)
  %147 = getelementptr inbounds i8, ptr %5, i64 4
  %148 = lshr i64 %121, 32
  %149 = trunc nuw i64 %148 to i32
  %150 = bitcast i32 %149 to float
  %151 = tail call float @llvm.fmuladd.f32(float %130, float 5.000000e-01, float %150)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef %146, float noundef %151)
  %152 = fmul float %130, 0x3F9BA5E360000000
  %153 = fptosi float %152 to i32
  %154 = sitofp i32 %153 to float
  %155 = fsub float %144, %154
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef %155, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #14
  %156 = fmul float %155, -5.000000e-01
  %157 = fmul float %155, 0xBFEBB67A00000000
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef %156, float noundef %157)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #14
  %158 = fmul float %155, 0x3FEBB67A00000000
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef %156, float noundef %158)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #14
  %159 = load float, ptr %1, align 4, !tbaa !89
  store float %159, ptr %11, align 4, !tbaa !89
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #14
  %160 = getelementptr inbounds i8, ptr %1, i64 4
  %161 = load float, ptr %160, align 4, !tbaa !89
  store float %161, ptr %12, align 4, !tbaa !89
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #14
  %162 = getelementptr inbounds i8, ptr %1, i64 8
  %163 = load float, ptr %162, align 4, !tbaa !89
  store float %163, ptr %13, align 4, !tbaa !89
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #14
  store float %159, ptr %14, align 4, !tbaa !89
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #14
  store float %161, ptr %15, align 4, !tbaa !89
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #14
  store float %163, ptr %16, align 4, !tbaa !89
  %164 = and i32 %.3, 134217728
  %.not412 = icmp ne i32 %164, 0
  br i1 %.not412, label %165, label %166

165:                                              ; preds = %116
  call void @_ZN5ImGui20ColorConvertRGBtoHSVEfffRfS0_S0_(float noundef %159, float noundef %161, float noundef %163, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %13)
  call void @_ZL18ColorEditRestoreHSPKfPfS1_S1_(ptr noundef nonnull %1, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %13)
  br label %169

166:                                              ; preds = %116
  %167 = and i32 %.3, 268435456
  %.not413 = icmp eq i32 %167, 0
  br i1 %.not413, label %169, label %168

168:                                              ; preds = %166
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %159, float noundef %161, float noundef %163, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 4 dereferenceable(4) %16)
  br label %169

169:                                              ; preds = %166, %168, %165
  call void @_ZN5ImGui12PushItemFlagEib(i32 noundef 8, i1 noundef zeroext true)
  %170 = and i32 %.3, 67108864
  %.not414 = icmp eq i32 %170, 0
  br i1 %.not414, label %226, label %171

171:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #14
  %172 = load float, ptr %125, align 4, !tbaa !88
  %173 = fadd float %130, %172
  %174 = fadd float %122, %173
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef %174, float noundef %130)
  %175 = call noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef nonnull @.str.113, ptr noundef nonnull align 4 dereferenceable(8) %17, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #14
  %176 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %176, label %177, label %223

177:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #14
  %178 = getelementptr inbounds i8, ptr %69, i64 976
  %179 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %178, ptr noundef nonnull align 4 dereferenceable(8) %7)
  store <2 x float> %179, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #14
  %180 = getelementptr inbounds i8, ptr %69, i64 296
  %181 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %180, ptr noundef nonnull align 4 dereferenceable(8) %7)
  store <2 x float> %181, ptr %19, align 8
  %182 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %18)
  %183 = fadd float %144, -1.000000e+00
  %184 = fmul float %183, %183
  %185 = fcmp ult float %182, %184
  br i1 %185, label %199, label %186

186:                                              ; preds = %177
  %187 = fadd float %143, 1.000000e+00
  %188 = fmul float %187, %187
  %189 = fcmp ugt float %182, %188
  br i1 %189, label %199, label %190

190:                                              ; preds = %186
  %191 = getelementptr inbounds i8, ptr %19, i64 4
  %192 = load float, ptr %191, align 4, !tbaa !90
  %193 = load float, ptr %19, align 8, !tbaa !91
  %194 = call float @atan2f(float noundef %192, float noundef %193) #14
  %195 = fdiv float %194, 0x400921FB60000000
  %196 = fmul float %195, 5.000000e-01
  %197 = fcmp olt float %196, 0.000000e+00
  %198 = fadd float %196, 1.000000e+00
  %storemerge = select i1 %197, float %198, float %196
  store float %storemerge, ptr %11, align 4, !tbaa !89
  br label %199

199:                                              ; preds = %190, %186, %177
  %.0382 = phi i8 [ 1, %190 ], [ 0, %186 ], [ 0, %177 ]
  %200 = load float, ptr %11, align 4, !tbaa !89
  %201 = fmul float %200, -2.000000e+00
  %202 = fmul float %201, 0x400921FB60000000
  %203 = call float @cosf(float noundef %202) #14
  %204 = load float, ptr %11, align 4, !tbaa !89
  %205 = fmul float %204, -2.000000e+00
  %206 = fmul float %205, 0x400921FB60000000
  %207 = call float @sinf(float noundef %206) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #14
  %208 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef %203, float noundef %207)
  store <2 x float> %208, ptr %20, align 8
  %209 = call noundef zeroext i1 @_Z23ImTriangleContainsPointRK6ImVec2S1_S1_S1_(ptr noundef nonnull align 4 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %9, ptr noundef nonnull align 4 dereferenceable(8) %10, ptr noundef nonnull align 4 dereferenceable(8) %20)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #14
  br i1 %209, label %210, label %222

210:                                              ; preds = %199
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #14
  %211 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef %203, float noundef %207)
  store <2 x float> %211, ptr %21, align 8
  %212 = call noundef zeroext i1 @_Z23ImTriangleContainsPointRK6ImVec2S1_S1_S1_(ptr noundef nonnull align 4 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %9, ptr noundef nonnull align 4 dereferenceable(8) %10, ptr noundef nonnull align 4 dereferenceable(8) %21)
  br i1 %212, label %215, label %213

213:                                              ; preds = %210
  %214 = call <2 x float> @_Z22ImTriangleClosestPointRK6ImVec2S1_S1_S1_(ptr noundef nonnull align 4 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %9, ptr noundef nonnull align 4 dereferenceable(8) %10, ptr noundef nonnull align 4 dereferenceable(8) %21)
  store <2 x float> %214, ptr %21, align 8
  br label %215

215:                                              ; preds = %213, %210
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #14
  call void @_Z27ImTriangleBarycentricCoordsRK6ImVec2S1_S1_S1_RfS2_S2_(ptr noundef nonnull align 4 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %9, ptr noundef nonnull align 4 dereferenceable(8) %10, ptr noundef nonnull align 4 dereferenceable(8) %21, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull align 4 dereferenceable(4) %24)
  %216 = load float, ptr %23, align 4, !tbaa !89
  %217 = fsub float 1.000000e+00, %216
  %218 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %217, float noundef 0x3F1A36E2E0000000, float noundef 1.000000e+00)
  store float %218, ptr %13, align 4, !tbaa !89
  %219 = load float, ptr %22, align 4, !tbaa !89
  %220 = fdiv float %219, %218
  %221 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %220, float noundef 0x3F1A36E2E0000000, float noundef 1.000000e+00)
  store float %221, ptr %12, align 4, !tbaa !89
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #14
  br label %222

222:                                              ; preds = %215, %199
  %.0389 = phi i8 [ 1, %215 ], [ 0, %199 ]
  %.1383 = phi i8 [ 1, %215 ], [ %.0382, %199 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #14
  br label %223

223:                                              ; preds = %222, %171
  %.1390 = phi i8 [ %.0389, %222 ], [ 0, %171 ]
  %.1387 = phi i8 [ %.0382, %222 ], [ 0, %171 ]
  %.2384 = phi i8 [ %.1383, %222 ], [ 0, %171 ]
  %224 = and i32 %.3, 8
  %.not417 = icmp eq i32 %224, 0
  br i1 %.not417, label %225, label %267

225:                                              ; preds = %223
  call void @_ZN5ImGui20OpenPopupOnItemClickEPKci(ptr noundef nonnull @.str.101, i32 noundef 1)
  br label %267

226:                                              ; preds = %169
  %227 = and i32 %.3, 33554432
  %.not415 = icmp eq i32 %227, 0
  br i1 %.not415, label %267, label %228

228:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef %130, float noundef %130)
  %229 = call noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef nonnull @.str.114, ptr noundef nonnull align 4 dereferenceable(8) %25, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #14
  %230 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %230, label %231, label %254

231:                                              ; preds = %228
  %232 = getelementptr inbounds i8, ptr %69, i64 296
  %233 = load float, ptr %232, align 8, !tbaa !92
  %234 = fsub float %233, %132
  %235 = fadd float %130, -1.000000e+00
  %236 = fdiv float %234, %235
  %237 = call noundef float @_ZL10ImSaturatef(float noundef %236)
  store float %237, ptr %12, align 4, !tbaa !89
  %238 = getelementptr inbounds i8, ptr %69, i64 300
  %239 = load float, ptr %238, align 4, !tbaa !93
  %240 = fsub float %239, %150
  %241 = fdiv float %240, %235
  %242 = call noundef float @_ZL10ImSaturatef(float noundef %241)
  %243 = fsub float 1.000000e+00, %242
  store float %243, ptr %13, align 4, !tbaa !89
  %244 = getelementptr inbounds i8, ptr %69, i64 12344
  %245 = load i32, ptr %244, align 8, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #14
  %246 = load float, ptr %1, align 4, !tbaa !89
  %247 = load float, ptr %160, align 4, !tbaa !89
  %248 = load float, ptr %162, align 4, !tbaa !89
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %26, float noundef %246, float noundef %247, float noundef %248, float noundef 0.000000e+00)
  %249 = call noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %26)
  %250 = icmp eq i32 %245, %249
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #14
  br i1 %250, label %251, label %254

251:                                              ; preds = %231
  %252 = getelementptr inbounds i8, ptr %69, i64 12336
  %253 = load float, ptr %252, align 8, !tbaa !95
  store float %253, ptr %11, align 4, !tbaa !89
  br label %254

254:                                              ; preds = %231, %251, %228
  %.3385 = phi i8 [ 0, %228 ], [ 1, %251 ], [ 1, %231 ]
  %255 = and i32 %.3, 8
  %.not416 = icmp eq i32 %255, 0
  br i1 %.not416, label %256, label %257

256:                                              ; preds = %254
  call void @_ZN5ImGui20OpenPopupOnItemClickEPKci(ptr noundef nonnull @.str.101, i32 noundef 1)
  br label %257

257:                                              ; preds = %256, %254
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %27, float noundef %135, float noundef %150)
  call void @_ZN5ImGui18SetCursorScreenPosERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %27)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %28, float noundef %122, float noundef %130)
  %258 = call noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef nonnull @.str.115, ptr noundef nonnull align 4 dereferenceable(8) %28, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #14
  %259 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %259, label %260, label %267

260:                                              ; preds = %257
  %261 = getelementptr inbounds i8, ptr %69, i64 300
  %262 = load float, ptr %261, align 4, !tbaa !93
  %263 = fsub float %262, %150
  %264 = fadd float %130, -1.000000e+00
  %265 = fdiv float %263, %264
  %266 = call noundef float @_ZL10ImSaturatef(float noundef %265)
  store float %266, ptr %11, align 4, !tbaa !89
  br label %267

267:                                              ; preds = %226, %260, %257, %223, %225
  %.3392 = phi i8 [ %.1390, %223 ], [ %.1390, %225 ], [ %.3385, %260 ], [ %.3385, %257 ], [ 0, %226 ]
  %.2388 = phi i8 [ %.1387, %223 ], [ %.1387, %225 ], [ 1, %260 ], [ 0, %257 ], [ 0, %226 ]
  %.4 = phi i8 [ %.2384, %223 ], [ %.2384, %225 ], [ 1, %260 ], [ %.3385, %257 ], [ 0, %226 ]
  br i1 %119, label %268, label %280

268:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %29, float noundef %137, float noundef %150)
  call void @_ZN5ImGui18SetCursorScreenPosERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %29)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef %122, float noundef %130)
  %269 = call noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef nonnull @.str.116, ptr noundef nonnull align 4 dereferenceable(8) %30, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #14
  %270 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %270, label %271, label %280

271:                                              ; preds = %268
  %272 = getelementptr inbounds i8, ptr %69, i64 300
  %273 = load float, ptr %272, align 4, !tbaa !93
  %274 = fsub float %273, %150
  %275 = fadd float %130, -1.000000e+00
  %276 = fdiv float %274, %275
  %277 = call noundef float @_ZL10ImSaturatef(float noundef %276)
  %278 = fsub float 1.000000e+00, %277
  %279 = getelementptr inbounds i8, ptr %1, i64 12
  store float %278, ptr %279, align 4, !tbaa !89
  br label %280

280:                                              ; preds = %268, %271, %267
  %.5 = phi i8 [ 1, %271 ], [ %.4, %268 ], [ %.4, %267 ]
  call void @_ZN5ImGui11PopItemFlagEv()
  %281 = and i32 %.3, 256
  %.not418 = icmp eq i32 %281, 0
  br i1 %.not418, label %282, label %284

282:                                              ; preds = %280
  %283 = load float, ptr %125, align 4, !tbaa !88
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef %283)
  call void @_ZN5ImGui10BeginGroupEv()
  br label %284

284:                                              ; preds = %282, %280
  %285 = and i32 %.3, 128
  %.not419 = icmp eq i32 %285, 0
  br i1 %.not419, label %286, label %292

286:                                              ; preds = %284
  %287 = call noundef ptr @_ZN5ImGui19FindRenderedTextEndEPKcS1_(ptr noundef %0, ptr noundef null)
  %.not420 = icmp eq ptr %287, %0
  br i1 %.not420, label %292, label %288

288:                                              ; preds = %286
  br i1 %.not418, label %291, label %289

289:                                              ; preds = %288
  %290 = load float, ptr %125, align 4, !tbaa !88
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef %290)
  br label %291

291:                                              ; preds = %289, %288
  call void @_ZN5ImGui6TextExEPKcS1_i(ptr noundef %0, ptr noundef %287, i32 noundef 0)
  br label %292

292:                                              ; preds = %286, %291, %284
  br i1 %.not418, label %293, label %325

293:                                              ; preds = %292
  call void @_ZN5ImGui12PushItemFlagEib(i32 noundef 16, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #14
  %294 = load float, ptr %1, align 4, !tbaa !89
  %295 = load float, ptr %160, align 4, !tbaa !89
  %296 = load float, ptr %162, align 4, !tbaa !89
  br i1 %.not411, label %297, label %300

297:                                              ; preds = %293
  %298 = getelementptr inbounds i8, ptr %1, i64 12
  %299 = load float, ptr %298, align 4, !tbaa !89
  br label %300

300:                                              ; preds = %293, %297
  %301 = phi float [ %299, %297 ], [ 1.000000e+00, %293 ]
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %31, float noundef %294, float noundef %295, float noundef %296, float noundef %301)
  br i1 %.not419, label %303, label %302

302:                                              ; preds = %300
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.117)
  br label %303

303:                                              ; preds = %302, %300
  %304 = and i32 %.3, 403570752
  %305 = fmul float %122, 3.000000e+00
  %306 = fmul float %122, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef %305, float noundef %306)
  %307 = load <2 x float>, ptr %32, align 8
  %308 = call noundef zeroext i1 @_ZN5ImGui11ColorButtonEPKcRK6ImVec4i6ImVec2(ptr noundef nonnull @.str.118, ptr noundef nonnull align 4 dereferenceable(16) %31, i32 noundef %304, <2 x float> %307)
  %.not421 = icmp eq ptr %3, null
  br i1 %.not421, label %324, label %309

309:                                              ; preds = %303
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.119)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #14
  %310 = load float, ptr %3, align 4, !tbaa !89
  %311 = getelementptr inbounds i8, ptr %3, i64 4
  %312 = load float, ptr %311, align 4, !tbaa !89
  %313 = getelementptr inbounds i8, ptr %3, i64 8
  %314 = load float, ptr %313, align 4, !tbaa !89
  br i1 %.not411, label %315, label %318

315:                                              ; preds = %309
  %316 = getelementptr inbounds i8, ptr %3, i64 12
  %317 = load float, ptr %316, align 4, !tbaa !89
  br label %318

318:                                              ; preds = %309, %315
  %319 = phi float [ %317, %315 ], [ 1.000000e+00, %309 ]
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %33, float noundef %310, float noundef %312, float noundef %314, float noundef %319)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %34, float noundef %305, float noundef %306)
  %320 = load <2 x float>, ptr %34, align 8
  %321 = call noundef zeroext i1 @_ZN5ImGui11ColorButtonEPKcRK6ImVec4i6ImVec2(ptr noundef nonnull @.str.120, ptr noundef nonnull align 4 dereferenceable(16) %33, i32 noundef %304, <2 x float> %320)
  br i1 %321, label %322, label %323

322:                                              ; preds = %318
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %1, ptr noundef nonnull align 4 dereferenceable(12) %3, i64 %141, i1 false)
  br label %323

323:                                              ; preds = %322, %318
  %.6 = phi i8 [ 1, %322 ], [ %.5, %318 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #14
  br label %324

324:                                              ; preds = %323, %303
  %.7 = phi i8 [ %.6, %323 ], [ %.5, %303 ]
  call void @_ZN5ImGui11PopItemFlagEv()
  call void @_ZN5ImGui8EndGroupEv()
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #14
  br label %325

325:                                              ; preds = %324, %292
  %.8 = phi i8 [ %.5, %292 ], [ %.7, %324 ]
  %326 = trunc nuw i8 %.2388 to i1
  br i1 %326, label %329, label %327

327:                                              ; preds = %325
  %328 = trunc nuw i8 %.3392 to i1
  br i1 %328, label %329, label %349

329:                                              ; preds = %327, %325
  br i1 %.not412, label %330, label %343

330:                                              ; preds = %329
  %331 = load float, ptr %11, align 4, !tbaa !89
  %332 = load float, ptr %12, align 4, !tbaa !89
  %333 = load float, ptr %13, align 4, !tbaa !89
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %331, float noundef %332, float noundef %333, ptr noundef nonnull align 4 dereferenceable(4) %1, ptr noundef nonnull align 4 dereferenceable(4) %160, ptr noundef nonnull align 4 dereferenceable(4) %162)
  %334 = load float, ptr %11, align 4, !tbaa !89
  %335 = getelementptr inbounds i8, ptr %69, i64 12336
  store float %334, ptr %335, align 8, !tbaa !95
  %336 = load float, ptr %12, align 4, !tbaa !89
  %337 = getelementptr inbounds i8, ptr %69, i64 12340
  store float %336, ptr %337, align 4, !tbaa !96
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #14
  %338 = load float, ptr %1, align 4, !tbaa !89
  %339 = load float, ptr %160, align 4, !tbaa !89
  %340 = load float, ptr %162, align 4, !tbaa !89
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %35, float noundef %338, float noundef %339, float noundef %340, float noundef 0.000000e+00)
  %341 = call noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %35)
  %342 = getelementptr inbounds i8, ptr %69, i64 12344
  store i32 %341, ptr %342, align 8, !tbaa !94
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #14
  br label %349

343:                                              ; preds = %329
  %344 = and i32 %.3, 268435456
  %.not422 = icmp eq i32 %344, 0
  br i1 %.not422, label %349, label %345

345:                                              ; preds = %343
  %346 = load float, ptr %11, align 4, !tbaa !89
  store float %346, ptr %1, align 4, !tbaa !89
  %347 = load float, ptr %12, align 4, !tbaa !89
  store float %347, ptr %160, align 4, !tbaa !89
  %348 = load float, ptr %13, align 4, !tbaa !89
  store float %348, ptr %162, align 4, !tbaa !89
  br label %349

349:                                              ; preds = %330, %345, %343, %327
  %350 = and i32 %.3, 32
  %351 = icmp eq i32 %350, 0
  br i1 %351, label %352, label %.thread

352:                                              ; preds = %349
  %353 = select i1 %119, float %137, float %135
  %354 = fadd float %122, %353
  %355 = fsub float %354, %132
  call void @_ZN5ImGui13PushItemWidthEf(float noundef %355)
  %356 = and i32 %.3, 428736538
  %357 = and i32 %.3, 1048576
  %.not423 = icmp ne i32 %357, 0
  %358 = and i32 %.3, 6291456
  %359 = icmp eq i32 %358, 0
  %or.cond432 = or i1 %.not423, %359
  br i1 %or.cond432, label %360, label %371

360:                                              ; preds = %352
  %361 = or disjoint i32 %356, 1048580
  %362 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef nonnull @.str.121, ptr noundef nonnull %1, i32 noundef %361)
  br i1 %362, label %363, label %371

363:                                              ; preds = %360
  %364 = getelementptr inbounds i8, ptr %69, i64 7276
  %365 = load i32, ptr %364, align 4, !tbaa !97
  %.not424 = icmp eq i32 %365, 0
  br i1 %.not424, label %371, label %366

366:                                              ; preds = %363
  %367 = getelementptr inbounds i8, ptr %69, i64 7289
  %368 = load i8, ptr %367, align 1, !tbaa !98, !range !39, !noundef !40
  %369 = trunc nuw i8 %368 to i1
  %370 = xor i1 %369, true
  br label %371

371:                                              ; preds = %363, %366, %352, %360
  %.0393 = phi i1 [ false, %360 ], [ false, %352 ], [ false, %363 ], [ %370, %366 ]
  %.9 = phi i8 [ %.8, %360 ], [ %.8, %352 ], [ 1, %363 ], [ 1, %366 ]
  %372 = and i32 %.3, 2097152
  %.not425 = icmp ne i32 %372, 0
  %373 = and i32 %.3, 5242880
  %374 = icmp eq i32 %373, 0
  %or.cond434 = or i1 %.not425, %374
  br i1 %or.cond434, label %375, label %380

375:                                              ; preds = %371
  %376 = or disjoint i32 %356, 2097156
  %377 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef nonnull @.str.122, ptr noundef nonnull %1, i32 noundef %376)
  %378 = zext i1 %377 to i8
  %379 = or i8 %.9, %378
  br label %380

380:                                              ; preds = %371, %375
  %.10 = phi i8 [ %379, %375 ], [ %.9, %371 ]
  %381 = and i32 %.3, 4194304
  %.not426 = icmp ne i32 %381, 0
  %382 = and i32 %.3, 3145728
  %383 = icmp eq i32 %382, 0
  %or.cond436 = or i1 %.not426, %383
  br i1 %or.cond436, label %384, label %389

384:                                              ; preds = %380
  %385 = or disjoint i32 %356, 4194308
  %386 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef nonnull @.str.123, ptr noundef nonnull %1, i32 noundef %385)
  %387 = zext i1 %386 to i8
  %388 = or i8 %.10, %387
  br label %389

389:                                              ; preds = %384, %380
  %.11 = phi i8 [ %388, %384 ], [ %.10, %380 ]
  call void @_ZN5ImGui12PopItemWidthEv()
  %brmerge.not = and i1 %.not412, %.0393
  br i1 %brmerge.not, label %390, label %.thread

390:                                              ; preds = %389
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #14
  %391 = load float, ptr %1, align 4, !tbaa !89
  %392 = load float, ptr %160, align 4, !tbaa !89
  %393 = load float, ptr %162, align 4, !tbaa !89
  call void @_ZN5ImGui20ColorConvertRGBtoHSVEfffRfS0_S0_(float noundef %391, float noundef %392, float noundef %393, ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 4 dereferenceable(4) %38)
  %394 = load float, ptr %36, align 4, !tbaa !89
  %395 = fcmp ole float %394, 0.000000e+00
  %396 = load float, ptr %11, align 4
  %397 = fcmp ogt float %396, 0.000000e+00
  %or.cond = select i1 %395, i1 %397, i1 false
  br i1 %or.cond, label %398, label %413

398:                                              ; preds = %390
  %399 = load float, ptr %38, align 4
  %400 = fcmp ugt float %399, 0.000000e+00
  br i1 %400, label %407, label %401

401:                                              ; preds = %398
  %402 = load float, ptr %13, align 4
  %403 = fcmp une float %402, %399
  br i1 %403, label %404, label %407

404:                                              ; preds = %401
  %405 = load float, ptr %12, align 4, !tbaa !89
  %406 = fmul float %402, 5.000000e-01
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %396, float noundef %405, float noundef %406, ptr noundef nonnull align 4 dereferenceable(4) %1, ptr noundef nonnull align 4 dereferenceable(4) %160, ptr noundef nonnull align 4 dereferenceable(4) %162)
  br label %413

407:                                              ; preds = %401, %398
  %408 = load float, ptr %37, align 4
  %409 = fcmp ugt float %408, 0.000000e+00
  br i1 %409, label %413, label %410

410:                                              ; preds = %407
  %411 = load float, ptr %12, align 4
  %412 = fmul float %411, 5.000000e-01
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %396, float noundef %412, float noundef %399, ptr noundef nonnull align 4 dereferenceable(4) %1, ptr noundef nonnull align 4 dereferenceable(4) %160, ptr noundef nonnull align 4 dereferenceable(4) %162)
  br label %413

413:                                              ; preds = %404, %410, %407, %390
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #14
  br label %.thread

.thread:                                          ; preds = %349, %389, %413
  %.12443 = phi i8 [ %.11, %389 ], [ %.11, %413 ], [ %.8, %349 ]
  %414 = trunc nuw i8 %.12443 to i1
  br i1 %414, label %415, label %426

415:                                              ; preds = %.thread
  br i1 %.not412, label %416, label %420

416:                                              ; preds = %415
  %417 = load float, ptr %1, align 4, !tbaa !89
  store float %417, ptr %14, align 4, !tbaa !89
  %418 = load float, ptr %160, align 4, !tbaa !89
  store float %418, ptr %15, align 4, !tbaa !89
  %419 = load float, ptr %162, align 4, !tbaa !89
  store float %419, ptr %16, align 4, !tbaa !89
  call void @_ZN5ImGui20ColorConvertRGBtoHSVEfffRfS0_S0_(float noundef %417, float noundef %418, float noundef %419, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %13)
  call void @_ZL18ColorEditRestoreHSPKfPfS1_S1_(ptr noundef nonnull %1, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %13)
  br label %426

420:                                              ; preds = %415
  %421 = and i32 %.3, 268435456
  %.not427 = icmp eq i32 %421, 0
  br i1 %.not427, label %426, label %422

422:                                              ; preds = %420
  %423 = load float, ptr %1, align 4, !tbaa !89
  store float %423, ptr %11, align 4, !tbaa !89
  %424 = load float, ptr %160, align 4, !tbaa !89
  store float %424, ptr %12, align 4, !tbaa !89
  %425 = load float, ptr %162, align 4, !tbaa !89
  store float %425, ptr %13, align 4, !tbaa !89
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %423, float noundef %424, float noundef %425, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 4 dereferenceable(4) %16)
  br label %426

426:                                              ; preds = %416, %422, %420, %.thread
  %427 = load float, ptr %77, align 4, !tbaa !99
  %428 = call noundef float @_ZL10ImSaturatef(float noundef %427)
  %429 = call float @llvm.fmuladd.f32(float %428, float 2.550000e+02, float 5.000000e-01)
  %430 = fptosi float %429 to i32
  %431 = shl i32 %430, 24
  %432 = or disjoint i32 %431, 16711680
  %433 = or disjoint i32 %431, 16776960
  %434 = or disjoint i32 %431, 16777215
  %435 = or disjoint i32 %431, 8421504
  call void @llvm.lifetime.start.p0(i64 28, ptr nonnull %39) #14
  %436 = or disjoint i32 %431, 255
  store i32 %436, ptr %39, align 16, !tbaa !100
  %437 = getelementptr inbounds i8, ptr %39, i64 4
  %438 = or disjoint i32 %431, 65280
  %439 = or disjoint i32 %431, 65535
  store i32 %439, ptr %437, align 4, !tbaa !100
  %440 = getelementptr inbounds i8, ptr %39, i64 8
  store i32 %438, ptr %440, align 8, !tbaa !100
  %441 = getelementptr inbounds i8, ptr %39, i64 12
  store i32 %433, ptr %441, align 4, !tbaa !100
  %442 = getelementptr inbounds i8, ptr %39, i64 16
  store i32 %432, ptr %442, align 16, !tbaa !100
  %443 = getelementptr inbounds i8, ptr %39, i64 20
  %444 = or disjoint i32 %431, 16711935
  store i32 %444, ptr %443, align 4, !tbaa !100
  %445 = getelementptr inbounds i8, ptr %39, i64 24
  store i32 %436, ptr %445, align 8, !tbaa !100
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #14
  %446 = load float, ptr %77, align 4, !tbaa !99
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %40, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef %446)
  %447 = load float, ptr %11, align 4, !tbaa !89
  %448 = getelementptr inbounds i8, ptr %40, i64 4
  %449 = getelementptr inbounds i8, ptr %40, i64 8
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %447, float noundef 1.000000e+00, float noundef 1.000000e+00, ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull align 4 dereferenceable(4) %448, ptr noundef nonnull align 4 dereferenceable(4) %449)
  %450 = call noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %40)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #14
  %451 = load float, ptr %14, align 4, !tbaa !89
  %452 = load float, ptr %15, align 4, !tbaa !89
  %453 = load float, ptr %16, align 4, !tbaa !89
  %454 = load float, ptr %77, align 4, !tbaa !99
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %41, float noundef %451, float noundef %452, float noundef %453, float noundef %454)
  %455 = call noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %41)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %42)
  br i1 %.not414, label %527, label %456

456:                                              ; preds = %426
  %457 = fdiv float 5.000000e-01, %143
  %458 = fptosi float %143 to i32
  %459 = sdiv i32 %458, 12
  %460 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef 4, i32 noundef %459)
  %461 = fneg float %457
  %462 = getelementptr inbounds i8, ptr %76, i64 32
  %463 = fadd float %143, %144
  %464 = fmul float %463, 5.000000e-01
  %465 = getelementptr inbounds i8, ptr %7, i64 4
  br label %500

466:                                              ; preds = %500
  %467 = load float, ptr %11, align 4, !tbaa !89
  %468 = fmul float %467, 2.000000e+00
  %469 = fmul float %468, 0x400921FB60000000
  %470 = call float @cosf(float noundef %469) #14
  %471 = load float, ptr %11, align 4, !tbaa !89
  %472 = fmul float %471, 2.000000e+00
  %473 = fmul float %472, 0x400921FB60000000
  %474 = call float @sinf(float noundef %473) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #14
  %475 = load float, ptr %7, align 4, !tbaa !91
  %476 = fmul float %463, %470
  %477 = call float @llvm.fmuladd.f32(float %476, float 5.000000e-01, float %475)
  %478 = load float, ptr %465, align 4, !tbaa !90
  %479 = fmul float %463, %474
  %480 = call float @llvm.fmuladd.f32(float %479, float 5.000000e-01, float %478)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %45, float noundef %477, float noundef %480)
  %.v = select i1 %326, float 0x3FE4CCCCC0000000, float 0x3FE19999A0000000
  %481 = fmul float %142, %.v
  %482 = fdiv float %481, 0x3FF6666660000000
  %483 = fptosi float %482 to i32
  %484 = call noundef i32 @_ZL7ImClampIiET_S0_S0_S0_(i32 noundef %483, i32 noundef 9, i32 noundef 32)
  call void @_ZN10ImDrawList15AddCircleFilledERK6ImVec2fji(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %45, float noundef %481, i32 noundef %450, i32 noundef %484)
  %485 = fadd float %481, 1.000000e+00
  call void @_ZN10ImDrawList9AddCircleERK6ImVec2fjif(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %45, float noundef %485, i32 noundef %435, i32 noundef %484, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList9AddCircleERK6ImVec2fjif(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %45, float noundef %481, i32 noundef %434, i32 noundef %484, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #14
  %486 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef %470, float noundef %474)
  store <2 x float> %486, ptr %47, align 8
  %487 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %47)
  store <2 x float> %487, ptr %46, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #14
  %488 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef %470, float noundef %474)
  store <2 x float> %488, ptr %49, align 8
  %489 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %49)
  store <2 x float> %489, ptr %48, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #14
  %490 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef %470, float noundef %474)
  store <2 x float> %490, ptr %51, align 8
  %491 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %51)
  store <2 x float> %491, ptr %50, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #14
  %492 = call <2 x float> @_ZN5ImGui22GetFontTexUvWhitePixelEv()
  store <2 x float> %492, ptr %52, align 8
  call void @_ZN10ImDrawList11PrimReserveEii(ptr noundef nonnull align 8 dereferenceable(196) %76, i32 noundef 6, i32 noundef 6)
  call void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %46, ptr noundef nonnull align 4 dereferenceable(8) %52, i32 noundef %450)
  call void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %48, ptr noundef nonnull align 4 dereferenceable(8) %52, i32 noundef %450)
  call void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %50, ptr noundef nonnull align 4 dereferenceable(8) %52, i32 noundef %434)
  call void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %46, ptr noundef nonnull align 4 dereferenceable(8) %52, i32 noundef 0)
  call void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %48, ptr noundef nonnull align 4 dereferenceable(8) %52, i32 noundef %431)
  call void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %50, ptr noundef nonnull align 4 dereferenceable(8) %52, i32 noundef 0)
  call void @_ZN10ImDrawList11AddTriangleERK6ImVec2S2_S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %46, ptr noundef nonnull align 4 dereferenceable(8) %48, ptr noundef nonnull align 4 dereferenceable(8) %50, i32 noundef %435, float noundef 1.500000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #14
  %493 = load float, ptr %12, align 4, !tbaa !89
  %494 = call noundef float @_ZL10ImSaturatef(float noundef %493)
  %495 = call <2 x float> @_ZL6ImLerpRK6ImVec2S1_f(ptr noundef nonnull align 4 dereferenceable(8) %50, ptr noundef nonnull align 4 dereferenceable(8) %46, float noundef %494)
  store <2 x float> %495, ptr %53, align 8
  %496 = load float, ptr %13, align 4, !tbaa !89
  %497 = fsub float 1.000000e+00, %496
  %498 = call noundef float @_ZL10ImSaturatef(float noundef %497)
  %499 = call <2 x float> @_ZL6ImLerpRK6ImVec2S1_f(ptr noundef nonnull align 4 dereferenceable(8) %53, ptr noundef nonnull align 4 dereferenceable(8) %48, float noundef %498)
  store <2 x float> %499, ptr %42, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #14
  br label %603

500:                                              ; preds = %456, %500
  %501 = phi i32 [ %436, %456 ], [ %526, %500 ]
  %indvars.iv = phi i64 [ 0, %456 ], [ %indvars.iv.next, %500 ]
  %502 = trunc nuw nsw i64 %indvars.iv to i32
  %503 = uitofp nneg i32 %502 to float
  %504 = fdiv float %503, 6.000000e+00
  %505 = fmul float %504, 2.000000e+00
  %506 = call float @llvm.fmuladd.f32(float %505, float 0x400921FB60000000, float %461)
  %507 = fadd float %503, 1.000000e+00
  %508 = fdiv float %507, 6.000000e+00
  %509 = fmul float %508, 2.000000e+00
  %510 = call float @llvm.fmuladd.f32(float %509, float 0x400921FB60000000, float %457)
  %511 = load i32, ptr %462, align 8, !tbaa !101
  call void @_ZN10ImDrawList9PathArcToERK6ImVec2fffi(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef %464, float noundef %506, float noundef %510, i32 noundef %460)
  call void @_ZN10ImDrawList10PathStrokeEjif(ptr noundef nonnull align 8 dereferenceable(196) %76, i32 noundef %434, i32 noundef 0, float noundef %142)
  %512 = load i32, ptr %462, align 8, !tbaa !101
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #14
  %513 = load float, ptr %7, align 4, !tbaa !91
  %514 = call float @cosf(float noundef %506) #14
  %515 = call float @llvm.fmuladd.f32(float %514, float %144, float %513)
  %516 = load float, ptr %465, align 4, !tbaa !90
  %517 = call float @sinf(float noundef %506) #14
  %518 = call float @llvm.fmuladd.f32(float %517, float %144, float %516)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %43, float noundef %515, float noundef %518)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #14
  %519 = load float, ptr %7, align 4, !tbaa !91
  %520 = call float @cosf(float noundef %510) #14
  %521 = call float @llvm.fmuladd.f32(float %520, float %144, float %519)
  %522 = load float, ptr %465, align 4, !tbaa !90
  %523 = call float @sinf(float noundef %510) #14
  %524 = call float @llvm.fmuladd.f32(float %523, float %144, float %522)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef %521, float noundef %524)
  %.sroa.036.0.copyload = load <2 x float>, ptr %43, align 8
  %.sroa.035.0.copyload = load <2 x float>, ptr %44, align 8
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %525 = getelementptr inbounds [7 x i32], ptr %39, i64 0, i64 %indvars.iv.next
  %526 = load i32, ptr %525, align 4, !tbaa !100
  call void @_ZN5ImGui38ShadeVertsLinearColorGradientKeepAlphaEP10ImDrawListii6ImVec2S2_jj(ptr noundef nonnull %76, i32 noundef %511, i32 noundef %512, <2 x float> %.sroa.036.0.copyload, <2 x float> %.sroa.035.0.copyload, i32 noundef %501, i32 noundef %526)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #14
  %exitcond.not = icmp eq i64 %indvars.iv.next, 6
  br i1 %exitcond.not, label %466, label %500, !llvm.loop !102

527:                                              ; preds = %426
  %528 = and i32 %.3, 33554432
  %.not428 = icmp eq i32 %528, 0
  br i1 %.not428, label %603, label %529

529:                                              ; preds = %527
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %55, float noundef %130, float noundef %130)
  %530 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %55)
  store <2 x float> %530, ptr %54, align 8
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %54, i32 noundef %434, i32 noundef %450, i32 noundef %450, i32 noundef %434)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %57, float noundef %130, float noundef %130)
  %531 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %57)
  store <2 x float> %531, ptr %56, align 8
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %56, i32 noundef 0, i32 noundef 0, i32 noundef %431, i32 noundef %431)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #14
  %.sroa.018.0.copyload = load <2 x float>, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %58, float noundef %130, float noundef %130)
  %532 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %58)
  call void @_ZN5ImGui17RenderFrameBorderE6ImVec2S0_f(<2 x float> %.sroa.018.0.copyload, <2 x float> %532, float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #14
  %533 = load float, ptr %5, align 8, !tbaa !91
  %534 = load float, ptr %12, align 4, !tbaa !89
  %535 = call noundef float @_ZL10ImSaturatef(float noundef %534)
  %536 = call float @llvm.fmuladd.f32(float %535, float %130, float %533)
  %537 = fadd float %536, 5.000000e-01
  %538 = fptosi float %537 to i32
  %539 = sitofp i32 %538 to float
  %540 = load float, ptr %5, align 8, !tbaa !91
  %541 = fadd float %540, 2.000000e+00
  %542 = fadd float %130, %540
  %543 = fadd float %542, -2.000000e+00
  %544 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %539, float noundef %541, float noundef %543)
  store float %544, ptr %42, align 8, !tbaa !91
  %545 = load float, ptr %147, align 4, !tbaa !90
  %546 = load float, ptr %13, align 4, !tbaa !89
  %547 = fsub float 1.000000e+00, %546
  %548 = call noundef float @_ZL10ImSaturatef(float noundef %547)
  %549 = call float @llvm.fmuladd.f32(float %548, float %130, float %545)
  %550 = fadd float %549, 5.000000e-01
  %551 = fptosi float %550 to i32
  %552 = sitofp i32 %551 to float
  %553 = load float, ptr %147, align 4, !tbaa !90
  %554 = fadd float %553, 2.000000e+00
  %555 = fadd float %130, %553
  %556 = fadd float %555, -2.000000e+00
  %557 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %552, float noundef %554, float noundef %556)
  %558 = getelementptr inbounds i8, ptr %42, i64 4
  store float %557, ptr %558, align 4, !tbaa !90
  %559 = fdiv float %130, 6.000000e+00
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %560 = load float, ptr %147, align 4, !tbaa !90
  %561 = call float @llvm.fmuladd.f32(float %559, float 0.000000e+00, float %560)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %135, float noundef %561)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #14
  %562 = load float, ptr %147, align 4, !tbaa !90
  %563 = fadd float %559, %562
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %60, float noundef %136, float noundef %563)
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %59, ptr noundef nonnull align 4 dereferenceable(8) %60, i32 noundef %436, i32 noundef %436, i32 noundef %439, i32 noundef %439)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %564 = load float, ptr %147, align 4, !tbaa !90
  %565 = fadd float %559, %564
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %135, float noundef %565)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #14
  %566 = load float, ptr %147, align 4, !tbaa !90
  %567 = call float @llvm.fmuladd.f32(float %559, float 2.000000e+00, float %566)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %60, float noundef %136, float noundef %567)
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %59, ptr noundef nonnull align 4 dereferenceable(8) %60, i32 noundef %439, i32 noundef %439, i32 noundef %438, i32 noundef %438)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %568 = load float, ptr %147, align 4, !tbaa !90
  %569 = call float @llvm.fmuladd.f32(float %559, float 2.000000e+00, float %568)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %135, float noundef %569)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #14
  %570 = load float, ptr %147, align 4, !tbaa !90
  %571 = call float @llvm.fmuladd.f32(float %559, float 3.000000e+00, float %570)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %60, float noundef %136, float noundef %571)
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %59, ptr noundef nonnull align 4 dereferenceable(8) %60, i32 noundef %438, i32 noundef %438, i32 noundef %433, i32 noundef %433)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %572 = load float, ptr %147, align 4, !tbaa !90
  %573 = call float @llvm.fmuladd.f32(float %559, float 3.000000e+00, float %572)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %135, float noundef %573)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #14
  %574 = load float, ptr %147, align 4, !tbaa !90
  %575 = call float @llvm.fmuladd.f32(float %559, float 4.000000e+00, float %574)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %60, float noundef %136, float noundef %575)
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %59, ptr noundef nonnull align 4 dereferenceable(8) %60, i32 noundef %433, i32 noundef %433, i32 noundef %432, i32 noundef %432)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %576 = load float, ptr %147, align 4, !tbaa !90
  %577 = call float @llvm.fmuladd.f32(float %559, float 4.000000e+00, float %576)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %135, float noundef %577)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #14
  %578 = load float, ptr %147, align 4, !tbaa !90
  %579 = call float @llvm.fmuladd.f32(float %559, float 5.000000e+00, float %578)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %60, float noundef %136, float noundef %579)
  %580 = load i32, ptr %442, align 16, !tbaa !100
  %581 = load i32, ptr %443, align 4, !tbaa !100
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %59, ptr noundef nonnull align 4 dereferenceable(8) %60, i32 noundef %580, i32 noundef %580, i32 noundef %581, i32 noundef %581)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %582 = load float, ptr %147, align 4, !tbaa !90
  %583 = call float @llvm.fmuladd.f32(float %559, float 5.000000e+00, float %582)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %135, float noundef %583)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #14
  %584 = load float, ptr %147, align 4, !tbaa !90
  %585 = call float @llvm.fmuladd.f32(float %559, float 6.000000e+00, float %584)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %60, float noundef %136, float noundef %585)
  %586 = load i32, ptr %445, align 8, !tbaa !100
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %59, ptr noundef nonnull align 4 dereferenceable(8) %60, i32 noundef %581, i32 noundef %581, i32 noundef %586, i32 noundef %586)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  %587 = load float, ptr %147, align 4, !tbaa !90
  %588 = load float, ptr %11, align 4, !tbaa !89
  %589 = call float @llvm.fmuladd.f32(float %588, float %130, float %587)
  %590 = fadd float %589, 5.000000e-01
  %591 = fptosi float %590 to i32
  %592 = sitofp i32 %591 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %61, float noundef %135, float noundef %587)
  %593 = load float, ptr %147, align 4, !tbaa !90
  %594 = fadd float %130, %593
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %62, float noundef %136, float noundef %594)
  %595 = load <2 x float>, ptr %61, align 8
  %596 = load <2 x float>, ptr %62, align 8
  call void @_ZN5ImGui17RenderFrameBorderE6ImVec2S0_f(<2 x float> %595, <2 x float> %596, float noundef 0.000000e+00)
  %597 = fadd float %135, -1.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef %597, float noundef %592)
  %598 = fadd float %140, 1.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %64, float noundef %598, float noundef %140)
  %599 = fadd float %122, 2.000000e+00
  %600 = load float, ptr %77, align 4, !tbaa !99
  %601 = load <2 x float>, ptr %63, align 8
  %602 = load <2 x float>, ptr %64, align 8
  call void @_ZL26RenderArrowsForVerticalBarP10ImDrawList6ImVec2S1_ff(ptr noundef nonnull %76, <2 x float> %601, <2 x float> %602, float noundef %599, float noundef %600)
  br label %603

603:                                              ; preds = %527, %529, %466
  %604 = trunc nuw i8 %.3392 to i1
  %605 = select i1 %604, float 1.000000e+01, float 6.000000e+00
  call void @_ZN10ImDrawList15AddCircleFilledERK6ImVec2fji(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %42, float noundef %605, i32 noundef %455, i32 noundef 12)
  %606 = fadd float %605, 1.000000e+00
  call void @_ZN10ImDrawList9AddCircleERK6ImVec2fjif(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %42, float noundef %606, i32 noundef %435, i32 noundef 12, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList9AddCircleERK6ImVec2fjif(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %42, float noundef %605, i32 noundef %434, i32 noundef 12, float noundef 1.000000e+00)
  br i1 %119, label %607, label %631

607:                                              ; preds = %603
  %608 = getelementptr inbounds i8, ptr %1, i64 12
  %609 = load float, ptr %608, align 4, !tbaa !89
  %610 = call noundef float @_ZL10ImSaturatef(float noundef %609)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %65) #14
  %611 = load float, ptr %147, align 4, !tbaa !90
  %612 = fadd float %122, %137
  %613 = fadd float %130, %611
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %65, float noundef %137, float noundef %611, float noundef %612, float noundef %613)
  %.sroa.04.0.copyload = load <2 x float>, ptr %65, align 8
  %614 = getelementptr inbounds i8, ptr %65, i64 8
  %.sroa.03.0.copyload = load <2 x float>, ptr %614, align 8
  %615 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %65)
  %616 = fmul float %615, 5.000000e-01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %66, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %617 = load <2 x float>, ptr %66, align 8
  call void @_ZN5ImGui36RenderColorRectWithAlphaCheckerboardEP10ImDrawList6ImVec2S2_jfS2_fi(ptr noundef nonnull %76, <2 x float> %.sroa.04.0.copyload, <2 x float> %.sroa.03.0.copyload, i32 noundef 0, float noundef %616, <2 x float> %617, float noundef 0.000000e+00, i32 noundef 0)
  %618 = and i32 %455, 16777215
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %76, ptr noundef nonnull align 4 dereferenceable(8) %65, ptr noundef nonnull align 4 dereferenceable(8) %614, i32 noundef %455, i32 noundef %455, i32 noundef %618, i32 noundef %618)
  %619 = load float, ptr %147, align 4, !tbaa !90
  %620 = fsub float 1.000000e+00, %610
  %621 = call float @llvm.fmuladd.f32(float %620, float %130, float %619)
  %622 = fadd float %621, 5.000000e-01
  %623 = fptosi float %622 to i32
  %624 = sitofp i32 %623 to float
  %.sroa.02.0.copyload = load <2 x float>, ptr %65, align 8
  %.sroa.0.0.copyload = load <2 x float>, ptr %614, align 8
  call void @_ZN5ImGui17RenderFrameBorderE6ImVec2S0_f(<2 x float> %.sroa.02.0.copyload, <2 x float> %.sroa.0.0.copyload, float noundef 0.000000e+00)
  %625 = fadd float %137, -1.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %67, float noundef %625, float noundef %624)
  %626 = fadd float %140, 1.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %68, float noundef %626, float noundef %140)
  %627 = fadd float %122, 2.000000e+00
  %628 = load float, ptr %77, align 4, !tbaa !99
  %629 = load <2 x float>, ptr %67, align 8
  %630 = load <2 x float>, ptr %68, align 8
  call void @_ZL26RenderArrowsForVerticalBarP10ImDrawList6ImVec2S1_ff(ptr noundef nonnull %76, <2 x float> %629, <2 x float> %630, float noundef %627, float noundef %628)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #14
  br label %631

631:                                              ; preds = %607, %603
  call void @_ZN5ImGui8EndGroupEv()
  br i1 %414, label %632, label %634

632:                                              ; preds = %631
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(12) %6, ptr noundef nonnull dereferenceable(12) %1, i64 %141)
  %633 = icmp eq i32 %bcmp, 0
  %spec.select438 = select i1 %633, i8 0, i8 %.12443
  br label %634

634:                                              ; preds = %632, %631
  %.13 = phi i8 [ %.12443, %631 ], [ %spec.select438, %632 ]
  %635 = trunc nuw i8 %.13 to i1
  br i1 %635, label %636, label %639

636:                                              ; preds = %634
  %637 = getelementptr inbounds i8, ptr %69, i64 7384
  %638 = load i32, ptr %637, align 8, !tbaa !104
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %638)
  br label %639

639:                                              ; preds = %636, %634
  call void @_ZN5ImGui5PopIDEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #14
  call void @llvm.lifetime.end.p0(i64 28, ptr nonnull %39) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #14
  br label %640

640:                                              ; preds = %4, %639
  %.0 = phi i1 [ %635, %639 ], [ false, %4 ]
  ret i1 %.0
}

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui23ColorPickerOptionsPopupEPKfi(ptr noundef, i32 noundef) local_unnamed_addr #0

declare void @_ZN5ImGui12PushItemFlagEib(i32 noundef, i1 noundef zeroext) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare float @atan2f(float noundef, float noundef) local_unnamed_addr #10

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare float @cosf(float noundef) local_unnamed_addr #10

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare float @sinf(float noundef) local_unnamed_addr #10

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) local_unnamed_addr #6

declare <2 x float> @_Z22ImTriangleClosestPointRK6ImVec2S1_S1_S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #8

declare void @_Z27ImTriangleBarycentricCoordsRK6ImVec2S1_S1_S1_RfS2_S2_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #8

declare void @_ZN5ImGui18SetCursorScreenPosERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #8

declare void @_ZN5ImGui11PopItemFlagEv() local_unnamed_addr #8

declare void @_ZN5ImGui13PushItemWidthEf(float noundef) local_unnamed_addr #8

declare void @_ZN10ImDrawList9PathArcToERK6ImVec2fffi(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef, float noundef, i32 noundef) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10ImDrawList10PathStrokeEjif(ptr noundef nonnull align 8 dereferenceable(196), i32 noundef, i32 noundef, float noundef) local_unnamed_addr #11 align 2

declare void @_ZN5ImGui38ShadeVertsLinearColorGradientKeepAlphaEP10ImDrawListii6ImVec2S2_jj(ptr noundef, i32 noundef, i32 noundef, <2 x float>, <2 x float>, i32 noundef, i32 noundef) local_unnamed_addr #8

declare <2 x float> @_ZN5ImGui22GetFontTexUvWhitePixelEv() local_unnamed_addr #8

declare void @_ZN10ImDrawList11PrimReserveEii(ptr noundef nonnull align 8 dereferenceable(196), i32 noundef, i32 noundef) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10ImDrawList7PrimVtxERK6ImVec2S2_j(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) local_unnamed_addr #11 align 2

declare void @_ZN10ImDrawList11AddTriangleERK6ImVec2S2_S2_jf(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZL6ImLerpRK6ImVec2S1_f(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), float noundef) local_unnamed_addr #6

declare void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL26RenderArrowsForVerticalBarP10ImDrawList6ImVec2S1_ff(ptr noundef, <2 x float>, <2 x float>, float noundef, float noundef) local_unnamed_addr #0

declare void @_ZN5ImGui36RenderColorRectWithAlphaCheckerboardEP10ImDrawList6ImVec2S2_jfS2_fi(ptr noundef, <2 x float>, <2 x float>, i32 noundef, float noundef, <2 x float>, float noundef, i32 noundef) local_unnamed_addr #8

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !14, i64 147}
!10 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !11, i64 8, !11, i64 12, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !13, i64 72, !13, i64 76, !11, i64 80, !11, i64 84, !11, i64 88, !12, i64 92, !12, i64 100, !12, i64 108, !12, i64 116, !12, i64 124, !12, i64 132, !14, i64 140, !14, i64 141, !14, i64 142, !14, i64 143, !14, i64 144, !14, i64 145, !14, i64 146, !14, i64 147, !14, i64 148, !14, i64 149, !14, i64 150, !14, i64 151, !14, i64 152, !7, i64 153, !15, i64 154, !15, i64 156, !15, i64 158, !15, i64 160, !11, i64 164, !7, i64 168, !7, i64 169, !7, i64 170, !14, i64 171, !11, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !7, i64 179, !11, i64 180, !11, i64 181, !11, i64 182, !12, i64 184, !12, i64 192, !16, i64 200, !17, i64 216, !23, i64 448, !23, i64 464, !23, i64 480, !23, i64 496, !23, i64 512, !23, i64 528, !23, i64 544, !24, i64 560, !24, i64 564, !11, i64 568, !13, i64 572, !13, i64 576, !25, i64 584, !27, i64 600, !13, i64 616, !11, i64 620, !6, i64 624, !28, i64 632, !6, i64 832, !6, i64 840, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !7, i64 888, !7, i64 896, !11, i64 928, !11, i64 932, !14, i64 936}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS6ImVec2", !13, i64 0, !13, i64 4}
!13 = !{!"float", !7, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"short", !7, i64 0}
!16 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!17 = !{!"_ZTS19ImGuiWindowTempData", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !13, i64 56, !13, i64 60, !18, i64 64, !18, i64 68, !18, i64 72, !12, i64 76, !19, i64 84, !15, i64 88, !15, i64 90, !11, i64 92, !14, i64 96, !14, i64 97, !14, i64 98, !12, i64 100, !20, i64 108, !11, i64 136, !11, i64 140, !21, i64 144, !6, i64 160, !6, i64 168, !11, i64 176, !11, i64 180, !11, i64 184, !13, i64 188, !13, i64 192, !22, i64 200, !22, i64 216}
!18 = !{!"_ZTS6ImVec1", !13, i64 0}
!19 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!20 = !{!"_ZTS16ImGuiMenuColumns", !11, i64 0, !11, i64 4, !15, i64 8, !15, i64 10, !15, i64 12, !15, i64 14, !15, i64 16, !7, i64 18}
!21 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !11, i64 0, !11, i64 4, !6, i64 8}
!22 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!23 = !{!"_ZTS6ImRect", !12, i64 0, !12, i64 8}
!24 = !{!"_ZTS8ImVec2ih", !15, i64 0, !15, i64 2}
!25 = !{!"_ZTS12ImGuiStorage", !26, i64 0}
!26 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!28 = !{!"_ZTS10ImDrawList", !29, i64 0, !30, i64 16, !31, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !32, i64 88, !33, i64 104, !34, i64 120, !35, i64 136, !37, i64 168, !13, i64 192}
!29 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!30 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!31 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!32 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!33 = !{!"_ZTS8ImVectorIPvE", !11, i64 0, !11, i64 4, !6, i64 8}
!34 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!35 = !{!"_ZTS15ImDrawCmdHeader", !36, i64 0, !6, i64 16, !11, i64 24}
!36 = !{!"_ZTS6ImVec4", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12}
!37 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !38, i64 8}
!38 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!39 = !{i8 0, i8 2}
!40 = !{}
!41 = !{!10, !6, i64 624}
!42 = !{!43, !11, i64 12332}
!43 = !{!"_ZTS12ImGuiContext", !14, i64 0, !14, i64 1, !44, i64 8, !45, i64 5488, !6, i64 6536, !13, i64 6544, !13, i64 6548, !46, i64 6552, !47, i64 7064, !11, i64 7072, !11, i64 7076, !11, i64 7080, !14, i64 7084, !14, i64 7085, !14, i64 7086, !14, i64 7087, !14, i64 7088, !6, i64 7096, !21, i64 7104, !21, i64 7120, !21, i64 7136, !48, i64 7152, !25, i64 7168, !11, i64 7184, !12, i64 7188, !6, i64 7200, !6, i64 7208, !6, i64 7216, !6, i64 7224, !6, i64 7232, !12, i64 7240, !13, i64 7248, !11, i64 7252, !11, i64 7256, !11, i64 7260, !14, i64 7264, !14, i64 7265, !14, i64 7266, !14, i64 7267, !13, i64 7268, !13, i64 7272, !11, i64 7276, !11, i64 7280, !13, i64 7284, !14, i64 7288, !14, i64 7289, !14, i64 7290, !14, i64 7291, !14, i64 7292, !14, i64 7293, !14, i64 7294, !11, i64 7296, !11, i64 7300, !49, i64 7304, !12, i64 7312, !6, i64 7320, !50, i64 7328, !11, i64 7332, !11, i64 7336, !14, i64 7340, !14, i64 7341, !6, i64 7344, !11, i64 7352, !13, i64 7356, !11, i64 7360, !51, i64 7364, !52, i64 7384, !53, i64 7448, !54, i64 7560, !55, i64 7576, !56, i64 7592, !16, i64 7608, !57, i64 7624, !58, i64 7640, !59, i64 7656, !59, i64 7672, !11, i64 7688, !60, i64 7696, !6, i64 7712, !11, i64 7720, !11, i64 7724, !11, i64 7728, !11, i64 7732, !11, i64 7736, !11, i64 7740, !11, i64 7744, !11, i64 7748, !11, i64 7752, !11, i64 7756, !11, i64 7760, !11, i64 7764, !50, i64 7768, !19, i64 7772, !14, i64 7776, !14, i64 7777, !14, i64 7778, !14, i64 7779, !14, i64 7780, !14, i64 7781, !14, i64 7782, !11, i64 7784, !23, i64 7788, !14, i64 7804, !14, i64 7805, !14, i64 7806, !11, i64 7808, !11, i64 7812, !11, i64 7816, !11, i64 7820, !11, i64 7824, !11, i64 7828, !23, i64 7832, !23, i64 7848, !11, i64 7864, !11, i64 7868, !11, i64 7872, !61, i64 7880, !61, i64 7928, !61, i64 7976, !61, i64 8024, !6, i64 8072, !6, i64 8080, !6, i64 8088, !13, i64 8096, !13, i64 8100, !14, i64 8104, !13, i64 8108, !11, i64 8112, !14, i64 8116, !14, i64 8117, !14, i64 8118, !11, i64 8120, !11, i64 8124, !11, i64 8128, !62, i64 8136, !23, i64 8200, !11, i64 8216, !11, i64 8220, !13, i64 8224, !11, i64 8228, !11, i64 8232, !11, i64 8236, !11, i64 8240, !63, i64 8248, !7, i64 8264, !11, i64 8280, !64, i64 8288, !6, i64 8304, !11, i64 8312, !65, i64 8320, !66, i64 8336, !22, i64 8376, !38, i64 8392, !6, i64 8408, !68, i64 8416, !70, i64 8456, !71, i64 8472, !12, i64 8488, !72, i64 8496, !76, i64 12216, !11, i64 12328, !11, i64 12332, !13, i64 12336, !13, i64 12340, !11, i64 12344, !36, i64 12348, !78, i64 12364, !13, i64 12412, !14, i64 12416, !14, i64 12417, !13, i64 12420, !13, i64 12424, !13, i64 12428, !13, i64 12432, !15, i64 12436, !15, i64 12438, !13, i64 12440, !73, i64 12448, !16, i64 12464, !12, i64 12480, !12, i64 12488, !7, i64 12496, !14, i64 12497, !13, i64 12500, !79, i64 12504, !80, i64 12520, !81, i64 12536, !82, i64 12552, !83, i64 12568, !11, i64 12584, !14, i64 12588, !84, i64 12592, !6, i64 12600, !79, i64 12608, !6, i64 12624, !6, i64 12632, !13, i64 12640, !14, i64 12644, !11, i64 12648, !11, i64 12652, !11, i64 12656, !14, i64 12660, !11, i64 12664, !85, i64 12668, !86, i64 12688, !7, i64 12720, !11, i64 13200, !11, i64 13204, !13, i64 13208, !11, i64 13212, !11, i64 13216, !11, i64 13220, !7, i64 13224}
!44 = !{!"_ZTS7ImGuiIO", !11, i64 0, !11, i64 4, !12, i64 8, !13, i64 16, !13, i64 20, !6, i64 24, !6, i64 32, !13, i64 40, !13, i64 44, !13, i64 48, !7, i64 52, !13, i64 140, !13, i64 144, !6, i64 152, !6, i64 160, !13, i64 168, !14, i64 172, !6, i64 176, !12, i64 184, !14, i64 192, !14, i64 193, !14, i64 194, !14, i64 195, !14, i64 196, !14, i64 197, !13, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !12, i64 288, !7, i64 296, !13, i64 304, !13, i64 308, !14, i64 312, !14, i64 313, !14, i64 314, !14, i64 315, !7, i64 316, !7, i64 828, !14, i64 908, !14, i64 909, !14, i64 910, !14, i64 911, !14, i64 912, !14, i64 913, !14, i64 914, !13, i64 916, !11, i64 920, !11, i64 924, !11, i64 928, !11, i64 932, !11, i64 936, !12, i64 940, !14, i64 948, !11, i64 952, !11, i64 956, !12, i64 960, !7, i64 968, !7, i64 1008, !7, i64 1048, !7, i64 1053, !7, i64 1058, !7, i64 1068, !7, i64 1078, !7, i64 1083, !7, i64 1088, !7, i64 1096, !7, i64 1116, !7, i64 1136, !7, i64 1176, !7, i64 1196, !7, i64 3244, !7, i64 5292, !7, i64 5372, !13, i64 5452, !14, i64 5456, !15, i64 5458, !30, i64 5464}
!45 = !{!"_ZTS10ImGuiStyle", !13, i64 0, !13, i64 4, !12, i64 8, !13, i64 16, !13, i64 20, !12, i64 24, !12, i64 32, !11, i64 40, !13, i64 44, !13, i64 48, !13, i64 52, !13, i64 56, !12, i64 60, !13, i64 68, !13, i64 72, !12, i64 76, !12, i64 84, !12, i64 92, !12, i64 100, !13, i64 108, !13, i64 112, !13, i64 116, !13, i64 120, !13, i64 124, !13, i64 128, !13, i64 132, !13, i64 136, !13, i64 140, !13, i64 144, !11, i64 148, !12, i64 152, !12, i64 160, !12, i64 168, !12, i64 176, !13, i64 184, !14, i64 188, !14, i64 189, !14, i64 190, !13, i64 192, !13, i64 196, !7, i64 200}
!46 = !{!"_ZTS20ImDrawListSharedData", !12, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !36, i64 28, !11, i64 44, !7, i64 48, !13, i64 432, !7, i64 436, !6, i64 504}
!47 = !{!"double", !7, i64 0}
!48 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!49 = !{!"long long", !7, i64 0}
!50 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!51 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !13, i64 4, !11, i64 8, !11, i64 12, !14, i64 16}
!52 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !23, i64 12, !23, i64 28, !23, i64 44}
!53 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !14, i64 56, !23, i64 60, !6, i64 80, !6, i64 88, !13, i64 96, !12, i64 100}
!54 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!55 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!59 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!61 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !11, i64 8, !11, i64 12, !23, i64 16, !11, i64 32, !13, i64 36, !13, i64 40, !13, i64 44}
!62 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !14, i64 57, !14, i64 58}
!63 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!66 = !{!"_ZTS6ImPoolI10ImGuiTableE", !67, i64 0, !25, i64 16, !11, i64 32, !11, i64 36}
!67 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !69, i64 0, !25, i64 16, !11, i64 32, !11, i64 36}
!69 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!72 = !{!"_ZTS19ImGuiInputTextState", !11, i64 0, !11, i64 4, !11, i64 8, !30, i64 16, !73, i64 32, !73, i64 48, !14, i64 64, !11, i64 68, !13, i64 72, !74, i64 76, !13, i64 3704, !14, i64 3708, !14, i64 3709, !14, i64 3710, !11, i64 3712}
!73 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!74 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !11, i64 0, !11, i64 4, !11, i64 8, !7, i64 12, !11, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !13, i64 28, !75, i64 32}
!75 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !15, i64 3582, !15, i64 3584, !11, i64 3588, !11, i64 3592}
!76 = !{!"_ZTS6ImFont", !22, i64 0, !13, i64 16, !13, i64 20, !30, i64 24, !77, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !15, i64 80, !15, i64 82, !15, i64 84, !15, i64 86, !14, i64 88, !13, i64 92, !13, i64 96, !13, i64 100, !11, i64 104, !7, i64 108}
!77 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!78 = !{!"_ZTS21ImGuiComboPreviewData", !23, i64 0, !12, i64 16, !12, i64 24, !12, i64 32, !13, i64 40, !11, i64 44}
!79 = !{!"_ZTS15ImGuiTextBuffer", !73, i64 0}
!80 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!81 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !73, i64 0}
!82 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !73, i64 0}
!83 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!84 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!85 = !{!"_ZTS18ImGuiMetricsConfig", !14, i64 0, !14, i64 1, !14, i64 2, !14, i64 3, !14, i64 4, !14, i64 5, !11, i64 8, !11, i64 12}
!86 = !{!"_ZTS14ImGuiStackTool", !11, i64 0, !11, i64 4, !11, i64 8, !87, i64 16}
!87 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !11, i64 0, !11, i64 4, !6, i64 8}
!88 = !{!45, !13, i64 84}
!89 = !{!13, !13, i64 0}
!90 = !{!12, !13, i64 4}
!91 = !{!12, !13, i64 0}
!92 = !{!44, !13, i64 288}
!93 = !{!44, !13, i64 292}
!94 = !{!43, !11, i64 12344}
!95 = !{!43, !13, i64 12336}
!96 = !{!43, !13, i64 12340}
!97 = !{!43, !11, i64 7276}
!98 = !{!43, !14, i64 7289}
!99 = !{!45, !13, i64 0}
!100 = !{!11, !11, i64 0}
!101 = !{!28, !11, i64 32}
!102 = distinct !{!102, !103}
!103 = !{!"llvm.loop.mustprogress"}
!104 = !{!43, !11, i64 7384}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass