; LLVM IR from jasonlmfong/Model-Modifier :: Model-Modifier/src/external/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, ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, 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, i16, 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, i32, i8, [3 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, i8, i8, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, %struct.ImVec2, i32, i16, i16, 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, %struct.ImGuiIO, %struct.ImVector.11, %struct.ImVector.11, %struct.ImGuiStyle, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i8, ptr, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.12, %struct.ImGuiStorage, i32, %struct.ImVec2, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, ptr, i32, float, [140 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, %struct.ImVector.14, %struct.ImVector.15, %struct.ImVector.16, %struct.ImVector, %struct.ImVector.17, %struct.ImVector.18, %struct.ImVector.19, %struct.ImVector.19, i32, %struct.ImVector.20, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ImRect, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, ptr, ptr, ptr, float, float, i8, %struct.ImVec2, %struct.ImVec2, float, i32, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.21, [16 x i8], i32, %struct.ImVector.22, ptr, i32, %struct.ImVector.23, %struct.ImPool, %struct.ImVector.1, %struct.ImVector.10, ptr, %struct.ImPool.25, %struct.ImVector.27, %struct.ImVector.28, i32, i32, float, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImFont, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, float, float, i8, i8, float, float, float, float, i16, i16, %struct.ImVector.29, %struct.ImVector, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i8, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.31, %struct.ImChunkStream, %struct.ImChunkStream.32, %struct.ImVector.33, i32, [7 x ptr], i8, i32, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i8, i8, i8, i32, %struct.ImGuiMetricsConfig, %struct.ImGuiStackTool, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.29 }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, float, float, float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, float, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, [652 x i32], [652 x i8], [16 x float], %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, i32, [652 x %struct.ImGuiKeyData], i8, %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 float], float, i8, i8, i8, i8, i16, %struct.ImVector.5 }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [53 x %struct.ImVec4] }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, %struct.ImVector.9, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [140 x i16], %struct.ImVector.13, %struct.ImVector.13 }
%struct.ImVector.13 = 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.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.ImVector.19 = type { i32, i32, ptr }
%struct.ImVector.20 = 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.21 = type { i32, i32, ptr }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.24, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImPool.25 = type { %struct.ImVector.26, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, i32, i32, i32, [4 x i8], %struct.ImVector.5, %struct.ImVector.29, %struct.ImVector.29, 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.30, ptr, ptr, ptr, i16, i16, i16, i16, float, float, i8, [3 x i8], float, float, float, i32, [2 x i8], [2 x i8] }>
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.29 }
%struct.ImChunkStream.32 = type { %struct.ImVector.29 }
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.29 }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.17, i32, [4 x i8] }>
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiStackTool = type { i32, i32, i32, %struct.ImVector.34, i8, float }
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImVector.29 = type { i32, i32, ptr }

@GImGui = external global ptr, align 8
@.str.4 = external hidden unnamed_addr constant [112 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: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #4

; 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 nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #5

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #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)) #4

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

declare noundef float @_ZN5ImGui13CalcItemWidthEv() #8

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

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

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 noundef ptr @_ZN5ImGui19FindRenderedTextEndEPKcS1_(ptr noundef, ptr noundef) #8

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIjE4backEv(ptr noundef nonnull align 8 dereferenceable(16)) #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 @_ZN5ImGui11ColorButtonEPKcRK6ImVec4iRK6ImVec2(ptr noundef, ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, ptr noundef nonnull align 4 dereferenceable(8)) #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 i8, align 1
  %18 = alloca i32, align 4
  %19 = alloca i8, align 1
  %20 = alloca %struct.ImVec2, 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 float, align 4
  %27 = alloca [4 x float], align 16
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca float, align 4
  %33 = alloca %struct.ImVec2, align 4
  %34 = alloca %struct.ImVec2, align 4
  %35 = alloca %struct.ImVec2, 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 float, align 4
  %42 = alloca i8, align 1
  %43 = alloca i8, align 1
  %44 = alloca i8, align 1
  %45 = alloca %struct.ImVec2, align 4
  %46 = alloca %struct.ImVec2, align 4
  %47 = alloca %struct.ImVec2, align 4
  %48 = alloca float, align 4
  %49 = alloca float, align 4
  %50 = alloca float, align 4
  %51 = alloca %struct.ImVec2, align 4
  %52 = alloca %struct.ImVec2, align 4
  %53 = alloca %struct.ImVec2, align 4
  %54 = alloca float, align 4
  %55 = alloca float, align 4
  %56 = alloca float, align 4
  %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 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 35
  %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 %1436

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 79
  %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 5
  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 2
  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 71
  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 @llvm.lifetime.start.p0(i64 1, ptr %17) #13
  %155 = load ptr, ptr %10, align 8, !tbaa !5
  %156 = getelementptr inbounds %struct.ImGuiContext, ptr %155, i32 0, i32 177
  %157 = load i32, ptr %156, align 8, !tbaa !44
  %158 = icmp eq i32 %157, 0
  %159 = zext i1 %158 to i8
  store i8 %159, ptr %17, align 1, !tbaa !94
  %160 = load i8, ptr %17, align 1, !tbaa !94, !range !40, !noundef !41
  %161 = trunc i8 %160 to i1
  br i1 %161, label %162, label %169

162:                                              ; preds = %143
  %163 = load ptr, ptr %11, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.ImGuiWindow, ptr %163, i32 0, i32 60
  %165 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIjE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %164)
  %166 = load i32, ptr %165, align 4, !tbaa !9
  %167 = load ptr, ptr %10, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.ImGuiContext, ptr %167, i32 0, i32 177
  store i32 %166, ptr %168, align 8, !tbaa !44
  br label %169

169:                                              ; preds = %162, %143
  call void @_ZN5ImGui10BeginGroupEv()
  %170 = load i32, ptr %8, align 4, !tbaa !9
  %171 = and i32 %170, 256
  %172 = icmp ne i32 %171, 0
  br i1 %172, label %176, label %173

173:                                              ; preds = %169
  %174 = load i32, ptr %8, align 4, !tbaa !9
  %175 = or i32 %174, 16
  store i32 %175, ptr %8, align 4, !tbaa !9
  br label %176

176:                                              ; preds = %173, %169
  %177 = load i32, ptr %8, align 4, !tbaa !9
  %178 = and i32 %177, 8
  %179 = icmp ne i32 %178, 0
  br i1 %179, label %183, label %180

180:                                              ; preds = %176
  %181 = load ptr, ptr %7, align 8, !tbaa !5
  %182 = load i32, ptr %8, align 4, !tbaa !9
  call void @_ZN5ImGui23ColorPickerOptionsPopupEPKfi(ptr noundef %181, i32 noundef %182)
  br label %183

183:                                              ; preds = %180, %176
  %184 = load i32, ptr %8, align 4, !tbaa !9
  %185 = and i32 %184, 100663296
  %186 = icmp ne i32 %185, 0
  br i1 %186, label %203, label %187

187:                                              ; preds = %183
  %188 = load ptr, ptr %10, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.ImGuiContext, ptr %188, i32 0, i32 176
  %190 = load i32, ptr %189, align 4, !tbaa !95
  %191 = and i32 %190, 100663296
  %192 = icmp ne i32 %191, 0
  br i1 %192, label %193, label %197

193:                                              ; preds = %187
  %194 = load ptr, ptr %10, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.ImGuiContext, ptr %194, i32 0, i32 176
  %196 = load i32, ptr %195, align 4, !tbaa !95
  br label %198

197:                                              ; preds = %187
  br label %198

198:                                              ; preds = %197, %193
  %199 = phi i32 [ %196, %193 ], [ 177209344, %197 ]
  %200 = and i32 %199, 100663296
  %201 = load i32, ptr %8, align 4, !tbaa !9
  %202 = or i32 %201, %200
  store i32 %202, ptr %8, align 4, !tbaa !9
  br label %203

203:                                              ; preds = %198, %183
  %204 = load i32, ptr %8, align 4, !tbaa !9
  %205 = and i32 %204, 402653184
  %206 = icmp ne i32 %205, 0
  br i1 %206, label %223, label %207

207:                                              ; preds = %203
  %208 = load ptr, ptr %10, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.ImGuiContext, ptr %208, i32 0, i32 176
  %210 = load i32, ptr %209, align 4, !tbaa !95
  %211 = and i32 %210, 402653184
  %212 = icmp ne i32 %211, 0
  br i1 %212, label %213, label %217

213:                                              ; preds = %207
  %214 = load ptr, ptr %10, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.ImGuiContext, ptr %214, i32 0, i32 176
  %216 = load i32, ptr %215, align 4, !tbaa !95
  br label %218

217:                                              ; preds = %207
  br label %218

218:                                              ; preds = %217, %213
  %219 = phi i32 [ %216, %213 ], [ 177209344, %217 ]
  %220 = and i32 %219, 402653184
  %221 = load i32, ptr %8, align 4, !tbaa !9
  %222 = or i32 %221, %220
  store i32 %222, ptr %8, align 4, !tbaa !9
  br label %223

223:                                              ; preds = %218, %203
  %224 = load i32, ptr %8, align 4, !tbaa !9
  %225 = and i32 %224, 100663296
  %226 = call noundef zeroext i1 @_ZL14ImIsPowerOfTwoi(i32 noundef %225)
  br i1 %226, label %227, label %228

227:                                              ; preds = %223
  br label %230

228:                                              ; preds = %223
  call void @__assert_fail(ptr noundef @.str.112, ptr noundef @.str.4, i32 noundef 5312, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui12ColorPicker4EPKcPfiPKf) #14
  unreachable

229:                                              ; No predecessors!
  br label %230

230:                                              ; preds = %229, %227
  %231 = load i32, ptr %8, align 4, !tbaa !9
  %232 = and i32 %231, 402653184
  %233 = call noundef zeroext i1 @_ZL14ImIsPowerOfTwoi(i32 noundef %232)
  br i1 %233, label %234, label %235

234:                                              ; preds = %230
  br label %237

235:                                              ; preds = %230
  call void @__assert_fail(ptr noundef @.str.78, ptr noundef @.str.4, i32 noundef 5313, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui12ColorPicker4EPKcPfiPKf) #14
  unreachable

236:                                              ; No predecessors!
  br label %237

237:                                              ; preds = %236, %234
  %238 = load i32, ptr %8, align 4, !tbaa !9
  %239 = and i32 %238, 8
  %240 = icmp ne i32 %239, 0
  br i1 %240, label %248, label %241

241:                                              ; preds = %237
  %242 = load ptr, ptr %10, align 8, !tbaa !5
  %243 = getelementptr inbounds %struct.ImGuiContext, ptr %242, i32 0, i32 176
  %244 = load i32, ptr %243, align 4, !tbaa !95
  %245 = and i32 %244, 65536
  %246 = load i32, ptr %8, align 4, !tbaa !9
  %247 = or i32 %246, %245
  store i32 %247, ptr %8, align 4, !tbaa !9
  br label %248

248:                                              ; preds = %241, %237
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #13
  %249 = load i32, ptr %8, align 4, !tbaa !9
  %250 = and i32 %249, 2
  %251 = icmp ne i32 %250, 0
  %252 = zext i1 %251 to i64
  %253 = select i1 %251, i32 3, i32 4
  store i32 %253, ptr %18, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #13
  %254 = load i32, ptr %8, align 4, !tbaa !9
  %255 = and i32 %254, 65536
  %256 = icmp ne i32 %255, 0
  br i1 %256, label %257, label %262

257:                                              ; preds = %248
  %258 = load i32, ptr %8, align 4, !tbaa !9
  %259 = and i32 %258, 2
  %260 = icmp ne i32 %259, 0
  %261 = xor i1 %260, true
  br label %262

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

366:                                              ; preds = %262
  %367 = load float, ptr %39, align 4, !tbaa !43
  %368 = load float, ptr %40, align 4, !tbaa !43
  %369 = load float, ptr %41, align 4, !tbaa !43
  call void @_ZN5ImGui20ColorConvertRGBtoHSVEfffRfS0_S0_(float noundef %367, float noundef %368, float noundef %369, ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 4 dereferenceable(4) %38)
  %370 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZL18ColorEditRestoreHSPKfPfS1_S1_(ptr noundef %370, ptr noundef %36, ptr noundef %37, ptr noundef %38)
  br label %380

371:                                              ; preds = %262
  %372 = load i32, ptr %8, align 4, !tbaa !9
  %373 = and i32 %372, 268435456
  %374 = icmp ne i32 %373, 0
  br i1 %374, label %375, label %379

375:                                              ; preds = %371
  %376 = load float, ptr %36, align 4, !tbaa !43
  %377 = load float, ptr %37, align 4, !tbaa !43
  %378 = load float, ptr %38, align 4, !tbaa !43
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %376, float noundef %377, float noundef %378, ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull align 4 dereferenceable(4) %41)
  br label %379

379:                                              ; preds = %375, %371
  br label %380

380:                                              ; preds = %379, %366
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #13
  store i8 0, ptr %42, align 1, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #13
  store i8 0, ptr %43, align 1, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #13
  store i8 0, ptr %44, align 1, !tbaa !94
  call void @_ZN5ImGui12PushItemFlagEib(i32 noundef 8, i1 noundef zeroext true)
  %381 = load i32, ptr %8, align 4, !tbaa !9
  %382 = and i32 %381, 67108864
  %383 = icmp ne i32 %382, 0
  br i1 %383, label %384, label %473

384:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #13
  %385 = load float, ptr %23, align 4, !tbaa !43
  %386 = load ptr, ptr %14, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.ImGuiStyle, ptr %386, i32 0, i32 16
  %388 = getelementptr inbounds %struct.ImVec2, ptr %387, i32 0, i32 0
  %389 = load float, ptr %388, align 4, !tbaa !97
  %390 = fadd float %385, %389
  %391 = load float, ptr %22, align 4, !tbaa !43
  %392 = fadd float %390, %391
  %393 = load float, ptr %23, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %45, float noundef %392, float noundef %393)
  %394 = call noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef @.str.113, ptr noundef nonnull align 4 dereferenceable(8) %45, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #13
  %395 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %395, label %396, label %467

396:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #13
  %397 = load ptr, ptr %10, align 8, !tbaa !5
  %398 = getelementptr inbounds %struct.ImGuiContext, ptr %397, i32 0, i32 2
  %399 = getelementptr inbounds %struct.ImGuiIO, ptr %398, i32 0, i32 68
  %400 = getelementptr inbounds [5 x %struct.ImVec2], ptr %399, i64 0, i64 0
  %401 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %400, ptr noundef nonnull align 4 dereferenceable(8) %31)
  store <2 x float> %401, ptr %46, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #13
  %402 = load ptr, ptr %10, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.ImGuiContext, ptr %402, i32 0, i32 2
  %404 = getelementptr inbounds %struct.ImGuiIO, ptr %403, i32 0, i32 56
  %405 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %404, ptr noundef nonnull align 4 dereferenceable(8) %31)
  store <2 x float> %405, ptr %47, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #13
  %406 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %46)
  store float %406, ptr %48, align 4, !tbaa !43
  %407 = load float, ptr %48, align 4, !tbaa !43
  %408 = load float, ptr %30, align 4, !tbaa !43
  %409 = fsub float %408, 1.000000e+00
  %410 = load float, ptr %30, align 4, !tbaa !43
  %411 = fsub float %410, 1.000000e+00
  %412 = fmul float %409, %411
  %413 = fcmp oge float %407, %412
  br i1 %413, label %414, label %436

414:                                              ; preds = %396
  %415 = load float, ptr %48, align 4, !tbaa !43
  %416 = load float, ptr %29, align 4, !tbaa !43
  %417 = fadd float %416, 1.000000e+00
  %418 = load float, ptr %29, align 4, !tbaa !43
  %419 = fadd float %418, 1.000000e+00
  %420 = fmul float %417, %419
  %421 = fcmp ole float %415, %420
  br i1 %421, label %422, label %436

422:                                              ; preds = %414
  %423 = getelementptr inbounds %struct.ImVec2, ptr %47, i32 0, i32 1
  %424 = load float, ptr %423, align 4, !tbaa !99
  %425 = getelementptr inbounds %struct.ImVec2, ptr %47, i32 0, i32 0
  %426 = load float, ptr %425, align 4, !tbaa !98
  %427 = call float @atan2f(float noundef %424, float noundef %426) #13
  %428 = fdiv float %427, 0x400921FB60000000
  %429 = fmul float %428, 5.000000e-01
  store float %429, ptr %36, align 4, !tbaa !43
  %430 = load float, ptr %36, align 4, !tbaa !43
  %431 = fcmp olt float %430, 0.000000e+00
  br i1 %431, label %432, label %435

432:                                              ; preds = %422
  %433 = load float, ptr %36, align 4, !tbaa !43
  %434 = fadd float %433, 1.000000e+00
  store float %434, ptr %36, align 4, !tbaa !43
  br label %435

435:                                              ; preds = %432, %422
  store i8 1, ptr %43, align 1, !tbaa !94
  store i8 1, ptr %42, align 1, !tbaa !94
  br label %436

436:                                              ; preds = %435, %414, %396
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #13
  %437 = load float, ptr %36, align 4, !tbaa !43
  %438 = fneg float %437
  %439 = fmul float %438, 2.000000e+00
  %440 = fmul float %439, 0x400921FB60000000
  %441 = call float @cosf(float noundef %440) #13
  store float %441, ptr %49, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #13
  %442 = load float, ptr %36, align 4, !tbaa !43
  %443 = fneg float %442
  %444 = fmul float %443, 2.000000e+00
  %445 = fmul float %444, 0x400921FB60000000
  %446 = call float @sinf(float noundef %445) #13
  store float %446, ptr %50, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #13
  %447 = load float, ptr %49, align 4, !tbaa !43
  %448 = load float, ptr %50, align 4, !tbaa !43
  %449 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %46, float noundef %447, float noundef %448)
  store <2 x float> %449, ptr %51, align 4
  %450 = call noundef zeroext i1 @_Z23ImTriangleContainsPointRK6ImVec2S1_S1_S1_(ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(8) %35, ptr noundef nonnull align 4 dereferenceable(8) %51)
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #13
  br i1 %450, label %451, label %466

451:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #13
  %452 = load float, ptr %49, align 4, !tbaa !43
  %453 = load float, ptr %50, align 4, !tbaa !43
  %454 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %47, float noundef %452, float noundef %453)
  store <2 x float> %454, ptr %52, align 4
  %455 = call noundef zeroext i1 @_Z23ImTriangleContainsPointRK6ImVec2S1_S1_S1_(ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(8) %35, ptr noundef nonnull align 4 dereferenceable(8) %52)
  br i1 %455, label %458, label %456

456:                                              ; preds = %451
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #13
  %457 = call <2 x float> @_Z22ImTriangleClosestPointRK6ImVec2S1_S1_S1_(ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(8) %35, ptr noundef nonnull align 4 dereferenceable(8) %52)
  store <2 x float> %457, ptr %53, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %52, ptr align 4 %53, i64 8, i1 false), !tbaa.struct !96
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #13
  br label %458

458:                                              ; preds = %456, %451
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #13
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #13
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #13
  call void @_Z27ImTriangleBarycentricCoordsRK6ImVec2S1_S1_S1_RfS2_S2_(ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(8) %35, ptr noundef nonnull align 4 dereferenceable(8) %52, ptr noundef nonnull align 4 dereferenceable(4) %54, ptr noundef nonnull align 4 dereferenceable(4) %55, ptr noundef nonnull align 4 dereferenceable(4) %56)
  %459 = load float, ptr %55, align 4, !tbaa !43
  %460 = fsub float 1.000000e+00, %459
  %461 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %460, float noundef 0x3F1A36E2E0000000, float noundef 1.000000e+00)
  store float %461, ptr %38, align 4, !tbaa !43
  %462 = load float, ptr %54, align 4, !tbaa !43
  %463 = load float, ptr %38, align 4, !tbaa !43
  %464 = fdiv float %462, %463
  %465 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %464, float noundef 0x3F1A36E2E0000000, float noundef 1.000000e+00)
  store float %465, ptr %37, align 4, !tbaa !43
  store i8 1, ptr %44, align 1, !tbaa !94
  store i8 1, ptr %42, align 1, !tbaa !94
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #13
  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 8, ptr %52) #13
  br label %466

466:                                              ; preds = %458, %436
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #13
  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 8, ptr %47) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #13
  br label %467

467:                                              ; preds = %466, %384
  %468 = load i32, ptr %8, align 4, !tbaa !9
  %469 = and i32 %468, 8
  %470 = icmp ne i32 %469, 0
  br i1 %470, label %472, label %471

471:                                              ; preds = %467
  call void @_ZN5ImGui20OpenPopupOnItemClickEPKci(ptr noundef @.str.101, i32 noundef 1)
  br label %472

472:                                              ; preds = %471, %467
  br label %534

473:                                              ; preds = %380
  %474 = load i32, ptr %8, align 4, !tbaa !9
  %475 = and i32 %474, 33554432
  %476 = icmp ne i32 %475, 0
  br i1 %476, label %477, label %533

477:                                              ; preds = %473
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #13
  %478 = load float, ptr %23, align 4, !tbaa !43
  %479 = load float, ptr %23, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %57, float noundef %478, float noundef %479)
  %480 = call noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef @.str.114, ptr noundef nonnull align 4 dereferenceable(8) %57, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #13
  %481 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %481, label %482, label %507

482:                                              ; preds = %477
  %483 = load ptr, ptr %15, align 8, !tbaa !5
  %484 = getelementptr inbounds %struct.ImGuiIO, ptr %483, i32 0, i32 56
  %485 = getelementptr inbounds %struct.ImVec2, ptr %484, i32 0, i32 0
  %486 = load float, ptr %485, align 4, !tbaa !100
  %487 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 0
  %488 = load float, ptr %487, align 4, !tbaa !98
  %489 = fsub float %486, %488
  %490 = load float, ptr %23, align 4, !tbaa !43
  %491 = fsub float %490, 1.000000e+00
  %492 = fdiv float %489, %491
  %493 = call noundef float @_ZL10ImSaturatef(float noundef %492)
  store float %493, ptr %37, align 4, !tbaa !43
  %494 = load ptr, ptr %15, align 8, !tbaa !5
  %495 = getelementptr inbounds %struct.ImGuiIO, ptr %494, i32 0, i32 56
  %496 = getelementptr inbounds %struct.ImVec2, ptr %495, i32 0, i32 1
  %497 = load float, ptr %496, align 4, !tbaa !101
  %498 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %499 = load float, ptr %498, align 4, !tbaa !99
  %500 = fsub float %497, %499
  %501 = load float, ptr %23, align 4, !tbaa !43
  %502 = fsub float %501, 1.000000e+00
  %503 = fdiv float %500, %502
  %504 = call noundef float @_ZL10ImSaturatef(float noundef %503)
  %505 = fsub float 1.000000e+00, %504
  store float %505, ptr %38, align 4, !tbaa !43
  %506 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZL17ColorEditRestoreHPKfPf(ptr noundef %506, ptr noundef %36)
  store i8 1, ptr %44, align 1, !tbaa !94
  store i8 1, ptr %42, align 1, !tbaa !94
  br label %507

507:                                              ; preds = %482, %477
  %508 = load i32, ptr %8, align 4, !tbaa !9
  %509 = and i32 %508, 8
  %510 = icmp ne i32 %509, 0
  br i1 %510, label %512, label %511

511:                                              ; preds = %507
  call void @_ZN5ImGui20OpenPopupOnItemClickEPKci(ptr noundef @.str.101, i32 noundef 1)
  br label %512

512:                                              ; preds = %511, %507
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #13
  %513 = load float, ptr %24, align 4, !tbaa !43
  %514 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %515 = load float, ptr %514, align 4, !tbaa !99
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %58, float noundef %513, float noundef %515)
  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
  %516 = load float, ptr %22, align 4, !tbaa !43
  %517 = load float, ptr %23, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %516, float noundef %517)
  %518 = 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
  %519 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %519, label %520, label %532

520:                                              ; preds = %512
  %521 = load ptr, ptr %15, align 8, !tbaa !5
  %522 = getelementptr inbounds %struct.ImGuiIO, ptr %521, i32 0, i32 56
  %523 = getelementptr inbounds %struct.ImVec2, ptr %522, i32 0, i32 1
  %524 = load float, ptr %523, align 4, !tbaa !101
  %525 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %526 = load float, ptr %525, align 4, !tbaa !99
  %527 = fsub float %524, %526
  %528 = load float, ptr %23, align 4, !tbaa !43
  %529 = fsub float %528, 1.000000e+00
  %530 = fdiv float %527, %529
  %531 = call noundef float @_ZL10ImSaturatef(float noundef %530)
  store float %531, ptr %36, align 4, !tbaa !43
  store i8 1, ptr %43, align 1, !tbaa !94
  store i8 1, ptr %42, align 1, !tbaa !94
  br label %532

532:                                              ; preds = %520, %512
  br label %533

533:                                              ; preds = %532, %473
  br label %534

534:                                              ; preds = %533, %472
  %535 = load i8, ptr %19, align 1, !tbaa !94, !range !40, !noundef !41
  %536 = trunc i8 %535 to i1
  br i1 %536, label %537, label %561

537:                                              ; preds = %534
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #13
  %538 = load float, ptr %25, align 4, !tbaa !43
  %539 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %540 = load float, ptr %539, align 4, !tbaa !99
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %60, float noundef %538, float noundef %540)
  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
  %541 = load float, ptr %22, align 4, !tbaa !43
  %542 = load float, ptr %23, align 4, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %61, float noundef %541, float noundef %542)
  %543 = 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
  %544 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %544, label %545, label %560

545:                                              ; preds = %537
  %546 = load ptr, ptr %15, align 8, !tbaa !5
  %547 = getelementptr inbounds %struct.ImGuiIO, ptr %546, i32 0, i32 56
  %548 = getelementptr inbounds %struct.ImVec2, ptr %547, i32 0, i32 1
  %549 = load float, ptr %548, align 4, !tbaa !101
  %550 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %551 = load float, ptr %550, align 4, !tbaa !99
  %552 = fsub float %549, %551
  %553 = load float, ptr %23, align 4, !tbaa !43
  %554 = fsub float %553, 1.000000e+00
  %555 = fdiv float %552, %554
  %556 = call noundef float @_ZL10ImSaturatef(float noundef %555)
  %557 = fsub float 1.000000e+00, %556
  %558 = load ptr, ptr %7, align 8, !tbaa !5
  %559 = getelementptr inbounds float, ptr %558, i64 3
  store float %557, ptr %559, align 4, !tbaa !43
  store i8 1, ptr %42, align 1, !tbaa !94
  br label %560

560:                                              ; preds = %545, %537
  br label %561

561:                                              ; preds = %560, %534
  call void @_ZN5ImGui11PopItemFlagEv()
  %562 = load i32, ptr %8, align 4, !tbaa !9
  %563 = and i32 %562, 256
  %564 = icmp ne i32 %563, 0
  br i1 %564, label %570, label %565

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

570:                                              ; preds = %565, %561
  %571 = load i32, ptr %8, align 4, !tbaa !9
  %572 = and i32 %571, 128
  %573 = icmp ne i32 %572, 0
  br i1 %573, label %593, label %574

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

580:                                              ; preds = %574
  %581 = load i32, ptr %8, align 4, !tbaa !9
  %582 = and i32 %581, 256
  %583 = icmp ne i32 %582, 0
  br i1 %583, label %584, label %589

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

589:                                              ; preds = %584, %580
  %590 = load ptr, ptr %6, align 8, !tbaa !5
  %591 = load ptr, ptr %62, align 8, !tbaa !5
  call void @_ZN5ImGui6TextExEPKcS1_i(ptr noundef %590, ptr noundef %591, i32 noundef 0)
  br label %592

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

593:                                              ; preds = %592, %570
  %594 = load i32, ptr %8, align 4, !tbaa !9
  %595 = and i32 %594, 256
  %596 = icmp ne i32 %595, 0
  br i1 %596, label %668, label %597

597:                                              ; preds = %593
  call void @_ZN5ImGui12PushItemFlagEib(i32 noundef 16, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 16, ptr %63) #13
  %598 = load ptr, ptr %7, align 8, !tbaa !5
  %599 = getelementptr inbounds float, ptr %598, i64 0
  %600 = load float, ptr %599, align 4, !tbaa !43
  %601 = load ptr, ptr %7, align 8, !tbaa !5
  %602 = getelementptr inbounds float, ptr %601, i64 1
  %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 2
  %606 = load float, ptr %605, align 4, !tbaa !43
  %607 = load i32, ptr %8, align 4, !tbaa !9
  %608 = and i32 %607, 2
  %609 = icmp ne i32 %608, 0
  br i1 %609, label %610, label %611

610:                                              ; preds = %597
  br label %615

611:                                              ; preds = %597
  %612 = load ptr, ptr %7, align 8, !tbaa !5
  %613 = getelementptr inbounds float, ptr %612, i64 3
  %614 = load float, ptr %613, align 4, !tbaa !43
  br label %615

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

620:                                              ; preds = %615
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.117)
  br label %621

621:                                              ; preds = %620, %615
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #13
  store i32 403570752, ptr %64, align 4, !tbaa !9
  %622 = load i32, ptr %8, align 4, !tbaa !9
  %623 = load i32, ptr %64, align 4, !tbaa !9
  %624 = and i32 %622, %623
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #13
  %625 = load float, ptr %21, align 4, !tbaa !43
  %626 = fmul float %625, 3.000000e+00
  %627 = load float, ptr %21, align 4, !tbaa !43
  %628 = fmul float %627, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %65, float noundef %626, float noundef %628)
  %629 = call noundef zeroext i1 @_ZN5ImGui11ColorButtonEPKcRK6ImVec4iRK6ImVec2(ptr noundef @.str.118, ptr noundef nonnull align 4 dereferenceable(16) %63, i32 noundef %624, ptr noundef nonnull align 4 dereferenceable(8) %65)
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #13
  %630 = load ptr, ptr %9, align 8, !tbaa !5
  %631 = icmp ne ptr %630, null
  br i1 %631, label %632, label %667

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

645:                                              ; preds = %632
  br label %650

646:                                              ; preds = %632
  %647 = load ptr, ptr %9, align 8, !tbaa !5
  %648 = getelementptr inbounds float, ptr %647, i64 3
  %649 = load float, ptr %648, align 4, !tbaa !43
  br label %650

650:                                              ; preds = %646, %645
  %651 = phi float [ 1.000000e+00, %645 ], [ %649, %646 ]
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %66, float noundef %635, float noundef %638, float noundef %641, float noundef %651)
  %652 = load i32, ptr %8, align 4, !tbaa !9
  %653 = load i32, ptr %64, align 4, !tbaa !9
  %654 = and i32 %652, %653
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #13
  %655 = load float, ptr %21, align 4, !tbaa !43
  %656 = fmul float %655, 3.000000e+00
  %657 = load float, ptr %21, align 4, !tbaa !43
  %658 = fmul float %657, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %67, float noundef %656, float noundef %658)
  %659 = call noundef zeroext i1 @_ZN5ImGui11ColorButtonEPKcRK6ImVec4iRK6ImVec2(ptr noundef @.str.120, ptr noundef nonnull align 4 dereferenceable(16) %66, i32 noundef %654, ptr noundef nonnull align 4 dereferenceable(8) %67)
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #13
  br i1 %659, label %660, label %666

660:                                              ; preds = %650
  %661 = load ptr, ptr %7, align 8, !tbaa !5
  %662 = load ptr, ptr %9, align 8, !tbaa !5
  %663 = load i32, ptr %18, align 4, !tbaa !9
  %664 = sext i32 %663 to i64
  %665 = mul i64 %664, 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %661, ptr align 4 %662, i64 %665, i1 false)
  store i8 1, ptr %42, align 1, !tbaa !94
  br label %666

666:                                              ; preds = %660, %650
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #13
  br label %667

667:                                              ; preds = %666, %621
  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 %668

668:                                              ; preds = %667, %593
  %669 = load i8, ptr %43, align 1, !tbaa !94, !range !40, !noundef !41
  %670 = trunc i8 %669 to i1
  br i1 %670, label %674, label %671

671:                                              ; preds = %668
  %672 = load i8, ptr %44, align 1, !tbaa !94, !range !40, !noundef !41
  %673 = trunc i8 %672 to i1
  br i1 %673, label %674, label %727

674:                                              ; preds = %671, %668
  %675 = load i32, ptr %8, align 4, !tbaa !9
  %676 = and i32 %675, 134217728
  %677 = icmp ne i32 %676, 0
  br i1 %677, label %678, label %711

678:                                              ; preds = %674
  %679 = load float, ptr %36, align 4, !tbaa !43
  %680 = load float, ptr %37, align 4, !tbaa !43
  %681 = load float, ptr %38, align 4, !tbaa !43
  %682 = load ptr, ptr %7, align 8, !tbaa !5
  %683 = getelementptr inbounds float, ptr %682, i64 0
  %684 = load ptr, ptr %7, align 8, !tbaa !5
  %685 = getelementptr inbounds float, ptr %684, i64 1
  %686 = load ptr, ptr %7, align 8, !tbaa !5
  %687 = getelementptr inbounds float, ptr %686, i64 2
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %679, float noundef %680, float noundef %681, ptr noundef nonnull align 4 dereferenceable(4) %683, ptr noundef nonnull align 4 dereferenceable(4) %685, ptr noundef nonnull align 4 dereferenceable(4) %687)
  %688 = load float, ptr %36, align 4, !tbaa !43
  %689 = load ptr, ptr %10, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct.ImGuiContext, ptr %689, i32 0, i32 179
  store float %688, ptr %690, align 8, !tbaa !102
  %691 = load float, ptr %37, align 4, !tbaa !43
  %692 = load ptr, ptr %10, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.ImGuiContext, ptr %692, i32 0, i32 180
  store float %691, ptr %693, align 4, !tbaa !103
  %694 = load ptr, ptr %10, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.ImGuiContext, ptr %694, i32 0, i32 177
  %696 = load i32, ptr %695, align 8, !tbaa !44
  %697 = load ptr, ptr %10, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.ImGuiContext, ptr %697, i32 0, i32 178
  store i32 %696, ptr %698, align 4, !tbaa !104
  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 181
  store i32 %708, ptr %710, align 8, !tbaa !105
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #13
  br label %726

711:                                              ; preds = %674
  %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 %36, 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 %37, 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 %38, 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, %678
  br label %727

727:                                              ; preds = %726, %671
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #13
  store i8 0, ptr %69, align 1, !tbaa !94
  %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 %19, align 1, !tbaa !94, !range !40, !noundef !41
  %733 = trunc i8 %732 to i1
  br i1 %733, label %734, label %736

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

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

738:                                              ; preds = %736, %734
  %739 = phi float [ %735, %734 ], [ %737, %736 ]
  %740 = load float, ptr %22, align 4, !tbaa !43
  %741 = fadd float %739, %740
  %742 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 0
  %743 = load float, ptr %742, align 4, !tbaa !98
  %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 8, !tbaa !106
  %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 !107, !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 !94
  store i8 1, ptr %42, align 1, !tbaa !94
  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 %42, align 1, !tbaa !94, !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 %42, align 1, !tbaa !94
  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 %42, align 1, !tbaa !94, !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 %42, align 1, !tbaa !94
  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 !94, !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 %36, 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 %38, 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 %36, align 4, !tbaa !43
  %848 = load float, ptr %37, 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 %38, 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 %36, 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 %37, 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 %42, align 1, !tbaa !94, !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 %39, 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 %40, 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 %41, align 4, !tbaa !43
  %905 = load float, ptr %39, align 4, !tbaa !43
  %906 = load float, ptr %40, align 4, !tbaa !43
  %907 = load float, ptr %41, align 4, !tbaa !43
  call void @_ZN5ImGui20ColorConvertRGBtoHSVEfffRfS0_S0_(float noundef %905, float noundef %906, float noundef %907, ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 4 dereferenceable(4) %38)
  %908 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZL18ColorEditRestoreHSPKfPfS1_S1_(ptr noundef %908, ptr noundef %36, ptr noundef %37, ptr noundef %38)
  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 %36, 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 %37, 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 %38, align 4, !tbaa !43
  %923 = load float, ptr %36, align 4, !tbaa !43
  %924 = load float, ptr %37, align 4, !tbaa !43
  %925 = load float, ptr %38, align 4, !tbaa !43
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %923, float noundef %924, float noundef %925, ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull align 4 dereferenceable(4) %41)
  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 !108
  %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 !108
  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 %36, 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 %39, align 4, !tbaa !43
  %1000 = load float, ptr %40, align 4, !tbaa !43
  %1001 = load float, ptr %41, 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 !108
  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 %29, 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 %29, 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 !109
  store i32 %1038, ptr %90, align 4, !tbaa !9
  %1039 = load ptr, ptr %13, align 8, !tbaa !5
  %1040 = load float, ptr %30, align 4, !tbaa !43
  %1041 = load float, ptr %29, 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) %31, 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 %28, 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 !109
  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 %31, i32 0, i32 0
  %1055 = load float, ptr %1054, align 4, !tbaa !98
  %1056 = load float, ptr %88, align 4, !tbaa !43
  %1057 = call float @cosf(float noundef %1056) #13
  %1058 = load float, ptr %30, align 4, !tbaa !43
  %1059 = call float @llvm.fmuladd.f32(float %1057, float %1058, float %1055)
  %1060 = getelementptr inbounds %struct.ImVec2, ptr %31, i32 0, i32 1
  %1061 = load float, ptr %1060, align 4, !tbaa !99
  %1062 = load float, ptr %88, align 4, !tbaa !43
  %1063 = call float @sinf(float noundef %1062) #13
  %1064 = load float, ptr %30, 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 %31, i32 0, i32 0
  %1067 = load float, ptr %1066, align 4, !tbaa !98
  %1068 = load float, ptr %89, align 4, !tbaa !43
  %1069 = call float @cosf(float noundef %1068) #13
  %1070 = load float, ptr %30, align 4, !tbaa !43
  %1071 = call float @llvm.fmuladd.f32(float %1069, float %1070, float %1067)
  %1072 = getelementptr inbounds %struct.ImVec2, ptr %31, i32 0, i32 1
  %1073 = load float, ptr %1072, align 4, !tbaa !99
  %1074 = load float, ptr %89, align 4, !tbaa !43
  %1075 = call float @sinf(float noundef %1074) #13
  %1076 = load float, ptr %30, 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 !96
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %95, ptr align 4 %93, i64 8, i1 false), !tbaa.struct !96
  %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 !110

1095:                                             ; preds = %1019
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #13
  %1096 = load float, ptr %36, 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 %36, 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 %31, i32 0, i32 0
  %1105 = load float, ptr %1104, align 4, !tbaa !98
  %1106 = load float, ptr %96, align 4, !tbaa !43
  %1107 = load float, ptr %30, align 4, !tbaa !43
  %1108 = load float, ptr %29, 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 %31, i32 0, i32 1
  %1113 = load float, ptr %1112, align 4, !tbaa !99
  %1114 = load float, ptr %97, align 4, !tbaa !43
  %1115 = load float, ptr %30, align 4, !tbaa !43
  %1116 = load float, ptr %29, 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 %43, align 1, !tbaa !94, !range !40, !noundef !41
  %1121 = trunc i8 %1120 to i1
  br i1 %1121, label %1122, label %1125

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

1125:                                             ; preds = %1095
  %1126 = load float, ptr %28, 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) %33, 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) %31, 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) %34, 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) %31, 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) %35, 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) %31, 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 %37, 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 %38, 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 !96
  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 %23, align 4, !tbaa !43
  %1187 = load float, ptr %23, 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) %20, 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) %20, 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 %23, align 4, !tbaa !43
  %1195 = load float, ptr %23, 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) %20, 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) %20, 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 %20, i64 8, i1 false), !tbaa.struct !96
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #13
  %1199 = load float, ptr %23, align 4, !tbaa !43
  %1200 = load float, ptr %23, 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) %20, 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 %20, i32 0, i32 0
  %1205 = load float, ptr %1204, align 4, !tbaa !98
  %1206 = load float, ptr %37, align 4, !tbaa !43
  %1207 = call noundef float @_ZL10ImSaturatef(float noundef %1206)
  %1208 = load float, ptr %23, 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 %20, i32 0, i32 0
  %1214 = load float, ptr %1213, align 4, !tbaa !98
  %1215 = fadd float %1214, 2.000000e+00
  %1216 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 0
  %1217 = load float, ptr %1216, align 4, !tbaa !98
  %1218 = load float, ptr %23, 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 !98
  %1223 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %1224 = load float, ptr %1223, align 4, !tbaa !99
  %1225 = load float, ptr %38, align 4, !tbaa !43
  %1226 = fsub float 1.000000e+00, %1225
  %1227 = call noundef float @_ZL10ImSaturatef(float noundef %1226)
  %1228 = load float, ptr %23, 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 %20, i32 0, i32 1
  %1234 = load float, ptr %1233, align 4, !tbaa !99
  %1235 = fadd float %1234, 2.000000e+00
  %1236 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %1237 = load float, ptr %1236, align 4, !tbaa !99
  %1238 = load float, ptr %23, 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 !99
  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 %24, align 4, !tbaa !43
  %1250 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %1251 = load float, ptr %1250, align 4, !tbaa !99
  %1252 = load i32, ptr %117, align 4, !tbaa !9
  %1253 = sitofp i32 %1252 to float
  %1254 = load float, ptr %23, 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 %24, align 4, !tbaa !43
  %1258 = load float, ptr %22, align 4, !tbaa !43
  %1259 = fadd float %1257, %1258
  %1260 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %1261 = load float, ptr %1260, align 4, !tbaa !99
  %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 %23, 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 !112

1289:                                             ; preds = %1246
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #13
  %1290 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %1291 = load float, ptr %1290, align 4, !tbaa !99
  %1292 = load float, ptr %36, align 4, !tbaa !43
  %1293 = load float, ptr %23, 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 %24, align 4, !tbaa !43
  %1299 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %1300 = load float, ptr %1299, align 4, !tbaa !99
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %121, float noundef %1298, float noundef %1300)
  %1301 = load float, ptr %24, align 4, !tbaa !43
  %1302 = load float, ptr %22, align 4, !tbaa !43
  %1303 = fadd float %1301, %1302
  %1304 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %1305 = load float, ptr %1304, align 4, !tbaa !99
  %1306 = load float, ptr %23, 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 %24, 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 %26, align 4, !tbaa !43
  %1315 = fadd float %1314, 1.000000e+00
  %1316 = load float, ptr %26, 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 %22, 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 !108
  %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 %44, align 1, !tbaa !94, !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 %19, align 1, !tbaa !94, !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 %25, align 4, !tbaa !43
  %1348 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %1349 = load float, ptr %1348, align 4, !tbaa !99
  %1350 = load float, ptr %25, align 4, !tbaa !43
  %1351 = load float, ptr %22, align 4, !tbaa !43
  %1352 = fadd float %1350, %1351
  %1353 = getelementptr inbounds %struct.ImVec2, ptr %20, i32 0, i32 1
  %1354 = load float, ptr %1353, align 4, !tbaa !99
  %1355 = load float, ptr %23, 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 !96
  %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 !96
  %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 %20, i32 0, i32 1
  %1375 = load float, ptr %1374, align 4, !tbaa !99
  %1376 = load float, ptr %126, align 4, !tbaa !43
  %1377 = fsub float 1.000000e+00, %1376
  %1378 = load float, ptr %23, 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 !96
  %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 !96
  %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 %25, 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 %26, align 4, !tbaa !43
  %1392 = fadd float %1391, 1.000000e+00
  %1393 = load float, ptr %26, 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 %22, 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 !108
  %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 %42, align 1, !tbaa !94, !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 %27, i64 0, i64 0
  %1406 = load ptr, ptr %7, align 8, !tbaa !5
  %1407 = load i32, ptr %18, 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 %42, align 1, !tbaa !94
  br label %1413

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

1416:                                             ; preds = %1413
  %1417 = load ptr, ptr %10, align 8, !tbaa !5
  %1418 = getelementptr inbounds %struct.ImGuiContext, ptr %1417, i32 0, i32 72
  %1419 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %1418, i32 0, i32 0
  %1420 = load i32, ptr %1419, align 4, !tbaa !113
  %1421 = icmp ne i32 %1420, 0
  br i1 %1421, label %1422, label %1427

1422:                                             ; preds = %1416
  %1423 = load ptr, ptr %10, align 8, !tbaa !5
  %1424 = getelementptr inbounds %struct.ImGuiContext, ptr %1423, i32 0, i32 72
  %1425 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %1424, i32 0, i32 0
  %1426 = load i32, ptr %1425, align 4, !tbaa !113
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %1426)
  br label %1427

1427:                                             ; preds = %1422, %1416, %1413
  %1428 = load i8, ptr %17, align 1, !tbaa !94, !range !40, !noundef !41
  %1429 = trunc i8 %1428 to i1
  br i1 %1429, label %1430, label %1433

1430:                                             ; preds = %1427
  %1431 = load ptr, ptr %10, align 8, !tbaa !5
  %1432 = getelementptr inbounds %struct.ImGuiContext, ptr %1431, i32 0, i32 177
  store i32 0, ptr %1432, align 8, !tbaa !44
  br label %1433

1433:                                             ; preds = %1430, %1427
  call void @_ZN5ImGui5PopIDEv()
  %1434 = load i8, ptr %42, align 1, !tbaa !94, !range !40, !noundef !41
  %1435 = trunc i8 %1434 to i1
  store i1 %1435, 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 %44) #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 4, 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 8, 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 4, ptr %32) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #13
  call void @llvm.lifetime.end.p0(i64 4, 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 16, ptr %27) #13
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr %20) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #13
  call void @llvm.lifetime.end.p0(i64 1, 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 %1436

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

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) #4

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

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

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) #4

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 = { 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 #5 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 179}
!12 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !10, i64 8, !10, i64 12, !6, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !13, i64 56, !13, i64 64, !13, i64 72, !14, i64 80, !14, i64 84, !14, i64 88, !14, i64 92, !14, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !13, i64 124, !13, i64 132, !13, i64 140, !13, i64 148, !13, i64 156, !13, i64 164, !15, i64 172, !15, i64 173, !15, i64 174, !15, i64 175, !15, i64 176, !15, i64 177, !15, i64 178, !15, i64 179, !15, i64 180, !15, i64 181, !15, i64 182, !15, i64 183, !15, i64 184, !7, i64 185, !16, i64 186, !16, i64 188, !16, i64 190, !16, i64 192, !16, i64 194, !10, i64 196, !7, i64 200, !7, i64 201, !7, i64 202, !15, i64 203, !10, i64 204, !7, i64 208, !7, i64 209, !7, i64 210, !7, i64 211, !10, i64 212, !10, i64 213, !10, i64 214, !13, i64 216, !13, i64 224, !17, i64 232, !18, i64 248, !24, i64 480, !24, i64 496, !24, i64 512, !24, i64 528, !24, i64 544, !24, i64 560, !24, i64 576, !25, i64 592, !25, i64 596, !10, i64 600, !14, i64 604, !14, i64 608, !26, i64 616, !28, i64 632, !14, i64 648, !10, i64 652, !6, i64 656, !29, i64 664, !6, i64 864, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !7, i64 920, !7, i64 928, !10, i64 960, !10, i64 964, !10, i64 968, !15, i64 972}
!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, !15, i64 64, !15, i64 65, !19, i64 68, !19, i64 72, !19, i64 76, !13, i64 80, !20, i64 88, !16, i64 92, !16, i64 94, !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 656}
!43 = !{!14, !14, i64 0}
!44 = !{!45, !10, i64 23264}
!45 = !{!"_ZTS12ImGuiContext", !15, i64 0, !15, i64 1, !46, i64 8, !47, i64 14272, !47, i64 14288, !48, i64 14304, !6, i64 15376, !14, i64 15384, !14, i64 15388, !49, i64 15392, !50, i64 15920, !10, i64 15928, !10, i64 15932, !10, i64 15936, !15, i64 15940, !15, i64 15941, !15, i64 15942, !15, i64 15943, !15, i64 15944, !6, i64 15952, !22, i64 15960, !22, i64 15976, !22, i64 15992, !51, i64 16008, !26, i64 16024, !10, i64 16040, !13, i64 16044, !6, i64 16056, !6, i64 16064, !6, i64 16072, !6, i64 16080, !6, i64 16088, !13, i64 16096, !10, i64 16104, !14, i64 16108, !13, i64 16112, !13, i64 16120, !10, i64 16128, !10, i64 16132, !10, i64 16136, !15, i64 16140, !15, i64 16141, !14, i64 16144, !14, i64 16148, !10, i64 16152, !10, i64 16156, !14, i64 16160, !15, i64 16164, !15, i64 16165, !15, i64 16166, !15, i64 16167, !15, i64 16168, !15, i64 16169, !13, i64 16172, !6, i64 16184, !52, i64 16192, !10, i64 16196, !10, i64 16200, !15, i64 16204, !15, i64 16205, !6, i64 16208, !10, i64 16216, !14, i64 16220, !7, i64 16224, !53, i64 17904, !10, i64 18216, !15, i64 18220, !10, i64 18224, !10, i64 18228, !10, i64 18232, !10, i64 18236, !55, i64 18240, !56, i64 18260, !57, i64 18320, !58, i64 18432, !59, i64 18448, !60, i64 18464, !17, i64 18480, !61, i64 18496, !62, i64 18512, !63, i64 18528, !63, i64 18544, !10, i64 18560, !64, i64 18568, !6, i64 18584, !10, i64 18592, !10, i64 18596, !10, i64 18600, !10, i64 18604, !10, i64 18608, !10, i64 18612, !10, i64 18616, !10, i64 18620, !10, i64 18624, !10, i64 18628, !10, i64 18632, !10, i64 18636, !52, i64 18640, !20, i64 18644, !15, i64 18648, !15, i64 18649, !15, i64 18650, !15, i64 18651, !15, i64 18652, !15, i64 18653, !15, i64 18654, !10, i64 18656, !24, i64 18660, !15, i64 18676, !15, i64 18677, !15, i64 18678, !10, i64 18680, !10, i64 18684, !10, i64 18688, !10, i64 18692, !10, i64 18696, !10, i64 18700, !24, i64 18704, !24, i64 18720, !10, i64 18736, !10, i64 18740, !10, i64 18744, !65, i64 18752, !65, i64 18800, !65, i64 18848, !65, i64 18896, !10, i64 18944, !10, i64 18948, !6, i64 18952, !6, i64 18960, !6, i64 18968, !14, i64 18976, !14, i64 18980, !15, i64 18984, !13, i64 18988, !13, i64 18996, !14, i64 19004, !10, i64 19008, !15, i64 19012, !15, i64 19013, !15, i64 19014, !10, i64 19016, !10, i64 19020, !10, i64 19024, !66, i64 19032, !24, i64 19096, !10, i64 19112, !10, i64 19116, !14, i64 19120, !10, i64 19124, !10, i64 19128, !10, i64 19132, !10, i64 19136, !67, i64 19144, !7, i64 19160, !10, i64 19176, !68, i64 19184, !6, i64 19200, !10, i64 19208, !69, i64 19216, !70, i64 19232, !23, i64 19272, !39, i64 19288, !6, i64 19304, !72, i64 19312, !74, i64 19352, !75, i64 19368, !10, i64 19384, !10, i64 19388, !14, i64 19392, !14, i64 19396, !13, i64 19400, !76, i64 19408, !80, i64 23136, !10, i64 23256, !10, i64 23260, !10, i64 23264, !10, i64 23268, !14, i64 23272, !14, i64 23276, !10, i64 23280, !37, i64 23284, !82, i64 23300, !14, i64 23348, !14, i64 23352, !15, i64 23356, !15, i64 23357, !14, i64 23360, !14, i64 23364, !14, i64 23368, !14, i64 23372, !16, i64 23376, !16, i64 23378, !77, i64 23384, !17, i64 23400, !83, i64 23416, !83, i64 23432, !7, i64 23448, !15, i64 23449, !14, i64 23452, !84, i64 23456, !85, i64 23472, !86, i64 23488, !87, i64 23504, !88, i64 23520, !10, i64 23536, !7, i64 23544, !15, i64 23600, !89, i64 23604, !6, i64 23608, !84, i64 23616, !6, i64 23632, !6, i64 23640, !14, i64 23648, !15, i64 23652, !10, i64 23656, !10, i64 23660, !10, i64 23664, !10, i64 23668, !84, i64 23672, !90, i64 23688, !7, i64 23712, !15, i64 23713, !7, i64 23714, !10, i64 23716, !91, i64 23720, !92, i64 23736, !7, i64 23776, !10, i64 24016, !10, i64 24020, !14, i64 24024, !10, i64 24028, !10, i64 24032, !10, i64 24036, !77, i64 24040}
!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, !14, i64 52, !14, i64 56, !14, i64 60, !14, i64 64, !6, i64 72, !6, i64 80, !14, i64 88, !15, i64 92, !6, i64 96, !13, i64 104, !15, i64 112, !15, i64 113, !15, i64 114, !15, i64 115, !15, i64 116, !15, i64 117, !15, i64 118, !15, i64 119, !14, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !15, i64 208, !15, i64 209, !15, i64 210, !15, i64 211, !15, i64 212, !15, i64 213, !15, i64 214, !14, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !13, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !13, i64 3572, !7, i64 3580, !14, i64 3588, !14, i64 3592, !15, i64 3596, !15, i64 3597, !15, i64 3598, !15, i64 3599, !10, i64 3600, !7, i64 3604, !15, i64 14036, !13, i64 14040, !7, i64 14048, !7, i64 14088, !7, i64 14128, !7, i64 14133, !7, i64 14138, !7, i64 14148, !7, i64 14158, !7, i64 14163, !7, i64 14168, !7, i64 14176, !7, i64 14196, !7, i64 14216, !14, i64 14236, !15, i64 14240, !15, i64 14241, !7, i64 14242, !15, i64 14243, !16, i64 14244, !31, i64 14248}
!47 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !10, i64 0, !10, i64 4, !6, i64 8}
!48 = !{!"_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, !14, i64 168, !13, i64 172, !13, i64 180, !13, i64 188, !13, i64 196, !14, i64 204, !15, i64 208, !15, i64 209, !15, i64 210, !14, i64 212, !14, i64 216, !7, i64 220}
!49 = !{!"_ZTS20ImDrawListSharedData", !13, i64 0, !6, i64 8, !14, i64 16, !14, i64 20, !14, i64 24, !37, i64 28, !10, i64 44, !35, i64 48, !7, i64 64, !14, i64 448, !7, i64 452, !6, i64 520}
!50 = !{!"double", !7, i64 0}
!51 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!52 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!53 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !54, i64 280, !54, i64 296}
!54 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!55 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !14, i64 4, !10, i64 8, !10, i64 12, !15, i64 16}
!56 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !24, i64 12, !24, i64 28, !24, i64 44}
!57 = !{!"_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}
!58 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !6, i64 8}
!59 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !6, i64 8}
!62 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!63 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !6, i64 8}
!65 = !{!"_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}
!66 = !{!"_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}
!67 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!70 = !{!"_ZTS6ImPoolI10ImGuiTableE", !71, i64 0, !26, i64 16, !10, i64 32, !10, i64 36}
!71 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !6, i64 8}
!72 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !73, i64 0, !26, i64 16, !10, i64 32, !10, i64 36}
!73 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !6, i64 8}
!76 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !31, i64 24, !77, i64 40, !77, i64 56, !15, i64 72, !10, i64 76, !14, i64 80, !78, i64 84, !14, i64 3712, !15, i64 3716, !15, i64 3717, !15, i64 3718, !10, i64 3720}
!77 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !6, i64 8}
!78 = !{!"_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, !79, i64 32}
!79 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !16, i64 3582, !16, i64 3584, !10, i64 3588, !10, i64 3592}
!80 = !{!"_ZTS6ImFont", !23, i64 0, !14, i64 16, !14, i64 20, !31, i64 24, !81, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !16, i64 80, !16, i64 82, !16, i64 84, !16, i64 86, !14, i64 88, !14, i64 92, !15, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !10, i64 112, !7, i64 116}
!81 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !6, i64 8}
!82 = !{!"_ZTS21ImGuiComboPreviewData", !24, i64 0, !13, i64 16, !13, i64 24, !13, i64 32, !14, i64 40, !10, i64 44}
!83 = !{!"_ZTS20ImGuiPlatformImeData", !15, i64 0, !13, i64 4, !14, i64 12}
!84 = !{!"_ZTS15ImGuiTextBuffer", !77, i64 0}
!85 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !6, i64 8}
!86 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !77, i64 0}
!87 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !77, i64 0}
!88 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !6, i64 8}
!89 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!90 = !{!"_ZTS14ImGuiTextIndex", !61, i64 0, !10, i64 16}
!91 = !{!"_ZTS18ImGuiMetricsConfig", !15, i64 0, !15, i64 1, !15, i64 2, !15, i64 3, !15, i64 4, !15, i64 5, !15, i64 6, !15, i64 7, !10, i64 8, !10, i64 12}
!92 = !{!"_ZTS14ImGuiStackTool", !10, i64 0, !10, i64 4, !10, i64 8, !93, i64 16, !15, i64 32, !14, i64 36}
!93 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !10, i64 0, !10, i64 4, !6, i64 8}
!94 = !{!15, !15, i64 0}
!95 = !{!45, !10, i64 23260}
!96 = !{i64 0, i64 4, !43, i64 4, i64 4, !43}
!97 = !{!48, !14, i64 84}
!98 = !{!13, !14, i64 0}
!99 = !{!13, !14, i64 4}
!100 = !{!46, !14, i64 3572}
!101 = !{!46, !14, i64 3576}
!102 = !{!45, !14, i64 23272}
!103 = !{!45, !14, i64 23276}
!104 = !{!45, !10, i64 23268}
!105 = !{!45, !10, i64 23280}
!106 = !{!45, !10, i64 16152}
!107 = !{!45, !15, i64 16165}
!108 = !{!48, !14, i64 0}
!109 = !{!29, !10, i64 32}
!110 = distinct !{!110, !111}
!111 = !{!"llvm.loop.mustprogress"}
!112 = distinct !{!112, !111}
!113 = !{!45, !10, i64 18260}


; 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.4 = external hidden unnamed_addr constant [112 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: 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 #4

; 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 nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #5

; 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 speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #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 #4

; 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: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) local_unnamed_addr #0

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

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 noundef ptr @_ZN5ImGui19FindRenderedTextEndEPKcS1_(ptr noundef, ptr noundef) local_unnamed_addr #8

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIjE4backEv(ptr noundef nonnull align 8 dereferenceable(16)) 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 @_ZN5ImGui11ColorButtonEPKcRK6ImVec4iRK6ImVec2(ptr noundef, ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, ptr noundef nonnull align 4 dereferenceable(8)) 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.ImVec2, align 4
  %27 = alloca %struct.ImVec2, align 4
  %28 = alloca %struct.ImVec2, align 4
  %29 = alloca %struct.ImVec2, align 4
  %30 = alloca %struct.ImVec4, align 4
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca %struct.ImVec4, align 4
  %33 = alloca %struct.ImVec2, align 4
  %34 = alloca %struct.ImVec4, align 4
  %35 = alloca float, align 4
  %36 = alloca float, align 4
  %37 = alloca float, align 4
  %38 = alloca [7 x i32], align 16
  %39 = alloca %struct.ImVec4, align 4
  %40 = alloca %struct.ImVec4, align 4
  %41 = alloca %struct.ImVec2, align 8
  %42 = alloca %struct.ImVec2, align 8
  %43 = alloca %struct.ImVec2, align 8
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca %struct.ImVec2, align 8
  %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 4
  %55 = alloca %struct.ImVec2, align 8
  %56 = alloca %struct.ImVec2, align 4
  %57 = alloca %struct.ImVec2, align 4
  %58 = alloca %struct.ImVec2, align 4
  %59 = alloca %struct.ImVec2, align 4
  %60 = alloca %struct.ImVec2, align 8
  %61 = alloca %struct.ImVec2, align 8
  %62 = alloca %struct.ImVec2, align 8
  %63 = alloca %struct.ImVec2, align 8
  %64 = alloca %struct.ImRect, align 8
  %65 = alloca %struct.ImVec2, align 8
  %66 = alloca %struct.ImVec2, align 8
  %67 = alloca %struct.ImVec2, align 8
  %68 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %69 = tail call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %70 = getelementptr inbounds i8, ptr %69, i64 179
  %71 = load i8, ptr %70, align 1, !tbaa !9, !range !39, !noundef !40
  %72 = trunc nuw i8 %71 to i1
  br i1 %72, label %640, label %73

73:                                               ; preds = %4
  %74 = getelementptr inbounds i8, ptr %69, i64 656
  %75 = load ptr, ptr %74, align 8, !tbaa !41
  %76 = getelementptr inbounds i8, ptr %68, i64 14304
  %77 = tail call noundef float @_ZN5ImGui13CalcItemWidthEv()
  %78 = getelementptr inbounds i8, ptr %68, i64 18240
  tail call void @_ZN17ImGuiNextItemData10ClearFlagsEv(ptr noundef nonnull align 4 dereferenceable(17) %78)
  tail call void @_ZN5ImGui6PushIDEPKc(ptr noundef %0)
  %79 = getelementptr inbounds i8, ptr %68, i64 23264
  %80 = load i32, ptr %79, align 8, !tbaa !42
  %81 = icmp eq i32 %80, 0
  br i1 %81, label %82, label %86

82:                                               ; preds = %73
  %83 = getelementptr inbounds i8, ptr %69, i64 232
  %84 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIjE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %83)
  %85 = load i32, ptr %84, align 4, !tbaa !92
  store i32 %85, ptr %79, align 8, !tbaa !42
  br label %86

86:                                               ; preds = %82, %73
  tail call void @_ZN5ImGui10BeginGroupEv()
  %87 = lshr i32 %2, 4
  %88 = and i32 %87, 16
  %89 = xor i32 %88, 16
  %spec.select = or i32 %89, %2
  %90 = and i32 %2, 8
  %.not411 = icmp eq i32 %90, 0
  br i1 %.not411, label %91, label %92

91:                                               ; preds = %86
  tail call void @_ZN5ImGui23ColorPickerOptionsPopupEPKfi(ptr noundef %1, i32 noundef %spec.select)
  br label %92

92:                                               ; preds = %91, %86
  %93 = and i32 %2, 100663296
  %.not412 = icmp eq i32 %93, 0
  br i1 %.not412, label %94, label %100

94:                                               ; preds = %92
  %95 = getelementptr inbounds i8, ptr %68, i64 23260
  %96 = load i32, ptr %95, align 4, !tbaa !93
  %97 = and i32 %96, 100663296
  %.not413 = icmp eq i32 %97, 0
  %98 = select i1 %.not413, i32 33554432, i32 %97
  %99 = or disjoint i32 %98, %spec.select
  br label %100

100:                                              ; preds = %94, %92
  %.1 = phi i32 [ %spec.select, %92 ], [ %99, %94 ]
  %101 = and i32 %.1, 402653184
  %.not414 = icmp eq i32 %101, 0
  br i1 %.not414, label %102, label %108

102:                                              ; preds = %100
  %103 = getelementptr inbounds i8, ptr %68, i64 23260
  %104 = load i32, ptr %103, align 4, !tbaa !93
  %105 = and i32 %104, 402653184
  %.not415 = icmp eq i32 %105, 0
  %106 = select i1 %.not415, i32 134217728, i32 %105
  %107 = or disjoint i32 %106, %.1
  br label %108

108:                                              ; preds = %102, %100
  %.2 = phi i32 [ %.1, %100 ], [ %107, %102 ]
  %109 = and i32 %.2, 100663296
  %110 = tail call noundef zeroext i1 @_ZL14ImIsPowerOfTwoi(i32 noundef %109)
  br i1 %110, label %112, label %111

111:                                              ; preds = %108
  tail call void @__assert_fail(ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.4, i32 noundef 5312, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui12ColorPicker4EPKcPfiPKf) #13
  unreachable

112:                                              ; preds = %108
  %113 = and i32 %.2, 402653184
  %114 = tail call noundef zeroext i1 @_ZL14ImIsPowerOfTwoi(i32 noundef %113)
  br i1 %114, label %116, label %115

115:                                              ; preds = %112
  tail call void @__assert_fail(ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.4, i32 noundef 5313, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui12ColorPicker4EPKcPfiPKf) #13
  unreachable

116:                                              ; preds = %112
  %117 = and i32 %.2, 8
  %.not416 = icmp eq i32 %117, 0
  br i1 %.not416, label %118, label %123

118:                                              ; preds = %116
  %119 = getelementptr inbounds i8, ptr %68, i64 23260
  %120 = load i32, ptr %119, align 4, !tbaa !93
  %121 = and i32 %120, 65536
  %122 = or i32 %121, %.2
  br label %123

123:                                              ; preds = %118, %116
  %.3 = phi i32 [ %.2, %116 ], [ %122, %118 ]
  %124 = and i32 %.3, 2
  %.not417 = icmp eq i32 %124, 0
  %125 = and i32 %.3, 65538
  %126 = icmp eq i32 %125, 65536
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #14
  %127 = getelementptr inbounds i8, ptr %69, i64 248
  %128 = load i64, ptr %127, align 8
  store i64 %128, ptr %5, align 8
  %129 = tail call noundef float @_ZN5ImGui14GetFrameHeightEv()
  %130 = select i1 %126, i32 2, i32 1
  %131 = uitofp nneg i32 %130 to float
  %132 = getelementptr inbounds i8, ptr %68, i64 14388
  %133 = load float, ptr %132, align 4, !tbaa !94
  %134 = fadd float %129, %133
  %135 = fneg float %131
  %136 = tail call float @llvm.fmuladd.f32(float %135, float %134, float %77)
  %137 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %129, float noundef %136)
  %138 = trunc i64 %128 to i32
  %139 = bitcast i32 %138 to float
  %140 = fadd float %137, %139
  %141 = load float, ptr %132, align 4, !tbaa !94
  %142 = fadd float %140, %141
  %143 = fadd float %129, %142
  %144 = fadd float %141, %143
  %145 = fmul float %129, 0x3FC99999A0000000
  %146 = fptosi float %145 to i32
  %147 = sitofp i32 %146 to float
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #14
  %148 = select i1 %.not417, 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 %148, i1 false)
  %149 = fmul float %137, 0x3FB47AE140000000
  %150 = fmul float %137, 5.000000e-01
  %151 = fsub float %150, %149
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #14
  %152 = fadd float %129, %137
  %153 = tail call float @llvm.fmuladd.f32(float %152, float 5.000000e-01, float %139)
  %154 = getelementptr inbounds i8, ptr %5, i64 4
  %155 = lshr i64 %128, 32
  %156 = trunc nuw i64 %155 to i32
  %157 = bitcast i32 %156 to float
  %158 = tail call float @llvm.fmuladd.f32(float %137, float 5.000000e-01, float %157)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef %153, float noundef %158)
  %159 = fmul float %137, 0x3F9BA5E360000000
  %160 = fptosi float %159 to i32
  %161 = sitofp i32 %160 to float
  %162 = fsub float %151, %161
  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 %162, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #14
  %163 = fmul float %162, -5.000000e-01
  %164 = fmul float %162, 0xBFEBB67A00000000
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef %163, float noundef %164)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #14
  %165 = fmul float %162, 0x3FEBB67A00000000
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef %163, float noundef %165)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #14
  %166 = load float, ptr %1, align 4, !tbaa !95
  store float %166, ptr %11, align 4, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #14
  %167 = getelementptr inbounds i8, ptr %1, i64 4
  %168 = load float, ptr %167, align 4, !tbaa !95
  store float %168, ptr %12, align 4, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #14
  %169 = getelementptr inbounds i8, ptr %1, i64 8
  %170 = load float, ptr %169, align 4, !tbaa !95
  store float %170, ptr %13, align 4, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #14
  store float %166, ptr %14, align 4, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #14
  store float %168, ptr %15, align 4, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #14
  store float %170, ptr %16, align 4, !tbaa !95
  %171 = and i32 %.3, 134217728
  %.not418 = icmp ne i32 %171, 0
  br i1 %.not418, label %172, label %173

172:                                              ; preds = %123
  call void @_ZN5ImGui20ColorConvertRGBtoHSVEfffRfS0_S0_(float noundef %166, float noundef %168, float noundef %170, 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 %176

173:                                              ; preds = %123
  %174 = and i32 %.3, 268435456
  %.not419 = icmp eq i32 %174, 0
  br i1 %.not419, label %176, label %175

175:                                              ; preds = %173
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %166, float noundef %168, float noundef %170, 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 %176

176:                                              ; preds = %173, %175, %172
  call void @_ZN5ImGui12PushItemFlagEib(i32 noundef 8, i1 noundef zeroext true)
  %177 = and i32 %.3, 67108864
  %.not420 = icmp eq i32 %177, 0
  br i1 %.not420, label %233, label %178

178:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #14
  %179 = load float, ptr %132, align 4, !tbaa !94
  %180 = fadd float %137, %179
  %181 = fadd float %129, %180
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef %181, float noundef %137)
  %182 = 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
  %183 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %183, label %184, label %230

184:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #14
  %185 = getelementptr inbounds i8, ptr %68, i64 14056
  %186 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %185, ptr noundef nonnull align 4 dereferenceable(8) %7)
  store <2 x float> %186, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #14
  %187 = getelementptr inbounds i8, ptr %68, i64 3580
  %188 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %187, ptr noundef nonnull align 4 dereferenceable(8) %7)
  store <2 x float> %188, ptr %19, align 8
  %189 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %18)
  %190 = fadd float %151, -1.000000e+00
  %191 = fmul float %190, %190
  %192 = fcmp ult float %189, %191
  br i1 %192, label %206, label %193

193:                                              ; preds = %184
  %194 = fadd float %150, 1.000000e+00
  %195 = fmul float %194, %194
  %196 = fcmp ugt float %189, %195
  br i1 %196, label %206, label %197

197:                                              ; preds = %193
  %198 = getelementptr inbounds i8, ptr %19, i64 4
  %199 = load float, ptr %198, align 4, !tbaa !96
  %200 = load float, ptr %19, align 8, !tbaa !97
  %201 = call float @atan2f(float noundef %199, float noundef %200) #14
  %202 = fdiv float %201, 0x400921FB60000000
  %203 = fmul float %202, 5.000000e-01
  %204 = fcmp olt float %203, 0.000000e+00
  %205 = fadd float %203, 1.000000e+00
  %storemerge = select i1 %204, float %205, float %203
  store float %storemerge, ptr %11, align 4, !tbaa !95
  br label %206

206:                                              ; preds = %197, %193, %184
  %.0387 = phi i8 [ 1, %197 ], [ 0, %193 ], [ 0, %184 ]
  %207 = load float, ptr %11, align 4, !tbaa !95
  %208 = fmul float %207, -2.000000e+00
  %209 = fmul float %208, 0x400921FB60000000
  %210 = call float @cosf(float noundef %209) #14
  %211 = load float, ptr %11, align 4, !tbaa !95
  %212 = fmul float %211, -2.000000e+00
  %213 = fmul float %212, 0x400921FB60000000
  %214 = call float @sinf(float noundef %213) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #14
  %215 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef %210, float noundef %214)
  store <2 x float> %215, ptr %20, align 8
  %216 = 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 %216, label %217, label %229

217:                                              ; preds = %206
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #14
  %218 = call <2 x float> @_ZL8ImRotateRK6ImVec2ff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef %210, float noundef %214)
  store <2 x float> %218, ptr %21, align 8
  %219 = 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 %219, label %222, label %220

220:                                              ; preds = %217
  %221 = 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> %221, ptr %21, align 8
  br label %222

222:                                              ; preds = %220, %217
  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)
  %223 = load float, ptr %23, align 4, !tbaa !95
  %224 = fsub float 1.000000e+00, %223
  %225 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %224, float noundef 0x3F1A36E2E0000000, float noundef 1.000000e+00)
  store float %225, ptr %13, align 4, !tbaa !95
  %226 = load float, ptr %22, align 4, !tbaa !95
  %227 = fdiv float %226, %225
  %228 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %227, float noundef 0x3F1A36E2E0000000, float noundef 1.000000e+00)
  store float %228, ptr %12, align 4, !tbaa !95
  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 %229

229:                                              ; preds = %222, %206
  %.0394 = phi i8 [ 1, %222 ], [ 0, %206 ]
  %.1388 = phi i8 [ 1, %222 ], [ %.0387, %206 ]
  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 %230

230:                                              ; preds = %229, %178
  %.1395 = phi i8 [ %.0394, %229 ], [ 0, %178 ]
  %.1392 = phi i8 [ %.0387, %229 ], [ 0, %178 ]
  %.2389 = phi i8 [ %.1388, %229 ], [ 0, %178 ]
  %231 = and i32 %.3, 8
  %.not423 = icmp eq i32 %231, 0
  br i1 %.not423, label %232, label %264

232:                                              ; preds = %230
  call void @_ZN5ImGui20OpenPopupOnItemClickEPKci(ptr noundef nonnull @.str.101, i32 noundef 1)
  br label %264

233:                                              ; preds = %176
  %234 = and i32 %.3, 33554432
  %.not421 = icmp eq i32 %234, 0
  br i1 %.not421, label %264, label %235

235:                                              ; preds = %233
  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 %137, float noundef %137)
  %236 = 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
  %237 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %237, label %238, label %251

238:                                              ; preds = %235
  %239 = getelementptr inbounds i8, ptr %68, i64 3580
  %240 = load float, ptr %239, align 4, !tbaa !98
  %241 = fsub float %240, %139
  %242 = fadd float %137, -1.000000e+00
  %243 = fdiv float %241, %242
  %244 = call noundef float @_ZL10ImSaturatef(float noundef %243)
  store float %244, ptr %12, align 4, !tbaa !95
  %245 = getelementptr inbounds i8, ptr %68, i64 3584
  %246 = load float, ptr %245, align 4, !tbaa !99
  %247 = fsub float %246, %157
  %248 = fdiv float %247, %242
  %249 = call noundef float @_ZL10ImSaturatef(float noundef %248)
  %250 = fsub float 1.000000e+00, %249
  store float %250, ptr %13, align 4, !tbaa !95
  call void @_ZL17ColorEditRestoreHPKfPf(ptr noundef nonnull %1, ptr noundef nonnull %11)
  br label %251

251:                                              ; preds = %238, %235
  %.3390 = phi i8 [ 1, %238 ], [ 0, %235 ]
  %252 = and i32 %.3, 8
  %.not422 = icmp eq i32 %252, 0
  br i1 %.not422, label %253, label %254

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

254:                                              ; preds = %253, %251
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %26, float noundef %142, float noundef %157)
  call void @_ZN5ImGui18SetCursorScreenPosERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %26)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #14
  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 %129, float noundef %137)
  %255 = call noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef nonnull @.str.115, ptr noundef nonnull align 4 dereferenceable(8) %27, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #14
  %256 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %256, label %257, label %264

257:                                              ; preds = %254
  %258 = getelementptr inbounds i8, ptr %68, i64 3584
  %259 = load float, ptr %258, align 4, !tbaa !99
  %260 = fsub float %259, %157
  %261 = fadd float %137, -1.000000e+00
  %262 = fdiv float %260, %261
  %263 = call noundef float @_ZL10ImSaturatef(float noundef %262)
  store float %263, ptr %11, align 4, !tbaa !95
  br label %264

264:                                              ; preds = %233, %257, %254, %230, %232
  %.3397 = phi i8 [ %.1395, %230 ], [ %.1395, %232 ], [ %.3390, %257 ], [ %.3390, %254 ], [ 0, %233 ]
  %.2393 = phi i8 [ %.1392, %230 ], [ %.1392, %232 ], [ 1, %257 ], [ 0, %254 ], [ 0, %233 ]
  %.4 = phi i8 [ %.2389, %230 ], [ %.2389, %232 ], [ 1, %257 ], [ %.3390, %254 ], [ 0, %233 ]
  br i1 %126, label %265, label %277

265:                                              ; preds = %264
  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 %144, float noundef %157)
  call void @_ZN5ImGui18SetCursorScreenPosERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %28)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #14
  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 %129, float noundef %137)
  %266 = call noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef nonnull @.str.116, ptr noundef nonnull align 4 dereferenceable(8) %29, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #14
  %267 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %267, label %268, label %277

268:                                              ; preds = %265
  %269 = getelementptr inbounds i8, ptr %68, i64 3584
  %270 = load float, ptr %269, align 4, !tbaa !99
  %271 = fsub float %270, %157
  %272 = fadd float %137, -1.000000e+00
  %273 = fdiv float %271, %272
  %274 = call noundef float @_ZL10ImSaturatef(float noundef %273)
  %275 = fsub float 1.000000e+00, %274
  %276 = getelementptr inbounds i8, ptr %1, i64 12
  store float %275, ptr %276, align 4, !tbaa !95
  br label %277

277:                                              ; preds = %265, %268, %264
  %.5 = phi i8 [ 1, %268 ], [ %.4, %265 ], [ %.4, %264 ]
  call void @_ZN5ImGui11PopItemFlagEv()
  %278 = and i32 %.3, 256
  %.not424 = icmp eq i32 %278, 0
  br i1 %.not424, label %279, label %281

279:                                              ; preds = %277
  %280 = load float, ptr %132, align 4, !tbaa !94
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef %280)
  call void @_ZN5ImGui10BeginGroupEv()
  br label %281

281:                                              ; preds = %279, %277
  %282 = and i32 %.3, 128
  %.not425 = icmp eq i32 %282, 0
  br i1 %.not425, label %283, label %289

283:                                              ; preds = %281
  %284 = call noundef ptr @_ZN5ImGui19FindRenderedTextEndEPKcS1_(ptr noundef %0, ptr noundef null)
  %.not426 = icmp eq ptr %284, %0
  br i1 %.not426, label %289, label %285

285:                                              ; preds = %283
  br i1 %.not424, label %288, label %286

286:                                              ; preds = %285
  %287 = load float, ptr %132, align 4, !tbaa !94
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef %287)
  br label %288

288:                                              ; preds = %286, %285
  call void @_ZN5ImGui6TextExEPKcS1_i(ptr noundef %0, ptr noundef %284, i32 noundef 0)
  br label %289

289:                                              ; preds = %283, %288, %281
  br i1 %.not424, label %290, label %320

290:                                              ; preds = %289
  call void @_ZN5ImGui12PushItemFlagEib(i32 noundef 16, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #14
  %291 = load float, ptr %1, align 4, !tbaa !95
  %292 = load float, ptr %167, align 4, !tbaa !95
  %293 = load float, ptr %169, align 4, !tbaa !95
  br i1 %.not417, label %294, label %297

294:                                              ; preds = %290
  %295 = getelementptr inbounds i8, ptr %1, i64 12
  %296 = load float, ptr %295, align 4, !tbaa !95
  br label %297

297:                                              ; preds = %290, %294
  %298 = phi float [ %296, %294 ], [ 1.000000e+00, %290 ]
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %30, float noundef %291, float noundef %292, float noundef %293, float noundef %298)
  br i1 %.not425, label %300, label %299

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

300:                                              ; preds = %299, %297
  %301 = and i32 %.3, 403570752
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #14
  %302 = fmul float %129, 3.000000e+00
  %303 = fmul float %129, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %31, float noundef %302, float noundef %303)
  %304 = call noundef zeroext i1 @_ZN5ImGui11ColorButtonEPKcRK6ImVec4iRK6ImVec2(ptr noundef nonnull @.str.118, ptr noundef nonnull align 4 dereferenceable(16) %30, i32 noundef %301, ptr noundef nonnull align 4 dereferenceable(8) %31)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #14
  %.not427 = icmp eq ptr %3, null
  br i1 %.not427, label %319, label %305

305:                                              ; preds = %300
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.119)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #14
  %306 = load float, ptr %3, align 4, !tbaa !95
  %307 = getelementptr inbounds i8, ptr %3, i64 4
  %308 = load float, ptr %307, align 4, !tbaa !95
  %309 = getelementptr inbounds i8, ptr %3, i64 8
  %310 = load float, ptr %309, align 4, !tbaa !95
  br i1 %.not417, label %311, label %314

311:                                              ; preds = %305
  %312 = getelementptr inbounds i8, ptr %3, i64 12
  %313 = load float, ptr %312, align 4, !tbaa !95
  br label %314

314:                                              ; preds = %305, %311
  %315 = phi float [ %313, %311 ], [ 1.000000e+00, %305 ]
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %32, float noundef %306, float noundef %308, float noundef %310, float noundef %315)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef %302, float noundef %303)
  %316 = call noundef zeroext i1 @_ZN5ImGui11ColorButtonEPKcRK6ImVec4iRK6ImVec2(ptr noundef nonnull @.str.120, ptr noundef nonnull align 4 dereferenceable(16) %32, i32 noundef %301, ptr noundef nonnull align 4 dereferenceable(8) %33)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #14
  br i1 %316, label %317, label %318

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

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

319:                                              ; preds = %318, %300
  %.7 = phi i8 [ %.6, %318 ], [ %.5, %300 ]
  call void @_ZN5ImGui11PopItemFlagEv()
  call void @_ZN5ImGui8EndGroupEv()
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #14
  br label %320

320:                                              ; preds = %319, %289
  %.8 = phi i8 [ %.5, %289 ], [ %.7, %319 ]
  %321 = trunc nuw i8 %.2393 to i1
  br i1 %321, label %324, label %322

322:                                              ; preds = %320
  %323 = trunc nuw i8 %.3397 to i1
  br i1 %323, label %324, label %346

324:                                              ; preds = %322, %320
  br i1 %.not418, label %325, label %340

325:                                              ; preds = %324
  %326 = load float, ptr %11, align 4, !tbaa !95
  %327 = load float, ptr %12, align 4, !tbaa !95
  %328 = load float, ptr %13, align 4, !tbaa !95
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %326, float noundef %327, float noundef %328, ptr noundef nonnull align 4 dereferenceable(4) %1, ptr noundef nonnull align 4 dereferenceable(4) %167, ptr noundef nonnull align 4 dereferenceable(4) %169)
  %329 = load float, ptr %11, align 4, !tbaa !95
  %330 = getelementptr inbounds i8, ptr %68, i64 23272
  store float %329, ptr %330, align 8, !tbaa !100
  %331 = load float, ptr %12, align 4, !tbaa !95
  %332 = getelementptr inbounds i8, ptr %68, i64 23276
  store float %331, ptr %332, align 4, !tbaa !101
  %333 = load i32, ptr %79, align 8, !tbaa !42
  %334 = getelementptr inbounds i8, ptr %68, i64 23268
  store i32 %333, ptr %334, align 4, !tbaa !102
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #14
  %335 = load float, ptr %1, align 4, !tbaa !95
  %336 = load float, ptr %167, align 4, !tbaa !95
  %337 = load float, ptr %169, align 4, !tbaa !95
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %34, float noundef %335, float noundef %336, float noundef %337, float noundef 0.000000e+00)
  %338 = call noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %34)
  %339 = getelementptr inbounds i8, ptr %68, i64 23280
  store i32 %338, ptr %339, align 8, !tbaa !103
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #14
  br label %346

340:                                              ; preds = %324
  %341 = and i32 %.3, 268435456
  %.not428 = icmp eq i32 %341, 0
  br i1 %.not428, label %346, label %342

342:                                              ; preds = %340
  %343 = load float, ptr %11, align 4, !tbaa !95
  store float %343, ptr %1, align 4, !tbaa !95
  %344 = load float, ptr %12, align 4, !tbaa !95
  store float %344, ptr %167, align 4, !tbaa !95
  %345 = load float, ptr %13, align 4, !tbaa !95
  store float %345, ptr %169, align 4, !tbaa !95
  br label %346

346:                                              ; preds = %325, %342, %340, %322
  %347 = and i32 %.3, 32
  %348 = icmp eq i32 %347, 0
  br i1 %348, label %349, label %.thread

349:                                              ; preds = %346
  %350 = select i1 %126, float %144, float %142
  %351 = fadd float %129, %350
  %352 = fsub float %351, %139
  call void @_ZN5ImGui13PushItemWidthEf(float noundef %352)
  %353 = and i32 %.3, 428736538
  %354 = and i32 %.3, 1048576
  %.not429 = icmp ne i32 %354, 0
  %355 = and i32 %.3, 6291456
  %356 = icmp eq i32 %355, 0
  %or.cond439 = or i1 %.not429, %356
  br i1 %or.cond439, label %357, label %367

357:                                              ; preds = %349
  %358 = or disjoint i32 %353, 1048580
  %359 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef nonnull @.str.121, ptr noundef nonnull %1, i32 noundef %358)
  br i1 %359, label %360, label %367

360:                                              ; preds = %357
  %361 = getelementptr inbounds i8, ptr %68, i64 16152
  %362 = load i32, ptr %361, align 8, !tbaa !104
  %.not430 = icmp eq i32 %362, 0
  br i1 %.not430, label %367, label %363

363:                                              ; preds = %360
  %364 = getelementptr inbounds i8, ptr %68, i64 16165
  %365 = load i8, ptr %364, align 1, !tbaa !105, !range !39, !noundef !40
  %366 = xor i8 %365, 1
  br label %367

367:                                              ; preds = %360, %363, %349, %357
  %.0398 = phi i8 [ 0, %357 ], [ 0, %349 ], [ 0, %360 ], [ %366, %363 ]
  %.9 = phi i8 [ %.8, %357 ], [ %.8, %349 ], [ 1, %360 ], [ 1, %363 ]
  %368 = and i32 %.3, 2097152
  %.not431 = icmp ne i32 %368, 0
  %369 = and i32 %.3, 5242880
  %370 = icmp eq i32 %369, 0
  %or.cond441 = or i1 %.not431, %370
  br i1 %or.cond441, label %371, label %376

371:                                              ; preds = %367
  %372 = or disjoint i32 %353, 2097156
  %373 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef nonnull @.str.122, ptr noundef nonnull %1, i32 noundef %372)
  %374 = zext i1 %373 to i8
  %375 = or i8 %.9, %374
  br label %376

376:                                              ; preds = %367, %371
  %.10 = phi i8 [ %375, %371 ], [ %.9, %367 ]
  %377 = and i32 %.3, 4194304
  %.not432 = icmp ne i32 %377, 0
  %378 = and i32 %.3, 3145728
  %379 = icmp eq i32 %378, 0
  %or.cond443 = or i1 %.not432, %379
  br i1 %or.cond443, label %380, label %385

380:                                              ; preds = %376
  %381 = or disjoint i32 %353, 4194308
  %382 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef nonnull @.str.123, ptr noundef nonnull %1, i32 noundef %381)
  %383 = zext i1 %382 to i8
  %384 = or i8 %.10, %383
  br label %385

385:                                              ; preds = %380, %376
  %.11 = phi i8 [ %384, %380 ], [ %.10, %376 ]
  call void @_ZN5ImGui12PopItemWidthEv()
  %386 = trunc nuw i8 %.0398 to i1
  %brmerge.not = and i1 %.not418, %386
  br i1 %brmerge.not, label %387, label %.thread

387:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #14
  %388 = load float, ptr %1, align 4, !tbaa !95
  %389 = load float, ptr %167, align 4, !tbaa !95
  %390 = load float, ptr %169, align 4, !tbaa !95
  call void @_ZN5ImGui20ColorConvertRGBtoHSVEfffRfS0_S0_(float noundef %388, float noundef %389, float noundef %390, ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 4 dereferenceable(4) %37)
  %391 = load float, ptr %35, align 4, !tbaa !95
  %392 = fcmp ole float %391, 0.000000e+00
  %393 = load float, ptr %11, align 4
  %394 = fcmp ogt float %393, 0.000000e+00
  %or.cond = select i1 %392, i1 %394, i1 false
  br i1 %or.cond, label %395, label %410

395:                                              ; preds = %387
  %396 = load float, ptr %37, align 4
  %397 = fcmp ugt float %396, 0.000000e+00
  br i1 %397, label %404, label %398

398:                                              ; preds = %395
  %399 = load float, ptr %13, align 4
  %400 = fcmp une float %399, %396
  br i1 %400, label %401, label %404

401:                                              ; preds = %398
  %402 = load float, ptr %12, align 4, !tbaa !95
  %403 = fmul float %399, 5.000000e-01
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %393, float noundef %402, float noundef %403, ptr noundef nonnull align 4 dereferenceable(4) %1, ptr noundef nonnull align 4 dereferenceable(4) %167, ptr noundef nonnull align 4 dereferenceable(4) %169)
  br label %410

404:                                              ; preds = %398, %395
  %405 = load float, ptr %36, align 4
  %406 = fcmp ugt float %405, 0.000000e+00
  br i1 %406, label %410, label %407

407:                                              ; preds = %404
  %408 = load float, ptr %12, align 4
  %409 = fmul float %408, 5.000000e-01
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %393, float noundef %409, float noundef %396, ptr noundef nonnull align 4 dereferenceable(4) %1, ptr noundef nonnull align 4 dereferenceable(4) %167, ptr noundef nonnull align 4 dereferenceable(4) %169)
  br label %410

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

.thread:                                          ; preds = %346, %385, %410
  %.12450 = phi i8 [ %.11, %385 ], [ %.11, %410 ], [ %.8, %346 ]
  %411 = trunc nuw i8 %.12450 to i1
  br i1 %411, label %412, label %423

412:                                              ; preds = %.thread
  br i1 %.not418, label %413, label %417

413:                                              ; preds = %412
  %414 = load float, ptr %1, align 4, !tbaa !95
  store float %414, ptr %14, align 4, !tbaa !95
  %415 = load float, ptr %167, align 4, !tbaa !95
  store float %415, ptr %15, align 4, !tbaa !95
  %416 = load float, ptr %169, align 4, !tbaa !95
  store float %416, ptr %16, align 4, !tbaa !95
  call void @_ZN5ImGui20ColorConvertRGBtoHSVEfffRfS0_S0_(float noundef %414, float noundef %415, float noundef %416, 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 %423

417:                                              ; preds = %412
  %418 = and i32 %.3, 268435456
  %.not433 = icmp eq i32 %418, 0
  br i1 %.not433, label %423, label %419

419:                                              ; preds = %417
  %420 = load float, ptr %1, align 4, !tbaa !95
  store float %420, ptr %11, align 4, !tbaa !95
  %421 = load float, ptr %167, align 4, !tbaa !95
  store float %421, ptr %12, align 4, !tbaa !95
  %422 = load float, ptr %169, align 4, !tbaa !95
  store float %422, ptr %13, align 4, !tbaa !95
  call void @_ZN5ImGui20ColorConvertHSVtoRGBEfffRfS0_S0_(float noundef %420, float noundef %421, float noundef %422, 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 %423

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

453:                                              ; preds = %423
  %454 = fdiv float 5.000000e-01, %150
  %455 = fptosi float %150 to i32
  %456 = sdiv i32 %455, 12
  %457 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef 4, i32 noundef %456)
  %458 = fneg float %454
  %459 = getelementptr inbounds i8, ptr %75, i64 32
  %460 = fadd float %150, %151
  %461 = fmul float %460, 5.000000e-01
  %462 = getelementptr inbounds i8, ptr %7, i64 4
  br label %497

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

497:                                              ; preds = %453, %497
  %498 = phi i32 [ %433, %453 ], [ %523, %497 ]
  %indvars.iv = phi i64 [ 0, %453 ], [ %indvars.iv.next, %497 ]
  %499 = trunc nuw nsw i64 %indvars.iv to i32
  %500 = uitofp nneg i32 %499 to float
  %501 = fdiv float %500, 6.000000e+00
  %502 = fmul float %501, 2.000000e+00
  %503 = call float @llvm.fmuladd.f32(float %502, float 0x400921FB60000000, float %458)
  %504 = fadd float %500, 1.000000e+00
  %505 = fdiv float %504, 6.000000e+00
  %506 = fmul float %505, 2.000000e+00
  %507 = call float @llvm.fmuladd.f32(float %506, float 0x400921FB60000000, float %454)
  %508 = load i32, ptr %459, align 8, !tbaa !107
  call void @_ZN10ImDrawList9PathArcToERK6ImVec2fffi(ptr noundef nonnull align 8 dereferenceable(196) %75, ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef %461, float noundef %503, float noundef %507, i32 noundef %457)
  call void @_ZN10ImDrawList10PathStrokeEjif(ptr noundef nonnull align 8 dereferenceable(196) %75, i32 noundef %431, i32 noundef 0, float noundef %149)
  %509 = load i32, ptr %459, align 8, !tbaa !107
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #14
  %510 = load float, ptr %7, align 4, !tbaa !97
  %511 = call float @cosf(float noundef %503) #14
  %512 = call float @llvm.fmuladd.f32(float %511, float %151, float %510)
  %513 = load float, ptr %462, align 4, !tbaa !96
  %514 = call float @sinf(float noundef %503) #14
  %515 = call float @llvm.fmuladd.f32(float %514, float %151, float %513)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %42, float noundef %512, float noundef %515)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #14
  %516 = load float, ptr %7, align 4, !tbaa !97
  %517 = call float @cosf(float noundef %507) #14
  %518 = call float @llvm.fmuladd.f32(float %517, float %151, float %516)
  %519 = load float, ptr %462, align 4, !tbaa !96
  %520 = call float @sinf(float noundef %507) #14
  %521 = call float @llvm.fmuladd.f32(float %520, float %151, float %519)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %43, float noundef %518, float noundef %521)
  %.sroa.036.0.copyload = load <2 x float>, ptr %42, align 8
  %.sroa.035.0.copyload = load <2 x float>, ptr %43, align 8
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %522 = getelementptr inbounds [7 x i32], ptr %38, i64 0, i64 %indvars.iv.next
  %523 = load i32, ptr %522, align 4, !tbaa !92
  call void @_ZN5ImGui38ShadeVertsLinearColorGradientKeepAlphaEP10ImDrawListii6ImVec2S2_jj(ptr noundef nonnull %75, i32 noundef %508, i32 noundef %509, <2 x float> %.sroa.036.0.copyload, <2 x float> %.sroa.035.0.copyload, i32 noundef %498, i32 noundef %523)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #14
  %exitcond.not = icmp eq i64 %indvars.iv.next, 6
  br i1 %exitcond.not, label %463, label %497, !llvm.loop !108

524:                                              ; preds = %423
  %525 = and i32 %.3, 33554432
  %.not434 = icmp eq i32 %525, 0
  br i1 %.not434, label %600, label %526

526:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %54, float noundef %137, float noundef %137)
  %527 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %54)
  store <2 x float> %527, ptr %53, align 8
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %75, ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %53, i32 noundef %431, i32 noundef %447, i32 noundef %447, i32 noundef %431)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %56, float noundef %137, float noundef %137)
  %528 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %56)
  store <2 x float> %528, ptr %55, align 8
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %75, ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %55, i32 noundef 0, i32 noundef 0, i32 noundef %428, i32 noundef %428)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #14
  %.sroa.018.0.copyload = load <2 x float>, ptr %5, align 8
  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 %137, float noundef %137)
  %529 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %57)
  call void @_ZN5ImGui17RenderFrameBorderE6ImVec2S0_f(<2 x float> %.sroa.018.0.copyload, <2 x float> %529, float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #14
  %530 = load float, ptr %5, align 8, !tbaa !97
  %531 = load float, ptr %12, align 4, !tbaa !95
  %532 = call noundef float @_ZL10ImSaturatef(float noundef %531)
  %533 = call float @llvm.fmuladd.f32(float %532, float %137, float %530)
  %534 = fadd float %533, 5.000000e-01
  %535 = fptosi float %534 to i32
  %536 = sitofp i32 %535 to float
  %537 = load float, ptr %5, align 8, !tbaa !97
  %538 = fadd float %537, 2.000000e+00
  %539 = fadd float %137, %537
  %540 = fadd float %539, -2.000000e+00
  %541 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %536, float noundef %538, float noundef %540)
  store float %541, ptr %41, align 8, !tbaa !97
  %542 = load float, ptr %154, align 4, !tbaa !96
  %543 = load float, ptr %13, align 4, !tbaa !95
  %544 = fsub float 1.000000e+00, %543
  %545 = call noundef float @_ZL10ImSaturatef(float noundef %544)
  %546 = call float @llvm.fmuladd.f32(float %545, float %137, float %542)
  %547 = fadd float %546, 5.000000e-01
  %548 = fptosi float %547 to i32
  %549 = sitofp i32 %548 to float
  %550 = load float, ptr %154, align 4, !tbaa !96
  %551 = fadd float %550, 2.000000e+00
  %552 = fadd float %137, %550
  %553 = fadd float %552, -2.000000e+00
  %554 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %549, float noundef %551, float noundef %553)
  %555 = getelementptr inbounds i8, ptr %41, i64 4
  store float %554, ptr %555, align 4, !tbaa !96
  %556 = fdiv float %137, 6.000000e+00
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #14
  %557 = load float, ptr %154, align 4, !tbaa !96
  %558 = call float @llvm.fmuladd.f32(float %556, float 0.000000e+00, float %557)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %58, float noundef %142, float noundef %558)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %559 = load float, ptr %154, align 4, !tbaa !96
  %560 = fadd float %556, %559
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %143, float noundef %560)
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %75, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %59, i32 noundef %433, i32 noundef %433, i32 noundef %436, i32 noundef %436)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #14
  %561 = load float, ptr %154, align 4, !tbaa !96
  %562 = fadd float %556, %561
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %58, float noundef %142, float noundef %562)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %563 = load float, ptr %154, align 4, !tbaa !96
  %564 = call float @llvm.fmuladd.f32(float %556, float 2.000000e+00, float %563)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %143, float noundef %564)
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %75, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %59, i32 noundef %436, i32 noundef %436, i32 noundef %435, i32 noundef %435)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #14
  %565 = load float, ptr %154, align 4, !tbaa !96
  %566 = call float @llvm.fmuladd.f32(float %556, float 2.000000e+00, float %565)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %58, float noundef %142, float noundef %566)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %567 = load float, ptr %154, align 4, !tbaa !96
  %568 = call float @llvm.fmuladd.f32(float %556, float 3.000000e+00, float %567)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %143, float noundef %568)
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %75, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %59, i32 noundef %435, i32 noundef %435, i32 noundef %430, i32 noundef %430)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #14
  %569 = load float, ptr %154, align 4, !tbaa !96
  %570 = call float @llvm.fmuladd.f32(float %556, float 3.000000e+00, float %569)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %58, float noundef %142, float noundef %570)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %571 = load float, ptr %154, align 4, !tbaa !96
  %572 = call float @llvm.fmuladd.f32(float %556, float 4.000000e+00, float %571)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %143, float noundef %572)
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %75, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %59, i32 noundef %430, i32 noundef %430, i32 noundef %429, i32 noundef %429)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #14
  %573 = load float, ptr %154, align 4, !tbaa !96
  %574 = call float @llvm.fmuladd.f32(float %556, float 4.000000e+00, float %573)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %58, float noundef %142, float noundef %574)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %575 = load float, ptr %154, align 4, !tbaa !96
  %576 = call float @llvm.fmuladd.f32(float %556, float 5.000000e+00, float %575)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %143, float noundef %576)
  %577 = load i32, ptr %439, align 16, !tbaa !92
  %578 = load i32, ptr %440, align 4, !tbaa !92
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %75, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %59, i32 noundef %577, i32 noundef %577, i32 noundef %578, i32 noundef %578)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #14
  %579 = load float, ptr %154, align 4, !tbaa !96
  %580 = call float @llvm.fmuladd.f32(float %556, float 5.000000e+00, float %579)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %58, float noundef %142, float noundef %580)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %581 = load float, ptr %154, align 4, !tbaa !96
  %582 = call float @llvm.fmuladd.f32(float %556, float 6.000000e+00, float %581)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %143, float noundef %582)
  %583 = load i32, ptr %442, align 8, !tbaa !92
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %75, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %59, i32 noundef %578, i32 noundef %578, i32 noundef %583, i32 noundef %583)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #14
  %584 = load float, ptr %154, align 4, !tbaa !96
  %585 = load float, ptr %11, align 4, !tbaa !95
  %586 = call float @llvm.fmuladd.f32(float %585, float %137, float %584)
  %587 = fadd float %586, 5.000000e-01
  %588 = fptosi float %587 to i32
  %589 = sitofp i32 %588 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %60, float noundef %142, float noundef %584)
  %590 = load float, ptr %154, align 4, !tbaa !96
  %591 = fadd float %137, %590
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %61, float noundef %143, float noundef %591)
  %592 = load <2 x float>, ptr %60, align 8
  %593 = load <2 x float>, ptr %61, align 8
  call void @_ZN5ImGui17RenderFrameBorderE6ImVec2S0_f(<2 x float> %592, <2 x float> %593, float noundef 0.000000e+00)
  %594 = fadd float %142, -1.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %62, float noundef %594, float noundef %589)
  %595 = fadd float %147, 1.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef %595, float noundef %147)
  %596 = fadd float %129, 2.000000e+00
  %597 = load float, ptr %76, align 4, !tbaa !106
  %598 = load <2 x float>, ptr %62, align 8
  %599 = load <2 x float>, ptr %63, align 8
  call void @_ZL26RenderArrowsForVerticalBarP10ImDrawList6ImVec2S1_ff(ptr noundef nonnull %75, <2 x float> %598, <2 x float> %599, float noundef %596, float noundef %597)
  br label %600

600:                                              ; preds = %524, %526, %463
  %601 = trunc nuw i8 %.3397 to i1
  %602 = select i1 %601, float 1.000000e+01, float 6.000000e+00
  call void @_ZN10ImDrawList15AddCircleFilledERK6ImVec2fji(ptr noundef nonnull align 8 dereferenceable(196) %75, ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef %602, i32 noundef %452, i32 noundef 12)
  %603 = fadd float %602, 1.000000e+00
  call void @_ZN10ImDrawList9AddCircleERK6ImVec2fjif(ptr noundef nonnull align 8 dereferenceable(196) %75, ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef %603, i32 noundef %432, i32 noundef 12, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList9AddCircleERK6ImVec2fjif(ptr noundef nonnull align 8 dereferenceable(196) %75, ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef %602, i32 noundef %431, i32 noundef 12, float noundef 1.000000e+00)
  br i1 %126, label %604, label %628

604:                                              ; preds = %600
  %605 = getelementptr inbounds i8, ptr %1, i64 12
  %606 = load float, ptr %605, align 4, !tbaa !95
  %607 = call noundef float @_ZL10ImSaturatef(float noundef %606)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %64) #14
  %608 = load float, ptr %154, align 4, !tbaa !96
  %609 = fadd float %129, %144
  %610 = fadd float %137, %608
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %64, float noundef %144, float noundef %608, float noundef %609, float noundef %610)
  %.sroa.04.0.copyload = load <2 x float>, ptr %64, align 8
  %611 = getelementptr inbounds i8, ptr %64, i64 8
  %.sroa.03.0.copyload = load <2 x float>, ptr %611, align 8
  %612 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %64)
  %613 = fmul float %612, 5.000000e-01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %65, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %614 = load <2 x float>, ptr %65, align 8
  call void @_ZN5ImGui36RenderColorRectWithAlphaCheckerboardEP10ImDrawList6ImVec2S2_jfS2_fi(ptr noundef nonnull %75, <2 x float> %.sroa.04.0.copyload, <2 x float> %.sroa.03.0.copyload, i32 noundef 0, float noundef %613, <2 x float> %614, float noundef 0.000000e+00, i32 noundef 0)
  %615 = and i32 %452, 16777215
  call void @_ZN10ImDrawList23AddRectFilledMultiColorERK6ImVec2S2_jjjj(ptr noundef nonnull align 8 dereferenceable(196) %75, ptr noundef nonnull align 4 dereferenceable(8) %64, ptr noundef nonnull align 4 dereferenceable(8) %611, i32 noundef %452, i32 noundef %452, i32 noundef %615, i32 noundef %615)
  %616 = load float, ptr %154, align 4, !tbaa !96
  %617 = fsub float 1.000000e+00, %607
  %618 = call float @llvm.fmuladd.f32(float %617, float %137, float %616)
  %619 = fadd float %618, 5.000000e-01
  %620 = fptosi float %619 to i32
  %621 = sitofp i32 %620 to float
  %.sroa.02.0.copyload = load <2 x float>, ptr %64, align 8
  %.sroa.0.0.copyload = load <2 x float>, ptr %611, 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)
  %622 = fadd float %144, -1.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %66, float noundef %622, float noundef %621)
  %623 = fadd float %147, 1.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %67, float noundef %623, float noundef %147)
  %624 = fadd float %129, 2.000000e+00
  %625 = load float, ptr %76, align 4, !tbaa !106
  %626 = load <2 x float>, ptr %66, align 8
  %627 = load <2 x float>, ptr %67, align 8
  call void @_ZL26RenderArrowsForVerticalBarP10ImDrawList6ImVec2S1_ff(ptr noundef nonnull %75, <2 x float> %626, <2 x float> %627, float noundef %624, float noundef %625)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %64) #14
  br label %628

628:                                              ; preds = %604, %600
  call void @_ZN5ImGui8EndGroupEv()
  br i1 %411, label %629, label %631

629:                                              ; preds = %628
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(12) %6, ptr noundef nonnull dereferenceable(12) %1, i64 %148)
  %630 = icmp eq i32 %bcmp, 0
  %spec.select445 = select i1 %630, i8 0, i8 %.12450
  br label %631

631:                                              ; preds = %629, %628
  %.13 = phi i8 [ %.12450, %628 ], [ %spec.select445, %629 ]
  %632 = trunc nuw i8 %.13 to i1
  br i1 %632, label %633, label %637

633:                                              ; preds = %631
  %634 = getelementptr inbounds i8, ptr %68, i64 18260
  %635 = load i32, ptr %634, align 4, !tbaa !110
  %.not435 = icmp eq i32 %635, 0
  br i1 %.not435, label %637, label %636

636:                                              ; preds = %633
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %635)
  br label %637

637:                                              ; preds = %636, %633, %631
  br i1 %81, label %638, label %639

638:                                              ; preds = %637
  store i32 0, ptr %79, align 8, !tbaa !42
  br label %639

639:                                              ; preds = %638, %637
  call void @_ZN5ImGui5PopIDEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #14
  call void @llvm.lifetime.end.p0(i64 28, ptr nonnull %38) #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 [ %632, %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 #4

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

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

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 #4

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 = { 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 #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 179}
!10 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !11, i64 8, !11, i64 12, !6, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !12, i64 72, !13, i64 80, !13, i64 84, !13, i64 88, !13, i64 92, !13, i64 96, !13, i64 100, !13, i64 104, !13, i64 108, !11, i64 112, !11, i64 116, !11, i64 120, !12, i64 124, !12, i64 132, !12, i64 140, !12, i64 148, !12, i64 156, !12, i64 164, !14, i64 172, !14, i64 173, !14, i64 174, !14, i64 175, !14, i64 176, !14, i64 177, !14, i64 178, !14, i64 179, !14, i64 180, !14, i64 181, !14, i64 182, !14, i64 183, !14, i64 184, !7, i64 185, !15, i64 186, !15, i64 188, !15, i64 190, !15, i64 192, !15, i64 194, !11, i64 196, !7, i64 200, !7, i64 201, !7, i64 202, !14, i64 203, !11, i64 204, !7, i64 208, !7, i64 209, !7, i64 210, !7, i64 211, !11, i64 212, !11, i64 213, !11, i64 214, !12, i64 216, !12, i64 224, !16, i64 232, !17, i64 248, !23, i64 480, !23, i64 496, !23, i64 512, !23, i64 528, !23, i64 544, !23, i64 560, !23, i64 576, !24, i64 592, !24, i64 596, !11, i64 600, !13, i64 604, !13, i64 608, !25, i64 616, !27, i64 632, !13, i64 648, !11, i64 652, !6, i64 656, !28, i64 664, !6, i64 864, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !7, i64 920, !7, i64 928, !11, i64 960, !11, i64 964, !11, i64 968, !14, i64 972}
!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, !14, i64 64, !14, i64 65, !18, i64 68, !18, i64 72, !18, i64 76, !12, i64 80, !19, i64 88, !15, i64 92, !15, i64 94, !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 656}
!42 = !{!43, !11, i64 23264}
!43 = !{!"_ZTS12ImGuiContext", !14, i64 0, !14, i64 1, !44, i64 8, !45, i64 14272, !45, i64 14288, !46, i64 14304, !6, i64 15376, !13, i64 15384, !13, i64 15388, !47, i64 15392, !48, i64 15920, !11, i64 15928, !11, i64 15932, !11, i64 15936, !14, i64 15940, !14, i64 15941, !14, i64 15942, !14, i64 15943, !14, i64 15944, !6, i64 15952, !21, i64 15960, !21, i64 15976, !21, i64 15992, !49, i64 16008, !25, i64 16024, !11, i64 16040, !12, i64 16044, !6, i64 16056, !6, i64 16064, !6, i64 16072, !6, i64 16080, !6, i64 16088, !12, i64 16096, !11, i64 16104, !13, i64 16108, !12, i64 16112, !12, i64 16120, !11, i64 16128, !11, i64 16132, !11, i64 16136, !14, i64 16140, !14, i64 16141, !13, i64 16144, !13, i64 16148, !11, i64 16152, !11, i64 16156, !13, i64 16160, !14, i64 16164, !14, i64 16165, !14, i64 16166, !14, i64 16167, !14, i64 16168, !14, i64 16169, !12, i64 16172, !6, i64 16184, !50, i64 16192, !11, i64 16196, !11, i64 16200, !14, i64 16204, !14, i64 16205, !6, i64 16208, !11, i64 16216, !13, i64 16220, !7, i64 16224, !51, i64 17904, !11, i64 18216, !14, i64 18220, !11, i64 18224, !11, i64 18228, !11, i64 18232, !11, i64 18236, !53, i64 18240, !54, i64 18260, !55, i64 18320, !56, i64 18432, !57, i64 18448, !58, i64 18464, !16, i64 18480, !59, i64 18496, !60, i64 18512, !61, i64 18528, !61, i64 18544, !11, i64 18560, !62, i64 18568, !6, i64 18584, !11, i64 18592, !11, i64 18596, !11, i64 18600, !11, i64 18604, !11, i64 18608, !11, i64 18612, !11, i64 18616, !11, i64 18620, !11, i64 18624, !11, i64 18628, !11, i64 18632, !11, i64 18636, !50, i64 18640, !19, i64 18644, !14, i64 18648, !14, i64 18649, !14, i64 18650, !14, i64 18651, !14, i64 18652, !14, i64 18653, !14, i64 18654, !11, i64 18656, !23, i64 18660, !14, i64 18676, !14, i64 18677, !14, i64 18678, !11, i64 18680, !11, i64 18684, !11, i64 18688, !11, i64 18692, !11, i64 18696, !11, i64 18700, !23, i64 18704, !23, i64 18720, !11, i64 18736, !11, i64 18740, !11, i64 18744, !63, i64 18752, !63, i64 18800, !63, i64 18848, !63, i64 18896, !11, i64 18944, !11, i64 18948, !6, i64 18952, !6, i64 18960, !6, i64 18968, !13, i64 18976, !13, i64 18980, !14, i64 18984, !12, i64 18988, !12, i64 18996, !13, i64 19004, !11, i64 19008, !14, i64 19012, !14, i64 19013, !14, i64 19014, !11, i64 19016, !11, i64 19020, !11, i64 19024, !64, i64 19032, !23, i64 19096, !11, i64 19112, !11, i64 19116, !13, i64 19120, !11, i64 19124, !11, i64 19128, !11, i64 19132, !11, i64 19136, !65, i64 19144, !7, i64 19160, !11, i64 19176, !66, i64 19184, !6, i64 19200, !11, i64 19208, !67, i64 19216, !68, i64 19232, !22, i64 19272, !38, i64 19288, !6, i64 19304, !70, i64 19312, !72, i64 19352, !73, i64 19368, !11, i64 19384, !11, i64 19388, !13, i64 19392, !13, i64 19396, !12, i64 19400, !74, i64 19408, !78, i64 23136, !11, i64 23256, !11, i64 23260, !11, i64 23264, !11, i64 23268, !13, i64 23272, !13, i64 23276, !11, i64 23280, !36, i64 23284, !80, i64 23300, !13, i64 23348, !13, i64 23352, !14, i64 23356, !14, i64 23357, !13, i64 23360, !13, i64 23364, !13, i64 23368, !13, i64 23372, !15, i64 23376, !15, i64 23378, !75, i64 23384, !16, i64 23400, !81, i64 23416, !81, i64 23432, !7, i64 23448, !14, i64 23449, !13, i64 23452, !82, i64 23456, !83, i64 23472, !84, i64 23488, !85, i64 23504, !86, i64 23520, !11, i64 23536, !7, i64 23544, !14, i64 23600, !87, i64 23604, !6, i64 23608, !82, i64 23616, !6, i64 23632, !6, i64 23640, !13, i64 23648, !14, i64 23652, !11, i64 23656, !11, i64 23660, !11, i64 23664, !11, i64 23668, !82, i64 23672, !88, i64 23688, !7, i64 23712, !14, i64 23713, !7, i64 23714, !11, i64 23716, !89, i64 23720, !90, i64 23736, !7, i64 23776, !11, i64 24016, !11, i64 24020, !13, i64 24024, !11, i64 24028, !11, i64 24032, !11, i64 24036, !75, i64 24040}
!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, !13, i64 52, !13, i64 56, !13, i64 60, !13, i64 64, !6, i64 72, !6, i64 80, !13, i64 88, !14, i64 92, !6, i64 96, !12, i64 104, !14, i64 112, !14, i64 113, !14, i64 114, !14, i64 115, !14, i64 116, !14, i64 117, !14, i64 118, !14, i64 119, !13, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !14, i64 208, !14, i64 209, !14, i64 210, !14, i64 211, !14, i64 212, !14, i64 213, !14, i64 214, !13, i64 216, !11, i64 220, !11, i64 224, !11, i64 228, !11, i64 232, !11, i64 236, !12, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !12, i64 3572, !7, i64 3580, !13, i64 3588, !13, i64 3592, !14, i64 3596, !14, i64 3597, !14, i64 3598, !14, i64 3599, !11, i64 3600, !7, i64 3604, !14, i64 14036, !12, i64 14040, !7, i64 14048, !7, i64 14088, !7, i64 14128, !7, i64 14133, !7, i64 14138, !7, i64 14148, !7, i64 14158, !7, i64 14163, !7, i64 14168, !7, i64 14176, !7, i64 14196, !7, i64 14216, !13, i64 14236, !14, i64 14240, !14, i64 14241, !7, i64 14242, !14, i64 14243, !15, i64 14244, !30, i64 14248}
!45 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !11, i64 0, !11, i64 4, !6, i64 8}
!46 = !{!"_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, !13, i64 168, !12, i64 172, !12, i64 180, !12, i64 188, !12, i64 196, !13, i64 204, !14, i64 208, !14, i64 209, !14, i64 210, !13, i64 212, !13, i64 216, !7, i64 220}
!47 = !{!"_ZTS20ImDrawListSharedData", !12, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !36, i64 28, !11, i64 44, !34, i64 48, !7, i64 64, !13, i64 448, !7, i64 452, !6, i64 520}
!48 = !{!"double", !7, i64 0}
!49 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!50 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!51 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !52, i64 280, !52, i64 296}
!52 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!53 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !13, i64 4, !11, i64 8, !11, i64 12, !14, i64 16}
!54 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !23, i64 12, !23, i64 28, !23, i64 44}
!55 = !{!"_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}
!56 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!59 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!62 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!63 = !{!"_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}
!64 = !{!"_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}
!65 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS6ImPoolI10ImGuiTableE", !69, i64 0, !25, i64 16, !11, i64 32, !11, i64 36}
!69 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!70 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !71, i64 0, !25, i64 16, !11, i64 32, !11, i64 36}
!71 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!74 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !30, i64 24, !75, i64 40, !75, i64 56, !14, i64 72, !11, i64 76, !13, i64 80, !76, i64 84, !13, i64 3712, !14, i64 3716, !14, i64 3717, !14, i64 3718, !11, i64 3720}
!75 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!76 = !{!"_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, !77, i64 32}
!77 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !15, i64 3582, !15, i64 3584, !11, i64 3588, !11, i64 3592}
!78 = !{!"_ZTS6ImFont", !22, i64 0, !13, i64 16, !13, i64 20, !30, i64 24, !79, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !15, i64 80, !15, i64 82, !15, i64 84, !15, i64 86, !13, i64 88, !13, i64 92, !14, i64 96, !13, i64 100, !13, i64 104, !13, i64 108, !11, i64 112, !7, i64 116}
!79 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!80 = !{!"_ZTS21ImGuiComboPreviewData", !23, i64 0, !12, i64 16, !12, i64 24, !12, i64 32, !13, i64 40, !11, i64 44}
!81 = !{!"_ZTS20ImGuiPlatformImeData", !14, i64 0, !12, i64 4, !13, i64 12}
!82 = !{!"_ZTS15ImGuiTextBuffer", !75, i64 0}
!83 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!84 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !75, i64 0}
!85 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !75, i64 0}
!86 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!87 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!88 = !{!"_ZTS14ImGuiTextIndex", !59, i64 0, !11, i64 16}
!89 = !{!"_ZTS18ImGuiMetricsConfig", !14, i64 0, !14, i64 1, !14, i64 2, !14, i64 3, !14, i64 4, !14, i64 5, !14, i64 6, !14, i64 7, !11, i64 8, !11, i64 12}
!90 = !{!"_ZTS14ImGuiStackTool", !11, i64 0, !11, i64 4, !11, i64 8, !91, i64 16, !14, i64 32, !13, i64 36}
!91 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !11, i64 0, !11, i64 4, !6, i64 8}
!92 = !{!11, !11, i64 0}
!93 = !{!43, !11, i64 23260}
!94 = !{!46, !13, i64 84}
!95 = !{!13, !13, i64 0}
!96 = !{!12, !13, i64 4}
!97 = !{!12, !13, i64 0}
!98 = !{!44, !13, i64 3572}
!99 = !{!44, !13, i64 3576}
!100 = !{!43, !13, i64 23272}
!101 = !{!43, !13, i64 23276}
!102 = !{!43, !11, i64 23268}
!103 = !{!43, !11, i64 23280}
!104 = !{!43, !11, i64 16152}
!105 = !{!43, !14, i64 16165}
!106 = !{!46, !13, i64 0}
!107 = !{!28, !11, i64 32}
!108 = distinct !{!108, !109}
!109 = !{!"llvm.loop.mustprogress"}
!110 = !{!43, !11, i64 18260}


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