; LLVM IR from JawherBenjeddou/GraphicsRenderer :: Graphics/vendor/ImGui/imgui.ll (ZN5ImGui8NewFrameEv)

; 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.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiContext = type { i8, i8, %struct.ImGuiIO, %struct.ImGuiPlatformIO, %struct.ImGuiStyle, i32, i32, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i32, i8, i8, i8, i8, i8, ptr, %struct.ImVector.3, %struct.ImVector.3, i32, i32, %struct.ImVector.4, %struct.ImVector.4, %struct.ImVector.4, %struct.ImVector.5, %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.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImVector.12, %struct.ImVector.13, %struct.ImVector.14, %struct.ImVector.14, i32, %struct.ImVector.15, float, ptr, ptr, ptr, i32, %struct.ImGuiPlatformMonitor, i32, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, %struct.ImGuiNavItemData, 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, i8, i8, i8, i32, i32, i32, %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.16, [16 x i8], i32, %struct.ImVector.17, ptr, i32, %struct.ImVector.18, %struct.ImPool, %struct.ImVector.20, %struct.ImVector.21, ptr, %struct.ImPool.22, %struct.ImVector.24, %struct.ImVector.25, i32, i32, float, float, i32, i32, i32, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %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.26, %struct.ImVector.11, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i32, i8, [3 x i8], %struct.ImGuiDockContext, ptr, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.30, %struct.ImChunkStream, %struct.ImChunkStream.31, %struct.ImVector.32, i32, [9 x ptr], i8, i32, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i8, i8, i8, i8, i8, i32, %struct.ImGuiMetricsConfig, %struct.ImGuiStackTool, ptr, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.26 }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, float, float, float, float, float, float, i8, i8, i8, i8, 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], ptr, %struct.ImVec2, [5 x i8], float, float, i32, i32, 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], i8, [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], float, i8, i8, i8, i8, i16, %struct.ImVector }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiPlatformIO = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVector.0, %struct.ImVector.1 }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = 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, float, i8, i8, i8, float, float, [55 x %struct.ImVec4], float, float, float, i32, i32 }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, %struct.ImVector.2, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.6 }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [140 x i16], %struct.ImVector.7, %struct.ImVector.7 }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, 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, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, %struct.ImRect, ptr, ptr, float, i32, i32, %struct.ImGuiWindowClass, %struct.ImVec2 }
%struct.ImGuiWindowClass = type <{ i32, i32, i32, i32, i32, i32, i8, i8, [2 x i8] }>
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImGuiPlatformMonitor = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, 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.16 = type { i32, i32, ptr }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.19, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImPool.22 = type { %struct.ImVector.23, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, i32, i32, i32, [4 x i8], %struct.ImVector, %struct.ImVector.26, %struct.ImVector.26, 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.ImGuiInputTextDeactivatedState = type { i32, %struct.ImVector.26 }
%struct.ImFont = type <{ %struct.ImVector.20, float, float, %struct.ImVector, %struct.ImVector.27, 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.27 = type { i32, i32, ptr }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImGuiDockContext = type <{ %struct.ImGuiStorage, %struct.ImVector.28, %struct.ImVector.29, i8, [7 x i8] }>
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.26 }
%struct.ImChunkStream.31 = type { %struct.ImVector.26 }
%struct.ImVector.32 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.26 }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.12, i32, [4 x i8] }>
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiStackTool = type { i32, i32, i32, %struct.ImVector.33, i8, float }
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImGuiContextHook = type { i32, i32, i32, ptr, ptr }
%struct.ImFontAtlas = type <{ i32, [4 x i8], ptr, i32, i32, i8, [7 x i8], ptr, i8, i8, [6 x i8], ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.10, %struct.ImVector.47, %struct.ImVector.48, [64 x %struct.ImVec4], ptr, i32, i32, i32, [4 x i8] }>
%struct.ImVector.47 = type { i32, i32, ptr }
%struct.ImVector.48 = type { i32, i32, ptr }
%struct.ImGuiViewport = type <{ i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, [4 x i8] }>
%struct.ImGuiViewportP = type { %struct.ImGuiViewport.base, ptr, i32, i32, i32, i32, %struct.ImVec2, float, float, i8, i16, [2 x i32], [2 x ptr], %struct.ImDrawData, %struct.ImDrawDataBuilder, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2 }
%struct.ImGuiViewport.base = type <{ i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8 }>
%struct.ImDrawData = type { i8, i32, i32, i32, %struct.ImVector.49, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, ptr }
%struct.ImVector.49 = type { i32, i32, ptr }
%struct.ImDrawDataBuilder = type { [2 x ptr], %struct.ImVector.49 }
%struct.ImGuiWindow = type { ptr, ptr, i32, i32, i32, %struct.ImGuiWindowClass, ptr, i32, %struct.ImVec2, i32, %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, 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, i8, i16, i16, i16, i16, i16, i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.11, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, i32, float, float, %struct.ImGuiStorage, %struct.ImVector.36, float, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], [2 x %struct.ImVec2], i32, i32, i32, i8, i8, i16, %struct.ImGuiWindowDockStyle, ptr, ptr, i32, i32, %struct.ImRect }
%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, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.4, ptr, ptr, i32, i32, i32, float, float, %struct.ImVector.20, %struct.ImVector.20 }
%struct.ImVec1 = type { float }
%struct.ImGuiMenuColumns = type <{ i32, i32, i16, i16, i16, i16, i16, [4 x i16], [2 x i8] }>
%struct.ImVec2ih = type { i16, i16 }
%struct.ImVector.36 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.37, %struct.ImVector, %struct.ImVector.38, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.39, %struct.ImVector.40, %struct.ImVector.2, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImVector.40 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.21 }
%struct.ImGuiWindowDockStyle = type { [6 x i32] }
%struct.ImGuiTableTempData = type <{ i32, float, %struct.ImVec2, %struct.ImDrawListSplitter, %struct.ImRect, %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec1, float, i32, [4 x i8] }>

@GImGui = external dso_local global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [2 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv = external hidden unnamed_addr constant [23 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [42 x i8], align 1

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK14ImGuiViewportP11GetMainRectEv(ptr noundef nonnull align 8 dereferenceable(320)) #7 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui29GcCompactTransientMiscBuffersEv() #7

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13ClearActiveIDEv() #7

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui31UpdateMouseMovingWindowNewFrameEv() #8

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui34UpdateHoveredWindowAndCaptureFlagsEv() #8

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui8NewFrameEv() #8 {
  %1 = alloca ptr, align 8
  %2 = alloca i32, align 4
  %3 = alloca %struct.ImRect, align 4
  %4 = alloca i32, align 4
  %5 = alloca %struct.ImRect, align 4
  %6 = alloca %struct.ImVec4, align 4
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca float, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca %struct.ImVec2, align 4
  %16 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %17 = icmp ne ptr %16, null
  br i1 %17, label %18, label %19

18:                                               ; preds = %0
  br label %19

19:                                               ; preds = %18, %0
  %20 = phi i1 [ false, %0 ], [ true, %18 ]
  br i1 %20, label %21, label %22

21:                                               ; preds = %19
  br label %24

22:                                               ; preds = %19
  call void @__assert_fail(ptr noundef @.str.28, ptr noundef @.str.3, i32 noundef 4693, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

23:                                               ; No predecessors!
  br label %24

24:                                               ; preds = %23, %21
  call void @llvm.lifetime.start.p0(i64 8, ptr %1) #11
  %25 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %25, ptr %1, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #11
  %26 = load ptr, ptr %1, align 8, !tbaa !5
  %27 = getelementptr inbounds %struct.ImGuiContext, ptr %26, i32 0, i32 225
  %28 = getelementptr inbounds %struct.ImVector.32, ptr %27, i32 0, i32 0
  %29 = load i32, ptr %28, align 8, !tbaa !9
  %30 = sub nsw i32 %29, 1
  store i32 %30, ptr %2, align 4, !tbaa !85
  br label %31

31:                                               ; preds = %52, %24
  %32 = load i32, ptr %2, align 4, !tbaa !85
  %33 = icmp sge i32 %32, 0
  br i1 %33, label %35, label %34

34:                                               ; preds = %31
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #11
  br label %55

35:                                               ; preds = %31
  %36 = load ptr, ptr %1, align 8, !tbaa !5
  %37 = getelementptr inbounds %struct.ImGuiContext, ptr %36, i32 0, i32 225
  %38 = load i32, ptr %2, align 4, !tbaa !85
  %39 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN8ImVectorI16ImGuiContextHookEixEi(ptr noundef nonnull align 8 dereferenceable(16) %37, i32 noundef %38)
  %40 = getelementptr inbounds %struct.ImGuiContextHook, ptr %39, i32 0, i32 1
  %41 = load i32, ptr %40, align 4, !tbaa !86
  %42 = icmp eq i32 %41, 7
  br i1 %42, label %43, label %51

43:                                               ; preds = %35
  %44 = load ptr, ptr %1, align 8, !tbaa !5
  %45 = getelementptr inbounds %struct.ImGuiContext, ptr %44, i32 0, i32 225
  %46 = load ptr, ptr %1, align 8, !tbaa !5
  %47 = getelementptr inbounds %struct.ImGuiContext, ptr %46, i32 0, i32 225
  %48 = load i32, ptr %2, align 4, !tbaa !85
  %49 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN8ImVectorI16ImGuiContextHookEixEi(ptr noundef nonnull align 8 dereferenceable(16) %47, i32 noundef %48)
  %50 = call noundef ptr @_ZN8ImVectorI16ImGuiContextHookE5eraseEPKS0_(ptr noundef nonnull align 8 dereferenceable(16) %45, ptr noundef %49)
  br label %51

51:                                               ; preds = %43, %35
  br label %52

52:                                               ; preds = %51
  %53 = load i32, ptr %2, align 4, !tbaa !85
  %54 = add nsw i32 %53, -1
  store i32 %54, ptr %2, align 4, !tbaa !85
  br label %31, !llvm.loop !89

55:                                               ; preds = %34
  %56 = load ptr, ptr %1, align 8, !tbaa !5
  call void @_ZN5ImGui16CallContextHooksEP12ImGuiContext20ImGuiContextHookType(ptr noundef %56, i32 noundef 0)
  %57 = load ptr, ptr %1, align 8, !tbaa !5
  %58 = getelementptr inbounds %struct.ImGuiContext, ptr %57, i32 0, i32 5
  %59 = load i32, ptr %58, align 4, !tbaa !91
  %60 = load ptr, ptr %1, align 8, !tbaa !5
  %61 = getelementptr inbounds %struct.ImGuiContext, ptr %60, i32 0, i32 6
  store i32 %59, ptr %61, align 8, !tbaa !92
  call void @_ZN5ImGuiL30ErrorCheckNewFrameSanityChecksEv()
  %62 = load ptr, ptr %1, align 8, !tbaa !5
  %63 = getelementptr inbounds %struct.ImGuiContext, ptr %62, i32 0, i32 2
  %64 = getelementptr inbounds %struct.ImGuiIO, ptr %63, i32 0, i32 0
  %65 = load i32, ptr %64, align 8, !tbaa !93
  %66 = load ptr, ptr %1, align 8, !tbaa !5
  %67 = getelementptr inbounds %struct.ImGuiContext, ptr %66, i32 0, i32 5
  store i32 %65, ptr %67, align 4, !tbaa !91
  call void @_ZN5ImGuiL14UpdateSettingsEv()
  %68 = load ptr, ptr %1, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.ImGuiContext, ptr %68, i32 0, i32 2
  %70 = getelementptr inbounds %struct.ImGuiIO, ptr %69, i32 0, i32 3
  %71 = load float, ptr %70, align 8, !tbaa !94
  %72 = fpext float %71 to double
  %73 = load ptr, ptr %1, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.ImGuiContext, ptr %73, i32 0, i32 11
  %75 = load double, ptr %74, align 8, !tbaa !95
  %76 = fadd double %75, %72
  store double %76, ptr %74, align 8, !tbaa !95
  %77 = load ptr, ptr %1, align 8, !tbaa !5
  %78 = getelementptr inbounds %struct.ImGuiContext, ptr %77, i32 0, i32 16
  store i8 1, ptr %78, align 8, !tbaa !96
  %79 = load ptr, ptr %1, align 8, !tbaa !5
  %80 = getelementptr inbounds %struct.ImGuiContext, ptr %79, i32 0, i32 12
  %81 = load i32, ptr %80, align 8, !tbaa !97
  %82 = add nsw i32 %81, 1
  store i32 %82, ptr %80, align 8, !tbaa !97
  %83 = load ptr, ptr %1, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.ImGuiContext, ptr %83, i32 0, i32 209
  store i16 0, ptr %84, align 2, !tbaa !98
  %85 = load ptr, ptr %1, align 8, !tbaa !5
  %86 = getelementptr inbounds %struct.ImGuiContext, ptr %85, i32 0, i32 31
  store i32 0, ptr %86, align 8, !tbaa !99
  %87 = load ptr, ptr %1, align 8, !tbaa !5
  %88 = getelementptr inbounds %struct.ImGuiContext, ptr %87, i32 0, i32 211
  call void @_ZN8ImVectorIjE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %88, i32 noundef 0)
  %89 = load ptr, ptr %1, align 8, !tbaa !5
  %90 = getelementptr inbounds %struct.ImGuiContext, ptr %89, i32 0, i32 2
  %91 = getelementptr inbounds %struct.ImGuiIO, ptr %90, i32 0, i32 3
  %92 = load float, ptr %91, align 8, !tbaa !94
  %93 = load ptr, ptr %1, align 8, !tbaa !5
  %94 = getelementptr inbounds %struct.ImGuiContext, ptr %93, i32 0, i32 251
  %95 = load ptr, ptr %1, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.ImGuiContext, ptr %95, i32 0, i32 252
  %97 = load i32, ptr %96, align 8, !tbaa !100
  %98 = sext i32 %97 to i64
  %99 = getelementptr inbounds [60 x float], ptr %94, i64 0, i64 %98
  %100 = load float, ptr %99, align 4, !tbaa !101
  %101 = fsub float %92, %100
  %102 = load ptr, ptr %1, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.ImGuiContext, ptr %102, i32 0, i32 254
  %104 = load float, ptr %103, align 8, !tbaa !102
  %105 = fadd float %104, %101
  store float %105, ptr %103, align 8, !tbaa !102
  %106 = load ptr, ptr %1, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.ImGuiContext, ptr %106, i32 0, i32 2
  %108 = getelementptr inbounds %struct.ImGuiIO, ptr %107, i32 0, i32 3
  %109 = load float, ptr %108, align 8, !tbaa !94
  %110 = load ptr, ptr %1, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.ImGuiContext, ptr %110, i32 0, i32 251
  %112 = load ptr, ptr %1, align 8, !tbaa !5
  %113 = getelementptr inbounds %struct.ImGuiContext, ptr %112, i32 0, i32 252
  %114 = load i32, ptr %113, align 8, !tbaa !100
  %115 = sext i32 %114 to i64
  %116 = getelementptr inbounds [60 x float], ptr %111, i64 0, i64 %115
  store float %109, ptr %116, align 4, !tbaa !101
  %117 = load ptr, ptr %1, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct.ImGuiContext, ptr %117, i32 0, i32 252
  %119 = load i32, ptr %118, align 8, !tbaa !100
  %120 = add nsw i32 %119, 1
  %121 = srem i32 %120, 60
  %122 = load ptr, ptr %1, align 8, !tbaa !5
  %123 = getelementptr inbounds %struct.ImGuiContext, ptr %122, i32 0, i32 252
  store i32 %121, ptr %123, align 8, !tbaa !100
  %124 = load ptr, ptr %1, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.ImGuiContext, ptr %124, i32 0, i32 253
  %126 = load i32, ptr %125, align 4, !tbaa !103
  %127 = add nsw i32 %126, 1
  %128 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %127, i32 noundef 60)
  %129 = load ptr, ptr %1, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.ImGuiContext, ptr %129, i32 0, i32 253
  store i32 %128, ptr %130, align 4, !tbaa !103
  %131 = load ptr, ptr %1, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.ImGuiContext, ptr %131, i32 0, i32 254
  %133 = load float, ptr %132, align 8, !tbaa !102
  %134 = fcmp ogt float %133, 0.000000e+00
  br i1 %134, label %135, label %145

135:                                              ; preds = %55
  %136 = load ptr, ptr %1, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.ImGuiContext, ptr %136, i32 0, i32 254
  %138 = load float, ptr %137, align 8, !tbaa !102
  %139 = load ptr, ptr %1, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.ImGuiContext, ptr %139, i32 0, i32 253
  %141 = load i32, ptr %140, align 4, !tbaa !103
  %142 = sitofp i32 %141 to float
  %143 = fdiv float %138, %142
  %144 = fdiv float 1.000000e+00, %143
  br label %146

145:                                              ; preds = %55
  br label %146

146:                                              ; preds = %145, %135
  %147 = phi float [ %144, %135 ], [ 0x47EFFFFFE0000000, %145 ]
  %148 = load ptr, ptr %1, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.ImGuiContext, ptr %148, i32 0, i32 2
  %150 = getelementptr inbounds %struct.ImGuiIO, ptr %149, i32 0, i32 56
  store float %147, ptr %150, align 8, !tbaa !104
  %151 = load ptr, ptr %1, align 8, !tbaa !5
  %152 = getelementptr inbounds %struct.ImGuiContext, ptr %151, i32 0, i32 23
  call void @_ZN8ImVectorI15ImGuiInputEventE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %152, i32 noundef 0)
  %153 = load ptr, ptr %1, align 8, !tbaa !5
  %154 = getelementptr inbounds %struct.ImGuiContext, ptr %153, i32 0, i32 2
  %155 = getelementptr inbounds %struct.ImGuiIO, ptr %154, i32 0, i32 23
  %156 = load i8, ptr %155, align 2, !tbaa !105, !range !106, !noundef !107
  %157 = trunc i8 %156 to i1
  call void @_ZN5ImGui17UpdateInputEventsEb(i1 noundef zeroext %157)
  call void @_ZN5ImGuiL23UpdateViewportsNewFrameEv()
  %158 = load ptr, ptr %1, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.ImGuiContext, ptr %158, i32 0, i32 2
  %160 = getelementptr inbounds %struct.ImGuiIO, ptr %159, i32 0, i32 8
  %161 = load ptr, ptr %160, align 8, !tbaa !108
  %162 = getelementptr inbounds %struct.ImFontAtlas, ptr %161, i32 0, i32 5
  store i8 1, ptr %162, align 8, !tbaa !109
  %163 = call noundef ptr @_ZN5ImGui14GetDefaultFontEv()
  call void @_ZN5ImGui14SetCurrentFontEP6ImFont(ptr noundef %163)
  %164 = load ptr, ptr %1, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.ImGuiContext, ptr %164, i32 0, i32 7
  %166 = load ptr, ptr %165, align 8, !tbaa !113
  %167 = call noundef zeroext i1 @_ZNK6ImFont8IsLoadedEv(ptr noundef nonnull align 8 dereferenceable(118) %166)
  br i1 %167, label %168, label %169

168:                                              ; preds = %146
  br label %171

169:                                              ; preds = %146
  call void @__assert_fail(ptr noundef @.str.113, ptr noundef @.str.3, i32 noundef 4737, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

170:                                              ; No predecessors!
  br label %171

171:                                              ; preds = %170, %168
  call void @llvm.lifetime.start.p0(i64 16, ptr %3) #11
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %3, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000, float noundef 0xC7EFFFFFE0000000, float noundef 0xC7EFFFFFE0000000)
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #11
  store i32 0, ptr %4, align 4, !tbaa !85
  br label %172

172:                                              ; preds = %191, %171
  %173 = load i32, ptr %4, align 4, !tbaa !85
  %174 = load ptr, ptr %1, align 8, !tbaa !5
  %175 = getelementptr inbounds %struct.ImGuiContext, ptr %174, i32 0, i32 89
  %176 = getelementptr inbounds %struct.ImVector.15, ptr %175, i32 0, i32 0
  %177 = load i32, ptr %176, align 8, !tbaa !114
  %178 = icmp slt i32 %173, %177
  br i1 %178, label %180, label %179

179:                                              ; preds = %172
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #11
  br label %194

180:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 16, ptr %5) #11
  %181 = load ptr, ptr %1, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.ImGuiContext, ptr %181, i32 0, i32 89
  %183 = load i32, ptr %4, align 4, !tbaa !85
  %184 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %182, i32 noundef %183)
  %185 = load ptr, ptr %184, align 8, !tbaa !5
  %186 = call { <2 x float>, <2 x float> } @_ZNK14ImGuiViewportP11GetMainRectEv(ptr noundef nonnull align 8 dereferenceable(320) %185)
  %187 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %5, i32 0, i32 0
  %188 = extractvalue { <2 x float>, <2 x float> } %186, 0
  store <2 x float> %188, ptr %187, align 4
  %189 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %5, i32 0, i32 1
  %190 = extractvalue { <2 x float>, <2 x float> } %186, 1
  store <2 x float> %190, ptr %189, align 4
  call void @_ZN6ImRect3AddERKS_(ptr noundef nonnull align 4 dereferenceable(16) %3, ptr noundef nonnull align 4 dereferenceable(16) %5)
  call void @llvm.lifetime.end.p0(i64 16, ptr %5) #11
  br label %191

191:                                              ; preds = %180
  %192 = load i32, ptr %4, align 4, !tbaa !85
  %193 = add nsw i32 %192, 1
  store i32 %193, ptr %4, align 4, !tbaa !85
  br label %172, !llvm.loop !115

194:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 16, ptr %6) #11
  %195 = call { <2 x float>, <2 x float> } @_ZNK6ImRect6ToVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %3)
  %196 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %6, i32 0, i32 0
  %197 = extractvalue { <2 x float>, <2 x float> } %195, 0
  store <2 x float> %197, ptr %196, align 4
  %198 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %6, i32 0, i32 1
  %199 = extractvalue { <2 x float>, <2 x float> } %195, 1
  store <2 x float> %199, ptr %198, align 4
  %200 = load ptr, ptr %1, align 8, !tbaa !5
  %201 = getelementptr inbounds %struct.ImGuiContext, ptr %200, i32 0, i32 10
  %202 = getelementptr inbounds %struct.ImDrawListSharedData, ptr %201, i32 0, i32 5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %202, ptr align 4 %6, i64 16, i1 false), !tbaa.struct !116
  call void @llvm.lifetime.end.p0(i64 16, ptr %6) #11
  %203 = load ptr, ptr %1, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.ImGuiContext, ptr %203, i32 0, i32 4
  %205 = getelementptr inbounds %struct.ImGuiStyle, ptr %204, i32 0, i32 42
  %206 = load float, ptr %205, align 8, !tbaa !117
  %207 = load ptr, ptr %1, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.ImGuiContext, ptr %207, i32 0, i32 10
  %209 = getelementptr inbounds %struct.ImDrawListSharedData, ptr %208, i32 0, i32 3
  store float %206, ptr %209, align 4, !tbaa !118
  %210 = load ptr, ptr %1, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.ImGuiContext, ptr %210, i32 0, i32 10
  %212 = load ptr, ptr %1, align 8, !tbaa !5
  %213 = getelementptr inbounds %struct.ImGuiContext, ptr %212, i32 0, i32 4
  %214 = getelementptr inbounds %struct.ImGuiStyle, ptr %213, i32 0, i32 43
  %215 = load float, ptr %214, align 4, !tbaa !119
  call void @_ZN20ImDrawListSharedData29SetCircleTessellationMaxErrorEf(ptr noundef nonnull align 8 dereferenceable(528) %211, float noundef %215)
  %216 = load ptr, ptr %1, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.ImGuiContext, ptr %216, i32 0, i32 10
  %218 = getelementptr inbounds %struct.ImDrawListSharedData, ptr %217, i32 0, i32 6
  store i32 0, ptr %218, align 4, !tbaa !120
  %219 = load ptr, ptr %1, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.ImGuiContext, ptr %219, i32 0, i32 4
  %221 = getelementptr inbounds %struct.ImGuiStyle, ptr %220, i32 0, i32 39
  %222 = load i8, ptr %221, align 4, !tbaa !121, !range !106, !noundef !107
  %223 = trunc i8 %222 to i1
  br i1 %223, label %224, label %230

224:                                              ; preds = %194
  %225 = load ptr, ptr %1, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.ImGuiContext, ptr %225, i32 0, i32 10
  %227 = getelementptr inbounds %struct.ImDrawListSharedData, ptr %226, i32 0, i32 6
  %228 = load i32, ptr %227, align 4, !tbaa !120
  %229 = or i32 %228, 1
  store i32 %229, ptr %227, align 4, !tbaa !120
  br label %230

230:                                              ; preds = %224, %194
  %231 = load ptr, ptr %1, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.ImGuiContext, ptr %231, i32 0, i32 4
  %233 = getelementptr inbounds %struct.ImGuiStyle, ptr %232, i32 0, i32 40
  %234 = load i8, ptr %233, align 1, !tbaa !122, !range !106, !noundef !107
  %235 = trunc i8 %234 to i1
  br i1 %235, label %236, label %252

236:                                              ; preds = %230
  %237 = load ptr, ptr %1, align 8, !tbaa !5
  %238 = getelementptr inbounds %struct.ImGuiContext, ptr %237, i32 0, i32 7
  %239 = load ptr, ptr %238, align 8, !tbaa !113
  %240 = getelementptr inbounds %struct.ImFont, ptr %239, i32 0, i32 6
  %241 = load ptr, ptr %240, align 8, !tbaa !123
  %242 = getelementptr inbounds %struct.ImFontAtlas, ptr %241, i32 0, i32 0
  %243 = load i32, ptr %242, align 8, !tbaa !124
  %244 = and i32 %243, 4
  %245 = icmp ne i32 %244, 0
  br i1 %245, label %252, label %246

246:                                              ; preds = %236
  %247 = load ptr, ptr %1, align 8, !tbaa !5
  %248 = getelementptr inbounds %struct.ImGuiContext, ptr %247, i32 0, i32 10
  %249 = getelementptr inbounds %struct.ImDrawListSharedData, ptr %248, i32 0, i32 6
  %250 = load i32, ptr %249, align 4, !tbaa !120
  %251 = or i32 %250, 2
  store i32 %251, ptr %249, align 4, !tbaa !120
  br label %252

252:                                              ; preds = %246, %236, %230
  %253 = load ptr, ptr %1, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.ImGuiContext, ptr %253, i32 0, i32 4
  %255 = getelementptr inbounds %struct.ImGuiStyle, ptr %254, i32 0, i32 41
  %256 = load i8, ptr %255, align 2, !tbaa !125, !range !106, !noundef !107
  %257 = trunc i8 %256 to i1
  br i1 %257, label %258, label %264

258:                                              ; preds = %252
  %259 = load ptr, ptr %1, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.ImGuiContext, ptr %259, i32 0, i32 10
  %261 = getelementptr inbounds %struct.ImDrawListSharedData, ptr %260, i32 0, i32 6
  %262 = load i32, ptr %261, align 4, !tbaa !120
  %263 = or i32 %262, 4
  store i32 %263, ptr %261, align 4, !tbaa !120
  br label %264

264:                                              ; preds = %258, %252
  %265 = load ptr, ptr %1, align 8, !tbaa !5
  %266 = getelementptr inbounds %struct.ImGuiContext, ptr %265, i32 0, i32 2
  %267 = getelementptr inbounds %struct.ImGuiIO, ptr %266, i32 0, i32 1
  %268 = load i32, ptr %267, align 4, !tbaa !126
  %269 = and i32 %268, 8
  %270 = icmp ne i32 %269, 0
  br i1 %270, label %271, label %277

271:                                              ; preds = %264
  %272 = load ptr, ptr %1, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.ImGuiContext, ptr %272, i32 0, i32 10
  %274 = getelementptr inbounds %struct.ImDrawListSharedData, ptr %273, i32 0, i32 6
  %275 = load i32, ptr %274, align 4, !tbaa !120
  %276 = or i32 %275, 8
  store i32 %276, ptr %274, align 4, !tbaa !120
  br label %277

277:                                              ; preds = %271, %264
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  store i32 0, ptr %7, align 4, !tbaa !85
  br label %278

278:                                              ; preds = %296, %277
  %279 = load i32, ptr %7, align 4, !tbaa !85
  %280 = load ptr, ptr %1, align 8, !tbaa !5
  %281 = getelementptr inbounds %struct.ImGuiContext, ptr %280, i32 0, i32 89
  %282 = getelementptr inbounds %struct.ImVector.15, ptr %281, i32 0, i32 0
  %283 = load i32, ptr %282, align 8, !tbaa !114
  %284 = icmp slt i32 %279, %283
  br i1 %284, label %286, label %285

285:                                              ; preds = %278
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %299

286:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #11
  %287 = load ptr, ptr %1, align 8, !tbaa !5
  %288 = getelementptr inbounds %struct.ImGuiContext, ptr %287, i32 0, i32 89
  %289 = load i32, ptr %7, align 4, !tbaa !85
  %290 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %288, i32 noundef %289)
  %291 = load ptr, ptr %290, align 8, !tbaa !5
  store ptr %291, ptr %8, align 8, !tbaa !5
  %292 = load ptr, ptr %8, align 8, !tbaa !5
  %293 = getelementptr inbounds %struct.ImGuiViewport, ptr %292, i32 0, i32 8
  store ptr null, ptr %293, align 8, !tbaa !127
  %294 = load ptr, ptr %8, align 8, !tbaa !5
  %295 = getelementptr inbounds %struct.ImGuiViewportP, ptr %294, i32 0, i32 13
  call void @_ZN10ImDrawData5ClearEv(ptr noundef nonnull align 8 dereferenceable(64) %295)
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #11
  br label %296

296:                                              ; preds = %286
  %297 = load i32, ptr %7, align 4, !tbaa !85
  %298 = add nsw i32 %297, 1
  store i32 %298, ptr %7, align 4, !tbaa !85
  br label %278, !llvm.loop !129

299:                                              ; preds = %285
  %300 = load ptr, ptr %1, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.ImGuiContext, ptr %300, i32 0, i32 150
  %302 = load i8, ptr %301, align 8, !tbaa !130, !range !106, !noundef !107
  %303 = trunc i8 %302 to i1
  br i1 %303, label %304, label %318

304:                                              ; preds = %299
  %305 = load ptr, ptr %1, align 8, !tbaa !5
  %306 = getelementptr inbounds %struct.ImGuiContext, ptr %305, i32 0, i32 156
  %307 = getelementptr inbounds %struct.ImGuiPayload, ptr %306, i32 0, i32 2
  %308 = load i32, ptr %307, align 4, !tbaa !131
  %309 = load ptr, ptr %1, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.ImGuiContext, ptr %309, i32 0, i32 50
  %311 = load i32, ptr %310, align 8, !tbaa !132
  %312 = icmp eq i32 %308, %311
  br i1 %312, label %313, label %318

313:                                              ; preds = %304
  %314 = load ptr, ptr %1, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.ImGuiContext, ptr %314, i32 0, i32 156
  %316 = getelementptr inbounds %struct.ImGuiPayload, ptr %315, i32 0, i32 2
  %317 = load i32, ptr %316, align 4, !tbaa !131
  call void @_ZN5ImGui11KeepAliveIDEj(i32 noundef %317)
  br label %318

318:                                              ; preds = %313, %304, %299
  %319 = load ptr, ptr %1, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.ImGuiContext, ptr %319, i32 0, i32 45
  %321 = load i32, ptr %320, align 8, !tbaa !133
  %322 = icmp ne i32 %321, 0
  br i1 %322, label %326, label %323

323:                                              ; preds = %318
  %324 = load ptr, ptr %1, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.ImGuiContext, ptr %324, i32 0, i32 48
  store float 0.000000e+00, ptr %325, align 8, !tbaa !134
  br label %326

326:                                              ; preds = %323, %318
  %327 = load ptr, ptr %1, align 8, !tbaa !5
  %328 = getelementptr inbounds %struct.ImGuiContext, ptr %327, i32 0, i32 45
  %329 = load i32, ptr %328, align 8, !tbaa !133
  %330 = icmp ne i32 %329, 0
  br i1 %330, label %331, label %344

331:                                              ; preds = %326
  %332 = load ptr, ptr %1, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.ImGuiContext, ptr %332, i32 0, i32 44
  %334 = load i32, ptr %333, align 4, !tbaa !135
  %335 = icmp ne i32 %334, 0
  br i1 %335, label %336, label %347

336:                                              ; preds = %331
  %337 = load ptr, ptr %1, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.ImGuiContext, ptr %337, i32 0, i32 50
  %339 = load i32, ptr %338, align 8, !tbaa !132
  %340 = load ptr, ptr %1, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.ImGuiContext, ptr %340, i32 0, i32 44
  %342 = load i32, ptr %341, align 4, !tbaa !135
  %343 = icmp eq i32 %339, %342
  br i1 %343, label %344, label %347

344:                                              ; preds = %336, %326
  %345 = load ptr, ptr %1, align 8, !tbaa !5
  %346 = getelementptr inbounds %struct.ImGuiContext, ptr %345, i32 0, i32 49
  store float 0.000000e+00, ptr %346, align 4, !tbaa !136
  br label %347

347:                                              ; preds = %344, %336, %331
  %348 = load ptr, ptr %1, align 8, !tbaa !5
  %349 = getelementptr inbounds %struct.ImGuiContext, ptr %348, i32 0, i32 44
  %350 = load i32, ptr %349, align 4, !tbaa !135
  %351 = icmp ne i32 %350, 0
  br i1 %351, label %352, label %361

352:                                              ; preds = %347
  %353 = load ptr, ptr %1, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.ImGuiContext, ptr %353, i32 0, i32 2
  %355 = getelementptr inbounds %struct.ImGuiIO, ptr %354, i32 0, i32 3
  %356 = load float, ptr %355, align 8, !tbaa !94
  %357 = load ptr, ptr %1, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.ImGuiContext, ptr %357, i32 0, i32 48
  %359 = load float, ptr %358, align 8, !tbaa !134
  %360 = fadd float %359, %356
  store float %360, ptr %358, align 8, !tbaa !134
  br label %361

361:                                              ; preds = %352, %347
  %362 = load ptr, ptr %1, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.ImGuiContext, ptr %362, i32 0, i32 44
  %364 = load i32, ptr %363, align 4, !tbaa !135
  %365 = icmp ne i32 %364, 0
  br i1 %365, label %366, label %383

366:                                              ; preds = %361
  %367 = load ptr, ptr %1, align 8, !tbaa !5
  %368 = getelementptr inbounds %struct.ImGuiContext, ptr %367, i32 0, i32 50
  %369 = load i32, ptr %368, align 8, !tbaa !132
  %370 = load ptr, ptr %1, align 8, !tbaa !5
  %371 = getelementptr inbounds %struct.ImGuiContext, ptr %370, i32 0, i32 44
  %372 = load i32, ptr %371, align 4, !tbaa !135
  %373 = icmp ne i32 %369, %372
  br i1 %373, label %374, label %383

374:                                              ; preds = %366
  %375 = load ptr, ptr %1, align 8, !tbaa !5
  %376 = getelementptr inbounds %struct.ImGuiContext, ptr %375, i32 0, i32 2
  %377 = getelementptr inbounds %struct.ImGuiIO, ptr %376, i32 0, i32 3
  %378 = load float, ptr %377, align 8, !tbaa !94
  %379 = load ptr, ptr %1, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.ImGuiContext, ptr %379, i32 0, i32 49
  %381 = load float, ptr %380, align 4, !tbaa !136
  %382 = fadd float %381, %378
  store float %382, ptr %380, align 4, !tbaa !136
  br label %383

383:                                              ; preds = %374, %366, %361
  %384 = load ptr, ptr %1, align 8, !tbaa !5
  %385 = getelementptr inbounds %struct.ImGuiContext, ptr %384, i32 0, i32 44
  %386 = load i32, ptr %385, align 4, !tbaa !135
  %387 = load ptr, ptr %1, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.ImGuiContext, ptr %387, i32 0, i32 45
  store i32 %386, ptr %388, align 8, !tbaa !133
  %389 = load ptr, ptr %1, align 8, !tbaa !5
  %390 = getelementptr inbounds %struct.ImGuiContext, ptr %389, i32 0, i32 44
  store i32 0, ptr %390, align 4, !tbaa !135
  %391 = load ptr, ptr %1, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.ImGuiContext, ptr %391, i32 0, i32 46
  store i8 0, ptr %392, align 4, !tbaa !137
  %393 = load ptr, ptr %1, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.ImGuiContext, ptr %393, i32 0, i32 47
  store i8 0, ptr %394, align 1, !tbaa !138
  %395 = load ptr, ptr %1, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.ImGuiContext, ptr %395, i32 0, i32 50
  %397 = load i32, ptr %396, align 8, !tbaa !132
  %398 = icmp ne i32 %397, 0
  br i1 %398, label %399, label %426

399:                                              ; preds = %383
  %400 = load ptr, ptr %1, align 8, !tbaa !5
  %401 = getelementptr inbounds %struct.ImGuiContext, ptr %400, i32 0, i32 51
  %402 = load i32, ptr %401, align 4, !tbaa !139
  %403 = load ptr, ptr %1, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.ImGuiContext, ptr %403, i32 0, i32 50
  %405 = load i32, ptr %404, align 8, !tbaa !132
  %406 = icmp ne i32 %402, %405
  br i1 %406, label %407, label %426

407:                                              ; preds = %399
  %408 = load ptr, ptr %1, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.ImGuiContext, ptr %408, i32 0, i32 63
  %410 = load i32, ptr %409, align 8, !tbaa !140
  %411 = load ptr, ptr %1, align 8, !tbaa !5
  %412 = getelementptr inbounds %struct.ImGuiContext, ptr %411, i32 0, i32 50
  %413 = load i32, ptr %412, align 8, !tbaa !132
  %414 = icmp eq i32 %410, %413
  br i1 %414, label %415, label %426

415:                                              ; preds = %407
  br label %416

416:                                              ; preds = %415
  %417 = load ptr, ptr %1, align 8, !tbaa !5
  %418 = getelementptr inbounds %struct.ImGuiContext, ptr %417, i32 0, i32 239
  %419 = load i32, ptr %418, align 4, !tbaa !141
  %420 = and i32 %419, 1
  %421 = icmp ne i32 %420, 0
  br i1 %421, label %422, label %423

422:                                              ; preds = %416
  call void (ptr, ...) @_ZN5ImGui8DebugLogEPKcz(ptr noundef @.str.114)
  br label %423

423:                                              ; preds = %422, %416
  br label %424

424:                                              ; preds = %423
  br label %425

425:                                              ; preds = %424
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %426

426:                                              ; preds = %425, %407, %399, %383
  %427 = load ptr, ptr %1, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.ImGuiContext, ptr %427, i32 0, i32 50
  %429 = load i32, ptr %428, align 8, !tbaa !132
  %430 = icmp ne i32 %429, 0
  br i1 %430, label %431, label %440

431:                                              ; preds = %426
  %432 = load ptr, ptr %1, align 8, !tbaa !5
  %433 = getelementptr inbounds %struct.ImGuiContext, ptr %432, i32 0, i32 2
  %434 = getelementptr inbounds %struct.ImGuiIO, ptr %433, i32 0, i32 3
  %435 = load float, ptr %434, align 8, !tbaa !94
  %436 = load ptr, ptr %1, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.ImGuiContext, ptr %436, i32 0, i32 52
  %438 = load float, ptr %437, align 8, !tbaa !142
  %439 = fadd float %438, %435
  store float %439, ptr %437, align 8, !tbaa !142
  br label %440

440:                                              ; preds = %431, %426
  %441 = load ptr, ptr %1, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.ImGuiContext, ptr %441, i32 0, i32 2
  %443 = getelementptr inbounds %struct.ImGuiIO, ptr %442, i32 0, i32 3
  %444 = load float, ptr %443, align 8, !tbaa !94
  %445 = load ptr, ptr %1, align 8, !tbaa !5
  %446 = getelementptr inbounds %struct.ImGuiContext, ptr %445, i32 0, i32 68
  %447 = load float, ptr %446, align 4, !tbaa !143
  %448 = fadd float %447, %444
  store float %448, ptr %446, align 4, !tbaa !143
  %449 = load ptr, ptr %1, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.ImGuiContext, ptr %449, i32 0, i32 50
  %451 = load i32, ptr %450, align 8, !tbaa !132
  %452 = load ptr, ptr %1, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.ImGuiContext, ptr %452, i32 0, i32 63
  store i32 %451, ptr %453, align 8, !tbaa !140
  %454 = load ptr, ptr %1, align 8, !tbaa !5
  %455 = getelementptr inbounds %struct.ImGuiContext, ptr %454, i32 0, i32 60
  %456 = load ptr, ptr %455, align 8, !tbaa !144
  %457 = load ptr, ptr %1, align 8, !tbaa !5
  %458 = getelementptr inbounds %struct.ImGuiContext, ptr %457, i32 0, i32 66
  store ptr %456, ptr %458, align 8, !tbaa !145
  %459 = load ptr, ptr %1, align 8, !tbaa !5
  %460 = getelementptr inbounds %struct.ImGuiContext, ptr %459, i32 0, i32 57
  %461 = load i8, ptr %460, align 8, !tbaa !146, !range !106, !noundef !107
  %462 = trunc i8 %461 to i1
  %463 = load ptr, ptr %1, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.ImGuiContext, ptr %463, i32 0, i32 65
  %465 = zext i1 %462 to i8
  store i8 %465, ptr %464, align 1, !tbaa !147
  %466 = load ptr, ptr %1, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.ImGuiContext, ptr %466, i32 0, i32 51
  store i32 0, ptr %467, align 4, !tbaa !139
  %468 = load ptr, ptr %1, align 8, !tbaa !5
  %469 = getelementptr inbounds %struct.ImGuiContext, ptr %468, i32 0, i32 58
  store i8 0, ptr %469, align 1, !tbaa !148
  %470 = load ptr, ptr %1, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.ImGuiContext, ptr %470, i32 0, i32 64
  store i8 0, ptr %471, align 4, !tbaa !149
  %472 = load ptr, ptr %1, align 8, !tbaa !5
  %473 = getelementptr inbounds %struct.ImGuiContext, ptr %472, i32 0, i32 53
  store i8 0, ptr %473, align 4, !tbaa !150
  %474 = load ptr, ptr %1, align 8, !tbaa !5
  %475 = getelementptr inbounds %struct.ImGuiContext, ptr %474, i32 0, i32 191
  %476 = load i32, ptr %475, align 8, !tbaa !151
  %477 = icmp ne i32 %476, 0
  br i1 %477, label %478, label %489

478:                                              ; preds = %440
  %479 = load ptr, ptr %1, align 8, !tbaa !5
  %480 = getelementptr inbounds %struct.ImGuiContext, ptr %479, i32 0, i32 50
  %481 = load i32, ptr %480, align 8, !tbaa !132
  %482 = load ptr, ptr %1, align 8, !tbaa !5
  %483 = getelementptr inbounds %struct.ImGuiContext, ptr %482, i32 0, i32 191
  %484 = load i32, ptr %483, align 8, !tbaa !151
  %485 = icmp ne i32 %481, %484
  br i1 %485, label %486, label %489

486:                                              ; preds = %478
  %487 = load ptr, ptr %1, align 8, !tbaa !5
  %488 = getelementptr inbounds %struct.ImGuiContext, ptr %487, i32 0, i32 191
  store i32 0, ptr %488, align 8, !tbaa !151
  br label %489

489:                                              ; preds = %486, %478, %440
  %490 = load ptr, ptr %1, align 8, !tbaa !5
  %491 = getelementptr inbounds %struct.ImGuiContext, ptr %490, i32 0, i32 50
  %492 = load i32, ptr %491, align 8, !tbaa !132
  %493 = icmp eq i32 %492, 0
  br i1 %493, label %494, label %501

494:                                              ; preds = %489
  %495 = load ptr, ptr %1, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.ImGuiContext, ptr %495, i32 0, i32 71
  store i32 0, ptr %496, align 8, !tbaa !152
  %497 = load ptr, ptr %1, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.ImGuiContext, ptr %497, i32 0, i32 72
  store i8 0, ptr %498, align 4, !tbaa !153
  %499 = load ptr, ptr %1, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.ImGuiContext, ptr %499, i32 0, i32 73
  store i32 0, ptr %500, align 8, !tbaa !154
  br label %501

501:                                              ; preds = %494, %489
  %502 = load ptr, ptr %1, align 8, !tbaa !5
  %503 = getelementptr inbounds %struct.ImGuiContext, ptr %502, i32 0, i32 50
  %504 = load i32, ptr %503, align 8, !tbaa !132
  %505 = icmp eq i32 %504, 0
  br i1 %505, label %506, label %509

506:                                              ; preds = %501
  %507 = load ptr, ptr %1, align 8, !tbaa !5
  %508 = getelementptr inbounds %struct.ImGuiContext, ptr %507, i32 0, i32 73
  store i32 0, ptr %508, align 8, !tbaa !154
  br label %533

509:                                              ; preds = %501
  %510 = load ptr, ptr %1, align 8, !tbaa !5
  %511 = getelementptr inbounds %struct.ImGuiContext, ptr %510, i32 0, i32 73
  %512 = load i32, ptr %511, align 8, !tbaa !154
  %513 = icmp ne i32 %512, 0
  br i1 %513, label %514, label %532

514:                                              ; preds = %509
  %515 = load ptr, ptr %1, align 8, !tbaa !5
  %516 = getelementptr inbounds %struct.ImGuiContext, ptr %515, i32 0, i32 73
  %517 = load i32, ptr %516, align 8, !tbaa !154
  %518 = and i32 %517, 2
  %519 = icmp ne i32 %518, 0
  br i1 %519, label %520, label %524

520:                                              ; preds = %514
  %521 = load ptr, ptr %1, align 8, !tbaa !5
  %522 = getelementptr inbounds %struct.ImGuiContext, ptr %521, i32 0, i32 50
  %523 = load i32, ptr %522, align 8, !tbaa !132
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 526, i32 noundef %523, i32 noundef 0)
  br label %524

524:                                              ; preds = %520, %514
  %525 = load ptr, ptr %1, align 8, !tbaa !5
  %526 = getelementptr inbounds %struct.ImGuiContext, ptr %525, i32 0, i32 73
  %527 = load i32, ptr %526, align 8, !tbaa !154
  %528 = and i32 %527, -3
  %529 = icmp ne i32 %528, 0
  br i1 %529, label %530, label %531

530:                                              ; preds = %524
  call void @__assert_fail(ptr noundef @.str.90, ptr noundef @.str.3, i32 noundef 4821, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

531:                                              ; preds = %524
  br label %532

532:                                              ; preds = %531, %509
  br label %533

533:                                              ; preds = %532, %506
  %534 = load ptr, ptr %1, align 8, !tbaa !5
  %535 = getelementptr inbounds %struct.ImGuiContext, ptr %534, i32 0, i32 179
  %536 = load i32, ptr %535, align 8, !tbaa !155
  %537 = icmp ne i32 %536, 0
  br i1 %537, label %538, label %553

538:                                              ; preds = %533
  %539 = load ptr, ptr %1, align 8, !tbaa !5
  %540 = getelementptr inbounds %struct.ImGuiContext, ptr %539, i32 0, i32 186
  %541 = load float, ptr %540, align 4, !tbaa !156
  %542 = load ptr, ptr %1, align 8, !tbaa !5
  %543 = getelementptr inbounds %struct.ImGuiContext, ptr %542, i32 0, i32 4
  %544 = getelementptr inbounds %struct.ImGuiStyle, ptr %543, i32 0, i32 45
  %545 = load float, ptr %544, align 8, !tbaa !157
  %546 = fcmp oge float %541, %545
  br i1 %546, label %547, label %553

547:                                              ; preds = %538
  %548 = load ptr, ptr %1, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.ImGuiContext, ptr %548, i32 0, i32 179
  %550 = load i32, ptr %549, align 8, !tbaa !155
  %551 = load ptr, ptr %1, align 8, !tbaa !5
  %552 = getelementptr inbounds %struct.ImGuiContext, ptr %551, i32 0, i32 183
  store i32 %550, ptr %552, align 8, !tbaa !158
  br label %562

553:                                              ; preds = %538, %533
  %554 = load ptr, ptr %1, align 8, !tbaa !5
  %555 = getelementptr inbounds %struct.ImGuiContext, ptr %554, i32 0, i32 179
  %556 = load i32, ptr %555, align 8, !tbaa !155
  %557 = icmp eq i32 %556, 0
  br i1 %557, label %558, label %561

558:                                              ; preds = %553
  %559 = load ptr, ptr %1, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.ImGuiContext, ptr %559, i32 0, i32 183
  store i32 0, ptr %560, align 8, !tbaa !158
  br label %561

561:                                              ; preds = %558, %553
  br label %562

562:                                              ; preds = %561, %547
  %563 = load ptr, ptr %1, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.ImGuiContext, ptr %563, i32 0, i32 34
  %565 = load ptr, ptr %564, align 8, !tbaa !159
  %566 = icmp ne ptr %565, null
  br i1 %566, label %567, label %584

567:                                              ; preds = %562
  %568 = load ptr, ptr %1, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.ImGuiContext, ptr %568, i32 0, i32 186
  %570 = load float, ptr %569, align 4, !tbaa !156
  %571 = load ptr, ptr %1, align 8, !tbaa !5
  %572 = getelementptr inbounds %struct.ImGuiContext, ptr %571, i32 0, i32 4
  %573 = getelementptr inbounds %struct.ImGuiStyle, ptr %572, i32 0, i32 45
  %574 = load float, ptr %573, align 8, !tbaa !157
  %575 = fcmp oge float %570, %574
  br i1 %575, label %576, label %584

576:                                              ; preds = %567
  %577 = load ptr, ptr %1, align 8, !tbaa !5
  %578 = getelementptr inbounds %struct.ImGuiContext, ptr %577, i32 0, i32 34
  %579 = load ptr, ptr %578, align 8, !tbaa !159
  %580 = getelementptr inbounds %struct.ImGuiWindow, ptr %579, i32 0, i32 2
  %581 = load i32, ptr %580, align 8, !tbaa !160
  %582 = load ptr, ptr %1, align 8, !tbaa !5
  %583 = getelementptr inbounds %struct.ImGuiContext, ptr %582, i32 0, i32 184
  store i32 %581, ptr %583, align 4, !tbaa !175
  br label %593

584:                                              ; preds = %567, %562
  %585 = load ptr, ptr %1, align 8, !tbaa !5
  %586 = getelementptr inbounds %struct.ImGuiContext, ptr %585, i32 0, i32 34
  %587 = load ptr, ptr %586, align 8, !tbaa !159
  %588 = icmp eq ptr %587, null
  br i1 %588, label %589, label %592

589:                                              ; preds = %584
  %590 = load ptr, ptr %1, align 8, !tbaa !5
  %591 = getelementptr inbounds %struct.ImGuiContext, ptr %590, i32 0, i32 184
  store i32 0, ptr %591, align 4, !tbaa !175
  br label %592

592:                                              ; preds = %589, %584
  br label %593

593:                                              ; preds = %592, %576
  %594 = load ptr, ptr %1, align 8, !tbaa !5
  %595 = getelementptr inbounds %struct.ImGuiContext, ptr %594, i32 0, i32 179
  %596 = load i32, ptr %595, align 8, !tbaa !155
  %597 = load ptr, ptr %1, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.ImGuiContext, ptr %597, i32 0, i32 180
  store i32 %596, ptr %598, align 4, !tbaa !176
  %599 = load ptr, ptr %1, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.ImGuiContext, ptr %599, i32 0, i32 179
  %601 = load i32, ptr %600, align 8, !tbaa !155
  %602 = icmp ne i32 %601, 0
  br i1 %602, label %603, label %616

603:                                              ; preds = %593
  %604 = load ptr, ptr %1, align 8, !tbaa !5
  %605 = getelementptr inbounds %struct.ImGuiContext, ptr %604, i32 0, i32 2
  %606 = getelementptr inbounds %struct.ImGuiIO, ptr %605, i32 0, i32 3
  %607 = load float, ptr %606, align 8, !tbaa !94
  %608 = load ptr, ptr %1, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.ImGuiContext, ptr %608, i32 0, i32 181
  %610 = load float, ptr %609, align 8, !tbaa !177
  %611 = fadd float %610, %607
  store float %611, ptr %609, align 8, !tbaa !177
  %612 = load ptr, ptr %1, align 8, !tbaa !5
  %613 = getelementptr inbounds %struct.ImGuiContext, ptr %612, i32 0, i32 182
  store float 0.000000e+00, ptr %613, align 4, !tbaa !178
  %614 = load ptr, ptr %1, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.ImGuiContext, ptr %614, i32 0, i32 179
  store i32 0, ptr %615, align 8, !tbaa !155
  br label %647

616:                                              ; preds = %593
  %617 = load ptr, ptr %1, align 8, !tbaa !5
  %618 = getelementptr inbounds %struct.ImGuiContext, ptr %617, i32 0, i32 181
  %619 = load float, ptr %618, align 8, !tbaa !177
  %620 = fcmp ogt float %619, 0.000000e+00
  br i1 %620, label %621, label %646

621:                                              ; preds = %616
  %622 = load ptr, ptr %1, align 8, !tbaa !5
  %623 = getelementptr inbounds %struct.ImGuiContext, ptr %622, i32 0, i32 2
  %624 = getelementptr inbounds %struct.ImGuiIO, ptr %623, i32 0, i32 3
  %625 = load float, ptr %624, align 8, !tbaa !94
  %626 = load ptr, ptr %1, align 8, !tbaa !5
  %627 = getelementptr inbounds %struct.ImGuiContext, ptr %626, i32 0, i32 182
  %628 = load float, ptr %627, align 4, !tbaa !178
  %629 = fadd float %628, %625
  store float %629, ptr %627, align 4, !tbaa !178
  %630 = load ptr, ptr %1, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.ImGuiContext, ptr %630, i32 0, i32 182
  %632 = load float, ptr %631, align 4, !tbaa !178
  %633 = load ptr, ptr %1, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.ImGuiContext, ptr %633, i32 0, i32 2
  %635 = getelementptr inbounds %struct.ImGuiIO, ptr %634, i32 0, i32 3
  %636 = load float, ptr %635, align 8, !tbaa !94
  %637 = fmul float %636, 2.000000e+00
  %638 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 2.500000e-01, float noundef %637)
  %639 = fcmp oge float %632, %638
  br i1 %639, label %640, label %645

640:                                              ; preds = %621
  %641 = load ptr, ptr %1, align 8, !tbaa !5
  %642 = getelementptr inbounds %struct.ImGuiContext, ptr %641, i32 0, i32 182
  store float 0.000000e+00, ptr %642, align 4, !tbaa !178
  %643 = load ptr, ptr %1, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.ImGuiContext, ptr %643, i32 0, i32 181
  store float 0.000000e+00, ptr %644, align 8, !tbaa !177
  br label %645

645:                                              ; preds = %640, %621
  br label %646

646:                                              ; preds = %645, %616
  br label %647

647:                                              ; preds = %646, %603
  %648 = load ptr, ptr %1, align 8, !tbaa !5
  %649 = getelementptr inbounds %struct.ImGuiContext, ptr %648, i32 0, i32 161
  %650 = load i32, ptr %649, align 4, !tbaa !179
  %651 = load ptr, ptr %1, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.ImGuiContext, ptr %651, i32 0, i32 162
  store i32 %650, ptr %652, align 8, !tbaa !180
  %653 = load ptr, ptr %1, align 8, !tbaa !5
  %654 = getelementptr inbounds %struct.ImGuiContext, ptr %653, i32 0, i32 161
  store i32 0, ptr %654, align 4, !tbaa !179
  %655 = load ptr, ptr %1, align 8, !tbaa !5
  %656 = getelementptr inbounds %struct.ImGuiContext, ptr %655, i32 0, i32 160
  store float 0x47EFFFFFE0000000, ptr %656, align 8, !tbaa !181
  %657 = load ptr, ptr %1, align 8, !tbaa !5
  %658 = getelementptr inbounds %struct.ImGuiContext, ptr %657, i32 0, i32 151
  store i8 0, ptr %658, align 1, !tbaa !182
  %659 = load ptr, ptr %1, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.ImGuiContext, ptr %659, i32 0, i32 152
  store i8 0, ptr %660, align 2, !tbaa !183
  %661 = load ptr, ptr %1, align 8, !tbaa !5
  %662 = getelementptr inbounds %struct.ImGuiContext, ptr %661, i32 0, i32 164
  store i32 0, ptr %662, align 8, !tbaa !184
  call void @_ZN5ImGuiL20UpdateKeyboardInputsEv()
  call void @_ZN5ImGuiL9NavUpdateEv()
  call void @_ZN5ImGuiL17UpdateMouseInputsEv()
  %663 = load ptr, ptr %1, align 8, !tbaa !5
  call void @_ZN5ImGui34DockContextNewFrameUpdateUndockingEP12ImGuiContext(ptr noundef %663)
  call void @_ZN5ImGui34UpdateHoveredWindowAndCaptureFlagsEv()
  call void @_ZN5ImGui31UpdateMouseMovingWindowNewFrameEv()
  %664 = call noundef ptr @_ZN5ImGui20GetTopMostPopupModalEv()
  %665 = icmp ne ptr %664, null
  br i1 %665, label %676, label %666

666:                                              ; preds = %647
  %667 = load ptr, ptr %1, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.ImGuiContext, ptr %667, i32 0, i32 141
  %669 = load ptr, ptr %668, align 8, !tbaa !185
  %670 = icmp ne ptr %669, null
  br i1 %670, label %671, label %688

671:                                              ; preds = %666
  %672 = load ptr, ptr %1, align 8, !tbaa !5
  %673 = getelementptr inbounds %struct.ImGuiContext, ptr %672, i32 0, i32 145
  %674 = load float, ptr %673, align 4, !tbaa !186
  %675 = fcmp ogt float %674, 0.000000e+00
  br i1 %675, label %676, label %688

676:                                              ; preds = %671, %647
  %677 = load ptr, ptr %1, align 8, !tbaa !5
  %678 = getelementptr inbounds %struct.ImGuiContext, ptr %677, i32 0, i32 149
  %679 = load float, ptr %678, align 4, !tbaa !187
  %680 = load ptr, ptr %1, align 8, !tbaa !5
  %681 = getelementptr inbounds %struct.ImGuiContext, ptr %680, i32 0, i32 2
  %682 = getelementptr inbounds %struct.ImGuiIO, ptr %681, i32 0, i32 3
  %683 = load float, ptr %682, align 8, !tbaa !94
  %684 = call float @llvm.fmuladd.f32(float %683, float 6.000000e+00, float %679)
  %685 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %684, float noundef 1.000000e+00)
  %686 = load ptr, ptr %1, align 8, !tbaa !5
  %687 = getelementptr inbounds %struct.ImGuiContext, ptr %686, i32 0, i32 149
  store float %685, ptr %687, align 4, !tbaa !187
  br label %701

688:                                              ; preds = %671, %666
  %689 = load ptr, ptr %1, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct.ImGuiContext, ptr %689, i32 0, i32 149
  %691 = load float, ptr %690, align 4, !tbaa !187
  %692 = load ptr, ptr %1, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.ImGuiContext, ptr %692, i32 0, i32 2
  %694 = getelementptr inbounds %struct.ImGuiIO, ptr %693, i32 0, i32 3
  %695 = load float, ptr %694, align 8, !tbaa !94
  %696 = fneg float %695
  %697 = call float @llvm.fmuladd.f32(float %696, float 1.000000e+01, float %691)
  %698 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %697, float noundef 0.000000e+00)
  %699 = load ptr, ptr %1, align 8, !tbaa !5
  %700 = getelementptr inbounds %struct.ImGuiContext, ptr %699, i32 0, i32 149
  store float %698, ptr %700, align 4, !tbaa !187
  br label %701

701:                                              ; preds = %688, %676
  %702 = load ptr, ptr %1, align 8, !tbaa !5
  %703 = getelementptr inbounds %struct.ImGuiContext, ptr %702, i32 0, i32 185
  store i32 0, ptr %703, align 8, !tbaa !188
  %704 = load ptr, ptr %1, align 8, !tbaa !5
  %705 = getelementptr inbounds %struct.ImGuiContext, ptr %704, i32 0, i32 257
  store i32 -1, ptr %705, align 4, !tbaa !189
  %706 = load ptr, ptr %1, align 8, !tbaa !5
  %707 = getelementptr inbounds %struct.ImGuiContext, ptr %706, i32 0, i32 256
  store i32 -1, ptr %707, align 8, !tbaa !190
  %708 = load ptr, ptr %1, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct.ImGuiContext, ptr %708, i32 0, i32 255
  store i32 -1, ptr %709, align 4, !tbaa !191
  %710 = load ptr, ptr %1, align 8, !tbaa !5
  %711 = getelementptr inbounds %struct.ImGuiContext, ptr %710, i32 0, i32 212
  %712 = load ptr, ptr %1, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.ImGuiContext, ptr %712, i32 0, i32 213
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %713, ptr align 8 %711, i64 16, i1 false), !tbaa.struct !192
  %714 = load ptr, ptr %1, align 8, !tbaa !5
  %715 = getelementptr inbounds %struct.ImGuiContext, ptr %714, i32 0, i32 212
  %716 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %715, i32 0, i32 0
  store i8 0, ptr %716, align 8, !tbaa !194
  call void @_ZN5ImGuiL16UpdateMouseWheelEv()
  %717 = load ptr, ptr %1, align 8, !tbaa !5
  %718 = getelementptr inbounds %struct.ImGuiContext, ptr %717, i32 0, i32 27
  %719 = getelementptr inbounds %struct.ImVector.4, ptr %718, i32 0, i32 0
  %720 = load i32, ptr %719, align 8, !tbaa !195
  %721 = load ptr, ptr %1, align 8, !tbaa !5
  %722 = getelementptr inbounds %struct.ImGuiContext, ptr %721, i32 0, i32 26
  %723 = getelementptr inbounds %struct.ImVector.4, ptr %722, i32 0, i32 0
  %724 = load i32, ptr %723, align 8, !tbaa !196
  %725 = icmp sle i32 %720, %724
  br i1 %725, label %726, label %727

726:                                              ; preds = %701
  br label %729

727:                                              ; preds = %701
  call void @__assert_fail(ptr noundef @.str.115, ptr noundef @.str.3, i32 noundef 4908, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

728:                                              ; No predecessors!
  br label %729

729:                                              ; preds = %728, %726
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %730 = load ptr, ptr %1, align 8, !tbaa !5
  %731 = getelementptr inbounds %struct.ImGuiContext, ptr %730, i32 0, i32 19
  %732 = load i8, ptr %731, align 1, !tbaa !197, !range !106, !noundef !107
  %733 = trunc i8 %732 to i1
  br i1 %733, label %740, label %734

734:                                              ; preds = %729
  %735 = load ptr, ptr %1, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.ImGuiContext, ptr %735, i32 0, i32 2
  %737 = getelementptr inbounds %struct.ImGuiIO, ptr %736, i32 0, i32 29
  %738 = load float, ptr %737, align 8, !tbaa !198
  %739 = fcmp olt float %738, 0.000000e+00
  br i1 %739, label %740, label %741

740:                                              ; preds = %734, %729
  br label %751

741:                                              ; preds = %734
  %742 = load ptr, ptr %1, align 8, !tbaa !5
  %743 = getelementptr inbounds %struct.ImGuiContext, ptr %742, i32 0, i32 11
  %744 = load double, ptr %743, align 8, !tbaa !95
  %745 = fptrunc double %744 to float
  %746 = load ptr, ptr %1, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.ImGuiContext, ptr %746, i32 0, i32 2
  %748 = getelementptr inbounds %struct.ImGuiIO, ptr %747, i32 0, i32 29
  %749 = load float, ptr %748, align 8, !tbaa !198
  %750 = fsub float %745, %749
  br label %751

751:                                              ; preds = %741, %740
  %752 = phi float [ 0x47EFFFFFE0000000, %740 ], [ %750, %741 ]
  store float %752, ptr %9, align 4, !tbaa !101
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #11
  store i32 0, ptr %10, align 4, !tbaa !85
  br label %753

753:                                              ; preds = %803, %751
  %754 = load i32, ptr %10, align 4, !tbaa !85
  %755 = load ptr, ptr %1, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.ImGuiContext, ptr %755, i32 0, i32 26
  %757 = getelementptr inbounds %struct.ImVector.4, ptr %756, i32 0, i32 0
  %758 = load i32, ptr %757, align 8, !tbaa !196
  %759 = icmp ne i32 %754, %758
  br i1 %759, label %761, label %760

760:                                              ; preds = %753
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  br label %806

761:                                              ; preds = %753
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #11
  %762 = load ptr, ptr %1, align 8, !tbaa !5
  %763 = getelementptr inbounds %struct.ImGuiContext, ptr %762, i32 0, i32 26
  %764 = load i32, ptr %10, align 4, !tbaa !85
  %765 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %763, i32 noundef %764)
  %766 = load ptr, ptr %765, align 8, !tbaa !5
  store ptr %766, ptr %11, align 8, !tbaa !5
  %767 = load ptr, ptr %11, align 8, !tbaa !5
  %768 = getelementptr inbounds %struct.ImGuiWindow, ptr %767, i32 0, i32 38
  %769 = load i8, ptr %768, align 1, !tbaa !199, !range !106, !noundef !107
  %770 = trunc i8 %769 to i1
  %771 = load ptr, ptr %11, align 8, !tbaa !5
  %772 = getelementptr inbounds %struct.ImGuiWindow, ptr %771, i32 0, i32 39
  %773 = zext i1 %770 to i8
  store i8 %773, ptr %772, align 4, !tbaa !200
  %774 = load ptr, ptr %11, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct.ImGuiWindow, ptr %774, i32 0, i32 38
  store i8 0, ptr %775, align 1, !tbaa !199
  %776 = load ptr, ptr %11, align 8, !tbaa !5
  %777 = getelementptr inbounds %struct.ImGuiWindow, ptr %776, i32 0, i32 40
  store i8 0, ptr %777, align 1, !tbaa !201
  %778 = load ptr, ptr %11, align 8, !tbaa !5
  %779 = getelementptr inbounds %struct.ImGuiWindow, ptr %778, i32 0, i32 50
  %780 = load i16, ptr %779, align 8, !tbaa !202
  %781 = load ptr, ptr %11, align 8, !tbaa !5
  %782 = getelementptr inbounds %struct.ImGuiWindow, ptr %781, i32 0, i32 51
  store i16 %780, ptr %782, align 2, !tbaa !203
  %783 = load ptr, ptr %11, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.ImGuiWindow, ptr %783, i32 0, i32 50
  store i16 0, ptr %784, align 8, !tbaa !202
  %785 = load ptr, ptr %11, align 8, !tbaa !5
  %786 = getelementptr inbounds %struct.ImGuiWindow, ptr %785, i32 0, i32 39
  %787 = load i8, ptr %786, align 4, !tbaa !200, !range !106, !noundef !107
  %788 = trunc i8 %787 to i1
  br i1 %788, label %802, label %789

789:                                              ; preds = %761
  %790 = load ptr, ptr %11, align 8, !tbaa !5
  %791 = getelementptr inbounds %struct.ImGuiWindow, ptr %790, i32 0, i32 104
  %792 = load i8, ptr %791, align 4, !tbaa !204, !range !106, !noundef !107
  %793 = trunc i8 %792 to i1
  br i1 %793, label %802, label %794

794:                                              ; preds = %789
  %795 = load ptr, ptr %11, align 8, !tbaa !5
  %796 = getelementptr inbounds %struct.ImGuiWindow, ptr %795, i32 0, i32 81
  %797 = load float, ptr %796, align 8, !tbaa !205
  %798 = load float, ptr %9, align 4, !tbaa !101
  %799 = fcmp olt float %797, %798
  br i1 %799, label %800, label %802

800:                                              ; preds = %794
  %801 = load ptr, ptr %11, align 8, !tbaa !5
  call void @_ZN5ImGui31GcCompactTransientWindowBuffersEP11ImGuiWindow(ptr noundef %801)
  br label %802

802:                                              ; preds = %800, %794, %789, %761
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  br label %803

803:                                              ; preds = %802
  %804 = load i32, ptr %10, align 4, !tbaa !85
  %805 = add nsw i32 %804, 1
  store i32 %805, ptr %10, align 4, !tbaa !85
  br label %753, !llvm.loop !206

806:                                              ; preds = %760
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #11
  store i32 0, ptr %12, align 4, !tbaa !85
  br label %807

807:                                              ; preds = %836, %806
  %808 = load i32, ptr %12, align 4, !tbaa !85
  %809 = load ptr, ptr %1, align 8, !tbaa !5
  %810 = getelementptr inbounds %struct.ImGuiContext, ptr %809, i32 0, i32 173
  %811 = getelementptr inbounds %struct.ImVector.20, ptr %810, i32 0, i32 0
  %812 = load i32, ptr %811, align 8, !tbaa !207
  %813 = icmp slt i32 %808, %812
  br i1 %813, label %815, label %814

814:                                              ; preds = %807
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  br label %839

815:                                              ; preds = %807
  %816 = load ptr, ptr %1, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.ImGuiContext, ptr %816, i32 0, i32 173
  %818 = load i32, ptr %12, align 4, !tbaa !85
  %819 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfEixEi(ptr noundef nonnull align 8 dereferenceable(16) %817, i32 noundef %818)
  %820 = load float, ptr %819, align 4, !tbaa !101
  %821 = fcmp oge float %820, 0.000000e+00
  br i1 %821, label %822, label %835

822:                                              ; preds = %815
  %823 = load ptr, ptr %1, align 8, !tbaa !5
  %824 = getelementptr inbounds %struct.ImGuiContext, ptr %823, i32 0, i32 173
  %825 = load i32, ptr %12, align 4, !tbaa !85
  %826 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfEixEi(ptr noundef nonnull align 8 dereferenceable(16) %824, i32 noundef %825)
  %827 = load float, ptr %826, align 4, !tbaa !101
  %828 = load float, ptr %9, align 4, !tbaa !101
  %829 = fcmp olt float %827, %828
  br i1 %829, label %830, label %835

830:                                              ; preds = %822
  %831 = load ptr, ptr %1, align 8, !tbaa !5
  %832 = getelementptr inbounds %struct.ImGuiContext, ptr %831, i32 0, i32 172
  %833 = load i32, ptr %12, align 4, !tbaa !85
  %834 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(40) %832, i32 noundef %833)
  call void @_ZN5ImGui30TableGcCompactTransientBuffersEP10ImGuiTable(ptr noundef %834)
  br label %835

835:                                              ; preds = %830, %822, %815
  br label %836

836:                                              ; preds = %835
  %837 = load i32, ptr %12, align 4, !tbaa !85
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr %12, align 4, !tbaa !85
  br label %807, !llvm.loop !208

839:                                              ; preds = %814
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #11
  store i32 0, ptr %13, align 4, !tbaa !85
  br label %840

840:                                              ; preds = %871, %839
  %841 = load i32, ptr %13, align 4, !tbaa !85
  %842 = load ptr, ptr %1, align 8, !tbaa !5
  %843 = getelementptr inbounds %struct.ImGuiContext, ptr %842, i32 0, i32 171
  %844 = getelementptr inbounds %struct.ImVector.18, ptr %843, i32 0, i32 0
  %845 = load i32, ptr %844, align 8, !tbaa !209
  %846 = icmp slt i32 %841, %845
  br i1 %846, label %848, label %847

847:                                              ; preds = %840
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  br label %874

848:                                              ; preds = %840
  %849 = load ptr, ptr %1, align 8, !tbaa !5
  %850 = getelementptr inbounds %struct.ImGuiContext, ptr %849, i32 0, i32 171
  %851 = load i32, ptr %13, align 4, !tbaa !85
  %852 = call noundef nonnull align 8 dereferenceable(108) ptr @_ZN8ImVectorI18ImGuiTableTempDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %850, i32 noundef %851)
  %853 = getelementptr inbounds %struct.ImGuiTableTempData, ptr %852, i32 0, i32 1
  %854 = load float, ptr %853, align 4, !tbaa !210
  %855 = fcmp oge float %854, 0.000000e+00
  br i1 %855, label %856, label %870

856:                                              ; preds = %848
  %857 = load ptr, ptr %1, align 8, !tbaa !5
  %858 = getelementptr inbounds %struct.ImGuiContext, ptr %857, i32 0, i32 171
  %859 = load i32, ptr %13, align 4, !tbaa !85
  %860 = call noundef nonnull align 8 dereferenceable(108) ptr @_ZN8ImVectorI18ImGuiTableTempDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %858, i32 noundef %859)
  %861 = getelementptr inbounds %struct.ImGuiTableTempData, ptr %860, i32 0, i32 1
  %862 = load float, ptr %861, align 4, !tbaa !210
  %863 = load float, ptr %9, align 4, !tbaa !101
  %864 = fcmp olt float %862, %863
  br i1 %864, label %865, label %870

865:                                              ; preds = %856
  %866 = load ptr, ptr %1, align 8, !tbaa !5
  %867 = getelementptr inbounds %struct.ImGuiContext, ptr %866, i32 0, i32 171
  %868 = load i32, ptr %13, align 4, !tbaa !85
  %869 = call noundef nonnull align 8 dereferenceable(108) ptr @_ZN8ImVectorI18ImGuiTableTempDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %867, i32 noundef %868)
  call void @_ZN5ImGui30TableGcCompactTransientBuffersEP18ImGuiTableTempData(ptr noundef %869)
  br label %870

870:                                              ; preds = %865, %856, %848
  br label %871

871:                                              ; preds = %870
  %872 = load i32, ptr %13, align 4, !tbaa !85
  %873 = add nsw i32 %872, 1
  store i32 %873, ptr %13, align 4, !tbaa !85
  br label %840, !llvm.loop !212

874:                                              ; preds = %847
  %875 = load ptr, ptr %1, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.ImGuiContext, ptr %875, i32 0, i32 19
  %877 = load i8, ptr %876, align 1, !tbaa !197, !range !106, !noundef !107
  %878 = trunc i8 %877 to i1
  br i1 %878, label %879, label %880

879:                                              ; preds = %874
  call void @_ZN5ImGui29GcCompactTransientMiscBuffersEv()
  br label %880

880:                                              ; preds = %879, %874
  %881 = load ptr, ptr %1, align 8, !tbaa !5
  %882 = getelementptr inbounds %struct.ImGuiContext, ptr %881, i32 0, i32 19
  store i8 0, ptr %882, align 1, !tbaa !197
  %883 = load ptr, ptr %1, align 8, !tbaa !5
  %884 = getelementptr inbounds %struct.ImGuiContext, ptr %883, i32 0, i32 99
  %885 = load ptr, ptr %884, align 8, !tbaa !213
  %886 = icmp ne ptr %885, null
  br i1 %886, label %887, label %895

887:                                              ; preds = %880
  %888 = load ptr, ptr %1, align 8, !tbaa !5
  %889 = getelementptr inbounds %struct.ImGuiContext, ptr %888, i32 0, i32 99
  %890 = load ptr, ptr %889, align 8, !tbaa !213
  %891 = getelementptr inbounds %struct.ImGuiWindow, ptr %890, i32 0, i32 39
  %892 = load i8, ptr %891, align 4, !tbaa !200, !range !106, !noundef !107
  %893 = trunc i8 %892 to i1
  br i1 %893, label %895, label %894

894:                                              ; preds = %887
  call void @_ZN5ImGui26FocusTopMostWindowUnderOneEP11ImGuiWindowS1_P13ImGuiViewporti(ptr noundef null, ptr noundef null, ptr noundef null, i32 noundef 1)
  br label %895

895:                                              ; preds = %894, %887, %880
  %896 = load ptr, ptr %1, align 8, !tbaa !5
  %897 = getelementptr inbounds %struct.ImGuiContext, ptr %896, i32 0, i32 29
  call void @_ZN8ImVectorI20ImGuiWindowStackDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %897, i32 noundef 0)
  %898 = load ptr, ptr %1, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.ImGuiContext, ptr %898, i32 0, i32 87
  call void @_ZN8ImVectorI14ImGuiPopupDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %899, i32 noundef 0)
  %900 = load ptr, ptr %1, align 8, !tbaa !5
  %901 = getelementptr inbounds %struct.ImGuiContext, ptr %900, i32 0, i32 84
  call void @_ZN8ImVectorIiE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %901, i32 noundef 0)
  %902 = load ptr, ptr %1, align 8, !tbaa !5
  %903 = getelementptr inbounds %struct.ImGuiContext, ptr %902, i32 0, i32 84
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  store i32 0, ptr %14, align 4, !tbaa !85
  call void @_ZN8ImVectorIiE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(16) %903, ptr noundef nonnull align 4 dereferenceable(4) %14)
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  %904 = load ptr, ptr %1, align 8, !tbaa !5
  %905 = getelementptr inbounds %struct.ImGuiContext, ptr %904, i32 0, i32 85
  call void @_ZN8ImVectorI14ImGuiGroupDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %905, i32 noundef 0)
  %906 = load ptr, ptr %1, align 8, !tbaa !5
  call void @_ZN5ImGui32DockContextNewFrameUpdateDockingEP12ImGuiContext(ptr noundef %906)
  call void @_ZN5ImGuiL25UpdateDebugToolItemPickerEv()
  call void @_ZN5ImGuiL27UpdateDebugToolStackQueriesEv()
  %907 = load ptr, ptr %1, align 8, !tbaa !5
  %908 = getelementptr inbounds %struct.ImGuiContext, ptr %907, i32 0, i32 243
  %909 = load i8, ptr %908, align 1, !tbaa !214
  %910 = zext i8 %909 to i32
  %911 = icmp sgt i32 %910, 0
  br i1 %911, label %912, label %922

912:                                              ; preds = %895
  %913 = load ptr, ptr %1, align 8, !tbaa !5
  %914 = getelementptr inbounds %struct.ImGuiContext, ptr %913, i32 0, i32 243
  %915 = load i8, ptr %914, align 1, !tbaa !214
  %916 = add i8 %915, -1
  store i8 %916, ptr %914, align 1, !tbaa !214
  %917 = zext i8 %916 to i32
  %918 = icmp eq i32 %917, 0
  br i1 %918, label %919, label %922

919:                                              ; preds = %912
  %920 = load ptr, ptr %1, align 8, !tbaa !5
  %921 = getelementptr inbounds %struct.ImGuiContext, ptr %920, i32 0, i32 76
  store i32 0, ptr %921, align 4, !tbaa !215
  br label %922

922:                                              ; preds = %919, %912, %895
  %923 = load ptr, ptr %1, align 8, !tbaa !5
  %924 = getelementptr inbounds %struct.ImGuiContext, ptr %923, i32 0, i32 242
  %925 = load i8, ptr %924, align 8, !tbaa !216
  %926 = zext i8 %925 to i32
  %927 = icmp sgt i32 %926, 0
  br i1 %927, label %928, label %940

928:                                              ; preds = %922
  %929 = load ptr, ptr %1, align 8, !tbaa !5
  %930 = getelementptr inbounds %struct.ImGuiContext, ptr %929, i32 0, i32 242
  %931 = load i8, ptr %930, align 8, !tbaa !216
  %932 = add i8 %931, -1
  store i8 %932, ptr %930, align 8, !tbaa !216
  %933 = zext i8 %932 to i32
  %934 = icmp eq i32 %933, 0
  br i1 %934, label %935, label %940

935:                                              ; preds = %928
  call void (ptr, ...) @_ZN5ImGui8DebugLogEPKcz(ptr noundef @.str.116)
  %936 = load ptr, ptr %1, align 8, !tbaa !5
  %937 = getelementptr inbounds %struct.ImGuiContext, ptr %936, i32 0, i32 239
  %938 = load i32, ptr %937, align 4, !tbaa !141
  %939 = and i32 %938, -17
  store i32 %939, ptr %937, align 4, !tbaa !141
  br label %940

940:                                              ; preds = %935, %928, %922
  %941 = load ptr, ptr %1, align 8, !tbaa !5
  %942 = getelementptr inbounds %struct.ImGuiContext, ptr %941, i32 0, i32 17
  store i8 1, ptr %942, align 1, !tbaa !217
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef 4.000000e+02, float noundef 4.000000e+02)
  call void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8) %15, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  %943 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.117, ptr noundef null, i32 noundef 0)
  %944 = load ptr, ptr %1, align 8, !tbaa !5
  %945 = getelementptr inbounds %struct.ImGuiContext, ptr %944, i32 0, i32 33
  %946 = load ptr, ptr %945, align 8, !tbaa !218
  %947 = getelementptr inbounds %struct.ImGuiWindow, ptr %946, i32 0, i32 46
  %948 = load i8, ptr %947, align 1, !tbaa !219, !range !106, !noundef !107
  %949 = trunc i8 %948 to i1
  %950 = zext i1 %949 to i32
  %951 = icmp eq i32 %950, 1
  br i1 %951, label %952, label %953

952:                                              ; preds = %940
  br label %955

953:                                              ; preds = %940
  call void @__assert_fail(ptr noundef @.str.118, ptr noundef @.str.3, i32 noundef 4967, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

954:                                              ; No predecessors!
  br label %955

955:                                              ; preds = %954, %952
  %956 = load ptr, ptr %1, align 8, !tbaa !5
  %957 = getelementptr inbounds %struct.ImGuiContext, ptr %956, i32 0, i32 2
  %958 = getelementptr inbounds %struct.ImGuiIO, ptr %957, i32 0, i32 36
  %959 = load i8, ptr %958, align 1, !tbaa !220, !range !106, !noundef !107
  %960 = trunc i8 %959 to i1
  br i1 %960, label %961, label %987

961:                                              ; preds = %955
  %962 = load ptr, ptr %1, align 8, !tbaa !5
  %963 = getelementptr inbounds %struct.ImGuiContext, ptr %962, i32 0, i32 244
  %964 = load i8, ptr %963, align 2, !tbaa !221
  %965 = sext i8 %964 to i32
  %966 = icmp eq i32 %965, -1
  br i1 %966, label %967, label %968

967:                                              ; preds = %961
  br label %982

968:                                              ; preds = %961
  %969 = load ptr, ptr %1, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.ImGuiContext, ptr %969, i32 0, i32 244
  %971 = load i8, ptr %970, align 2, !tbaa !221
  %972 = sext i8 %971 to i32
  %973 = load ptr, ptr %1, align 8, !tbaa !5
  %974 = getelementptr inbounds %struct.ImGuiContext, ptr %973, i32 0, i32 12
  %975 = load i32, ptr %974, align 8, !tbaa !97
  %976 = srem i32 %975, 4
  %977 = icmp eq i32 %976, 0
  %978 = zext i1 %977 to i64
  %979 = select i1 %977, i32 1, i32 0
  %980 = add nsw i32 %972, %979
  %981 = srem i32 %980, 10
  br label %982

982:                                              ; preds = %968, %967
  %983 = phi i32 [ 0, %967 ], [ %981, %968 ]
  %984 = trunc i32 %983 to i8
  %985 = load ptr, ptr %1, align 8, !tbaa !5
  %986 = getelementptr inbounds %struct.ImGuiContext, ptr %985, i32 0, i32 244
  store i8 %984, ptr %986, align 2, !tbaa !221
  br label %990

987:                                              ; preds = %955
  %988 = load ptr, ptr %1, align 8, !tbaa !5
  %989 = getelementptr inbounds %struct.ImGuiContext, ptr %988, i32 0, i32 244
  store i8 -1, ptr %989, align 2, !tbaa !221
  br label %990

990:                                              ; preds = %987, %982
  %991 = load ptr, ptr %1, align 8, !tbaa !5
  call void @_ZN5ImGui16CallContextHooksEP12ImGuiContext20ImGuiContextHookType(ptr noundef %991, i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1) #11
  ret void
}

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL30ErrorCheckNewFrameSanityChecksEv() #8

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL14UpdateSettingsEv() #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorIjE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorI15ImGuiInputEventE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui17UpdateInputEventsEb(i1 noundef zeroext) #7

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL23UpdateViewportsNewFrameEv() #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui14GetDefaultFontEv() #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK6ImFont8IsLoadedEv(ptr noundef nonnull align 8 dereferenceable(118)) #1 align 2

; 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 uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK6ImRect6ToVec4Ev(ptr noundef nonnull align 4 dereferenceable(16)) #7 align 2

declare void @_ZN20ImDrawListSharedData29SetCircleTessellationMaxErrorEf(ptr noundef nonnull align 8 dereferenceable(528), float noundef) #9

declare void @_ZN10ImDrawData5ClearEv(ptr noundef nonnull align 8 dereferenceable(64)) #9

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef, i32 noundef, i32 noundef) #7

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL20UpdateKeyboardInputsEv() #7

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL9NavUpdateEv() #8

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL17UpdateMouseInputsEv() #8

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL16UpdateMouseWheelEv() #8

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

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

declare void @_ZN5ImGui30TableGcCompactTransientBuffersEP10ImGuiTable(ptr noundef) #9

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN6ImPoolI10ImGuiTableE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) #1 align 2

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

declare void @_ZN5ImGui30TableGcCompactTransientBuffersEP18ImGuiTableTempData(ptr noundef) #9

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorI20ImGuiWindowStackDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorI14ImGuiPopupDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorIiE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorI14ImGuiGroupDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui32DockContextNewFrameUpdateDockingEP12ImGuiContext(ptr noundef) #8

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL25UpdateDebugToolItemPickerEv() #7

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL27UpdateDebugToolStackQueriesEv() #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) #7

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { 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 #6 = { 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 #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 = { 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 #9 = { "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 = { noreturn nounwind }
attributes #11 = { 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, !13, i64 24144}
!10 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !12, i64 8, !19, i64 14336, !22, i64 14552, !13, i64 15676, !13, i64 15680, !6, i64 15688, !15, i64 15696, !15, i64 15700, !23, i64 15704, !26, i64 16232, !13, i64 16240, !13, i64 16244, !13, i64 16248, !13, i64 16252, !11, i64 16256, !11, i64 16257, !11, i64 16258, !11, i64 16259, !11, i64 16260, !6, i64 16264, !27, i64 16272, !27, i64 16288, !16, i64 16304, !13, i64 16308, !28, i64 16312, !28, i64 16328, !28, i64 16344, !29, i64 16360, !30, i64 16376, !13, i64 16392, !14, i64 16396, !6, i64 16408, !6, i64 16416, !6, i64 16424, !6, i64 16432, !6, i64 16440, !14, i64 16448, !13, i64 16456, !15, i64 16460, !14, i64 16464, !14, i64 16472, !13, i64 16480, !13, i64 16484, !13, i64 16488, !11, i64 16492, !11, i64 16493, !15, i64 16496, !15, i64 16500, !13, i64 16504, !13, i64 16508, !15, i64 16512, !11, i64 16516, !11, i64 16517, !11, i64 16518, !11, i64 16519, !11, i64 16520, !11, i64 16521, !14, i64 16524, !6, i64 16536, !32, i64 16544, !13, i64 16548, !13, i64 16552, !11, i64 16556, !11, i64 16557, !6, i64 16560, !13, i64 16568, !15, i64 16572, !7, i64 16576, !33, i64 18256, !13, i64 18568, !11, i64 18572, !13, i64 18576, !13, i64 18580, !13, i64 18584, !13, i64 18588, !35, i64 18592, !36, i64 18616, !38, i64 18680, !40, i64 18824, !41, i64 18840, !42, i64 18856, !43, i64 18872, !44, i64 18888, !45, i64 18904, !46, i64 18920, !46, i64 18936, !13, i64 18952, !47, i64 18960, !15, i64 18976, !6, i64 18984, !6, i64 18992, !6, i64 19000, !13, i64 19008, !48, i64 19016, !13, i64 19064, !13, i64 19068, !13, i64 19072, !6, i64 19080, !13, i64 19088, !13, i64 19092, !13, i64 19096, !13, i64 19100, !13, i64 19104, !13, i64 19108, !13, i64 19112, !13, i64 19116, !13, i64 19120, !13, i64 19124, !13, i64 19128, !32, i64 19132, !49, i64 19136, !11, i64 19140, !11, i64 19141, !11, i64 19142, !11, i64 19143, !11, i64 19144, !11, i64 19145, !11, i64 19146, !50, i64 19152, !11, i64 19200, !11, i64 19201, !11, i64 19202, !13, i64 19204, !13, i64 19208, !13, i64 19212, !13, i64 19216, !13, i64 19220, !13, i64 19224, !37, i64 19228, !37, i64 19244, !13, i64 19260, !13, i64 19264, !13, i64 19268, !50, i64 19272, !50, i64 19320, !50, i64 19368, !50, i64 19416, !13, i64 19464, !13, i64 19468, !6, i64 19472, !6, i64 19480, !6, i64 19488, !15, i64 19496, !15, i64 19500, !11, i64 19504, !14, i64 19508, !14, i64 19516, !15, i64 19524, !11, i64 19528, !11, i64 19529, !11, i64 19530, !13, i64 19532, !13, i64 19536, !13, i64 19540, !51, i64 19544, !37, i64 19608, !13, i64 19624, !13, i64 19628, !15, i64 19632, !13, i64 19636, !13, i64 19640, !13, i64 19644, !13, i64 19648, !52, i64 19656, !7, i64 19672, !13, i64 19688, !53, i64 19696, !6, i64 19712, !13, i64 19720, !54, i64 19728, !55, i64 19744, !57, i64 19784, !58, i64 19800, !6, i64 19816, !59, i64 19824, !61, i64 19864, !62, i64 19880, !13, i64 19896, !13, i64 19900, !15, i64 19904, !15, i64 19908, !13, i64 19912, !13, i64 19916, !13, i64 19920, !15, i64 19924, !14, i64 19928, !63, i64 19936, !67, i64 23664, !68, i64 23688, !13, i64 23808, !13, i64 23812, !13, i64 23816, !13, i64 23820, !15, i64 23824, !15, i64 23828, !13, i64 23832, !24, i64 23836, !70, i64 23852, !15, i64 23900, !15, i64 23904, !11, i64 23908, !11, i64 23909, !15, i64 23912, !15, i64 23916, !15, i64 23920, !15, i64 23924, !17, i64 23928, !17, i64 23930, !64, i64 23936, !43, i64 23952, !71, i64 23968, !71, i64 23984, !13, i64 24000, !7, i64 24004, !72, i64 24008, !6, i64 24064, !11, i64 24072, !15, i64 24076, !75, i64 24080, !76, i64 24096, !77, i64 24112, !78, i64 24128, !79, i64 24144, !13, i64 24160, !7, i64 24168, !11, i64 24240, !80, i64 24244, !6, i64 24248, !75, i64 24256, !6, i64 24272, !6, i64 24280, !15, i64 24288, !11, i64 24292, !13, i64 24296, !13, i64 24300, !13, i64 24304, !13, i64 24308, !75, i64 24312, !81, i64 24328, !7, i64 24352, !7, i64 24353, !7, i64 24354, !11, i64 24355, !7, i64 24356, !13, i64 24360, !82, i64 24364, !83, i64 24384, !6, i64 24424, !7, i64 24432, !13, i64 24672, !13, i64 24676, !15, i64 24680, !13, i64 24684, !13, i64 24688, !13, i64 24692, !64, i64 24696}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"_ZTS7ImGuiIO", !13, i64 0, !13, i64 4, !14, i64 8, !15, i64 16, !15, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !15, i64 56, !11, i64 60, !6, i64 64, !14, i64 72, !11, i64 80, !11, i64 81, !11, i64 82, !11, i64 83, !11, i64 84, !11, i64 85, !11, i64 86, !11, i64 87, !11, i64 88, !11, i64 89, !11, i64 90, !11, i64 91, !11, i64 92, !11, i64 93, !11, i64 94, !11, i64 95, !15, i64 96, !15, i64 100, !15, i64 104, !15, i64 108, !15, i64 112, !15, i64 116, !11, i64 120, !11, i64 121, !11, i64 122, !11, i64 123, !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, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !11, i64 214, !15, i64 216, !13, i64 220, !13, i64 224, !13, i64 228, !13, i64 232, !13, i64 236, !14, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !14, i64 3584, !7, i64 3592, !15, i64 3600, !15, i64 3604, !16, i64 3608, !13, i64 3612, !11, i64 3616, !11, i64 3617, !11, i64 3618, !11, i64 3619, !13, i64 3620, !7, i64 3624, !11, i64 14056, !14, i64 14060, !7, i64 14068, !7, i64 14112, !7, i64 14152, !7, i64 14157, !7, i64 14162, !7, i64 14172, !7, i64 14182, !7, i64 14187, !7, i64 14192, !11, i64 14197, !7, i64 14200, !7, i64 14220, !7, i64 14240, !7, i64 14280, !15, i64 14300, !11, i64 14304, !11, i64 14305, !7, i64 14306, !11, i64 14307, !17, i64 14308, !18, i64 14312}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS6ImVec2", !15, i64 0, !15, i64 4}
!15 = !{!"float", !7, i64 0}
!16 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!17 = !{!"short", !7, i64 0}
!18 = !{!"_ZTS8ImVectorItE", !13, i64 0, !13, i64 4, !6, i64 8}
!19 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !20, i64 184, !21, i64 200}
!20 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !13, i64 0, !13, i64 4, !6, i64 8}
!21 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !13, i64 0, !13, i64 4, !6, i64 8}
!22 = !{!"_ZTS10ImGuiStyle", !15, i64 0, !15, i64 4, !14, i64 8, !15, i64 16, !15, i64 20, !14, i64 24, !14, i64 32, !13, i64 40, !15, i64 44, !15, i64 48, !15, i64 52, !15, i64 56, !14, i64 60, !15, i64 68, !15, i64 72, !14, i64 76, !14, i64 84, !14, i64 92, !14, i64 100, !15, i64 108, !15, i64 112, !15, i64 116, !15, i64 120, !15, i64 124, !15, i64 128, !15, i64 132, !15, i64 136, !15, i64 140, !15, i64 144, !13, i64 148, !14, i64 152, !14, i64 160, !15, i64 168, !14, i64 172, !14, i64 180, !14, i64 188, !14, i64 196, !15, i64 204, !15, i64 208, !11, i64 212, !11, i64 213, !11, i64 214, !15, i64 216, !15, i64 220, !7, i64 224, !15, i64 1104, !15, i64 1108, !15, i64 1112, !13, i64 1116, !13, i64 1120}
!23 = !{!"_ZTS20ImDrawListSharedData", !14, i64 0, !6, i64 8, !15, i64 16, !15, i64 20, !15, i64 24, !24, i64 28, !13, i64 44, !25, i64 48, !7, i64 64, !15, i64 448, !7, i64 452, !6, i64 520}
!24 = !{!"_ZTS6ImVec4", !15, i64 0, !15, i64 4, !15, i64 8, !15, i64 12}
!25 = !{!"_ZTS8ImVectorI6ImVec2E", !13, i64 0, !13, i64 4, !6, i64 8}
!26 = !{!"double", !7, i64 0}
!27 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !13, i64 0, !13, i64 4, !6, i64 8}
!28 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !13, i64 0, !13, i64 4, !6, i64 8}
!29 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!30 = !{!"_ZTS12ImGuiStorage", !31, i64 0}
!31 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !13, i64 0, !13, i64 4, !6, i64 8}
!32 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!33 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !34, i64 280, !34, i64 296}
!34 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!35 = !{!"_ZTS17ImGuiNextItemData", !13, i64 0, !13, i64 4, !15, i64 8, !13, i64 12, !13, i64 16, !11, i64 20}
!36 = !{!"_ZTS17ImGuiLastItemData", !13, i64 0, !13, i64 4, !13, i64 8, !37, i64 12, !37, i64 28, !37, i64 44}
!37 = !{!"_ZTS6ImRect", !14, i64 0, !14, i64 8}
!38 = !{!"_ZTS19ImGuiNextWindowData", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !14, i64 20, !14, i64 28, !14, i64 36, !14, i64 44, !14, i64 52, !11, i64 60, !11, i64 61, !37, i64 64, !6, i64 80, !6, i64 88, !15, i64 96, !13, i64 100, !13, i64 104, !39, i64 108, !14, i64 136}
!39 = !{!"_ZTS16ImGuiWindowClass", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !11, i64 24, !11, i64 25}
!40 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !13, i64 0, !13, i64 4, !6, i64 8}
!41 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !13, i64 0, !13, i64 4, !6, i64 8}
!42 = !{!"_ZTS8ImVectorIP6ImFontE", !13, i64 0, !13, i64 4, !6, i64 8}
!43 = !{!"_ZTS8ImVectorIjE", !13, i64 0, !13, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorIiE", !13, i64 0, !13, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !13, i64 0, !13, i64 4, !6, i64 8}
!48 = !{!"_ZTS20ImGuiPlatformMonitor", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !15, i64 32, !6, i64 40}
!49 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!50 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !13, i64 8, !13, i64 12, !37, i64 16, !13, i64 32, !15, i64 36, !15, i64 40, !15, i64 44}
!51 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !7, i64 24, !11, i64 57, !11, i64 58}
!52 = !{!"_ZTS8ImVectorIhE", !13, i64 0, !13, i64 4, !6, i64 8}
!53 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!54 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!55 = !{!"_ZTS6ImPoolI10ImGuiTableE", !56, i64 0, !30, i64 16, !13, i64 32, !13, i64 36}
!56 = !{!"_ZTS8ImVectorI10ImGuiTableE", !13, i64 0, !13, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorIfE", !13, i64 0, !13, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !13, i64 0, !13, i64 4, !6, i64 8}
!59 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !60, i64 0, !30, i64 16, !13, i64 32, !13, i64 36}
!60 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !13, i64 0, !13, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !13, i64 0, !13, i64 4, !6, i64 8}
!62 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !13, i64 0, !13, i64 4, !6, i64 8}
!63 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !13, i64 8, !13, i64 12, !13, i64 16, !18, i64 24, !64, i64 40, !64, i64 56, !11, i64 72, !13, i64 76, !15, i64 80, !65, i64 84, !15, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !13, i64 3720}
!64 = !{!"_ZTS8ImVectorIcE", !13, i64 0, !13, i64 4, !6, i64 8}
!65 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !13, i64 0, !13, i64 4, !13, i64 8, !7, i64 12, !13, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !15, i64 28, !66, i64 32}
!66 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !17, i64 3582, !17, i64 3584, !13, i64 3588, !13, i64 3592}
!67 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !13, i64 0, !64, i64 8}
!68 = !{!"_ZTS6ImFont", !57, i64 0, !15, i64 16, !15, i64 20, !18, i64 24, !69, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !17, i64 80, !17, i64 82, !17, i64 84, !17, i64 86, !15, i64 88, !15, i64 92, !11, i64 96, !15, i64 100, !15, i64 104, !15, i64 108, !13, i64 112, !7, i64 116}
!69 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !13, i64 0, !13, i64 4, !6, i64 8}
!70 = !{!"_ZTS21ImGuiComboPreviewData", !37, i64 0, !14, i64 16, !14, i64 24, !14, i64 32, !15, i64 40, !13, i64 44}
!71 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !14, i64 4, !15, i64 12}
!72 = !{!"_ZTS16ImGuiDockContext", !30, i64 0, !73, i64 16, !74, i64 32, !11, i64 48}
!73 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !13, i64 0, !13, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !13, i64 0, !13, i64 4, !6, i64 8}
!75 = !{!"_ZTS15ImGuiTextBuffer", !64, i64 0}
!76 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !13, i64 0, !13, i64 4, !6, i64 8}
!77 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !64, i64 0}
!78 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !64, i64 0}
!79 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !13, i64 0, !13, i64 4, !6, i64 8}
!80 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!81 = !{!"_ZTS14ImGuiTextIndex", !44, i64 0, !13, i64 16}
!82 = !{!"_ZTS18ImGuiMetricsConfig", !11, i64 0, !11, i64 1, !11, i64 2, !11, i64 3, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !11, i64 8, !13, i64 12, !13, i64 16}
!83 = !{!"_ZTS14ImGuiStackTool", !13, i64 0, !13, i64 4, !13, i64 8, !84, i64 16, !11, i64 32, !15, i64 36}
!84 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !13, i64 0, !13, i64 4, !6, i64 8}
!85 = !{!13, !13, i64 0}
!86 = !{!87, !88, i64 4}
!87 = !{!"_ZTS16ImGuiContextHook", !13, i64 0, !88, i64 4, !13, i64 8, !6, i64 16, !6, i64 24}
!88 = !{!"_ZTS20ImGuiContextHookType", !7, i64 0}
!89 = distinct !{!89, !90}
!90 = !{!"llvm.loop.mustprogress"}
!91 = !{!10, !13, i64 15676}
!92 = !{!10, !13, i64 15680}
!93 = !{!10, !13, i64 8}
!94 = !{!10, !15, i64 24}
!95 = !{!10, !26, i64 16232}
!96 = !{!10, !11, i64 16256}
!97 = !{!10, !13, i64 16240}
!98 = !{!10, !17, i64 23930}
!99 = !{!10, !13, i64 16392}
!100 = !{!10, !13, i64 24672}
!101 = !{!15, !15, i64 0}
!102 = !{!10, !15, i64 24680}
!103 = !{!10, !13, i64 24676}
!104 = !{!10, !15, i64 224}
!105 = !{!10, !11, i64 98}
!106 = !{i8 0, i8 2}
!107 = !{}
!108 = !{!10, !6, i64 56}
!109 = !{!110, !11, i64 24}
!110 = !{!"_ZTS11ImFontAtlas", !13, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !11, i64 24, !6, i64 32, !11, i64 40, !11, i64 41, !6, i64 48, !6, i64 56, !13, i64 64, !13, i64 68, !14, i64 72, !14, i64 80, !42, i64 88, !111, i64 104, !112, i64 120, !7, i64 136, !6, i64 1160, !13, i64 1168, !13, i64 1172, !13, i64 1176}
!111 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !13, i64 0, !13, i64 4, !6, i64 8}
!112 = !{!"_ZTS8ImVectorI12ImFontConfigE", !13, i64 0, !13, i64 4, !6, i64 8}
!113 = !{!10, !6, i64 15688}
!114 = !{!10, !13, i64 18960}
!115 = distinct !{!115, !90}
!116 = !{i64 0, i64 4, !101, i64 4, i64 4, !101, i64 8, i64 4, !101, i64 12, i64 4, !101}
!117 = !{!10, !15, i64 14768}
!118 = !{!10, !15, i64 15724}
!119 = !{!10, !15, i64 14772}
!120 = !{!10, !13, i64 15748}
!121 = !{!10, !11, i64 14764}
!122 = !{!10, !11, i64 14765}
!123 = !{!68, !6, i64 64}
!124 = !{!110, !13, i64 0}
!125 = !{!10, !11, i64 14766}
!126 = !{!10, !13, i64 12}
!127 = !{!128, !6, i64 48}
!128 = !{!"_ZTS13ImGuiViewport", !13, i64 0, !13, i64 4, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !15, i64 40, !13, i64 44, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !11, i64 88, !11, i64 89, !11, i64 90, !11, i64 91}
!129 = distinct !{!129, !90}
!130 = !{!10, !11, i64 19528}
!131 = !{!10, !13, i64 19556}
!132 = !{!10, !13, i64 16504}
!133 = !{!10, !13, i64 16488}
!134 = !{!10, !15, i64 16496}
!135 = !{!10, !13, i64 16484}
!136 = !{!10, !15, i64 16500}
!137 = !{!10, !11, i64 16492}
!138 = !{!10, !11, i64 16493}
!139 = !{!10, !13, i64 16508}
!140 = !{!10, !13, i64 16552}
!141 = !{!10, !13, i64 24308}
!142 = !{!10, !15, i64 16512}
!143 = !{!10, !15, i64 16572}
!144 = !{!10, !6, i64 16536}
!145 = !{!10, !6, i64 16560}
!146 = !{!10, !11, i64 16520}
!147 = !{!10, !11, i64 16557}
!148 = !{!10, !11, i64 16521}
!149 = !{!10, !11, i64 16556}
!150 = !{!10, !11, i64 16516}
!151 = !{!10, !13, i64 23808}
!152 = !{!10, !13, i64 18568}
!153 = !{!10, !11, i64 18572}
!154 = !{!10, !13, i64 18576}
!155 = !{!10, !13, i64 19896}
!156 = !{!10, !15, i64 19924}
!157 = !{!10, !15, i64 15656}
!158 = !{!10, !13, i64 19912}
!159 = !{!10, !6, i64 16416}
!160 = !{!161, !13, i64 16}
!161 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !39, i64 28, !6, i64 56, !13, i64 64, !14, i64 68, !13, i64 76, !14, i64 80, !14, i64 88, !14, i64 96, !14, i64 104, !14, i64 112, !14, i64 120, !14, i64 128, !15, i64 136, !15, i64 140, !15, i64 144, !15, i64 148, !15, i64 152, !15, i64 156, !15, i64 160, !15, i64 164, !13, i64 168, !13, i64 172, !13, i64 176, !13, i64 180, !14, i64 184, !14, i64 192, !14, i64 200, !14, i64 208, !14, i64 216, !14, i64 224, !11, i64 232, !11, i64 233, !11, i64 234, !11, i64 235, !11, i64 236, !11, i64 237, !11, i64 238, !11, i64 239, !11, i64 240, !11, i64 241, !11, i64 242, !11, i64 243, !11, i64 244, !11, i64 245, !7, i64 246, !17, i64 248, !17, i64 250, !17, i64 252, !17, i64 254, !17, i64 256, !13, i64 260, !7, i64 264, !7, i64 265, !7, i64 266, !11, i64 267, !13, i64 268, !7, i64 272, !7, i64 273, !7, i64 274, !7, i64 275, !13, i64 276, !13, i64 277, !13, i64 278, !13, i64 279, !14, i64 280, !14, i64 288, !43, i64 296, !162, i64 312, !37, i64 544, !37, i64 560, !37, i64 576, !37, i64 592, !37, i64 608, !37, i64 624, !37, i64 640, !165, i64 656, !165, i64 660, !13, i64 664, !13, i64 668, !15, i64 672, !15, i64 676, !30, i64 680, !166, i64 696, !15, i64 712, !15, i64 716, !13, i64 720, !6, i64 728, !167, i64 736, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !7, i64 1000, !7, i64 1008, !7, i64 1040, !13, i64 1056, !13, i64 1060, !13, i64 1064, !11, i64 1068, !11, i64 1069, !11, i64 1069, !11, i64 1069, !11, i64 1069, !17, i64 1070, !174, i64 1072, !6, i64 1096, !6, i64 1104, !13, i64 1112, !13, i64 1116, !37, i64 1120}
!162 = !{!"_ZTS19ImGuiWindowTempData", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48, !15, i64 56, !15, i64 60, !11, i64 64, !11, i64 65, !163, i64 68, !163, i64 72, !163, i64 76, !14, i64 80, !49, i64 88, !17, i64 92, !17, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !14, i64 100, !164, i64 108, !13, i64 136, !13, i64 140, !28, i64 144, !6, i64 160, !6, i64 168, !13, i64 176, !13, i64 180, !13, i64 184, !15, i64 188, !15, i64 192, !57, i64 200, !57, i64 216}
!163 = !{!"_ZTS6ImVec1", !15, i64 0}
!164 = !{!"_ZTS16ImGuiMenuColumns", !13, i64 0, !13, i64 4, !17, i64 8, !17, i64 10, !17, i64 12, !17, i64 14, !17, i64 16, !7, i64 18}
!165 = !{!"_ZTS8ImVec2ih", !17, i64 0, !17, i64 2}
!166 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !13, i64 0, !13, i64 4, !6, i64 8}
!167 = !{!"_ZTS10ImDrawList", !168, i64 0, !18, i64 16, !169, i64 32, !13, i64 48, !13, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !170, i64 88, !171, i64 104, !25, i64 120, !172, i64 136, !173, i64 168, !15, i64 192}
!168 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !13, i64 0, !13, i64 4, !6, i64 8}
!169 = !{!"_ZTS8ImVectorI10ImDrawVertE", !13, i64 0, !13, i64 4, !6, i64 8}
!170 = !{!"_ZTS8ImVectorI6ImVec4E", !13, i64 0, !13, i64 4, !6, i64 8}
!171 = !{!"_ZTS8ImVectorIPvE", !13, i64 0, !13, i64 4, !6, i64 8}
!172 = !{!"_ZTS15ImDrawCmdHeader", !24, i64 0, !6, i64 16, !13, i64 24}
!173 = !{!"_ZTS18ImDrawListSplitter", !13, i64 0, !13, i64 4, !58, i64 8}
!174 = !{!"_ZTS20ImGuiWindowDockStyle", !7, i64 0}
!175 = !{!10, !13, i64 19916}
!176 = !{!10, !13, i64 19900}
!177 = !{!10, !15, i64 19904}
!178 = !{!10, !15, i64 19908}
!179 = !{!10, !13, i64 19636}
!180 = !{!10, !13, i64 19640}
!181 = !{!10, !15, i64 19632}
!182 = !{!10, !11, i64 19529}
!183 = !{!10, !11, i64 19530}
!184 = !{!10, !13, i64 19648}
!185 = !{!10, !6, i64 19472}
!186 = !{!10, !15, i64 19500}
!187 = !{!10, !15, i64 19524}
!188 = !{!10, !13, i64 19920}
!189 = !{!10, !13, i64 24692}
!190 = !{!10, !13, i64 24688}
!191 = !{!10, !13, i64 24684}
!192 = !{i64 0, i64 1, !193, i64 4, i64 4, !101, i64 8, i64 4, !101, i64 12, i64 4, !101}
!193 = !{!11, !11, i64 0}
!194 = !{!10, !11, i64 23968}
!195 = !{!10, !13, i64 16328}
!196 = !{!10, !13, i64 16312}
!197 = !{!10, !11, i64 16259}
!198 = !{!10, !15, i64 104}
!199 = !{!161, !11, i64 235}
!200 = !{!161, !11, i64 236}
!201 = !{!161, !11, i64 237}
!202 = !{!161, !17, i64 248}
!203 = !{!161, !17, i64 250}
!204 = !{!161, !11, i64 1068}
!205 = !{!161, !15, i64 672}
!206 = distinct !{!206, !90}
!207 = !{!10, !13, i64 19784}
!208 = distinct !{!208, !90}
!209 = !{!10, !13, i64 19728}
!210 = !{!211, !15, i64 4}
!211 = !{!"_ZTS18ImGuiTableTempData", !13, i64 0, !15, i64 4, !14, i64 8, !173, i64 16, !37, i64 40, !37, i64 56, !14, i64 72, !14, i64 80, !14, i64 88, !163, i64 96, !15, i64 100, !13, i64 104}
!212 = distinct !{!212, !90}
!213 = !{!10, !6, i64 19080}
!214 = !{!10, !7, i64 24353}
!215 = !{!10, !13, i64 18588}
!216 = !{!10, !7, i64 24352}
!217 = !{!10, !11, i64 16257}
!218 = !{!10, !6, i64 16408}
!219 = !{!161, !11, i64 243}
!220 = !{!10, !11, i64 129}
!221 = !{!10, !7, i64 24354}


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

@GImGui = external dso_local local_unnamed_addr global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [2 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv = external hidden unnamed_addr constant [23 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [42 x i8], align 1

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK14ImGuiViewportP11GetMainRectEv(ptr noundef nonnull align 8 dereferenceable(320)) local_unnamed_addr #7 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui29GcCompactTransientMiscBuffersEv() local_unnamed_addr #7

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13ClearActiveIDEv() local_unnamed_addr #7

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui31UpdateMouseMovingWindowNewFrameEv() local_unnamed_addr #8

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui34UpdateHoveredWindowAndCaptureFlagsEv() local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui8NewFrameEv() local_unnamed_addr #8 {
  %1 = alloca %struct.ImRect, align 4
  %2 = alloca %struct.ImRect, align 8
  %3 = alloca i32, align 4
  %4 = alloca %struct.ImVec2, align 4
  %5 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %.not = icmp eq ptr %5, null
  br i1 %.not, label %6, label %7

6:                                                ; preds = %0
  tail call void @__assert_fail(ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.3, i32 noundef 4693, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

7:                                                ; preds = %0
  %8 = getelementptr inbounds i8, ptr %5, i64 24144
  %9 = load i32, ptr %8, align 8, !tbaa !9
  %10 = icmp sgt i32 %9, 0
  br i1 %10, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %71, %7
  tail call void @_ZN5ImGui16CallContextHooksEP12ImGuiContext20ImGuiContextHookType(ptr noundef %5, i32 noundef 0)
  %11 = getelementptr inbounds i8, ptr %5, i64 15676
  %12 = load i32, ptr %11, align 4, !tbaa !85
  %13 = getelementptr inbounds i8, ptr %5, i64 15680
  store i32 %12, ptr %13, align 8, !tbaa !86
  tail call void @_ZN5ImGuiL30ErrorCheckNewFrameSanityChecksEv()
  %14 = getelementptr inbounds i8, ptr %5, i64 8
  %15 = load i32, ptr %14, align 8, !tbaa !87
  store i32 %15, ptr %11, align 4, !tbaa !85
  tail call void @_ZN5ImGuiL14UpdateSettingsEv()
  %16 = getelementptr inbounds i8, ptr %5, i64 24
  %17 = load float, ptr %16, align 8, !tbaa !88
  %18 = fpext float %17 to double
  %19 = getelementptr inbounds i8, ptr %5, i64 16232
  %20 = load double, ptr %19, align 8, !tbaa !89
  %21 = fadd double %20, %18
  store double %21, ptr %19, align 8, !tbaa !89
  %22 = getelementptr inbounds i8, ptr %5, i64 16256
  store i8 1, ptr %22, align 8, !tbaa !90
  %23 = getelementptr inbounds i8, ptr %5, i64 16240
  %24 = load i32, ptr %23, align 8, !tbaa !91
  %25 = add nsw i32 %24, 1
  store i32 %25, ptr %23, align 8, !tbaa !91
  %26 = getelementptr inbounds i8, ptr %5, i64 23930
  store i16 0, ptr %26, align 2, !tbaa !92
  %27 = getelementptr inbounds i8, ptr %5, i64 16392
  store i32 0, ptr %27, align 8, !tbaa !93
  %28 = getelementptr inbounds i8, ptr %5, i64 23952
  tail call void @_ZN8ImVectorIjE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %28, i32 noundef 0)
  %29 = load float, ptr %16, align 8, !tbaa !88
  %30 = getelementptr inbounds i8, ptr %5, i64 24432
  %31 = getelementptr inbounds i8, ptr %5, i64 24672
  %32 = load i32, ptr %31, align 8, !tbaa !94
  %33 = sext i32 %32 to i64
  %34 = getelementptr inbounds [60 x float], ptr %30, i64 0, i64 %33
  %35 = load float, ptr %34, align 4, !tbaa !95
  %36 = fsub float %29, %35
  %37 = getelementptr inbounds i8, ptr %5, i64 24680
  %38 = load float, ptr %37, align 8, !tbaa !96
  %39 = fadd float %38, %36
  store float %39, ptr %37, align 8, !tbaa !96
  store float %29, ptr %34, align 4, !tbaa !95
  %40 = add nsw i32 %32, 1
  %41 = srem i32 %40, 60
  store i32 %41, ptr %31, align 8, !tbaa !94
  %42 = getelementptr inbounds i8, ptr %5, i64 24676
  %43 = load i32, ptr %42, align 4, !tbaa !97
  %44 = add nsw i32 %43, 1
  %45 = tail call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %44, i32 noundef 60)
  store i32 %45, ptr %42, align 4, !tbaa !97
  %46 = load float, ptr %37, align 8, !tbaa !96
  %47 = fcmp ogt float %46, 0.000000e+00
  %48 = sitofp i32 %45 to float
  %49 = fdiv float %46, %48
  %50 = fdiv float 1.000000e+00, %49
  %51 = select i1 %47, float %50, float 0x47EFFFFFE0000000
  %52 = getelementptr inbounds i8, ptr %5, i64 224
  store float %51, ptr %52, align 8, !tbaa !98
  %53 = getelementptr inbounds i8, ptr %5, i64 16288
  tail call void @_ZN8ImVectorI15ImGuiInputEventE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %53, i32 noundef 0)
  %54 = getelementptr inbounds i8, ptr %5, i64 98
  %55 = load i8, ptr %54, align 2, !tbaa !99, !range !100, !noundef !101
  %56 = trunc nuw i8 %55 to i1
  tail call void @_ZN5ImGui17UpdateInputEventsEb(i1 noundef zeroext %56)
  tail call void @_ZN5ImGuiL23UpdateViewportsNewFrameEv()
  %57 = getelementptr inbounds i8, ptr %5, i64 56
  %58 = load ptr, ptr %57, align 8, !tbaa !102
  %59 = getelementptr inbounds i8, ptr %58, i64 24
  store i8 1, ptr %59, align 8, !tbaa !103
  %60 = tail call noundef ptr @_ZN5ImGui14GetDefaultFontEv()
  tail call void @_ZN5ImGui14SetCurrentFontEP6ImFont(ptr noundef %60)
  %61 = getelementptr inbounds i8, ptr %5, i64 15688
  %62 = load ptr, ptr %61, align 8, !tbaa !107
  %63 = tail call noundef zeroext i1 @_ZNK6ImFont8IsLoadedEv(ptr noundef nonnull align 8 dereferenceable(118) %62)
  br i1 %63, label %74, label %73

.lr.ph:                                           ; preds = %7, %71
  %.0244298.in = phi i32 [ %.0244298, %71 ], [ %9, %7 ]
  %.0244298 = add nsw i32 %.0244298.in, -1
  %64 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZN8ImVectorI16ImGuiContextHookEixEi(ptr noundef nonnull align 8 dereferenceable(16) %8, i32 noundef %.0244298)
  %65 = getelementptr inbounds i8, ptr %64, i64 4
  %66 = load i32, ptr %65, align 4, !tbaa !108
  %67 = icmp eq i32 %66, 7
  br i1 %67, label %68, label %71

68:                                               ; preds = %.lr.ph
  %69 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZN8ImVectorI16ImGuiContextHookEixEi(ptr noundef nonnull align 8 dereferenceable(16) %8, i32 noundef %.0244298)
  %70 = tail call noundef ptr @_ZN8ImVectorI16ImGuiContextHookE5eraseEPKS0_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull %69)
  br label %71

71:                                               ; preds = %.lr.ph, %68
  %72 = icmp ugt i32 %.0244298.in, 1
  br i1 %72, label %.lr.ph, label %._crit_edge, !llvm.loop !111

73:                                               ; preds = %._crit_edge
  tail call void @__assert_fail(ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.3, i32 noundef 4737, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

74:                                               ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1) #11
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %1, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000, float noundef 0xC7EFFFFFE0000000, float noundef 0xC7EFFFFFE0000000)
  %75 = getelementptr inbounds i8, ptr %5, i64 18960
  %76 = load i32, ptr %75, align 8, !tbaa !113
  %77 = icmp sgt i32 %76, 0
  br i1 %77, label %.lr.ph301, label %._crit_edge302

.lr.ph301:                                        ; preds = %74
  %78 = getelementptr inbounds i8, ptr %2, i64 8
  br label %95

._crit_edge302:                                   ; preds = %95, %74
  %79 = call { <2 x float>, <2 x float> } @_ZNK6ImRect6ToVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %1)
  %80 = extractvalue { <2 x float>, <2 x float> } %79, 0
  %81 = extractvalue { <2 x float>, <2 x float> } %79, 1
  %82 = getelementptr inbounds i8, ptr %5, i64 15704
  %83 = getelementptr inbounds i8, ptr %5, i64 15732
  store <2 x float> %80, ptr %83, align 4
  %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 15740
  store <2 x float> %81, ptr %.sroa.4.0..sroa_idx, align 4
  %84 = getelementptr inbounds i8, ptr %5, i64 14768
  %85 = load float, ptr %84, align 8, !tbaa !114
  %86 = getelementptr inbounds i8, ptr %5, i64 15724
  store float %85, ptr %86, align 4, !tbaa !115
  %87 = getelementptr inbounds i8, ptr %5, i64 14772
  %88 = load float, ptr %87, align 4, !tbaa !116
  call void @_ZN20ImDrawListSharedData29SetCircleTessellationMaxErrorEf(ptr noundef nonnull align 8 dereferenceable(528) %82, float noundef %88)
  %89 = getelementptr inbounds i8, ptr %5, i64 15748
  %90 = getelementptr inbounds i8, ptr %5, i64 14764
  %91 = load i8, ptr %90, align 4, !tbaa !117, !range !100, !noundef !101
  %spec.store.select = zext nneg i8 %91 to i32
  store i32 %spec.store.select, ptr %89, align 4
  %92 = getelementptr inbounds i8, ptr %5, i64 14765
  %93 = load i8, ptr %92, align 1, !tbaa !118, !range !100, !noundef !101
  %94 = trunc nuw i8 %93 to i1
  br i1 %94, label %104, label %112

95:                                               ; preds = %.lr.ph301, %95
  %.0246299 = phi i32 [ 0, %.lr.ph301 ], [ %101, %95 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #11
  %96 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %75, i32 noundef %.0246299)
  %97 = load ptr, ptr %96, align 8, !tbaa !5
  %98 = call { <2 x float>, <2 x float> } @_ZNK14ImGuiViewportP11GetMainRectEv(ptr noundef nonnull align 8 dereferenceable(320) %97)
  %99 = extractvalue { <2 x float>, <2 x float> } %98, 0
  store <2 x float> %99, ptr %2, align 8
  %100 = extractvalue { <2 x float>, <2 x float> } %98, 1
  store <2 x float> %100, ptr %78, align 8
  call void @_ZN6ImRect3AddERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1, ptr noundef nonnull align 4 dereferenceable(16) %2)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #11
  %101 = add nuw nsw i32 %.0246299, 1
  %102 = load i32, ptr %75, align 8, !tbaa !113
  %103 = icmp slt i32 %101, %102
  br i1 %103, label %95, label %._crit_edge302, !llvm.loop !119

104:                                              ; preds = %._crit_edge302
  %105 = load ptr, ptr %61, align 8, !tbaa !107
  %106 = getelementptr inbounds i8, ptr %105, i64 64
  %107 = load ptr, ptr %106, align 8, !tbaa !120
  %108 = load i32, ptr %107, align 8, !tbaa !121
  %109 = and i32 %108, 4
  %.not262 = icmp eq i32 %109, 0
  br i1 %.not262, label %110, label %112

110:                                              ; preds = %104
  %111 = or disjoint i32 %spec.store.select, 2
  store i32 %111, ptr %89, align 4, !tbaa !122
  br label %112

112:                                              ; preds = %110, %104, %._crit_edge302
  %113 = phi i32 [ %111, %110 ], [ %spec.store.select, %104 ], [ %spec.store.select, %._crit_edge302 ]
  %114 = getelementptr inbounds i8, ptr %5, i64 14766
  %115 = load i8, ptr %114, align 2, !tbaa !123, !range !100, !noundef !101
  %116 = trunc nuw i8 %115 to i1
  br i1 %116, label %117, label %119

117:                                              ; preds = %112
  %118 = or i32 %113, 4
  store i32 %118, ptr %89, align 4, !tbaa !122
  br label %119

119:                                              ; preds = %117, %112
  %120 = phi i32 [ %118, %117 ], [ %113, %112 ]
  %121 = getelementptr inbounds i8, ptr %5, i64 12
  %122 = load i32, ptr %121, align 4, !tbaa !124
  %123 = and i32 %122, 8
  %.not263 = icmp eq i32 %123, 0
  br i1 %.not263, label %126, label %124

124:                                              ; preds = %119
  %125 = or i32 %120, 8
  store i32 %125, ptr %89, align 4, !tbaa !122
  br label %126

126:                                              ; preds = %124, %119
  %127 = load i32, ptr %75, align 8, !tbaa !113
  %128 = icmp sgt i32 %127, 0
  br i1 %128, label %.lr.ph305, label %._crit_edge306

._crit_edge306:                                   ; preds = %.lr.ph305, %126
  %129 = getelementptr inbounds i8, ptr %5, i64 19528
  %130 = load i8, ptr %129, align 8, !tbaa !125, !range !100, !noundef !101
  %131 = trunc nuw i8 %130 to i1
  br i1 %131, label %139, label %146

.lr.ph305:                                        ; preds = %126, %.lr.ph305
  %.0247303 = phi i32 [ %136, %.lr.ph305 ], [ 0, %126 ]
  %132 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %75, i32 noundef %.0247303)
  %133 = load ptr, ptr %132, align 8, !tbaa !5
  %134 = getelementptr inbounds i8, ptr %133, i64 48
  store ptr null, ptr %134, align 8, !tbaa !126
  %135 = getelementptr inbounds i8, ptr %133, i64 168
  call void @_ZN10ImDrawData5ClearEv(ptr noundef nonnull align 8 dereferenceable(64) %135)
  %136 = add nuw nsw i32 %.0247303, 1
  %137 = load i32, ptr %75, align 8, !tbaa !113
  %138 = icmp slt i32 %136, %137
  br i1 %138, label %.lr.ph305, label %._crit_edge306, !llvm.loop !128

139:                                              ; preds = %._crit_edge306
  %140 = getelementptr inbounds i8, ptr %5, i64 19556
  %141 = load i32, ptr %140, align 4, !tbaa !129
  %142 = getelementptr inbounds i8, ptr %5, i64 16504
  %143 = load i32, ptr %142, align 8, !tbaa !130
  %144 = icmp eq i32 %141, %143
  br i1 %144, label %145, label %146

145:                                              ; preds = %139
  call void @_ZN5ImGui11KeepAliveIDEj(i32 noundef %141)
  br label %146

146:                                              ; preds = %145, %139, %._crit_edge306
  %147 = getelementptr inbounds i8, ptr %5, i64 16488
  %148 = load i32, ptr %147, align 8, !tbaa !131
  %.not264 = icmp eq i32 %148, 0
  br i1 %.not264, label %160, label %149

149:                                              ; preds = %146
  %150 = getelementptr inbounds i8, ptr %5, i64 16484
  %151 = load i32, ptr %150, align 4, !tbaa !132
  %.not266 = icmp eq i32 %151, 0
  br i1 %.not266, label %.thread323, label %153

.thread323:                                       ; preds = %149
  %152 = getelementptr inbounds i8, ptr %5, i64 16484
  br label %..thread289_crit_edge

153:                                              ; preds = %149
  %154 = getelementptr inbounds i8, ptr %5, i64 16504
  %155 = load i32, ptr %154, align 8, !tbaa !130
  %156 = icmp eq i32 %155, %151
  br i1 %156, label %.thread327, label %.thread325

.thread327:                                       ; preds = %153
  %157 = getelementptr inbounds i8, ptr %5, i64 16500
  store float 0.000000e+00, ptr %157, align 4, !tbaa !133
  %158 = getelementptr inbounds i8, ptr %5, i64 16484
  br label %164

.thread325:                                       ; preds = %153
  %159 = getelementptr inbounds i8, ptr %5, i64 16484
  br label %164

160:                                              ; preds = %146
  %161 = getelementptr inbounds i8, ptr %5, i64 16496
  %.phi.trans.insert.phi.trans.insert = getelementptr inbounds i8, ptr %5, i64 16484
  %.pre.pre = load i32, ptr %.phi.trans.insert.phi.trans.insert, align 4, !tbaa !132
  store <2 x float> zeroinitializer, ptr %161, align 8, !tbaa !95
  %162 = getelementptr inbounds i8, ptr %5, i64 16484
  %.not267 = icmp eq i32 %.pre.pre, 0
  br i1 %.not267, label %..thread289_crit_edge, label %164

..thread289_crit_edge:                            ; preds = %.thread323, %160
  %163 = phi ptr [ %152, %.thread323 ], [ %162, %160 ]
  %.phi.trans.insert316 = getelementptr inbounds i8, ptr %5, i64 16504
  %.pre317 = load i32, ptr %.phi.trans.insert316, align 8, !tbaa !130
  br label %.thread289

164:                                              ; preds = %.thread327, %.thread325, %160
  %165 = phi ptr [ %159, %.thread325 ], [ %162, %160 ], [ %158, %.thread327 ]
  %166 = phi i32 [ %151, %.thread325 ], [ %.pre.pre, %160 ], [ %151, %.thread327 ]
  %167 = load float, ptr %16, align 8, !tbaa !88
  %168 = getelementptr inbounds i8, ptr %5, i64 16496
  %169 = load float, ptr %168, align 8, !tbaa !134
  %170 = fadd float %167, %169
  store float %170, ptr %168, align 8, !tbaa !134
  %171 = getelementptr inbounds i8, ptr %5, i64 16504
  %172 = load i32, ptr %171, align 8, !tbaa !130
  %.not269 = icmp eq i32 %172, %166
  br i1 %.not269, label %.thread289.thread, label %175

.thread289.thread:                                ; preds = %164
  store i32 %166, ptr %147, align 8, !tbaa !131
  store i32 0, ptr %165, align 4, !tbaa !132
  %173 = getelementptr inbounds i8, ptr %5, i64 16492
  store i8 0, ptr %173, align 4, !tbaa !135
  %174 = getelementptr inbounds i8, ptr %5, i64 16493
  store i8 0, ptr %174, align 1, !tbaa !136
  br label %184

175:                                              ; preds = %164
  %176 = getelementptr inbounds i8, ptr %5, i64 16500
  %177 = load float, ptr %176, align 4, !tbaa !133
  %178 = fadd float %167, %177
  store float %178, ptr %176, align 4, !tbaa !133
  br label %.thread289

.thread289:                                       ; preds = %..thread289_crit_edge, %175
  %179 = phi ptr [ %163, %..thread289_crit_edge ], [ %165, %175 ]
  %180 = phi i32 [ 0, %..thread289_crit_edge ], [ %166, %175 ]
  %181 = phi i32 [ %.pre317, %..thread289_crit_edge ], [ %172, %175 ]
  store i32 %180, ptr %147, align 8, !tbaa !131
  store i32 0, ptr %179, align 4, !tbaa !132
  %182 = getelementptr inbounds i8, ptr %5, i64 16492
  store i8 0, ptr %182, align 4, !tbaa !135
  %183 = getelementptr inbounds i8, ptr %5, i64 16493
  store i8 0, ptr %183, align 1, !tbaa !136
  %.not270 = icmp eq i32 %181, 0
  br i1 %.not270, label %.thread289..thread290_crit_edge, label %184

.thread289..thread290_crit_edge:                  ; preds = %.thread289
  %.pre319 = load float, ptr %16, align 8, !tbaa !88
  br label %.thread290

184:                                              ; preds = %.thread289.thread, %.thread289
  %185 = phi i32 [ %166, %.thread289.thread ], [ %181, %.thread289 ]
  %186 = getelementptr inbounds i8, ptr %5, i64 16504
  %187 = getelementptr inbounds i8, ptr %5, i64 16508
  %188 = load i32, ptr %187, align 4, !tbaa !137
  %.not271 = icmp eq i32 %188, %185
  br i1 %.not271, label %.thread331, label %189

189:                                              ; preds = %184
  %190 = getelementptr inbounds i8, ptr %5, i64 16552
  %191 = load i32, ptr %190, align 8, !tbaa !138
  %192 = icmp eq i32 %191, %185
  br i1 %192, label %193, label %.thread331

193:                                              ; preds = %189
  %194 = getelementptr inbounds i8, ptr %5, i64 24308
  %195 = load i32, ptr %194, align 4, !tbaa !139
  %196 = and i32 %195, 1
  %.not272 = icmp eq i32 %196, 0
  br i1 %.not272, label %198, label %197

197:                                              ; preds = %193
  call void (ptr, ...) @_ZN5ImGui8DebugLogEPKcz(ptr noundef nonnull @.str.114)
  br label %198

.thread331:                                       ; preds = %189, %184
  %.pre320334 = load float, ptr %16, align 8, !tbaa !88
  br label %199

198:                                              ; preds = %193, %197
  call void @_ZN5ImGui13ClearActiveIDEv()
  %.pr.pre = load i32, ptr %186, align 8, !tbaa !130
  %.not273 = icmp eq i32 %.pr.pre, 0
  %.pre320 = load float, ptr %16, align 8, !tbaa !88
  br i1 %.not273, label %.thread290, label %199

199:                                              ; preds = %.thread331, %198
  %.pre320336 = phi float [ %.pre320334, %.thread331 ], [ %.pre320, %198 ]
  %.pr335 = phi i32 [ %185, %.thread331 ], [ %.pr.pre, %198 ]
  %200 = getelementptr inbounds i8, ptr %5, i64 16512
  %201 = load float, ptr %200, align 8, !tbaa !140
  %202 = fadd float %.pre320336, %201
  store float %202, ptr %200, align 8, !tbaa !140
  br label %.thread290

.thread290:                                       ; preds = %.thread289..thread290_crit_edge, %199, %198
  %203 = phi float [ %.pre320336, %199 ], [ %.pre320, %198 ], [ %.pre319, %.thread289..thread290_crit_edge ]
  %.not273292 = phi i1 [ false, %199 ], [ true, %198 ], [ true, %.thread289..thread290_crit_edge ]
  %204 = phi i32 [ %.pr335, %199 ], [ 0, %198 ], [ 0, %.thread289..thread290_crit_edge ]
  %205 = getelementptr inbounds i8, ptr %5, i64 16572
  %206 = load float, ptr %205, align 4, !tbaa !141
  %207 = fadd float %203, %206
  store float %207, ptr %205, align 4, !tbaa !141
  %208 = getelementptr inbounds i8, ptr %5, i64 16552
  store i32 %204, ptr %208, align 8, !tbaa !138
  %209 = getelementptr inbounds i8, ptr %5, i64 16536
  %210 = load ptr, ptr %209, align 8, !tbaa !142
  %211 = getelementptr inbounds i8, ptr %5, i64 16560
  store ptr %210, ptr %211, align 8, !tbaa !143
  %212 = getelementptr inbounds i8, ptr %5, i64 16520
  %213 = load i8, ptr %212, align 8, !tbaa !144, !range !100, !noundef !101
  %214 = getelementptr inbounds i8, ptr %5, i64 16557
  store i8 %213, ptr %214, align 1, !tbaa !145
  %215 = getelementptr inbounds i8, ptr %5, i64 16508
  store i32 0, ptr %215, align 4, !tbaa !137
  %216 = getelementptr inbounds i8, ptr %5, i64 16521
  store i8 0, ptr %216, align 1, !tbaa !146
  %217 = getelementptr inbounds i8, ptr %5, i64 16556
  store i8 0, ptr %217, align 4, !tbaa !147
  %218 = getelementptr inbounds i8, ptr %5, i64 16516
  store i8 0, ptr %218, align 4, !tbaa !148
  %219 = getelementptr inbounds i8, ptr %5, i64 23808
  %220 = load i32, ptr %219, align 8, !tbaa !149
  %.not274 = icmp eq i32 %220, 0
  %.not275 = icmp eq i32 %204, %220
  %or.cond = or i1 %.not274, %.not275
  br i1 %or.cond, label %222, label %221

221:                                              ; preds = %.thread290
  store i32 0, ptr %219, align 8, !tbaa !149
  br label %222

222:                                              ; preds = %221, %.thread290
  br i1 %.not273292, label %223, label %227

223:                                              ; preds = %222
  %224 = getelementptr inbounds i8, ptr %5, i64 18568
  store i32 0, ptr %224, align 8, !tbaa !150
  %225 = getelementptr inbounds i8, ptr %5, i64 18572
  store i8 0, ptr %225, align 4, !tbaa !151
  %226 = getelementptr inbounds i8, ptr %5, i64 18576
  store i32 0, ptr %226, align 8, !tbaa !152
  br label %237

227:                                              ; preds = %222
  %228 = getelementptr inbounds i8, ptr %5, i64 18576
  %229 = load i32, ptr %228, align 8, !tbaa !152
  %.not276 = icmp eq i32 %229, 0
  br i1 %.not276, label %237, label %230

230:                                              ; preds = %227
  %231 = and i32 %229, 2
  %.not277 = icmp eq i32 %231, 0
  br i1 %.not277, label %233, label %232

232:                                              ; preds = %230
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 526, i32 noundef %204, i32 noundef 0)
  %.pre321 = load i32, ptr %228, align 8, !tbaa !152
  br label %233

233:                                              ; preds = %232, %230
  %234 = phi i32 [ %.pre321, %232 ], [ %229, %230 ]
  %235 = and i32 %234, -3
  %.not278 = icmp eq i32 %235, 0
  br i1 %.not278, label %237, label %236

236:                                              ; preds = %233
  call void @__assert_fail(ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.3, i32 noundef 4821, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

237:                                              ; preds = %227, %233, %223
  %238 = getelementptr inbounds i8, ptr %5, i64 19896
  %239 = load i32, ptr %238, align 8, !tbaa !153
  %.not279 = icmp eq i32 %239, 0
  br i1 %.not279, label %.sink.split, label %240

240:                                              ; preds = %237
  %241 = getelementptr inbounds i8, ptr %5, i64 19924
  %242 = load float, ptr %241, align 4, !tbaa !154
  %243 = getelementptr inbounds i8, ptr %5, i64 15656
  %244 = load float, ptr %243, align 8, !tbaa !155
  %245 = fcmp ult float %242, %244
  br i1 %245, label %247, label %.sink.split

.sink.split:                                      ; preds = %237, %240
  %.sink = phi i32 [ %239, %240 ], [ 0, %237 ]
  %246 = getelementptr inbounds i8, ptr %5, i64 19912
  store i32 %.sink, ptr %246, align 8, !tbaa !156
  br label %247

247:                                              ; preds = %.sink.split, %240
  %248 = getelementptr inbounds i8, ptr %5, i64 16416
  %249 = load ptr, ptr %248, align 8, !tbaa !157
  %.not280 = icmp eq ptr %249, null
  br i1 %.not280, label %.sink.split338, label %250

250:                                              ; preds = %247
  %251 = getelementptr inbounds i8, ptr %5, i64 19924
  %252 = load float, ptr %251, align 4, !tbaa !154
  %253 = getelementptr inbounds i8, ptr %5, i64 15656
  %254 = load float, ptr %253, align 8, !tbaa !155
  %255 = fcmp ult float %252, %254
  br i1 %255, label %260, label %256

256:                                              ; preds = %250
  %257 = getelementptr inbounds i8, ptr %249, i64 16
  %258 = load i32, ptr %257, align 8, !tbaa !158
  br label %.sink.split338

.sink.split338:                                   ; preds = %247, %256
  %.sink339 = phi i32 [ %258, %256 ], [ 0, %247 ]
  %259 = getelementptr inbounds i8, ptr %5, i64 19916
  store i32 %.sink339, ptr %259, align 4, !tbaa !173
  br label %260

260:                                              ; preds = %.sink.split338, %250
  %261 = getelementptr inbounds i8, ptr %5, i64 19900
  store i32 %239, ptr %261, align 4, !tbaa !174
  br i1 %.not279, label %268, label %262

262:                                              ; preds = %260
  %263 = load float, ptr %16, align 8, !tbaa !88
  %264 = getelementptr inbounds i8, ptr %5, i64 19904
  %265 = load float, ptr %264, align 8, !tbaa !175
  %266 = fadd float %263, %265
  store float %266, ptr %264, align 8, !tbaa !175
  %267 = getelementptr inbounds i8, ptr %5, i64 19908
  store float 0.000000e+00, ptr %267, align 4, !tbaa !176
  store i32 0, ptr %238, align 8, !tbaa !153
  br label %281

268:                                              ; preds = %260
  %269 = getelementptr inbounds i8, ptr %5, i64 19904
  %270 = load float, ptr %269, align 8, !tbaa !175
  %271 = fcmp ogt float %270, 0.000000e+00
  br i1 %271, label %272, label %281

272:                                              ; preds = %268
  %273 = load float, ptr %16, align 8, !tbaa !88
  %274 = getelementptr inbounds i8, ptr %5, i64 19908
  %275 = load float, ptr %274, align 4, !tbaa !176
  %276 = fadd float %273, %275
  store float %276, ptr %274, align 4, !tbaa !176
  %277 = fmul float %273, 2.000000e+00
  %278 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 2.500000e-01, float noundef %277)
  %279 = fcmp ult float %276, %278
  br i1 %279, label %281, label %280

280:                                              ; preds = %272
  store <2 x float> zeroinitializer, ptr %269, align 8, !tbaa !95
  br label %281

281:                                              ; preds = %268, %280, %272, %262
  %282 = getelementptr inbounds i8, ptr %5, i64 19636
  %283 = load i32, ptr %282, align 4, !tbaa !177
  %284 = getelementptr inbounds i8, ptr %5, i64 19640
  store i32 %283, ptr %284, align 8, !tbaa !178
  store i32 0, ptr %282, align 4, !tbaa !177
  %285 = getelementptr inbounds i8, ptr %5, i64 19632
  store float 0x47EFFFFFE0000000, ptr %285, align 8, !tbaa !179
  %286 = getelementptr inbounds i8, ptr %5, i64 19529
  store i8 0, ptr %286, align 1, !tbaa !180
  %287 = getelementptr inbounds i8, ptr %5, i64 19530
  store i8 0, ptr %287, align 2, !tbaa !181
  %288 = getelementptr inbounds i8, ptr %5, i64 19648
  store i32 0, ptr %288, align 8, !tbaa !182
  call void @_ZN5ImGuiL20UpdateKeyboardInputsEv()
  call void @_ZN5ImGuiL9NavUpdateEv()
  call void @_ZN5ImGuiL17UpdateMouseInputsEv()
  call void @_ZN5ImGui34DockContextNewFrameUpdateUndockingEP12ImGuiContext(ptr noundef nonnull %5)
  call void @_ZN5ImGui34UpdateHoveredWindowAndCaptureFlagsEv()
  call void @_ZN5ImGui31UpdateMouseMovingWindowNewFrameEv()
  %289 = call noundef ptr @_ZN5ImGui20GetTopMostPopupModalEv()
  %.not282 = icmp eq ptr %289, null
  br i1 %.not282, label %290, label %297

290:                                              ; preds = %281
  %291 = getelementptr inbounds i8, ptr %5, i64 19472
  %292 = load ptr, ptr %291, align 8, !tbaa !183
  %.not283 = icmp eq ptr %292, null
  br i1 %.not283, label %303, label %293

293:                                              ; preds = %290
  %294 = getelementptr inbounds i8, ptr %5, i64 19500
  %295 = load float, ptr %294, align 4, !tbaa !184
  %296 = fcmp ogt float %295, 0.000000e+00
  br i1 %296, label %297, label %303

297:                                              ; preds = %293, %281
  %298 = getelementptr inbounds i8, ptr %5, i64 19524
  %299 = load float, ptr %298, align 4, !tbaa !185
  %300 = load float, ptr %16, align 8, !tbaa !88
  %301 = call float @llvm.fmuladd.f32(float %300, float 6.000000e+00, float %299)
  %302 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %301, float noundef 1.000000e+00)
  store float %302, ptr %298, align 4, !tbaa !185
  br label %310

303:                                              ; preds = %293, %290
  %304 = getelementptr inbounds i8, ptr %5, i64 19524
  %305 = load float, ptr %304, align 4, !tbaa !185
  %306 = load float, ptr %16, align 8, !tbaa !88
  %307 = fneg float %306
  %308 = call float @llvm.fmuladd.f32(float %307, float 1.000000e+01, float %305)
  %309 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %308, float noundef 0.000000e+00)
  store float %309, ptr %304, align 4, !tbaa !185
  br label %310

310:                                              ; preds = %303, %297
  %311 = getelementptr inbounds i8, ptr %5, i64 19920
  store i32 0, ptr %311, align 8, !tbaa !186
  %312 = getelementptr inbounds i8, ptr %5, i64 24692
  store i32 -1, ptr %312, align 4, !tbaa !187
  %313 = getelementptr inbounds i8, ptr %5, i64 24688
  store i32 -1, ptr %313, align 8, !tbaa !188
  %314 = getelementptr inbounds i8, ptr %5, i64 24684
  store i32 -1, ptr %314, align 4, !tbaa !189
  %315 = getelementptr inbounds i8, ptr %5, i64 23968
  %316 = getelementptr inbounds i8, ptr %5, i64 23984
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %316, ptr noundef nonnull align 8 dereferenceable(16) %315, i64 16, i1 false), !tbaa.struct !190
  store i8 0, ptr %315, align 8, !tbaa !192
  call void @_ZN5ImGuiL16UpdateMouseWheelEv()
  %317 = getelementptr inbounds i8, ptr %5, i64 16328
  %318 = load i32, ptr %317, align 8, !tbaa !193
  %319 = getelementptr inbounds i8, ptr %5, i64 16312
  %320 = load i32, ptr %319, align 8, !tbaa !194
  %.not284 = icmp sgt i32 %318, %320
  br i1 %.not284, label %321, label %322

321:                                              ; preds = %310
  call void @__assert_fail(ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.3, i32 noundef 4908, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

322:                                              ; preds = %310
  %323 = getelementptr inbounds i8, ptr %5, i64 16259
  %324 = load i8, ptr %323, align 1, !tbaa !195, !range !100, !noundef !101
  %325 = trunc nuw i8 %324 to i1
  br i1 %325, label %334, label %326

326:                                              ; preds = %322
  %327 = getelementptr inbounds i8, ptr %5, i64 104
  %328 = load float, ptr %327, align 8, !tbaa !196
  %329 = fcmp olt float %328, 0.000000e+00
  br i1 %329, label %334, label %330

330:                                              ; preds = %326
  %331 = load double, ptr %19, align 8, !tbaa !89
  %332 = fptrunc double %331 to float
  %333 = fsub float %332, %328
  br label %334

334:                                              ; preds = %322, %326, %330
  %335 = phi float [ %333, %330 ], [ 0x47EFFFFFE0000000, %326 ], [ 0x47EFFFFFE0000000, %322 ]
  %.not285307 = icmp eq i32 %320, 0
  br i1 %.not285307, label %.preheader296, label %.lr.ph310

.preheader296:                                    ; preds = %359, %334
  %336 = getelementptr inbounds i8, ptr %5, i64 19784
  %337 = load i32, ptr %336, align 8, !tbaa !197
  %338 = icmp sgt i32 %337, 0
  br i1 %338, label %.lr.ph312, label %.preheader

.lr.ph312:                                        ; preds = %.preheader296
  %339 = getelementptr inbounds i8, ptr %5, i64 19744
  br label %365

.lr.ph310:                                        ; preds = %334, %359
  %.0245308 = phi i32 [ %360, %359 ], [ 0, %334 ]
  %340 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %319, i32 noundef %.0245308)
  %341 = load ptr, ptr %340, align 8, !tbaa !5
  %342 = getelementptr inbounds i8, ptr %341, i64 235
  %343 = load i8, ptr %342, align 1, !tbaa !198, !range !100, !noundef !101
  %344 = getelementptr inbounds i8, ptr %341, i64 236
  store i8 %343, ptr %344, align 4, !tbaa !199
  store i8 0, ptr %342, align 1, !tbaa !198
  %345 = getelementptr inbounds i8, ptr %341, i64 237
  store i8 0, ptr %345, align 1, !tbaa !200
  %346 = getelementptr inbounds i8, ptr %341, i64 248
  %347 = load i16, ptr %346, align 8, !tbaa !201
  %348 = getelementptr inbounds i8, ptr %341, i64 250
  store i16 %347, ptr %348, align 2, !tbaa !202
  store i16 0, ptr %346, align 8, !tbaa !201
  %349 = trunc nuw i8 %343 to i1
  br i1 %349, label %359, label %350

350:                                              ; preds = %.lr.ph310
  %351 = getelementptr inbounds i8, ptr %341, i64 1068
  %352 = load i8, ptr %351, align 4, !tbaa !203, !range !100, !noundef !101
  %353 = trunc nuw i8 %352 to i1
  br i1 %353, label %359, label %354

354:                                              ; preds = %350
  %355 = getelementptr inbounds i8, ptr %341, i64 672
  %356 = load float, ptr %355, align 8, !tbaa !204
  %357 = fcmp olt float %356, %335
  br i1 %357, label %358, label %359

358:                                              ; preds = %354
  call void @_ZN5ImGui31GcCompactTransientWindowBuffersEP11ImGuiWindow(ptr noundef nonnull %341)
  br label %359

359:                                              ; preds = %358, %354, %350, %.lr.ph310
  %360 = add nuw nsw i32 %.0245308, 1
  %361 = load i32, ptr %319, align 8, !tbaa !194
  %.not285 = icmp eq i32 %360, %361
  br i1 %.not285, label %.preheader296, label %.lr.ph310, !llvm.loop !205

.preheader:                                       ; preds = %375, %.preheader296
  %362 = getelementptr inbounds i8, ptr %5, i64 19728
  %363 = load i32, ptr %362, align 8, !tbaa !206
  %364 = icmp sgt i32 %363, 0
  br i1 %364, label %.lr.ph314, label %._crit_edge315

365:                                              ; preds = %.lr.ph312, %375
  %.0243311 = phi i32 [ 0, %.lr.ph312 ], [ %376, %375 ]
  %366 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfEixEi(ptr noundef nonnull align 8 dereferenceable(16) %336, i32 noundef %.0243311)
  %367 = load float, ptr %366, align 4, !tbaa !95
  %368 = fcmp ult float %367, 0.000000e+00
  br i1 %368, label %375, label %369

369:                                              ; preds = %365
  %370 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfEixEi(ptr noundef nonnull align 8 dereferenceable(16) %336, i32 noundef %.0243311)
  %371 = load float, ptr %370, align 4, !tbaa !95
  %372 = fcmp olt float %371, %335
  br i1 %372, label %373, label %375

373:                                              ; preds = %369
  %374 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(40) %339, i32 noundef %.0243311)
  call void @_ZN5ImGui30TableGcCompactTransientBuffersEP10ImGuiTable(ptr noundef %374)
  br label %375

375:                                              ; preds = %365, %369, %373
  %376 = add nuw nsw i32 %.0243311, 1
  %377 = load i32, ptr %336, align 8, !tbaa !197
  %378 = icmp slt i32 %376, %377
  br i1 %378, label %365, label %.preheader, !llvm.loop !207

._crit_edge315:                                   ; preds = %392, %.preheader
  %379 = load i8, ptr %323, align 1, !tbaa !195, !range !100, !noundef !101
  %380 = trunc nuw i8 %379 to i1
  br i1 %380, label %396, label %397

.lr.ph314:                                        ; preds = %.preheader, %392
  %.0313 = phi i32 [ %393, %392 ], [ 0, %.preheader ]
  %381 = call noundef nonnull align 8 dereferenceable(108) ptr @_ZN8ImVectorI18ImGuiTableTempDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %362, i32 noundef %.0313)
  %382 = getelementptr inbounds i8, ptr %381, i64 4
  %383 = load float, ptr %382, align 4, !tbaa !208
  %384 = fcmp ult float %383, 0.000000e+00
  br i1 %384, label %392, label %385

385:                                              ; preds = %.lr.ph314
  %386 = call noundef nonnull align 8 dereferenceable(108) ptr @_ZN8ImVectorI18ImGuiTableTempDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %362, i32 noundef %.0313)
  %387 = getelementptr inbounds i8, ptr %386, i64 4
  %388 = load float, ptr %387, align 4, !tbaa !208
  %389 = fcmp olt float %388, %335
  br i1 %389, label %390, label %392

390:                                              ; preds = %385
  %391 = call noundef nonnull align 8 dereferenceable(108) ptr @_ZN8ImVectorI18ImGuiTableTempDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %362, i32 noundef %.0313)
  call void @_ZN5ImGui30TableGcCompactTransientBuffersEP18ImGuiTableTempData(ptr noundef nonnull %391)
  br label %392

392:                                              ; preds = %.lr.ph314, %385, %390
  %393 = add nuw nsw i32 %.0313, 1
  %394 = load i32, ptr %362, align 8, !tbaa !206
  %395 = icmp slt i32 %393, %394
  br i1 %395, label %.lr.ph314, label %._crit_edge315, !llvm.loop !210

396:                                              ; preds = %._crit_edge315
  call void @_ZN5ImGui29GcCompactTransientMiscBuffersEv()
  br label %397

397:                                              ; preds = %396, %._crit_edge315
  store i8 0, ptr %323, align 1, !tbaa !195
  %398 = getelementptr inbounds i8, ptr %5, i64 19080
  %399 = load ptr, ptr %398, align 8, !tbaa !211
  %.not286 = icmp eq ptr %399, null
  br i1 %.not286, label %405, label %400

400:                                              ; preds = %397
  %401 = getelementptr inbounds i8, ptr %399, i64 236
  %402 = load i8, ptr %401, align 4, !tbaa !199, !range !100, !noundef !101
  %403 = trunc nuw i8 %402 to i1
  br i1 %403, label %405, label %404

404:                                              ; preds = %400
  call void @_ZN5ImGui26FocusTopMostWindowUnderOneEP11ImGuiWindowS1_P13ImGuiViewporti(ptr noundef null, ptr noundef null, ptr noundef null, i32 noundef 1)
  br label %405

405:                                              ; preds = %404, %400, %397
  %406 = getelementptr inbounds i8, ptr %5, i64 16360
  call void @_ZN8ImVectorI20ImGuiWindowStackDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %406, i32 noundef 0)
  %407 = getelementptr inbounds i8, ptr %5, i64 18936
  call void @_ZN8ImVectorI14ImGuiPopupDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %407, i32 noundef 0)
  %408 = getelementptr inbounds i8, ptr %5, i64 18888
  call void @_ZN8ImVectorIiE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %408, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #11
  store i32 0, ptr %3, align 4, !tbaa !212
  call void @_ZN8ImVectorIiE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(16) %408, ptr noundef nonnull align 4 dereferenceable(4) %3)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #11
  %409 = getelementptr inbounds i8, ptr %5, i64 18904
  call void @_ZN8ImVectorI14ImGuiGroupDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %409, i32 noundef 0)
  call void @_ZN5ImGui32DockContextNewFrameUpdateDockingEP12ImGuiContext(ptr noundef nonnull %5)
  call void @_ZN5ImGuiL25UpdateDebugToolItemPickerEv()
  call void @_ZN5ImGuiL27UpdateDebugToolStackQueriesEv()
  %410 = getelementptr inbounds i8, ptr %5, i64 24353
  %411 = load i8, ptr %410, align 1, !tbaa !213
  %.not287 = icmp eq i8 %411, 0
  br i1 %.not287, label %417, label %412

412:                                              ; preds = %405
  %413 = add i8 %411, -1
  store i8 %413, ptr %410, align 1, !tbaa !213
  %414 = icmp eq i8 %413, 0
  br i1 %414, label %415, label %417

415:                                              ; preds = %412
  %416 = getelementptr inbounds i8, ptr %5, i64 18588
  store i32 0, ptr %416, align 4, !tbaa !214
  br label %417

417:                                              ; preds = %415, %412, %405
  %418 = getelementptr inbounds i8, ptr %5, i64 24352
  %419 = load i8, ptr %418, align 8, !tbaa !215
  %.not288 = icmp eq i8 %419, 0
  br i1 %.not288, label %427, label %420

420:                                              ; preds = %417
  %421 = add i8 %419, -1
  store i8 %421, ptr %418, align 8, !tbaa !215
  %422 = icmp eq i8 %421, 0
  br i1 %422, label %423, label %427

423:                                              ; preds = %420
  call void (ptr, ...) @_ZN5ImGui8DebugLogEPKcz(ptr noundef nonnull @.str.116)
  %424 = getelementptr inbounds i8, ptr %5, i64 24308
  %425 = load i32, ptr %424, align 4, !tbaa !139
  %426 = and i32 %425, -17
  store i32 %426, ptr %424, align 4, !tbaa !139
  br label %427

427:                                              ; preds = %423, %420, %417
  %428 = getelementptr inbounds i8, ptr %5, i64 16257
  store i8 1, ptr %428, align 1, !tbaa !216
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef 4.000000e+02, float noundef 4.000000e+02)
  call void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8) %4, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #11
  %429 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.117, ptr noundef null, i32 noundef 0)
  %430 = getelementptr inbounds i8, ptr %5, i64 16408
  %431 = load ptr, ptr %430, align 8, !tbaa !217
  %432 = getelementptr inbounds i8, ptr %431, i64 243
  %433 = load i8, ptr %432, align 1, !tbaa !218, !range !100, !noundef !101
  %434 = trunc nuw i8 %433 to i1
  br i1 %434, label %436, label %435

435:                                              ; preds = %427
  call void @__assert_fail(ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.3, i32 noundef 4967, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

436:                                              ; preds = %427
  %437 = getelementptr inbounds i8, ptr %5, i64 129
  %438 = load i8, ptr %437, align 1, !tbaa !219, !range !100, !noundef !101
  %439 = trunc nuw i8 %438 to i1
  %440 = getelementptr inbounds i8, ptr %5, i64 24354
  br i1 %439, label %441, label %452

441:                                              ; preds = %436
  %442 = load i8, ptr %440, align 2, !tbaa !220
  %443 = icmp eq i8 %442, -1
  br i1 %443, label %452, label %444

444:                                              ; preds = %441
  %445 = sext i8 %442 to i16
  %446 = load i32, ptr %23, align 8, !tbaa !91
  %447 = and i32 %446, 3
  %448 = icmp eq i32 %447, 0
  %449 = zext i1 %448 to i16
  %.lhs.trunc = add nsw i16 %449, %445
  %450 = srem i16 %.lhs.trunc, 10
  %451 = trunc nsw i16 %450 to i8
  br label %452

452:                                              ; preds = %436, %444, %441
  %.sink341 = phi i8 [ %451, %444 ], [ 0, %441 ], [ -1, %436 ]
  store i8 %.sink341, ptr %440, align 2, !tbaa !220
  call void @_ZN5ImGui16CallContextHooksEP12ImGuiContext20ImGuiContextHookType(ptr noundef nonnull %5, i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1) #11
  ret void
}

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL30ErrorCheckNewFrameSanityChecksEv() local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL14UpdateSettingsEv() local_unnamed_addr #7

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui17UpdateInputEventsEb(i1 noundef zeroext) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL23UpdateViewportsNewFrameEv() local_unnamed_addr #8

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK6ImFont8IsLoadedEv(ptr noundef nonnull align 8 dereferenceable(118)) local_unnamed_addr #1 align 2

; 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 uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK6ImRect6ToVec4Ev(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #7 align 2

declare void @_ZN20ImDrawListSharedData29SetCircleTessellationMaxErrorEf(ptr noundef nonnull align 8 dereferenceable(528), float noundef) local_unnamed_addr #9

declare void @_ZN10ImDrawData5ClearEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL20UpdateKeyboardInputsEv() local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL9NavUpdateEv() local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL17UpdateMouseInputsEv() local_unnamed_addr #8

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL16UpdateMouseWheelEv() local_unnamed_addr #8

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

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

declare void @_ZN5ImGui30TableGcCompactTransientBuffersEP10ImGuiTable(ptr noundef) local_unnamed_addr #9

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN6ImPoolI10ImGuiTableE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) local_unnamed_addr #1 align 2

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

declare void @_ZN5ImGui30TableGcCompactTransientBuffersEP18ImGuiTableTempData(ptr noundef) local_unnamed_addr #9

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui32DockContextNewFrameUpdateDockingEP12ImGuiContext(ptr noundef) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL25UpdateDebugToolItemPickerEv() local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL27UpdateDebugToolStackQueriesEv() local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) local_unnamed_addr #7

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { 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 #6 = { 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 #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 = { 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 #9 = { "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 = { noreturn nounwind }
attributes #11 = { 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, !13, i64 24144}
!10 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !12, i64 8, !19, i64 14336, !22, i64 14552, !13, i64 15676, !13, i64 15680, !6, i64 15688, !15, i64 15696, !15, i64 15700, !23, i64 15704, !26, i64 16232, !13, i64 16240, !13, i64 16244, !13, i64 16248, !13, i64 16252, !11, i64 16256, !11, i64 16257, !11, i64 16258, !11, i64 16259, !11, i64 16260, !6, i64 16264, !27, i64 16272, !27, i64 16288, !16, i64 16304, !13, i64 16308, !28, i64 16312, !28, i64 16328, !28, i64 16344, !29, i64 16360, !30, i64 16376, !13, i64 16392, !14, i64 16396, !6, i64 16408, !6, i64 16416, !6, i64 16424, !6, i64 16432, !6, i64 16440, !14, i64 16448, !13, i64 16456, !15, i64 16460, !14, i64 16464, !14, i64 16472, !13, i64 16480, !13, i64 16484, !13, i64 16488, !11, i64 16492, !11, i64 16493, !15, i64 16496, !15, i64 16500, !13, i64 16504, !13, i64 16508, !15, i64 16512, !11, i64 16516, !11, i64 16517, !11, i64 16518, !11, i64 16519, !11, i64 16520, !11, i64 16521, !14, i64 16524, !6, i64 16536, !32, i64 16544, !13, i64 16548, !13, i64 16552, !11, i64 16556, !11, i64 16557, !6, i64 16560, !13, i64 16568, !15, i64 16572, !7, i64 16576, !33, i64 18256, !13, i64 18568, !11, i64 18572, !13, i64 18576, !13, i64 18580, !13, i64 18584, !13, i64 18588, !35, i64 18592, !36, i64 18616, !38, i64 18680, !40, i64 18824, !41, i64 18840, !42, i64 18856, !43, i64 18872, !44, i64 18888, !45, i64 18904, !46, i64 18920, !46, i64 18936, !13, i64 18952, !47, i64 18960, !15, i64 18976, !6, i64 18984, !6, i64 18992, !6, i64 19000, !13, i64 19008, !48, i64 19016, !13, i64 19064, !13, i64 19068, !13, i64 19072, !6, i64 19080, !13, i64 19088, !13, i64 19092, !13, i64 19096, !13, i64 19100, !13, i64 19104, !13, i64 19108, !13, i64 19112, !13, i64 19116, !13, i64 19120, !13, i64 19124, !13, i64 19128, !32, i64 19132, !49, i64 19136, !11, i64 19140, !11, i64 19141, !11, i64 19142, !11, i64 19143, !11, i64 19144, !11, i64 19145, !11, i64 19146, !50, i64 19152, !11, i64 19200, !11, i64 19201, !11, i64 19202, !13, i64 19204, !13, i64 19208, !13, i64 19212, !13, i64 19216, !13, i64 19220, !13, i64 19224, !37, i64 19228, !37, i64 19244, !13, i64 19260, !13, i64 19264, !13, i64 19268, !50, i64 19272, !50, i64 19320, !50, i64 19368, !50, i64 19416, !13, i64 19464, !13, i64 19468, !6, i64 19472, !6, i64 19480, !6, i64 19488, !15, i64 19496, !15, i64 19500, !11, i64 19504, !14, i64 19508, !14, i64 19516, !15, i64 19524, !11, i64 19528, !11, i64 19529, !11, i64 19530, !13, i64 19532, !13, i64 19536, !13, i64 19540, !51, i64 19544, !37, i64 19608, !13, i64 19624, !13, i64 19628, !15, i64 19632, !13, i64 19636, !13, i64 19640, !13, i64 19644, !13, i64 19648, !52, i64 19656, !7, i64 19672, !13, i64 19688, !53, i64 19696, !6, i64 19712, !13, i64 19720, !54, i64 19728, !55, i64 19744, !57, i64 19784, !58, i64 19800, !6, i64 19816, !59, i64 19824, !61, i64 19864, !62, i64 19880, !13, i64 19896, !13, i64 19900, !15, i64 19904, !15, i64 19908, !13, i64 19912, !13, i64 19916, !13, i64 19920, !15, i64 19924, !14, i64 19928, !63, i64 19936, !67, i64 23664, !68, i64 23688, !13, i64 23808, !13, i64 23812, !13, i64 23816, !13, i64 23820, !15, i64 23824, !15, i64 23828, !13, i64 23832, !24, i64 23836, !70, i64 23852, !15, i64 23900, !15, i64 23904, !11, i64 23908, !11, i64 23909, !15, i64 23912, !15, i64 23916, !15, i64 23920, !15, i64 23924, !17, i64 23928, !17, i64 23930, !64, i64 23936, !43, i64 23952, !71, i64 23968, !71, i64 23984, !13, i64 24000, !7, i64 24004, !72, i64 24008, !6, i64 24064, !11, i64 24072, !15, i64 24076, !75, i64 24080, !76, i64 24096, !77, i64 24112, !78, i64 24128, !79, i64 24144, !13, i64 24160, !7, i64 24168, !11, i64 24240, !80, i64 24244, !6, i64 24248, !75, i64 24256, !6, i64 24272, !6, i64 24280, !15, i64 24288, !11, i64 24292, !13, i64 24296, !13, i64 24300, !13, i64 24304, !13, i64 24308, !75, i64 24312, !81, i64 24328, !7, i64 24352, !7, i64 24353, !7, i64 24354, !11, i64 24355, !7, i64 24356, !13, i64 24360, !82, i64 24364, !83, i64 24384, !6, i64 24424, !7, i64 24432, !13, i64 24672, !13, i64 24676, !15, i64 24680, !13, i64 24684, !13, i64 24688, !13, i64 24692, !64, i64 24696}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"_ZTS7ImGuiIO", !13, i64 0, !13, i64 4, !14, i64 8, !15, i64 16, !15, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !15, i64 56, !11, i64 60, !6, i64 64, !14, i64 72, !11, i64 80, !11, i64 81, !11, i64 82, !11, i64 83, !11, i64 84, !11, i64 85, !11, i64 86, !11, i64 87, !11, i64 88, !11, i64 89, !11, i64 90, !11, i64 91, !11, i64 92, !11, i64 93, !11, i64 94, !11, i64 95, !15, i64 96, !15, i64 100, !15, i64 104, !15, i64 108, !15, i64 112, !15, i64 116, !11, i64 120, !11, i64 121, !11, i64 122, !11, i64 123, !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, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !11, i64 214, !15, i64 216, !13, i64 220, !13, i64 224, !13, i64 228, !13, i64 232, !13, i64 236, !14, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !14, i64 3584, !7, i64 3592, !15, i64 3600, !15, i64 3604, !16, i64 3608, !13, i64 3612, !11, i64 3616, !11, i64 3617, !11, i64 3618, !11, i64 3619, !13, i64 3620, !7, i64 3624, !11, i64 14056, !14, i64 14060, !7, i64 14068, !7, i64 14112, !7, i64 14152, !7, i64 14157, !7, i64 14162, !7, i64 14172, !7, i64 14182, !7, i64 14187, !7, i64 14192, !11, i64 14197, !7, i64 14200, !7, i64 14220, !7, i64 14240, !7, i64 14280, !15, i64 14300, !11, i64 14304, !11, i64 14305, !7, i64 14306, !11, i64 14307, !17, i64 14308, !18, i64 14312}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS6ImVec2", !15, i64 0, !15, i64 4}
!15 = !{!"float", !7, i64 0}
!16 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!17 = !{!"short", !7, i64 0}
!18 = !{!"_ZTS8ImVectorItE", !13, i64 0, !13, i64 4, !6, i64 8}
!19 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !20, i64 184, !21, i64 200}
!20 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !13, i64 0, !13, i64 4, !6, i64 8}
!21 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !13, i64 0, !13, i64 4, !6, i64 8}
!22 = !{!"_ZTS10ImGuiStyle", !15, i64 0, !15, i64 4, !14, i64 8, !15, i64 16, !15, i64 20, !14, i64 24, !14, i64 32, !13, i64 40, !15, i64 44, !15, i64 48, !15, i64 52, !15, i64 56, !14, i64 60, !15, i64 68, !15, i64 72, !14, i64 76, !14, i64 84, !14, i64 92, !14, i64 100, !15, i64 108, !15, i64 112, !15, i64 116, !15, i64 120, !15, i64 124, !15, i64 128, !15, i64 132, !15, i64 136, !15, i64 140, !15, i64 144, !13, i64 148, !14, i64 152, !14, i64 160, !15, i64 168, !14, i64 172, !14, i64 180, !14, i64 188, !14, i64 196, !15, i64 204, !15, i64 208, !11, i64 212, !11, i64 213, !11, i64 214, !15, i64 216, !15, i64 220, !7, i64 224, !15, i64 1104, !15, i64 1108, !15, i64 1112, !13, i64 1116, !13, i64 1120}
!23 = !{!"_ZTS20ImDrawListSharedData", !14, i64 0, !6, i64 8, !15, i64 16, !15, i64 20, !15, i64 24, !24, i64 28, !13, i64 44, !25, i64 48, !7, i64 64, !15, i64 448, !7, i64 452, !6, i64 520}
!24 = !{!"_ZTS6ImVec4", !15, i64 0, !15, i64 4, !15, i64 8, !15, i64 12}
!25 = !{!"_ZTS8ImVectorI6ImVec2E", !13, i64 0, !13, i64 4, !6, i64 8}
!26 = !{!"double", !7, i64 0}
!27 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !13, i64 0, !13, i64 4, !6, i64 8}
!28 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !13, i64 0, !13, i64 4, !6, i64 8}
!29 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!30 = !{!"_ZTS12ImGuiStorage", !31, i64 0}
!31 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !13, i64 0, !13, i64 4, !6, i64 8}
!32 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!33 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !34, i64 280, !34, i64 296}
!34 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!35 = !{!"_ZTS17ImGuiNextItemData", !13, i64 0, !13, i64 4, !15, i64 8, !13, i64 12, !13, i64 16, !11, i64 20}
!36 = !{!"_ZTS17ImGuiLastItemData", !13, i64 0, !13, i64 4, !13, i64 8, !37, i64 12, !37, i64 28, !37, i64 44}
!37 = !{!"_ZTS6ImRect", !14, i64 0, !14, i64 8}
!38 = !{!"_ZTS19ImGuiNextWindowData", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !14, i64 20, !14, i64 28, !14, i64 36, !14, i64 44, !14, i64 52, !11, i64 60, !11, i64 61, !37, i64 64, !6, i64 80, !6, i64 88, !15, i64 96, !13, i64 100, !13, i64 104, !39, i64 108, !14, i64 136}
!39 = !{!"_ZTS16ImGuiWindowClass", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !11, i64 24, !11, i64 25}
!40 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !13, i64 0, !13, i64 4, !6, i64 8}
!41 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !13, i64 0, !13, i64 4, !6, i64 8}
!42 = !{!"_ZTS8ImVectorIP6ImFontE", !13, i64 0, !13, i64 4, !6, i64 8}
!43 = !{!"_ZTS8ImVectorIjE", !13, i64 0, !13, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorIiE", !13, i64 0, !13, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !13, i64 0, !13, i64 4, !6, i64 8}
!48 = !{!"_ZTS20ImGuiPlatformMonitor", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !15, i64 32, !6, i64 40}
!49 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!50 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !13, i64 8, !13, i64 12, !37, i64 16, !13, i64 32, !15, i64 36, !15, i64 40, !15, i64 44}
!51 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !7, i64 24, !11, i64 57, !11, i64 58}
!52 = !{!"_ZTS8ImVectorIhE", !13, i64 0, !13, i64 4, !6, i64 8}
!53 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!54 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!55 = !{!"_ZTS6ImPoolI10ImGuiTableE", !56, i64 0, !30, i64 16, !13, i64 32, !13, i64 36}
!56 = !{!"_ZTS8ImVectorI10ImGuiTableE", !13, i64 0, !13, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorIfE", !13, i64 0, !13, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !13, i64 0, !13, i64 4, !6, i64 8}
!59 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !60, i64 0, !30, i64 16, !13, i64 32, !13, i64 36}
!60 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !13, i64 0, !13, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !13, i64 0, !13, i64 4, !6, i64 8}
!62 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !13, i64 0, !13, i64 4, !6, i64 8}
!63 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !13, i64 8, !13, i64 12, !13, i64 16, !18, i64 24, !64, i64 40, !64, i64 56, !11, i64 72, !13, i64 76, !15, i64 80, !65, i64 84, !15, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !13, i64 3720}
!64 = !{!"_ZTS8ImVectorIcE", !13, i64 0, !13, i64 4, !6, i64 8}
!65 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !13, i64 0, !13, i64 4, !13, i64 8, !7, i64 12, !13, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !15, i64 28, !66, i64 32}
!66 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !17, i64 3582, !17, i64 3584, !13, i64 3588, !13, i64 3592}
!67 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !13, i64 0, !64, i64 8}
!68 = !{!"_ZTS6ImFont", !57, i64 0, !15, i64 16, !15, i64 20, !18, i64 24, !69, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !17, i64 80, !17, i64 82, !17, i64 84, !17, i64 86, !15, i64 88, !15, i64 92, !11, i64 96, !15, i64 100, !15, i64 104, !15, i64 108, !13, i64 112, !7, i64 116}
!69 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !13, i64 0, !13, i64 4, !6, i64 8}
!70 = !{!"_ZTS21ImGuiComboPreviewData", !37, i64 0, !14, i64 16, !14, i64 24, !14, i64 32, !15, i64 40, !13, i64 44}
!71 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !14, i64 4, !15, i64 12}
!72 = !{!"_ZTS16ImGuiDockContext", !30, i64 0, !73, i64 16, !74, i64 32, !11, i64 48}
!73 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !13, i64 0, !13, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !13, i64 0, !13, i64 4, !6, i64 8}
!75 = !{!"_ZTS15ImGuiTextBuffer", !64, i64 0}
!76 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !13, i64 0, !13, i64 4, !6, i64 8}
!77 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !64, i64 0}
!78 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !64, i64 0}
!79 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !13, i64 0, !13, i64 4, !6, i64 8}
!80 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!81 = !{!"_ZTS14ImGuiTextIndex", !44, i64 0, !13, i64 16}
!82 = !{!"_ZTS18ImGuiMetricsConfig", !11, i64 0, !11, i64 1, !11, i64 2, !11, i64 3, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !11, i64 8, !13, i64 12, !13, i64 16}
!83 = !{!"_ZTS14ImGuiStackTool", !13, i64 0, !13, i64 4, !13, i64 8, !84, i64 16, !11, i64 32, !15, i64 36}
!84 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !13, i64 0, !13, i64 4, !6, i64 8}
!85 = !{!10, !13, i64 15676}
!86 = !{!10, !13, i64 15680}
!87 = !{!10, !13, i64 8}
!88 = !{!10, !15, i64 24}
!89 = !{!10, !26, i64 16232}
!90 = !{!10, !11, i64 16256}
!91 = !{!10, !13, i64 16240}
!92 = !{!10, !17, i64 23930}
!93 = !{!10, !13, i64 16392}
!94 = !{!10, !13, i64 24672}
!95 = !{!15, !15, i64 0}
!96 = !{!10, !15, i64 24680}
!97 = !{!10, !13, i64 24676}
!98 = !{!10, !15, i64 224}
!99 = !{!10, !11, i64 98}
!100 = !{i8 0, i8 2}
!101 = !{}
!102 = !{!10, !6, i64 56}
!103 = !{!104, !11, i64 24}
!104 = !{!"_ZTS11ImFontAtlas", !13, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !11, i64 24, !6, i64 32, !11, i64 40, !11, i64 41, !6, i64 48, !6, i64 56, !13, i64 64, !13, i64 68, !14, i64 72, !14, i64 80, !42, i64 88, !105, i64 104, !106, i64 120, !7, i64 136, !6, i64 1160, !13, i64 1168, !13, i64 1172, !13, i64 1176}
!105 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !13, i64 0, !13, i64 4, !6, i64 8}
!106 = !{!"_ZTS8ImVectorI12ImFontConfigE", !13, i64 0, !13, i64 4, !6, i64 8}
!107 = !{!10, !6, i64 15688}
!108 = !{!109, !110, i64 4}
!109 = !{!"_ZTS16ImGuiContextHook", !13, i64 0, !110, i64 4, !13, i64 8, !6, i64 16, !6, i64 24}
!110 = !{!"_ZTS20ImGuiContextHookType", !7, i64 0}
!111 = distinct !{!111, !112}
!112 = !{!"llvm.loop.mustprogress"}
!113 = !{!10, !13, i64 18960}
!114 = !{!10, !15, i64 14768}
!115 = !{!10, !15, i64 15724}
!116 = !{!10, !15, i64 14772}
!117 = !{!10, !11, i64 14764}
!118 = !{!10, !11, i64 14765}
!119 = distinct !{!119, !112}
!120 = !{!68, !6, i64 64}
!121 = !{!104, !13, i64 0}
!122 = !{!10, !13, i64 15748}
!123 = !{!10, !11, i64 14766}
!124 = !{!10, !13, i64 12}
!125 = !{!10, !11, i64 19528}
!126 = !{!127, !6, i64 48}
!127 = !{!"_ZTS13ImGuiViewport", !13, i64 0, !13, i64 4, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !15, i64 40, !13, i64 44, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !11, i64 88, !11, i64 89, !11, i64 90, !11, i64 91}
!128 = distinct !{!128, !112}
!129 = !{!10, !13, i64 19556}
!130 = !{!10, !13, i64 16504}
!131 = !{!10, !13, i64 16488}
!132 = !{!10, !13, i64 16484}
!133 = !{!10, !15, i64 16500}
!134 = !{!10, !15, i64 16496}
!135 = !{!10, !11, i64 16492}
!136 = !{!10, !11, i64 16493}
!137 = !{!10, !13, i64 16508}
!138 = !{!10, !13, i64 16552}
!139 = !{!10, !13, i64 24308}
!140 = !{!10, !15, i64 16512}
!141 = !{!10, !15, i64 16572}
!142 = !{!10, !6, i64 16536}
!143 = !{!10, !6, i64 16560}
!144 = !{!10, !11, i64 16520}
!145 = !{!10, !11, i64 16557}
!146 = !{!10, !11, i64 16521}
!147 = !{!10, !11, i64 16556}
!148 = !{!10, !11, i64 16516}
!149 = !{!10, !13, i64 23808}
!150 = !{!10, !13, i64 18568}
!151 = !{!10, !11, i64 18572}
!152 = !{!10, !13, i64 18576}
!153 = !{!10, !13, i64 19896}
!154 = !{!10, !15, i64 19924}
!155 = !{!10, !15, i64 15656}
!156 = !{!10, !13, i64 19912}
!157 = !{!10, !6, i64 16416}
!158 = !{!159, !13, i64 16}
!159 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !39, i64 28, !6, i64 56, !13, i64 64, !14, i64 68, !13, i64 76, !14, i64 80, !14, i64 88, !14, i64 96, !14, i64 104, !14, i64 112, !14, i64 120, !14, i64 128, !15, i64 136, !15, i64 140, !15, i64 144, !15, i64 148, !15, i64 152, !15, i64 156, !15, i64 160, !15, i64 164, !13, i64 168, !13, i64 172, !13, i64 176, !13, i64 180, !14, i64 184, !14, i64 192, !14, i64 200, !14, i64 208, !14, i64 216, !14, i64 224, !11, i64 232, !11, i64 233, !11, i64 234, !11, i64 235, !11, i64 236, !11, i64 237, !11, i64 238, !11, i64 239, !11, i64 240, !11, i64 241, !11, i64 242, !11, i64 243, !11, i64 244, !11, i64 245, !7, i64 246, !17, i64 248, !17, i64 250, !17, i64 252, !17, i64 254, !17, i64 256, !13, i64 260, !7, i64 264, !7, i64 265, !7, i64 266, !11, i64 267, !13, i64 268, !7, i64 272, !7, i64 273, !7, i64 274, !7, i64 275, !13, i64 276, !13, i64 277, !13, i64 278, !13, i64 279, !14, i64 280, !14, i64 288, !43, i64 296, !160, i64 312, !37, i64 544, !37, i64 560, !37, i64 576, !37, i64 592, !37, i64 608, !37, i64 624, !37, i64 640, !163, i64 656, !163, i64 660, !13, i64 664, !13, i64 668, !15, i64 672, !15, i64 676, !30, i64 680, !164, i64 696, !15, i64 712, !15, i64 716, !13, i64 720, !6, i64 728, !165, i64 736, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !7, i64 1000, !7, i64 1008, !7, i64 1040, !13, i64 1056, !13, i64 1060, !13, i64 1064, !11, i64 1068, !11, i64 1069, !11, i64 1069, !11, i64 1069, !11, i64 1069, !17, i64 1070, !172, i64 1072, !6, i64 1096, !6, i64 1104, !13, i64 1112, !13, i64 1116, !37, i64 1120}
!160 = !{!"_ZTS19ImGuiWindowTempData", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48, !15, i64 56, !15, i64 60, !11, i64 64, !11, i64 65, !161, i64 68, !161, i64 72, !161, i64 76, !14, i64 80, !49, i64 88, !17, i64 92, !17, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !14, i64 100, !162, i64 108, !13, i64 136, !13, i64 140, !28, i64 144, !6, i64 160, !6, i64 168, !13, i64 176, !13, i64 180, !13, i64 184, !15, i64 188, !15, i64 192, !57, i64 200, !57, i64 216}
!161 = !{!"_ZTS6ImVec1", !15, i64 0}
!162 = !{!"_ZTS16ImGuiMenuColumns", !13, i64 0, !13, i64 4, !17, i64 8, !17, i64 10, !17, i64 12, !17, i64 14, !17, i64 16, !7, i64 18}
!163 = !{!"_ZTS8ImVec2ih", !17, i64 0, !17, i64 2}
!164 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !13, i64 0, !13, i64 4, !6, i64 8}
!165 = !{!"_ZTS10ImDrawList", !166, i64 0, !18, i64 16, !167, i64 32, !13, i64 48, !13, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !168, i64 88, !169, i64 104, !25, i64 120, !170, i64 136, !171, i64 168, !15, i64 192}
!166 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !13, i64 0, !13, i64 4, !6, i64 8}
!167 = !{!"_ZTS8ImVectorI10ImDrawVertE", !13, i64 0, !13, i64 4, !6, i64 8}
!168 = !{!"_ZTS8ImVectorI6ImVec4E", !13, i64 0, !13, i64 4, !6, i64 8}
!169 = !{!"_ZTS8ImVectorIPvE", !13, i64 0, !13, i64 4, !6, i64 8}
!170 = !{!"_ZTS15ImDrawCmdHeader", !24, i64 0, !6, i64 16, !13, i64 24}
!171 = !{!"_ZTS18ImDrawListSplitter", !13, i64 0, !13, i64 4, !58, i64 8}
!172 = !{!"_ZTS20ImGuiWindowDockStyle", !7, i64 0}
!173 = !{!10, !13, i64 19916}
!174 = !{!10, !13, i64 19900}
!175 = !{!10, !15, i64 19904}
!176 = !{!10, !15, i64 19908}
!177 = !{!10, !13, i64 19636}
!178 = !{!10, !13, i64 19640}
!179 = !{!10, !15, i64 19632}
!180 = !{!10, !11, i64 19529}
!181 = !{!10, !11, i64 19530}
!182 = !{!10, !13, i64 19648}
!183 = !{!10, !6, i64 19472}
!184 = !{!10, !15, i64 19500}
!185 = !{!10, !15, i64 19524}
!186 = !{!10, !13, i64 19920}
!187 = !{!10, !13, i64 24692}
!188 = !{!10, !13, i64 24688}
!189 = !{!10, !13, i64 24684}
!190 = !{i64 0, i64 1, !191, i64 4, i64 4, !95, i64 8, i64 4, !95, i64 12, i64 4, !95}
!191 = !{!11, !11, i64 0}
!192 = !{!10, !11, i64 23968}
!193 = !{!10, !13, i64 16328}
!194 = !{!10, !13, i64 16312}
!195 = !{!10, !11, i64 16259}
!196 = !{!10, !15, i64 104}
!197 = !{!10, !13, i64 19784}
!198 = !{!159, !11, i64 235}
!199 = !{!159, !11, i64 236}
!200 = !{!159, !11, i64 237}
!201 = !{!159, !17, i64 248}
!202 = !{!159, !17, i64 250}
!203 = !{!159, !11, i64 1068}
!204 = !{!159, !15, i64 672}
!205 = distinct !{!205, !112}
!206 = !{!10, !13, i64 19728}
!207 = distinct !{!207, !112}
!208 = !{!209, !15, i64 4}
!209 = !{!"_ZTS18ImGuiTableTempData", !13, i64 0, !15, i64 4, !14, i64 8, !171, i64 16, !37, i64 40, !37, i64 56, !14, i64 72, !14, i64 80, !14, i64 88, !161, i64 96, !15, i64 100, !13, i64 104}
!210 = distinct !{!210, !112}
!211 = !{!10, !6, i64 19080}
!212 = !{!13, !13, i64 0}
!213 = !{!10, !7, i64 24353}
!214 = !{!10, !13, i64 18588}
!215 = !{!10, !7, i64 24352}
!216 = !{!10, !11, i64 16257}
!217 = !{!10, !6, i64 16408}
!218 = !{!159, !11, i64 243}
!219 = !{!10, !11, i64 129}
!220 = !{!10, !7, i64 24354}


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