; LLVM IR from xhub/reshop :: gui/external/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.ImVec2 = type { float, float }
%struct.ImGuiContext = type { i8, i8, %struct.ImGuiIO, %struct.ImGuiPlatformIO, %struct.ImGuiStyle, ptr, float, float, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i32, i8, i8, i8, i8, ptr, [16 x i8], %struct.ImVector.1, %struct.ImVector.1, i32, i32, %struct.ImVector.2, %struct.ImVector.2, %struct.ImVector.2, %struct.ImVector.3, %struct.ImGuiStorage, i32, %struct.ImVec2, i32, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i32, i32, float, float, i8, i8, i8, i32, i32, float, i8, i8, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, %struct.ImGuiDeactivatedItemData, %struct.ImGuiDataTypeStorage, i32, float, double, double, double, %struct.ImBitArray, [154 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, i8, i32, %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImVector.12, %struct.ImVector.12, %struct.ImVector.13, %struct.ImVector.14, i8, i8, i8, i8, i32, ptr, i32, i32, i32, i32, i32, i32, %struct.ImVector.9, i32, float, i32, i32, i32, i64, 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, i32, i32, i8, i8, i32, i32, ptr, ptr, ptr, float, float, i8, i32, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.15, [16 x i8], i32, %struct.ImVector.16, ptr, i32, i32, %struct.ImVector.17, %struct.ImPool, %struct.ImVector.19, %struct.ImVector.20, ptr, %struct.ImPool.21, %struct.ImVector.23, %struct.ImVector.24, %struct.ImGuiBoxSelectState, ptr, i32, %struct.ImVector.25, %struct.ImPool.26, i32, i32, float, float, i32, i32, i32, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, %struct.ImGuiDataTypeStorage, i32, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, %struct.ImRect, i8, i16, float, float, float, i8, i8, float, float, float, i16, i16, ptr, %struct.ImVector.28, %struct.ImVector.30, %struct.ImGuiTypingSelectState, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.31, %struct.ImChunkStream, %struct.ImChunkStream.32, %struct.ImVector.33, i32, [10 x ptr], i8, i32, ptr, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, ptr, ptr, %struct.ImVec2, i8, i32, %struct.ImGuiErrorRecoveryState, ptr, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i32, i32, i8, i8, i8, i32, i8, i8, i8, i32, float, %struct.ImVec4, %struct.ImGuiMetricsConfig, %struct.ImGuiIDStackTool, %struct.ImGuiDebugAllocInfo, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.28, [64 x i8] }
%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, i8, float, float, float, float, float, float, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, %struct.ImVec2, ptr, %struct.ImVec2, [5 x i8], float, float, i32, i8, i8, i8, i8, i32, [154 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, i8, [5 x float], [5 x float], [5 x float], float, i8, i8, i16, %struct.ImVector, ptr, ptr, ptr }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiPlatformIO = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, i16, 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, float, float, float, %struct.ImVec2, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [56 x %struct.ImVec4], float, float, float, i32, i32 }
%struct.ImDrawListSharedData = type <{ %struct.ImVec2, ptr, ptr, float, float, float, float, %struct.ImVec4, i32, [4 x i8], %struct.ImVector.0, [48 x %struct.ImVec2], float, [64 x i8], [4 x i8] }>
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.4 }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImGuiDeactivatedItemData = type { i32, i32, i8, i8 }
%struct.ImBitArray = type { [5 x i32] }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [154 x i16], %struct.ImVector.5, %struct.ImVector.5 }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, i32, i32, [4 x i8], i64, float, i32, i32, i8, i8, %struct.ImGuiDataTypeStorage, [2 x i8], i32, [4 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, i32 }
%struct.ImGuiNextWindowData = type { i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i32, i8, %struct.ImRect, ptr, ptr, float, %struct.ImVec2, i32 }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImVector.11 = 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.9 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type { ptr, i32, i32, %struct.ImRect, i32, float, float, float, i64 }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.18, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImPool.21 = type { %struct.ImVector.22, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImGuiBoxSelectState = type <{ i32, i8, i8, i8, i8, i8, i16, i8, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, [4 x i8], ptr, i8, [3 x i8], %struct.ImRect, %struct.ImRect, %struct.ImRect, [4 x i8] }>
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImPool.26 = type { %struct.ImVector.27, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, ptr, i32, i32, i32, [4 x i8], ptr, %struct.ImVector.28, %struct.ImVector.28, %struct.ImVector.28, i32, %struct.ImVec2, float, i8, i8, i8, i8, i32, i32, [4 x i8] }>
%struct.ImGuiInputTextDeactivatedState = type { i32, %struct.ImVector.28 }
%struct.ImFont = type <{ %struct.ImVector.19, float, float, %struct.ImVector, %struct.ImVector.29, 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.29 = type { i32, i32, ptr }
%struct.ImGuiDataTypeStorage = type { [8 x i8] }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImGuiTypingSelectState = type <{ %struct.ImGuiTypingSelectRequest, [64 x i8], i32, i32, float, i8, [3 x i8] }>
%struct.ImGuiTypingSelectRequest = type { i32, i32, ptr, i8, i8, i8 }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.28 }
%struct.ImChunkStream.32 = type { %struct.ImVector.28 }
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImGuiErrorRecoveryState = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 }
%struct.ImGuiTextBuffer = type { %struct.ImVector.28 }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.10, i32, [4 x i8] }>
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32 }
%struct.ImGuiIDStackTool = type { i32, i32, i32, %struct.ImVector.34, i8, float }
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImGuiDebugAllocInfo = type { i32, i32, i16, [6 x %struct.ImGuiDebugAllocEntry] }
%struct.ImGuiDebugAllocEntry = type { i32, i16, i16 }
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImGuiContextHook = type { i32, i32, i32, ptr, ptr }
%struct.ImFontAtlas = type <{ i32, [4 x i8], i64, i32, i32, i8, [7 x i8], ptr, i8, i8, [6 x i8], ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.8, %struct.ImVector.48, %struct.ImVector.49, [64 x %struct.ImVec4], ptr, i32, i32, i32, [4 x i8] }>
%struct.ImVector.48 = type { i32, i32, ptr }
%struct.ImVector.49 = type { i32, i32, ptr }
%struct.ImGuiViewportP = type { %struct.ImGuiViewport, [2 x i32], [2 x ptr], %struct.ImDrawData, %struct.ImDrawDataBuilder, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2 }
%struct.ImGuiViewport = type { i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, ptr, ptr }
%struct.ImDrawData = type { i8, i32, i32, i32, %struct.ImVector.50, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, ptr }
%struct.ImVector.50 = type { i32, i32, ptr }
%struct.ImDrawDataBuilder = type { [2 x ptr], %struct.ImVector.50 }
%struct.ImGuiWindow = type <{ ptr, ptr, i32, i32, i32, [4 x i8], ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, 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, i8, i16, i16, i16, i16, i16, i8, i8, i8, [3 x i8], i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, [4 x i8], %struct.ImVector.30, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, float, float, [4 x i8], %struct.ImGuiStorage, %struct.ImVector.37, 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, [3 x i8] }>
%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.2, ptr, ptr, i32, i32, i32, i32, float, float, %struct.ImVector.19, %struct.ImVector.19 }
%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.37 = type { i32, i32, ptr }
%struct.ImDrawList = type { %struct.ImVector.38, %struct.ImVector, %struct.ImVector.39, i32, i32, ptr, ptr, ptr, %struct.ImVector.0, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, %struct.ImVector.40, %struct.ImVector.41, %struct.ImVector.15, float, ptr }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, i64, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.20 }
%struct.ImVector.40 = type { i32, i32, ptr }
%struct.ImVector.41 = type { i32, i32, ptr }
%struct.ImGuiTableTempData = type <{ i32, float, float, [4 x i8], %struct.ImVector.51, %struct.ImVec2, %struct.ImDrawListSplitter, %struct.ImRect, %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec1, float, i32, [4 x i8] }>
%struct.ImVector.51 = type { i32, i32, ptr }

@GImGui = external dso_local global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [111 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv = external hidden unnamed_addr constant [23 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.120 = 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: mustprogress uwtable
declare dso_local void @_ZN5ImGui8DebugLogEPKcz(ptr noundef, ...) #4

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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() #4 {
  %1 = alloca ptr, align 8
  %2 = alloca i32, align 4
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca float, align 4
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca %struct.ImVec2, align 4
  %19 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %20 = icmp ne ptr %19, null
  br i1 %20, label %21, label %22

21:                                               ; preds = %0
  br label %22

22:                                               ; preds = %21, %0
  %23 = phi i1 [ false, %0 ], [ true, %21 ]
  br i1 %23, label %24, label %25

24:                                               ; preds = %22
  br label %27

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

26:                                               ; No predecessors!
  br label %27

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

34:                                               ; preds = %55, %27
  %35 = load i32, ptr %2, align 4, !tbaa !91
  %36 = icmp sge i32 %35, 0
  br i1 %36, label %38, label %37

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

38:                                               ; preds = %34
  %39 = load ptr, ptr %1, align 8, !tbaa !5
  %40 = getelementptr inbounds %struct.ImGuiContext, ptr %39, i32 0, i32 248
  %41 = load i32, ptr %2, align 4, !tbaa !91
  %42 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN8ImVectorI16ImGuiContextHookEixEi(ptr noundef nonnull align 8 dereferenceable(16) %40, i32 noundef %41)
  %43 = getelementptr inbounds %struct.ImGuiContextHook, ptr %42, i32 0, i32 1
  %44 = load i32, ptr %43, align 4, !tbaa !92
  %45 = icmp eq i32 %44, 7
  br i1 %45, label %46, label %54

46:                                               ; preds = %38
  %47 = load ptr, ptr %1, align 8, !tbaa !5
  %48 = getelementptr inbounds %struct.ImGuiContext, ptr %47, i32 0, i32 248
  %49 = load ptr, ptr %1, align 8, !tbaa !5
  %50 = getelementptr inbounds %struct.ImGuiContext, ptr %49, i32 0, i32 248
  %51 = load i32, ptr %2, align 4, !tbaa !91
  %52 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN8ImVectorI16ImGuiContextHookEixEi(ptr noundef nonnull align 8 dereferenceable(16) %50, i32 noundef %51)
  %53 = call noundef ptr @_ZN8ImVectorI16ImGuiContextHookE5eraseEPKS0_(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef %52)
  br label %54

54:                                               ; preds = %46, %38
  br label %55

55:                                               ; preds = %54
  %56 = load i32, ptr %2, align 4, !tbaa !91
  %57 = add nsw i32 %56, -1
  store i32 %57, ptr %2, align 4, !tbaa !91
  br label %34, !llvm.loop !95

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

127:                                              ; preds = %58
  %128 = load ptr, ptr %1, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.ImGuiContext, ptr %128, i32 0, i32 292
  %130 = load float, ptr %129, align 4, !tbaa !105
  %131 = load ptr, ptr %1, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.ImGuiContext, ptr %131, i32 0, i32 291
  %133 = load i32, ptr %132, align 8, !tbaa !106
  %134 = sitofp i32 %133 to float
  %135 = fdiv float %130, %134
  %136 = fdiv float 1.000000e+00, %135
  br label %138

137:                                              ; preds = %58
  br label %138

138:                                              ; preds = %137, %127
  %139 = phi float [ %136, %127 ], [ 0x47EFFFFFE0000000, %137 ]
  %140 = load ptr, ptr %1, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.ImGuiContext, ptr %140, i32 0, i32 2
  %142 = getelementptr inbounds %struct.ImGuiIO, ptr %141, i32 0, i32 58
  store float %139, ptr %142, align 8, !tbaa !107
  %143 = load ptr, ptr %1, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.ImGuiContext, ptr %143, i32 0, i32 23
  call void @_ZN8ImVectorI15ImGuiInputEventE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %144, i32 noundef 0)
  %145 = load ptr, ptr %1, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.ImGuiContext, ptr %145, i32 0, i32 2
  %147 = getelementptr inbounds %struct.ImGuiIO, ptr %146, i32 0, i32 22
  %148 = load i8, ptr %147, align 1, !tbaa !108, !range !109, !noundef !110
  %149 = trunc i8 %148 to i1
  call void @_ZN5ImGui17UpdateInputEventsEb(i1 noundef zeroext %149)
  call void @_ZN5ImGuiL23UpdateViewportsNewFrameEv()
  %150 = load ptr, ptr %1, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.ImGuiContext, ptr %150, i32 0, i32 2
  %152 = getelementptr inbounds %struct.ImGuiIO, ptr %151, i32 0, i32 8
  %153 = load ptr, ptr %152, align 8, !tbaa !111
  %154 = getelementptr inbounds %struct.ImFontAtlas, ptr %153, i32 0, i32 5
  store i8 1, ptr %154, align 8, !tbaa !112
  call void @_ZL23SetupDrawListSharedDatav()
  %155 = call noundef ptr @_ZN5ImGui14GetDefaultFontEv()
  call void @_ZN5ImGui14SetCurrentFontEP6ImFont(ptr noundef %155)
  %156 = load ptr, ptr %1, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.ImGuiContext, ptr %156, i32 0, i32 5
  %158 = load ptr, ptr %157, align 8, !tbaa !116
  %159 = call noundef zeroext i1 @_ZNK6ImFont8IsLoadedEv(ptr noundef nonnull align 8 dereferenceable(118) %158)
  br i1 %159, label %160, label %161

160:                                              ; preds = %138
  br label %163

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

162:                                              ; No predecessors!
  br label %163

163:                                              ; preds = %162, %160
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #11
  %164 = load ptr, ptr %1, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.ImGuiContext, ptr %164, i32 0, i32 101
  store ptr %165, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #11
  %166 = load ptr, ptr %3, align 8, !tbaa !5
  %167 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %166)
  store ptr %167, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #11
  %168 = load ptr, ptr %3, align 8, !tbaa !5
  %169 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %168)
  store ptr %169, ptr %5, align 8, !tbaa !5
  br label %170

170:                                              ; preds = %181, %163
  %171 = load ptr, ptr %4, align 8, !tbaa !5
  %172 = load ptr, ptr %5, align 8, !tbaa !5
  %173 = icmp ne ptr %171, %172
  br i1 %173, label %175, label %174

174:                                              ; preds = %170
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #11
  br label %184

175:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #11
  %176 = load ptr, ptr %4, align 8, !tbaa !5
  %177 = load ptr, ptr %176, align 8, !tbaa !5
  store ptr %177, ptr %6, align 8, !tbaa !5
  %178 = load ptr, ptr %6, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.ImGuiViewportP, ptr %178, i32 0, i32 3
  %180 = getelementptr inbounds %struct.ImDrawData, ptr %179, i32 0, i32 0
  store i8 0, ptr %180, align 8, !tbaa !117
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #11
  br label %181

181:                                              ; preds = %175
  %182 = load ptr, ptr %4, align 8, !tbaa !5
  %183 = getelementptr inbounds ptr, ptr %182, i32 1
  store ptr %183, ptr %4, align 8, !tbaa !5
  br label %170

184:                                              ; preds = %174
  %185 = load ptr, ptr %1, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.ImGuiContext, ptr %185, i32 0, i32 162
  %187 = load i8, ptr %186, align 4, !tbaa !123, !range !109, !noundef !110
  %188 = trunc i8 %187 to i1
  br i1 %188, label %189, label %203

189:                                              ; preds = %184
  %190 = load ptr, ptr %1, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.ImGuiContext, ptr %190, i32 0, i32 169
  %192 = getelementptr inbounds %struct.ImGuiPayload, ptr %191, i32 0, i32 2
  %193 = load i32, ptr %192, align 4, !tbaa !124
  %194 = load ptr, ptr %1, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.ImGuiContext, ptr %194, i32 0, i32 56
  %196 = load i32, ptr %195, align 4, !tbaa !125
  %197 = icmp eq i32 %193, %196
  br i1 %197, label %198, label %203

198:                                              ; preds = %189
  %199 = load ptr, ptr %1, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.ImGuiContext, ptr %199, i32 0, i32 169
  %201 = getelementptr inbounds %struct.ImGuiPayload, ptr %200, i32 0, i32 2
  %202 = load i32, ptr %201, align 4, !tbaa !124
  call void @_ZN5ImGui11KeepAliveIDEj(i32 noundef %202)
  br label %203

203:                                              ; preds = %198, %189, %184
  %204 = load ptr, ptr %1, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.ImGuiContext, ptr %204, i32 0, i32 2
  %206 = getelementptr inbounds %struct.ImGuiIO, ptr %205, i32 0, i32 41
  %207 = load i8, ptr %206, align 1, !tbaa !126, !range !109, !noundef !110
  %208 = trunc i8 %207 to i1
  br i1 %208, label %209, label %215

209:                                              ; preds = %203
  %210 = load ptr, ptr %1, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.ImGuiContext, ptr %210, i32 0, i32 2
  %212 = getelementptr inbounds %struct.ImGuiIO, ptr %211, i32 0, i32 70
  %213 = load i8, ptr %212, align 4, !tbaa !127, !range !109, !noundef !110
  %214 = trunc i8 %213 to i1
  br i1 %214, label %218, label %215

215:                                              ; preds = %209, %203
  %216 = load ptr, ptr %1, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.ImGuiContext, ptr %216, i32 0, i32 46
  store i32 0, ptr %217, align 4, !tbaa !128
  br label %218

218:                                              ; preds = %215, %209
  %219 = load ptr, ptr %1, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.ImGuiContext, ptr %219, i32 0, i32 2
  %221 = getelementptr inbounds %struct.ImGuiIO, ptr %220, i32 0, i32 41
  %222 = load i8, ptr %221, align 1, !tbaa !126, !range !109, !noundef !110
  %223 = trunc i8 %222 to i1
  br i1 %223, label %224, label %235

224:                                              ; preds = %218
  %225 = load ptr, ptr %1, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.ImGuiContext, ptr %225, i32 0, i32 50
  %227 = load i32, ptr %226, align 4, !tbaa !129
  %228 = icmp sgt i32 %227, 1
  br i1 %228, label %229, label %235

229:                                              ; preds = %224
  %230 = load ptr, ptr %1, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct.ImGuiContext, ptr %230, i32 0, i32 49
  %232 = load i32, ptr %231, align 8, !tbaa !130
  %233 = load ptr, ptr %1, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.ImGuiContext, ptr %233, i32 0, i32 46
  store i32 %232, ptr %234, align 4, !tbaa !128
  br label %235

235:                                              ; preds = %229, %224, %218
  %236 = load ptr, ptr %1, align 8, !tbaa !5
  %237 = getelementptr inbounds %struct.ImGuiContext, ptr %236, i32 0, i32 49
  %238 = load i32, ptr %237, align 8, !tbaa !130
  %239 = icmp ne i32 %238, 0
  br i1 %239, label %243, label %240

240:                                              ; preds = %235
  %241 = load ptr, ptr %1, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct.ImGuiContext, ptr %241, i32 0, i32 51
  store float 0.000000e+00, ptr %242, align 8, !tbaa !131
  br label %243

243:                                              ; preds = %240, %235
  %244 = load ptr, ptr %1, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.ImGuiContext, ptr %244, i32 0, i32 49
  %246 = load i32, ptr %245, align 8, !tbaa !130
  %247 = icmp ne i32 %246, 0
  br i1 %247, label %248, label %261

248:                                              ; preds = %243
  %249 = load ptr, ptr %1, align 8, !tbaa !5
  %250 = getelementptr inbounds %struct.ImGuiContext, ptr %249, i32 0, i32 48
  %251 = load i32, ptr %250, align 4, !tbaa !132
  %252 = icmp ne i32 %251, 0
  br i1 %252, label %253, label %264

253:                                              ; preds = %248
  %254 = load ptr, ptr %1, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct.ImGuiContext, ptr %254, i32 0, i32 56
  %256 = load i32, ptr %255, align 4, !tbaa !125
  %257 = load ptr, ptr %1, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct.ImGuiContext, ptr %257, i32 0, i32 48
  %259 = load i32, ptr %258, align 4, !tbaa !132
  %260 = icmp eq i32 %256, %259
  br i1 %260, label %261, label %264

261:                                              ; preds = %253, %243
  %262 = load ptr, ptr %1, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.ImGuiContext, ptr %262, i32 0, i32 52
  store float 0.000000e+00, ptr %263, align 4, !tbaa !133
  br label %264

264:                                              ; preds = %261, %253, %248
  %265 = load ptr, ptr %1, align 8, !tbaa !5
  %266 = getelementptr inbounds %struct.ImGuiContext, ptr %265, i32 0, i32 48
  %267 = load i32, ptr %266, align 4, !tbaa !132
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %269, label %278

269:                                              ; preds = %264
  %270 = load ptr, ptr %1, align 8, !tbaa !5
  %271 = getelementptr inbounds %struct.ImGuiContext, ptr %270, i32 0, i32 2
  %272 = getelementptr inbounds %struct.ImGuiIO, ptr %271, i32 0, i32 3
  %273 = load float, ptr %272, align 8, !tbaa !97
  %274 = load ptr, ptr %1, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.ImGuiContext, ptr %274, i32 0, i32 51
  %276 = load float, ptr %275, align 8, !tbaa !131
  %277 = fadd float %276, %273
  store float %277, ptr %275, align 8, !tbaa !131
  br label %278

278:                                              ; preds = %269, %264
  %279 = load ptr, ptr %1, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.ImGuiContext, ptr %279, i32 0, i32 48
  %281 = load i32, ptr %280, align 4, !tbaa !132
  %282 = icmp ne i32 %281, 0
  br i1 %282, label %283, label %300

283:                                              ; preds = %278
  %284 = load ptr, ptr %1, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.ImGuiContext, ptr %284, i32 0, i32 56
  %286 = load i32, ptr %285, align 4, !tbaa !125
  %287 = load ptr, ptr %1, align 8, !tbaa !5
  %288 = getelementptr inbounds %struct.ImGuiContext, ptr %287, i32 0, i32 48
  %289 = load i32, ptr %288, align 4, !tbaa !132
  %290 = icmp ne i32 %286, %289
  br i1 %290, label %291, label %300

291:                                              ; preds = %283
  %292 = load ptr, ptr %1, align 8, !tbaa !5
  %293 = getelementptr inbounds %struct.ImGuiContext, ptr %292, i32 0, i32 2
  %294 = getelementptr inbounds %struct.ImGuiIO, ptr %293, i32 0, i32 3
  %295 = load float, ptr %294, align 8, !tbaa !97
  %296 = load ptr, ptr %1, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.ImGuiContext, ptr %296, i32 0, i32 52
  %298 = load float, ptr %297, align 4, !tbaa !133
  %299 = fadd float %298, %295
  store float %299, ptr %297, align 4, !tbaa !133
  br label %300

300:                                              ; preds = %291, %283, %278
  %301 = load ptr, ptr %1, align 8, !tbaa !5
  %302 = getelementptr inbounds %struct.ImGuiContext, ptr %301, i32 0, i32 48
  %303 = load i32, ptr %302, align 4, !tbaa !132
  %304 = load ptr, ptr %1, align 8, !tbaa !5
  %305 = getelementptr inbounds %struct.ImGuiContext, ptr %304, i32 0, i32 49
  store i32 %303, ptr %305, align 8, !tbaa !130
  %306 = load ptr, ptr %1, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.ImGuiContext, ptr %306, i32 0, i32 50
  store i32 0, ptr %307, align 4, !tbaa !129
  %308 = load ptr, ptr %1, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.ImGuiContext, ptr %308, i32 0, i32 48
  store i32 0, ptr %309, align 4, !tbaa !132
  %310 = load ptr, ptr %1, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.ImGuiContext, ptr %310, i32 0, i32 53
  store i8 0, ptr %311, align 8, !tbaa !134
  %312 = load ptr, ptr %1, align 8, !tbaa !5
  %313 = getelementptr inbounds %struct.ImGuiContext, ptr %312, i32 0, i32 54
  store i8 0, ptr %313, align 1, !tbaa !135
  %314 = load ptr, ptr %1, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.ImGuiContext, ptr %314, i32 0, i32 56
  %316 = load i32, ptr %315, align 4, !tbaa !125
  %317 = icmp ne i32 %316, 0
  br i1 %317, label %318, label %345

318:                                              ; preds = %300
  %319 = load ptr, ptr %1, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.ImGuiContext, ptr %319, i32 0, i32 57
  %321 = load i32, ptr %320, align 8, !tbaa !136
  %322 = load ptr, ptr %1, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.ImGuiContext, ptr %322, i32 0, i32 56
  %324 = load i32, ptr %323, align 4, !tbaa !125
  %325 = icmp ne i32 %321, %324
  br i1 %325, label %326, label %345

326:                                              ; preds = %318
  %327 = load ptr, ptr %1, align 8, !tbaa !5
  %328 = getelementptr inbounds %struct.ImGuiContext, ptr %327, i32 0, i32 70
  %329 = load i32, ptr %328, align 4, !tbaa !137
  %330 = load ptr, ptr %1, align 8, !tbaa !5
  %331 = getelementptr inbounds %struct.ImGuiContext, ptr %330, i32 0, i32 56
  %332 = load i32, ptr %331, align 4, !tbaa !125
  %333 = icmp eq i32 %329, %332
  br i1 %333, label %334, label %345

334:                                              ; preds = %326
  br label %335

335:                                              ; preds = %334
  %336 = load ptr, ptr %1, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.ImGuiContext, ptr %336, i32 0, i32 271
  %338 = load i32, ptr %337, align 4, !tbaa !138
  %339 = and i32 %338, 2
  %340 = icmp ne i32 %339, 0
  br i1 %340, label %341, label %342

341:                                              ; preds = %335
  call void (ptr, ...) @_ZN5ImGui8DebugLogEPKcz(ptr noundef @.str.116)
  br label %342

342:                                              ; preds = %341, %335
  br label %343

343:                                              ; preds = %342
  br label %344

344:                                              ; preds = %343
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %345

345:                                              ; preds = %344, %326, %318, %300
  %346 = load ptr, ptr %1, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.ImGuiContext, ptr %346, i32 0, i32 56
  %348 = load i32, ptr %347, align 4, !tbaa !125
  %349 = icmp ne i32 %348, 0
  br i1 %349, label %350, label %359

350:                                              ; preds = %345
  %351 = load ptr, ptr %1, align 8, !tbaa !5
  %352 = getelementptr inbounds %struct.ImGuiContext, ptr %351, i32 0, i32 2
  %353 = getelementptr inbounds %struct.ImGuiIO, ptr %352, i32 0, i32 3
  %354 = load float, ptr %353, align 8, !tbaa !97
  %355 = load ptr, ptr %1, align 8, !tbaa !5
  %356 = getelementptr inbounds %struct.ImGuiContext, ptr %355, i32 0, i32 58
  %357 = load float, ptr %356, align 4, !tbaa !139
  %358 = fadd float %357, %354
  store float %358, ptr %356, align 4, !tbaa !139
  br label %359

359:                                              ; preds = %350, %345
  %360 = load ptr, ptr %1, align 8, !tbaa !5
  %361 = getelementptr inbounds %struct.ImGuiContext, ptr %360, i32 0, i32 2
  %362 = getelementptr inbounds %struct.ImGuiIO, ptr %361, i32 0, i32 3
  %363 = load float, ptr %362, align 8, !tbaa !97
  %364 = load ptr, ptr %1, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.ImGuiContext, ptr %364, i32 0, i32 74
  %366 = load float, ptr %365, align 8, !tbaa !140
  %367 = fadd float %366, %363
  store float %367, ptr %365, align 8, !tbaa !140
  %368 = load ptr, ptr %1, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.ImGuiContext, ptr %368, i32 0, i32 56
  %370 = load i32, ptr %369, align 4, !tbaa !125
  %371 = load ptr, ptr %1, align 8, !tbaa !5
  %372 = getelementptr inbounds %struct.ImGuiContext, ptr %371, i32 0, i32 70
  store i32 %370, ptr %372, align 4, !tbaa !137
  %373 = load ptr, ptr %1, align 8, !tbaa !5
  %374 = getelementptr inbounds %struct.ImGuiContext, ptr %373, i32 0, i32 57
  store i32 0, ptr %374, align 8, !tbaa !136
  %375 = load ptr, ptr %1, align 8, !tbaa !5
  %376 = getelementptr inbounds %struct.ImGuiContext, ptr %375, i32 0, i32 64
  store i8 0, ptr %376, align 1, !tbaa !141
  %377 = load ptr, ptr %1, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.ImGuiContext, ptr %377, i32 0, i32 59
  store i8 0, ptr %378, align 8, !tbaa !142
  %379 = load ptr, ptr %1, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.ImGuiContext, ptr %379, i32 0, i32 211
  %381 = load i32, ptr %380, align 8, !tbaa !143
  %382 = icmp ne i32 %381, 0
  br i1 %382, label %383, label %394

383:                                              ; preds = %359
  %384 = load ptr, ptr %1, align 8, !tbaa !5
  %385 = getelementptr inbounds %struct.ImGuiContext, ptr %384, i32 0, i32 56
  %386 = load i32, ptr %385, align 4, !tbaa !125
  %387 = load ptr, ptr %1, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.ImGuiContext, ptr %387, i32 0, i32 211
  %389 = load i32, ptr %388, align 8, !tbaa !143
  %390 = icmp ne i32 %386, %389
  br i1 %390, label %391, label %394

391:                                              ; preds = %383
  %392 = load ptr, ptr %1, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.ImGuiContext, ptr %392, i32 0, i32 211
  store i32 0, ptr %393, align 8, !tbaa !143
  br label %394

394:                                              ; preds = %391, %383, %359
  %395 = load ptr, ptr %1, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.ImGuiContext, ptr %395, i32 0, i32 56
  %397 = load i32, ptr %396, align 4, !tbaa !125
  %398 = icmp eq i32 %397, 0
  br i1 %398, label %399, label %404

399:                                              ; preds = %394
  %400 = load ptr, ptr %1, align 8, !tbaa !5
  %401 = getelementptr inbounds %struct.ImGuiContext, ptr %400, i32 0, i32 81
  store i32 0, ptr %401, align 8, !tbaa !144
  %402 = load ptr, ptr %1, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.ImGuiContext, ptr %402, i32 0, i32 82
  store i8 0, ptr %403, align 4, !tbaa !145
  br label %404

404:                                              ; preds = %399, %394
  %405 = load ptr, ptr %1, align 8, !tbaa !5
  %406 = getelementptr inbounds %struct.ImGuiContext, ptr %405, i32 0, i32 71
  %407 = getelementptr inbounds %struct.ImGuiDeactivatedItemData, ptr %406, i32 0, i32 1
  %408 = load i32, ptr %407, align 4, !tbaa !146
  %409 = load ptr, ptr %1, align 8, !tbaa !5
  %410 = getelementptr inbounds %struct.ImGuiContext, ptr %409, i32 0, i32 12
  %411 = load i32, ptr %410, align 8, !tbaa !100
  %412 = icmp slt i32 %408, %411
  br i1 %412, label %413, label %417

413:                                              ; preds = %404
  %414 = load ptr, ptr %1, align 8, !tbaa !5
  %415 = getelementptr inbounds %struct.ImGuiContext, ptr %414, i32 0, i32 71
  %416 = getelementptr inbounds %struct.ImGuiDeactivatedItemData, ptr %415, i32 0, i32 0
  store i32 0, ptr %416, align 8, !tbaa !147
  br label %417

417:                                              ; preds = %413, %404
  %418 = load ptr, ptr %1, align 8, !tbaa !5
  %419 = getelementptr inbounds %struct.ImGuiContext, ptr %418, i32 0, i32 71
  %420 = getelementptr inbounds %struct.ImGuiDeactivatedItemData, ptr %419, i32 0, i32 3
  store i8 0, ptr %420, align 1, !tbaa !148
  %421 = load ptr, ptr %1, align 8, !tbaa !5
  %422 = getelementptr inbounds %struct.ImGuiContext, ptr %421, i32 0, i32 199
  %423 = load i32, ptr %422, align 8, !tbaa !149
  %424 = icmp ne i32 %423, 0
  br i1 %424, label %425, label %440

425:                                              ; preds = %417
  %426 = load ptr, ptr %1, align 8, !tbaa !5
  %427 = getelementptr inbounds %struct.ImGuiContext, ptr %426, i32 0, i32 206
  %428 = load float, ptr %427, align 4, !tbaa !150
  %429 = load ptr, ptr %1, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.ImGuiContext, ptr %429, i32 0, i32 4
  %431 = getelementptr inbounds %struct.ImGuiStyle, ptr %430, i32 0, i32 48
  %432 = load float, ptr %431, align 8, !tbaa !151
  %433 = fcmp oge float %428, %432
  br i1 %433, label %434, label %440

434:                                              ; preds = %425
  %435 = load ptr, ptr %1, align 8, !tbaa !5
  %436 = getelementptr inbounds %struct.ImGuiContext, ptr %435, i32 0, i32 199
  %437 = load i32, ptr %436, align 8, !tbaa !149
  %438 = load ptr, ptr %1, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.ImGuiContext, ptr %438, i32 0, i32 203
  store i32 %437, ptr %439, align 8, !tbaa !152
  br label %449

440:                                              ; preds = %425, %417
  %441 = load ptr, ptr %1, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.ImGuiContext, ptr %441, i32 0, i32 199
  %443 = load i32, ptr %442, align 8, !tbaa !149
  %444 = icmp eq i32 %443, 0
  br i1 %444, label %445, label %448

445:                                              ; preds = %440
  %446 = load ptr, ptr %1, align 8, !tbaa !5
  %447 = getelementptr inbounds %struct.ImGuiContext, ptr %446, i32 0, i32 203
  store i32 0, ptr %447, align 8, !tbaa !152
  br label %448

448:                                              ; preds = %445, %440
  br label %449

449:                                              ; preds = %448, %434
  %450 = load ptr, ptr %1, align 8, !tbaa !5
  %451 = getelementptr inbounds %struct.ImGuiContext, ptr %450, i32 0, i32 35
  %452 = load ptr, ptr %451, align 8, !tbaa !153
  %453 = icmp ne ptr %452, null
  br i1 %453, label %454, label %471

454:                                              ; preds = %449
  %455 = load ptr, ptr %1, align 8, !tbaa !5
  %456 = getelementptr inbounds %struct.ImGuiContext, ptr %455, i32 0, i32 206
  %457 = load float, ptr %456, align 4, !tbaa !150
  %458 = load ptr, ptr %1, align 8, !tbaa !5
  %459 = getelementptr inbounds %struct.ImGuiContext, ptr %458, i32 0, i32 4
  %460 = getelementptr inbounds %struct.ImGuiStyle, ptr %459, i32 0, i32 48
  %461 = load float, ptr %460, align 8, !tbaa !151
  %462 = fcmp oge float %457, %461
  br i1 %462, label %463, label %471

463:                                              ; preds = %454
  %464 = load ptr, ptr %1, align 8, !tbaa !5
  %465 = getelementptr inbounds %struct.ImGuiContext, ptr %464, i32 0, i32 35
  %466 = load ptr, ptr %465, align 8, !tbaa !153
  %467 = getelementptr inbounds %struct.ImGuiWindow, ptr %466, i32 0, i32 2
  %468 = load i32, ptr %467, align 8, !tbaa !154
  %469 = load ptr, ptr %1, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.ImGuiContext, ptr %469, i32 0, i32 204
  store i32 %468, ptr %470, align 4, !tbaa !168
  br label %480

471:                                              ; preds = %454, %449
  %472 = load ptr, ptr %1, align 8, !tbaa !5
  %473 = getelementptr inbounds %struct.ImGuiContext, ptr %472, i32 0, i32 35
  %474 = load ptr, ptr %473, align 8, !tbaa !153
  %475 = icmp eq ptr %474, null
  br i1 %475, label %476, label %479

476:                                              ; preds = %471
  %477 = load ptr, ptr %1, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.ImGuiContext, ptr %477, i32 0, i32 204
  store i32 0, ptr %478, align 4, !tbaa !168
  br label %479

479:                                              ; preds = %476, %471
  br label %480

480:                                              ; preds = %479, %463
  %481 = load ptr, ptr %1, align 8, !tbaa !5
  %482 = getelementptr inbounds %struct.ImGuiContext, ptr %481, i32 0, i32 199
  %483 = load i32, ptr %482, align 8, !tbaa !149
  %484 = load ptr, ptr %1, align 8, !tbaa !5
  %485 = getelementptr inbounds %struct.ImGuiContext, ptr %484, i32 0, i32 200
  store i32 %483, ptr %485, align 4, !tbaa !169
  %486 = load ptr, ptr %1, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.ImGuiContext, ptr %486, i32 0, i32 199
  %488 = load i32, ptr %487, align 8, !tbaa !149
  %489 = icmp ne i32 %488, 0
  br i1 %489, label %490, label %503

490:                                              ; preds = %480
  %491 = load ptr, ptr %1, align 8, !tbaa !5
  %492 = getelementptr inbounds %struct.ImGuiContext, ptr %491, i32 0, i32 2
  %493 = getelementptr inbounds %struct.ImGuiIO, ptr %492, i32 0, i32 3
  %494 = load float, ptr %493, align 8, !tbaa !97
  %495 = load ptr, ptr %1, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.ImGuiContext, ptr %495, i32 0, i32 201
  %497 = load float, ptr %496, align 8, !tbaa !170
  %498 = fadd float %497, %494
  store float %498, ptr %496, align 8, !tbaa !170
  %499 = load ptr, ptr %1, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.ImGuiContext, ptr %499, i32 0, i32 202
  store float 0.000000e+00, ptr %500, align 4, !tbaa !171
  %501 = load ptr, ptr %1, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.ImGuiContext, ptr %501, i32 0, i32 199
  store i32 0, ptr %502, align 8, !tbaa !149
  br label %534

503:                                              ; preds = %480
  %504 = load ptr, ptr %1, align 8, !tbaa !5
  %505 = getelementptr inbounds %struct.ImGuiContext, ptr %504, i32 0, i32 201
  %506 = load float, ptr %505, align 8, !tbaa !170
  %507 = fcmp ogt float %506, 0.000000e+00
  br i1 %507, label %508, label %533

508:                                              ; preds = %503
  %509 = load ptr, ptr %1, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.ImGuiContext, ptr %509, i32 0, i32 2
  %511 = getelementptr inbounds %struct.ImGuiIO, ptr %510, i32 0, i32 3
  %512 = load float, ptr %511, align 8, !tbaa !97
  %513 = load ptr, ptr %1, align 8, !tbaa !5
  %514 = getelementptr inbounds %struct.ImGuiContext, ptr %513, i32 0, i32 202
  %515 = load float, ptr %514, align 4, !tbaa !171
  %516 = fadd float %515, %512
  store float %516, ptr %514, align 4, !tbaa !171
  %517 = load ptr, ptr %1, align 8, !tbaa !5
  %518 = getelementptr inbounds %struct.ImGuiContext, ptr %517, i32 0, i32 202
  %519 = load float, ptr %518, align 4, !tbaa !171
  %520 = load ptr, ptr %1, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.ImGuiContext, ptr %520, i32 0, i32 2
  %522 = getelementptr inbounds %struct.ImGuiIO, ptr %521, i32 0, i32 3
  %523 = load float, ptr %522, align 8, !tbaa !97
  %524 = fmul float %523, 2.000000e+00
  %525 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 2.500000e-01, float noundef %524)
  %526 = fcmp oge float %519, %525
  br i1 %526, label %527, label %532

527:                                              ; preds = %508
  %528 = load ptr, ptr %1, align 8, !tbaa !5
  %529 = getelementptr inbounds %struct.ImGuiContext, ptr %528, i32 0, i32 202
  store float 0.000000e+00, ptr %529, align 4, !tbaa !171
  %530 = load ptr, ptr %1, align 8, !tbaa !5
  %531 = getelementptr inbounds %struct.ImGuiContext, ptr %530, i32 0, i32 201
  store float 0.000000e+00, ptr %531, align 8, !tbaa !170
  br label %532

532:                                              ; preds = %527, %508
  br label %533

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

534:                                              ; preds = %533, %490
  %535 = load ptr, ptr %1, align 8, !tbaa !5
  %536 = getelementptr inbounds %struct.ImGuiContext, ptr %535, i32 0, i32 175
  %537 = load i32, ptr %536, align 4, !tbaa !172
  %538 = load ptr, ptr %1, align 8, !tbaa !5
  %539 = getelementptr inbounds %struct.ImGuiContext, ptr %538, i32 0, i32 176
  store i32 %537, ptr %539, align 8, !tbaa !173
  %540 = load ptr, ptr %1, align 8, !tbaa !5
  %541 = getelementptr inbounds %struct.ImGuiContext, ptr %540, i32 0, i32 175
  store i32 0, ptr %541, align 4, !tbaa !172
  %542 = load ptr, ptr %1, align 8, !tbaa !5
  %543 = getelementptr inbounds %struct.ImGuiContext, ptr %542, i32 0, i32 174
  store float 0x47EFFFFFE0000000, ptr %543, align 8, !tbaa !174
  %544 = load ptr, ptr %1, align 8, !tbaa !5
  %545 = getelementptr inbounds %struct.ImGuiContext, ptr %544, i32 0, i32 163
  store i8 0, ptr %545, align 1, !tbaa !175
  %546 = load ptr, ptr %1, align 8, !tbaa !5
  %547 = getelementptr inbounds %struct.ImGuiContext, ptr %546, i32 0, i32 164
  store i8 0, ptr %547, align 2, !tbaa !176
  %548 = load ptr, ptr %1, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.ImGuiContext, ptr %548, i32 0, i32 178
  store i32 0, ptr %549, align 8, !tbaa !177
  %550 = load ptr, ptr %1, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct.ImGuiContext, ptr %550, i32 0, i32 236
  store ptr null, ptr %551, align 8, !tbaa !178
  call void @_ZN5ImGuiL20UpdateKeyboardInputsEv()
  call void @_ZN5ImGuiL9NavUpdateEv()
  call void @_ZN5ImGuiL17UpdateMouseInputsEv()
  %552 = load ptr, ptr %1, align 8, !tbaa !5
  %553 = getelementptr inbounds %struct.ImGuiContext, ptr %552, i32 0, i32 27
  %554 = getelementptr inbounds %struct.ImVector.2, ptr %553, i32 0, i32 0
  %555 = load i32, ptr %554, align 8, !tbaa !179
  %556 = load ptr, ptr %1, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.ImGuiContext, ptr %556, i32 0, i32 26
  %558 = getelementptr inbounds %struct.ImVector.2, ptr %557, i32 0, i32 0
  %559 = load i32, ptr %558, align 8, !tbaa !180
  %560 = icmp sle i32 %555, %559
  br i1 %560, label %561, label %562

561:                                              ; preds = %534
  br label %564

562:                                              ; preds = %534
  call void @__assert_fail(ptr noundef @.str.117, ptr noundef @.str.3, i32 noundef 5269, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

563:                                              ; No predecessors!
  br label %564

564:                                              ; preds = %563, %561
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %565 = load ptr, ptr %1, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.ImGuiContext, ptr %565, i32 0, i32 18
  %567 = load i8, ptr %566, align 2, !tbaa !181, !range !109, !noundef !110
  %568 = trunc i8 %567 to i1
  br i1 %568, label %575, label %569

569:                                              ; preds = %564
  %570 = load ptr, ptr %1, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.ImGuiContext, ptr %570, i32 0, i32 2
  %572 = getelementptr inbounds %struct.ImGuiIO, ptr %571, i32 0, i32 30
  %573 = load float, ptr %572, align 4, !tbaa !182
  %574 = fcmp olt float %573, 0.000000e+00
  br i1 %574, label %575, label %576

575:                                              ; preds = %569, %564
  br label %586

576:                                              ; preds = %569
  %577 = load ptr, ptr %1, align 8, !tbaa !5
  %578 = getelementptr inbounds %struct.ImGuiContext, ptr %577, i32 0, i32 11
  %579 = load double, ptr %578, align 8, !tbaa !98
  %580 = fptrunc double %579 to float
  %581 = load ptr, ptr %1, align 8, !tbaa !5
  %582 = getelementptr inbounds %struct.ImGuiContext, ptr %581, i32 0, i32 2
  %583 = getelementptr inbounds %struct.ImGuiIO, ptr %582, i32 0, i32 30
  %584 = load float, ptr %583, align 4, !tbaa !182
  %585 = fsub float %580, %584
  br label %586

586:                                              ; preds = %576, %575
  %587 = phi float [ 0x47EFFFFFE0000000, %575 ], [ %585, %576 ]
  store float %587, ptr %7, align 4, !tbaa !104
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #11
  %588 = load ptr, ptr %1, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.ImGuiContext, ptr %588, i32 0, i32 26
  store ptr %589, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #11
  %590 = load ptr, ptr %8, align 8, !tbaa !5
  %591 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %590)
  store ptr %591, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #11
  %592 = load ptr, ptr %8, align 8, !tbaa !5
  %593 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %592)
  store ptr %593, ptr %10, align 8, !tbaa !5
  br label %594

594:                                              ; preds = %638, %586
  %595 = load ptr, ptr %9, align 8, !tbaa !5
  %596 = load ptr, ptr %10, align 8, !tbaa !5
  %597 = icmp ne ptr %595, %596
  br i1 %597, label %599, label %598

598:                                              ; preds = %594
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #11
  br label %641

599:                                              ; preds = %594
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #11
  %600 = load ptr, ptr %9, align 8, !tbaa !5
  %601 = load ptr, ptr %600, align 8, !tbaa !5
  store ptr %601, ptr %11, align 8, !tbaa !5
  %602 = load ptr, ptr %11, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.ImGuiWindow, ptr %602, i32 0, i32 36
  %604 = load i8, ptr %603, align 2, !tbaa !183, !range !109, !noundef !110
  %605 = trunc i8 %604 to i1
  %606 = load ptr, ptr %11, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.ImGuiWindow, ptr %606, i32 0, i32 37
  %608 = zext i1 %605 to i8
  store i8 %608, ptr %607, align 1, !tbaa !184
  %609 = load ptr, ptr %11, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.ImGuiWindow, ptr %609, i32 0, i32 36
  store i8 0, ptr %610, align 2, !tbaa !183
  %611 = load ptr, ptr %11, align 8, !tbaa !5
  %612 = getelementptr inbounds %struct.ImGuiWindow, ptr %611, i32 0, i32 38
  store i8 0, ptr %612, align 4, !tbaa !185
  %613 = load ptr, ptr %11, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.ImGuiWindow, ptr %613, i32 0, i32 50
  %615 = load i16, ptr %614, align 8, !tbaa !186
  %616 = load ptr, ptr %11, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.ImGuiWindow, ptr %616, i32 0, i32 51
  store i16 %615, ptr %617, align 2, !tbaa !187
  %618 = load ptr, ptr %11, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct.ImGuiWindow, ptr %618, i32 0, i32 50
  store i16 0, ptr %619, align 8, !tbaa !186
  %620 = load ptr, ptr %11, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.ImGuiWindow, ptr %620, i32 0, i32 37
  %622 = load i8, ptr %621, align 1, !tbaa !184, !range !109, !noundef !110
  %623 = trunc i8 %622 to i1
  br i1 %623, label %637, label %624

624:                                              ; preds = %599
  %625 = load ptr, ptr %11, align 8, !tbaa !5
  %626 = getelementptr inbounds %struct.ImGuiWindow, ptr %625, i32 0, i32 103
  %627 = load i8, ptr %626, align 4, !tbaa !188, !range !109, !noundef !110
  %628 = trunc i8 %627 to i1
  br i1 %628, label %637, label %629

629:                                              ; preds = %624
  %630 = load ptr, ptr %11, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.ImGuiWindow, ptr %630, i32 0, i32 80
  %632 = load float, ptr %631, align 4, !tbaa !189
  %633 = load float, ptr %7, align 4, !tbaa !104
  %634 = fcmp olt float %632, %633
  br i1 %634, label %635, label %637

635:                                              ; preds = %629
  %636 = load ptr, ptr %11, align 8, !tbaa !5
  call void @_ZN5ImGui31GcCompactTransientWindowBuffersEP11ImGuiWindow(ptr noundef %636)
  br label %637

637:                                              ; preds = %635, %629, %624, %599
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  br label %638

638:                                              ; preds = %637
  %639 = load ptr, ptr %9, align 8, !tbaa !5
  %640 = getelementptr inbounds ptr, ptr %639, i32 1
  store ptr %640, ptr %9, align 8, !tbaa !5
  br label %594

641:                                              ; preds = %598
  call void @_ZN5ImGui34UpdateHoveredWindowAndCaptureFlagsEv()
  call void @_ZN5ImGui31UpdateMouseMovingWindowNewFrameEv()
  %642 = call noundef ptr @_ZN5ImGui20GetTopMostPopupModalEv()
  %643 = icmp ne ptr %642, null
  br i1 %643, label %654, label %644

644:                                              ; preds = %641
  %645 = load ptr, ptr %1, align 8, !tbaa !5
  %646 = getelementptr inbounds %struct.ImGuiContext, ptr %645, i32 0, i32 152
  %647 = load ptr, ptr %646, align 8, !tbaa !190
  %648 = icmp ne ptr %647, null
  br i1 %648, label %649, label %666

649:                                              ; preds = %644
  %650 = load ptr, ptr %1, align 8, !tbaa !5
  %651 = getelementptr inbounds %struct.ImGuiContext, ptr %650, i32 0, i32 156
  %652 = load float, ptr %651, align 4, !tbaa !191
  %653 = fcmp ogt float %652, 0.000000e+00
  br i1 %653, label %654, label %666

654:                                              ; preds = %649, %641
  %655 = load ptr, ptr %1, align 8, !tbaa !5
  %656 = getelementptr inbounds %struct.ImGuiContext, ptr %655, i32 0, i32 161
  %657 = load float, ptr %656, align 8, !tbaa !192
  %658 = load ptr, ptr %1, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.ImGuiContext, ptr %658, i32 0, i32 2
  %660 = getelementptr inbounds %struct.ImGuiIO, ptr %659, i32 0, i32 3
  %661 = load float, ptr %660, align 8, !tbaa !97
  %662 = call float @llvm.fmuladd.f32(float %661, float 6.000000e+00, float %657)
  %663 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %662, float noundef 1.000000e+00)
  %664 = load ptr, ptr %1, align 8, !tbaa !5
  %665 = getelementptr inbounds %struct.ImGuiContext, ptr %664, i32 0, i32 161
  store float %663, ptr %665, align 8, !tbaa !192
  br label %679

666:                                              ; preds = %649, %644
  %667 = load ptr, ptr %1, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.ImGuiContext, ptr %667, i32 0, i32 161
  %669 = load float, ptr %668, align 8, !tbaa !192
  %670 = load ptr, ptr %1, align 8, !tbaa !5
  %671 = getelementptr inbounds %struct.ImGuiContext, ptr %670, i32 0, i32 2
  %672 = getelementptr inbounds %struct.ImGuiIO, ptr %671, i32 0, i32 3
  %673 = load float, ptr %672, align 8, !tbaa !97
  %674 = fneg float %673
  %675 = call float @llvm.fmuladd.f32(float %674, float 1.000000e+01, float %669)
  %676 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %675, float noundef 0.000000e+00)
  %677 = load ptr, ptr %1, align 8, !tbaa !5
  %678 = getelementptr inbounds %struct.ImGuiContext, ptr %677, i32 0, i32 161
  store float %676, ptr %678, align 8, !tbaa !192
  br label %679

679:                                              ; preds = %666, %654
  %680 = load ptr, ptr %1, align 8, !tbaa !5
  %681 = getelementptr inbounds %struct.ImGuiContext, ptr %680, i32 0, i32 205
  store i32 0, ptr %681, align 8, !tbaa !193
  %682 = load ptr, ptr %1, align 8, !tbaa !5
  %683 = getelementptr inbounds %struct.ImGuiContext, ptr %682, i32 0, i32 295
  store i32 -1, ptr %683, align 8, !tbaa !194
  %684 = load ptr, ptr %1, align 8, !tbaa !5
  %685 = getelementptr inbounds %struct.ImGuiContext, ptr %684, i32 0, i32 294
  store i32 -1, ptr %685, align 4, !tbaa !195
  %686 = load ptr, ptr %1, align 8, !tbaa !5
  %687 = getelementptr inbounds %struct.ImGuiContext, ptr %686, i32 0, i32 293
  store i32 -1, ptr %687, align 8, !tbaa !196
  %688 = load ptr, ptr %1, align 8, !tbaa !5
  %689 = getelementptr inbounds %struct.ImGuiContext, ptr %688, i32 0, i32 240
  %690 = load ptr, ptr %1, align 8, !tbaa !5
  %691 = getelementptr inbounds %struct.ImGuiContext, ptr %690, i32 0, i32 241
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %691, ptr align 8 %689, i64 16, i1 false), !tbaa.struct !197
  %692 = load ptr, ptr %1, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.ImGuiContext, ptr %692, i32 0, i32 240
  %694 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %693, i32 0, i32 0
  store i8 0, ptr %694, align 8, !tbaa !199
  call void @_ZN5ImGuiL16UpdateMouseWheelEv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #11
  store i32 0, ptr %12, align 4, !tbaa !91
  br label %695

695:                                              ; preds = %724, %679
  %696 = load i32, ptr %12, align 4, !tbaa !91
  %697 = load ptr, ptr %1, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.ImGuiContext, ptr %697, i32 0, i32 188
  %699 = getelementptr inbounds %struct.ImVector.19, ptr %698, i32 0, i32 0
  %700 = load i32, ptr %699, align 8, !tbaa !200
  %701 = icmp slt i32 %696, %700
  br i1 %701, label %703, label %702

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

703:                                              ; preds = %695
  %704 = load ptr, ptr %1, align 8, !tbaa !5
  %705 = getelementptr inbounds %struct.ImGuiContext, ptr %704, i32 0, i32 188
  %706 = load i32, ptr %12, align 4, !tbaa !91
  %707 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfEixEi(ptr noundef nonnull align 8 dereferenceable(16) %705, i32 noundef %706)
  %708 = load float, ptr %707, align 4, !tbaa !104
  %709 = fcmp oge float %708, 0.000000e+00
  br i1 %709, label %710, label %723

710:                                              ; preds = %703
  %711 = load ptr, ptr %1, align 8, !tbaa !5
  %712 = getelementptr inbounds %struct.ImGuiContext, ptr %711, i32 0, i32 188
  %713 = load i32, ptr %12, align 4, !tbaa !91
  %714 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfEixEi(ptr noundef nonnull align 8 dereferenceable(16) %712, i32 noundef %713)
  %715 = load float, ptr %714, align 4, !tbaa !104
  %716 = load float, ptr %7, align 4, !tbaa !104
  %717 = fcmp olt float %715, %716
  br i1 %717, label %718, label %723

718:                                              ; preds = %710
  %719 = load ptr, ptr %1, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.ImGuiContext, ptr %719, i32 0, i32 187
  %721 = load i32, ptr %12, align 4, !tbaa !91
  %722 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(40) %720, i32 noundef %721)
  call void @_ZN5ImGui30TableGcCompactTransientBuffersEP10ImGuiTable(ptr noundef %722)
  br label %723

723:                                              ; preds = %718, %710, %703
  br label %724

724:                                              ; preds = %723
  %725 = load i32, ptr %12, align 4, !tbaa !91
  %726 = add nsw i32 %725, 1
  store i32 %726, ptr %12, align 4, !tbaa !91
  br label %695, !llvm.loop !201

727:                                              ; preds = %702
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #11
  %728 = load ptr, ptr %1, align 8, !tbaa !5
  %729 = getelementptr inbounds %struct.ImGuiContext, ptr %728, i32 0, i32 186
  store ptr %729, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #11
  %730 = load ptr, ptr %13, align 8, !tbaa !5
  %731 = call noundef ptr @_ZN8ImVectorI18ImGuiTableTempDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %730)
  store ptr %731, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #11
  %732 = load ptr, ptr %13, align 8, !tbaa !5
  %733 = call noundef ptr @_ZN8ImVectorI18ImGuiTableTempDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %732)
  store ptr %733, ptr %15, align 8, !tbaa !5
  br label %734

734:                                              ; preds = %754, %727
  %735 = load ptr, ptr %14, align 8, !tbaa !5
  %736 = load ptr, ptr %15, align 8, !tbaa !5
  %737 = icmp ne ptr %735, %736
  br i1 %737, label %739, label %738

738:                                              ; preds = %734
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  br label %757

739:                                              ; preds = %734
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #11
  %740 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %740, ptr %16, align 8, !tbaa !5
  %741 = load ptr, ptr %16, align 8, !tbaa !5
  %742 = getelementptr inbounds %struct.ImGuiTableTempData, ptr %741, i32 0, i32 1
  %743 = load float, ptr %742, align 4, !tbaa !202
  %744 = fcmp oge float %743, 0.000000e+00
  br i1 %744, label %745, label %753

745:                                              ; preds = %739
  %746 = load ptr, ptr %16, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.ImGuiTableTempData, ptr %746, i32 0, i32 1
  %748 = load float, ptr %747, align 4, !tbaa !202
  %749 = load float, ptr %7, align 4, !tbaa !104
  %750 = fcmp olt float %748, %749
  br i1 %750, label %751, label %753

751:                                              ; preds = %745
  %752 = load ptr, ptr %16, align 8, !tbaa !5
  call void @_ZN5ImGui30TableGcCompactTransientBuffersEP18ImGuiTableTempData(ptr noundef %752)
  br label %753

753:                                              ; preds = %751, %745, %739
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  br label %754

754:                                              ; preds = %753
  %755 = load ptr, ptr %14, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.ImGuiTableTempData, ptr %755, i32 1
  store ptr %756, ptr %14, align 8, !tbaa !5
  br label %734

757:                                              ; preds = %738
  %758 = load ptr, ptr %1, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.ImGuiContext, ptr %758, i32 0, i32 18
  %760 = load i8, ptr %759, align 2, !tbaa !181, !range !109, !noundef !110
  %761 = trunc i8 %760 to i1
  br i1 %761, label %762, label %763

762:                                              ; preds = %757
  call void @_ZN5ImGui29GcCompactTransientMiscBuffersEv()
  br label %763

763:                                              ; preds = %762, %757
  %764 = load ptr, ptr %1, align 8, !tbaa !5
  %765 = getelementptr inbounds %struct.ImGuiContext, ptr %764, i32 0, i32 18
  store i8 0, ptr %765, align 2, !tbaa !181
  %766 = load ptr, ptr %1, align 8, !tbaa !5
  %767 = getelementptr inbounds %struct.ImGuiContext, ptr %766, i32 0, i32 107
  %768 = load ptr, ptr %767, align 8, !tbaa !205
  %769 = icmp ne ptr %768, null
  br i1 %769, label %770, label %778

770:                                              ; preds = %763
  %771 = load ptr, ptr %1, align 8, !tbaa !5
  %772 = getelementptr inbounds %struct.ImGuiContext, ptr %771, i32 0, i32 107
  %773 = load ptr, ptr %772, align 8, !tbaa !205
  %774 = getelementptr inbounds %struct.ImGuiWindow, ptr %773, i32 0, i32 37
  %775 = load i8, ptr %774, align 1, !tbaa !184, !range !109, !noundef !110
  %776 = trunc i8 %775 to i1
  br i1 %776, label %778, label %777

777:                                              ; preds = %770
  call void @_ZN5ImGui26FocusTopMostWindowUnderOneEP11ImGuiWindowS1_P13ImGuiViewporti(ptr noundef null, ptr noundef null, ptr noundef null, i32 noundef 1)
  br label %778

778:                                              ; preds = %777, %770, %763
  %779 = load ptr, ptr %1, align 8, !tbaa !5
  %780 = getelementptr inbounds %struct.ImGuiContext, ptr %779, i32 0, i32 29
  call void @_ZN8ImVectorI20ImGuiWindowStackDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %780, i32 noundef 0)
  %781 = load ptr, ptr %1, align 8, !tbaa !5
  %782 = getelementptr inbounds %struct.ImGuiContext, ptr %781, i32 0, i32 99
  call void @_ZN8ImVectorI14ImGuiPopupDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %782, i32 noundef 0)
  %783 = load ptr, ptr %1, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.ImGuiContext, ptr %783, i32 0, i32 96
  call void @_ZN8ImVectorIiE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %784, i32 noundef 0)
  %785 = load ptr, ptr %1, align 8, !tbaa !5
  %786 = getelementptr inbounds %struct.ImGuiContext, ptr %785, i32 0, i32 96
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  store i32 16, ptr %17, align 4, !tbaa !91
  call void @_ZN8ImVectorIiE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(16) %786, ptr noundef nonnull align 4 dereferenceable(4) %17)
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  %787 = load ptr, ptr %1, align 8, !tbaa !5
  %788 = getelementptr inbounds %struct.ImGuiContext, ptr %787, i32 0, i32 96
  %789 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIiE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %788)
  %790 = load i32, ptr %789, align 4, !tbaa !91
  %791 = load ptr, ptr %1, align 8, !tbaa !5
  %792 = getelementptr inbounds %struct.ImGuiContext, ptr %791, i32 0, i32 85
  store i32 %790, ptr %792, align 8, !tbaa !206
  %793 = load ptr, ptr %1, align 8, !tbaa !5
  %794 = getelementptr inbounds %struct.ImGuiContext, ptr %793, i32 0, i32 97
  call void @_ZN8ImVectorI14ImGuiGroupDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %794, i32 noundef 0)
  call void @_ZN5ImGuiL25UpdateDebugToolItemPickerEv()
  call void @_ZN5ImGuiL27UpdateDebugToolStackQueriesEv()
  call void @_ZN5ImGuiL30UpdateDebugToolFlashStyleColorEv()
  %795 = load ptr, ptr %1, align 8, !tbaa !5
  %796 = getelementptr inbounds %struct.ImGuiContext, ptr %795, i32 0, i32 277
  %797 = load i8, ptr %796, align 1, !tbaa !207
  %798 = zext i8 %797 to i32
  %799 = icmp sgt i32 %798, 0
  br i1 %799, label %800, label %812

800:                                              ; preds = %778
  %801 = load ptr, ptr %1, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.ImGuiContext, ptr %801, i32 0, i32 277
  %803 = load i8, ptr %802, align 1, !tbaa !207
  %804 = add i8 %803, -1
  store i8 %804, ptr %802, align 1, !tbaa !207
  %805 = zext i8 %804 to i32
  %806 = icmp eq i32 %805, 0
  br i1 %806, label %807, label %812

807:                                              ; preds = %800
  %808 = load ptr, ptr %1, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.ImGuiContext, ptr %808, i32 0, i32 86
  store i32 0, ptr %809, align 4, !tbaa !208
  %810 = load ptr, ptr %1, align 8, !tbaa !5
  %811 = getelementptr inbounds %struct.ImGuiContext, ptr %810, i32 0, i32 278
  store i8 0, ptr %811, align 2, !tbaa !209
  br label %812

812:                                              ; preds = %807, %800, %778
  %813 = load ptr, ptr %1, align 8, !tbaa !5
  %814 = getelementptr inbounds %struct.ImGuiContext, ptr %813, i32 0, i32 276
  %815 = load i8, ptr %814, align 8, !tbaa !210
  %816 = zext i8 %815 to i32
  %817 = icmp sgt i32 %816, 0
  br i1 %817, label %818, label %836

818:                                              ; preds = %812
  %819 = load ptr, ptr %1, align 8, !tbaa !5
  %820 = getelementptr inbounds %struct.ImGuiContext, ptr %819, i32 0, i32 276
  %821 = load i8, ptr %820, align 8, !tbaa !210
  %822 = add i8 %821, -1
  store i8 %822, ptr %820, align 8, !tbaa !210
  %823 = zext i8 %822 to i32
  %824 = icmp eq i32 %823, 0
  br i1 %824, label %825, label %836

825:                                              ; preds = %818
  call void (ptr, ...) @_ZN5ImGui8DebugLogEPKcz(ptr noundef @.str.118)
  %826 = load ptr, ptr %1, align 8, !tbaa !5
  %827 = getelementptr inbounds %struct.ImGuiContext, ptr %826, i32 0, i32 275
  %828 = load i32, ptr %827, align 4, !tbaa !211
  %829 = xor i32 %828, -1
  %830 = load ptr, ptr %1, align 8, !tbaa !5
  %831 = getelementptr inbounds %struct.ImGuiContext, ptr %830, i32 0, i32 271
  %832 = load i32, ptr %831, align 4, !tbaa !138
  %833 = and i32 %832, %829
  store i32 %833, ptr %831, align 4, !tbaa !138
  %834 = load ptr, ptr %1, align 8, !tbaa !5
  %835 = getelementptr inbounds %struct.ImGuiContext, ptr %834, i32 0, i32 275
  store i32 0, ptr %835, align 4, !tbaa !211
  br label %836

836:                                              ; preds = %825, %818, %812
  %837 = load ptr, ptr %1, align 8, !tbaa !5
  %838 = getelementptr inbounds %struct.ImGuiContext, ptr %837, i32 0, i32 17
  store i8 1, ptr %838, align 1, !tbaa !212
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef 4.000000e+02, float noundef 4.000000e+02)
  call void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8) %18, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #11
  %839 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.119, ptr noundef null, i32 noundef 0)
  %840 = load ptr, ptr %1, align 8, !tbaa !5
  %841 = getelementptr inbounds %struct.ImGuiContext, ptr %840, i32 0, i32 34
  %842 = load ptr, ptr %841, align 8, !tbaa !213
  %843 = getelementptr inbounds %struct.ImGuiWindow, ptr %842, i32 0, i32 45
  %844 = load i8, ptr %843, align 1, !tbaa !214, !range !109, !noundef !110
  %845 = trunc i8 %844 to i1
  %846 = zext i1 %845 to i32
  %847 = icmp eq i32 %846, 1
  br i1 %847, label %848, label %849

848:                                              ; preds = %836
  br label %851

849:                                              ; preds = %836
  call void @__assert_fail(ptr noundef @.str.120, ptr noundef @.str.3, i32 noundef 5356, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

850:                                              ; No predecessors!
  br label %851

851:                                              ; preds = %850, %848
  %852 = load ptr, ptr %1, align 8, !tbaa !5
  %853 = getelementptr inbounds %struct.ImGuiContext, ptr %852, i32 0, i32 267
  store i32 0, ptr %853, align 4, !tbaa !215
  %854 = load ptr, ptr %1, align 8, !tbaa !5
  %855 = getelementptr inbounds %struct.ImGuiContext, ptr %854, i32 0, i32 268
  call void @_ZN5ImGui23ErrorRecoveryStoreStateEP23ImGuiErrorRecoveryState(ptr noundef %855)
  %856 = load ptr, ptr %1, align 8, !tbaa !5
  %857 = getelementptr inbounds %struct.ImGuiContext, ptr %856, i32 0, i32 2
  %858 = getelementptr inbounds %struct.ImGuiIO, ptr %857, i32 0, i32 43
  %859 = load i8, ptr %858, align 1, !tbaa !216, !range !109, !noundef !110
  %860 = trunc i8 %859 to i1
  br i1 %860, label %861, label %887

861:                                              ; preds = %851
  %862 = load ptr, ptr %1, align 8, !tbaa !5
  %863 = getelementptr inbounds %struct.ImGuiContext, ptr %862, i32 0, i32 280
  %864 = load i8, ptr %863, align 8, !tbaa !217
  %865 = sext i8 %864 to i32
  %866 = icmp eq i32 %865, -1
  br i1 %866, label %867, label %868

867:                                              ; preds = %861
  br label %882

868:                                              ; preds = %861
  %869 = load ptr, ptr %1, align 8, !tbaa !5
  %870 = getelementptr inbounds %struct.ImGuiContext, ptr %869, i32 0, i32 280
  %871 = load i8, ptr %870, align 8, !tbaa !217
  %872 = sext i8 %871 to i32
  %873 = load ptr, ptr %1, align 8, !tbaa !5
  %874 = getelementptr inbounds %struct.ImGuiContext, ptr %873, i32 0, i32 12
  %875 = load i32, ptr %874, align 8, !tbaa !100
  %876 = srem i32 %875, 4
  %877 = icmp eq i32 %876, 0
  %878 = zext i1 %877 to i64
  %879 = select i1 %877, i32 1, i32 0
  %880 = add nsw i32 %872, %879
  %881 = srem i32 %880, 10
  br label %882

882:                                              ; preds = %868, %867
  %883 = phi i32 [ 0, %867 ], [ %881, %868 ]
  %884 = trunc i32 %883 to i8
  %885 = load ptr, ptr %1, align 8, !tbaa !5
  %886 = getelementptr inbounds %struct.ImGuiContext, ptr %885, i32 0, i32 280
  store i8 %884, ptr %886, align 8, !tbaa !217
  br label %890

887:                                              ; preds = %851
  %888 = load ptr, ptr %1, align 8, !tbaa !5
  %889 = getelementptr inbounds %struct.ImGuiContext, ptr %888, i32 0, i32 280
  store i8 -1, ptr %889, align 8, !tbaa !217
  br label %890

890:                                              ; preds = %887, %882
  %891 = load ptr, ptr %1, align 8, !tbaa !5
  call void @_ZN5ImGui16CallContextHooksEP12ImGuiContext20ImGuiContextHookType(ptr noundef %891, i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1) #11
  ret void
}

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

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

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

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

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

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

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

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

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

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

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

; 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 hidden void @_ZN5ImGuiL20UpdateKeyboardInputsEv() #4

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

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

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

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

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

; 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) #6 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 ptr @_ZN8ImVectorI18ImGuiTableTempDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16)) #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN8ImVectorI18ImGuiTableTempDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16)) #6 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) #4

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN5ImGuiL30UpdateDebugToolFlashStyleColorEv() #1

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

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

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

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 = { 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 #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 9656}
!10 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !12, i64 8, !19, i64 2984, !20, i64 3056, !6, i64 4216, !15, i64 4224, !15, i64 4228, !15, i64 4232, !15, i64 4236, !22, i64 4240, !25, i64 4776, !13, i64 4784, !13, i64 4788, !13, i64 4792, !13, i64 4796, !11, i64 4800, !11, i64 4801, !11, i64 4802, !11, i64 4803, !6, i64 4808, !7, i64 4816, !26, i64 4832, !26, i64 4848, !16, i64 4864, !13, i64 4868, !27, i64 4872, !27, i64 4888, !27, i64 4904, !28, i64 4920, !29, i64 4936, !13, i64 4952, !14, i64 4956, !13, i64 4964, !6, i64 4968, !6, i64 4976, !6, i64 4984, !6, i64 4992, !6, i64 5000, !6, i64 5008, !14, i64 5016, !13, i64 5024, !13, i64 5028, !15, i64 5032, !14, i64 5036, !14, i64 5044, !13, i64 5052, !13, i64 5056, !13, i64 5060, !13, i64 5064, !13, i64 5068, !15, i64 5072, !15, i64 5076, !11, i64 5080, !11, i64 5081, !11, i64 5082, !13, i64 5084, !13, i64 5088, !15, i64 5092, !11, i64 5096, !11, i64 5097, !11, i64 5098, !11, i64 5099, !11, i64 5100, !11, i64 5101, !11, i64 5102, !13, i64 5103, !14, i64 5104, !6, i64 5112, !31, i64 5120, !13, i64 5124, !32, i64 5128, !33, i64 5140, !13, i64 5148, !15, i64 5152, !25, i64 5160, !25, i64 5168, !25, i64 5176, !34, i64 5184, !7, i64 5204, !35, i64 7056, !13, i64 7400, !11, i64 7404, !13, i64 7408, !13, i64 7412, !13, i64 7416, !13, i64 7420, !37, i64 7424, !39, i64 7480, !41, i64 7560, !11, i64 7672, !13, i64 7676, !42, i64 7680, !43, i64 7696, !44, i64 7712, !45, i64 7728, !46, i64 7744, !47, i64 7760, !48, i64 7776, !48, i64 7792, !49, i64 7808, !50, i64 7824, !11, i64 7840, !11, i64 7841, !11, i64 7842, !11, i64 7843, !13, i64 7844, !6, i64 7848, !13, i64 7856, !51, i64 7860, !13, i64 7864, !13, i64 7868, !13, i64 7872, !13, i64 7876, !45, i64 7880, !13, i64 7896, !15, i64 7900, !13, i64 7904, !13, i64 7908, !31, i64 7912, !38, i64 7920, !7, i64 7928, !11, i64 7929, !11, i64 7930, !11, i64 7931, !52, i64 7936, !11, i64 7992, !11, i64 7993, !11, i64 7994, !13, i64 7996, !13, i64 8000, !13, i64 8004, !21, i64 8008, !21, i64 8012, !21, i64 8016, !40, i64 8020, !40, i64 8036, !13, i64 8052, !13, i64 8056, !13, i64 8060, !52, i64 8064, !52, i64 8120, !52, i64 8176, !52, i64 8232, !13, i64 8288, !13, i64 8292, !13, i64 8296, !13, i64 8300, !11, i64 8304, !11, i64 8305, !13, i64 8308, !13, i64 8312, !6, i64 8320, !6, i64 8328, !6, i64 8336, !15, i64 8344, !15, i64 8348, !11, i64 8352, !53, i64 8356, !14, i64 8360, !14, i64 8368, !15, i64 8376, !11, i64 8380, !11, i64 8381, !11, i64 8382, !13, i64 8384, !13, i64 8388, !13, i64 8392, !54, i64 8400, !40, i64 8464, !40, i64 8480, !13, i64 8496, !13, i64 8500, !15, i64 8504, !13, i64 8508, !13, i64 8512, !13, i64 8516, !13, i64 8520, !55, i64 8528, !7, i64 8544, !13, i64 8560, !56, i64 8568, !6, i64 8584, !13, i64 8592, !13, i64 8596, !57, i64 8600, !58, i64 8616, !60, i64 8656, !61, i64 8672, !6, i64 8688, !62, i64 8696, !64, i64 8736, !65, i64 8752, !66, i64 8768, !6, i64 8872, !13, i64 8880, !67, i64 8888, !68, i64 8904, !13, i64 8944, !13, i64 8948, !15, i64 8952, !15, i64 8956, !13, i64 8960, !13, i64 8964, !13, i64 8968, !15, i64 8972, !14, i64 8976, !70, i64 8984, !72, i64 9104, !73, i64 9128, !13, i64 9248, !33, i64 9252, !13, i64 9260, !13, i64 9264, !13, i64 9268, !13, i64 9272, !13, i64 9276, !15, i64 9280, !15, i64 9284, !13, i64 9288, !23, i64 9292, !75, i64 9308, !40, i64 9356, !11, i64 9372, !17, i64 9374, !15, i64 9376, !15, i64 9380, !15, i64 9384, !11, i64 9388, !11, i64 9389, !15, i64 9392, !15, i64 9396, !15, i64 9400, !17, i64 9404, !17, i64 9406, !6, i64 9408, !71, i64 9416, !76, i64 9432, !77, i64 9448, !79, i64 9552, !79, i64 9568, !11, i64 9584, !15, i64 9588, !80, i64 9592, !81, i64 9608, !82, i64 9624, !83, i64 9640, !84, i64 9656, !13, i64 9672, !7, i64 9680, !11, i64 9760, !13, i64 9764, !6, i64 9768, !6, i64 9776, !80, i64 9784, !6, i64 9800, !6, i64 9808, !15, i64 9816, !11, i64 9820, !13, i64 9824, !13, i64 9828, !13, i64 9832, !6, i64 9840, !6, i64 9848, !14, i64 9856, !11, i64 9864, !13, i64 9868, !85, i64 9872, !6, i64 9896, !13, i64 9904, !13, i64 9908, !80, i64 9912, !86, i64 9928, !13, i64 9952, !13, i64 9956, !7, i64 9960, !7, i64 9961, !11, i64 9962, !13, i64 9964, !7, i64 9968, !11, i64 9969, !7, i64 9970, !13, i64 9972, !15, i64 9976, !23, i64 9980, !87, i64 9996, !88, i64 10024, !90, i64 10064, !7, i64 10124, !13, i64 10364, !13, i64 10368, !15, i64 10372, !13, i64 10376, !13, i64 10380, !13, i64 10384, !71, i64 10392, !7, i64 10408}
!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, !11, i64 96, !15, i64 100, !15, i64 104, !15, i64 108, !15, i64 112, !15, i64 116, !15, i64 120, !11, i64 124, !11, i64 125, !11, i64 126, !11, i64 127, !11, i64 128, !11, i64 129, !11, i64 130, !11, i64 131, !11, i64 132, !11, i64 133, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !11, i64 176, !11, i64 177, !11, i64 178, !11, i64 179, !11, i64 180, !11, i64 181, !11, i64 182, !15, i64 184, !13, i64 188, !13, i64 192, !13, i64 196, !13, i64 200, !14, i64 204, !6, i64 216, !14, i64 224, !7, i64 232, !15, i64 240, !15, i64 244, !16, i64 248, !11, i64 252, !11, i64 253, !11, i64 254, !11, i64 255, !13, i64 256, !7, i64 260, !11, i64 2724, !14, i64 2728, !7, i64 2736, !7, i64 2776, !7, i64 2816, !7, i64 2821, !7, i64 2826, !7, i64 2836, !7, i64 2846, !7, i64 2851, !7, i64 2856, !11, i64 2861, !11, i64 2862, !7, i64 2864, !7, i64 2884, !7, i64 2904, !15, i64 2924, !11, i64 2928, !11, i64 2929, !17, i64 2930, !18, i64 2936, !6, i64 2952, !6, i64 2960, !6, i64 2968}
!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, !17, i64 56, !6, i64 64}
!20 = !{!"_ZTS10ImGuiStyle", !15, i64 0, !15, i64 4, !14, i64 8, !15, i64 16, !15, i64 20, !14, i64 24, !14, i64 32, !21, 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, !15, i64 148, !15, i64 152, !15, i64 156, !14, i64 160, !21, i64 168, !14, i64 172, !14, i64 180, !15, i64 188, !14, i64 192, !14, i64 200, !14, i64 208, !14, i64 216, !15, i64 224, !11, i64 228, !11, i64 229, !11, i64 230, !15, i64 232, !15, i64 236, !7, i64 240, !15, i64 1136, !15, i64 1140, !15, i64 1144, !13, i64 1148, !13, i64 1152}
!21 = !{!"_ZTS8ImGuiDir", !7, i64 0}
!22 = !{!"_ZTS20ImDrawListSharedData", !14, i64 0, !6, i64 8, !6, i64 16, !15, i64 24, !15, i64 28, !15, i64 32, !15, i64 36, !23, i64 40, !13, i64 56, !24, i64 64, !7, i64 80, !15, i64 464, !7, i64 468}
!23 = !{!"_ZTS6ImVec4", !15, i64 0, !15, i64 4, !15, i64 8, !15, i64 12}
!24 = !{!"_ZTS8ImVectorI6ImVec2E", !13, i64 0, !13, i64 4, !6, i64 8}
!25 = !{!"double", !7, i64 0}
!26 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !13, i64 0, !13, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !13, i64 0, !13, i64 4, !6, i64 8}
!28 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!29 = !{!"_ZTS12ImGuiStorage", !30, i64 0}
!30 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !13, i64 0, !13, i64 4, !6, i64 8}
!31 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!32 = !{!"_ZTS24ImGuiDeactivatedItemData", !13, i64 0, !13, i64 4, !11, i64 8, !11, i64 9}
!33 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!34 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!35 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !36, i64 312, !36, i64 328}
!36 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!37 = !{!"_ZTS17ImGuiNextItemData", !13, i64 0, !13, i64 4, !13, i64 8, !38, i64 16, !15, i64 24, !13, i64 28, !13, i64 32, !11, i64 36, !7, i64 37, !33, i64 38, !13, i64 48}
!38 = !{!"long long", !7, i64 0}
!39 = !{!"_ZTS17ImGuiLastItemData", !13, i64 0, !13, i64 4, !13, i64 8, !40, i64 12, !40, i64 28, !40, i64 44, !40, i64 60, !13, i64 76}
!40 = !{!"_ZTS6ImRect", !14, i64 0, !14, i64 8}
!41 = !{!"_ZTS19ImGuiNextWindowData", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48, !13, i64 56, !11, i64 60, !40, i64 64, !6, i64 80, !6, i64 88, !15, i64 96, !14, i64 100, !13, i64 108}
!42 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !13, i64 0, !13, i64 4, !6, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !13, i64 0, !13, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorIP6ImFontE", !13, i64 0, !13, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorIiE", !13, i64 0, !13, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!48 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!49 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!50 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !13, i64 0, !13, i64 4, !6, i64 8}
!51 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!52 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !13, i64 8, !13, i64 12, !40, i64 16, !13, i64 32, !15, i64 36, !15, i64 40, !15, i64 44, !38, i64 48}
!53 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!54 = !{!"_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}
!55 = !{!"_ZTS8ImVectorIhE", !13, i64 0, !13, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!58 = !{!"_ZTS6ImPoolI10ImGuiTableE", !59, i64 0, !29, i64 16, !13, i64 32, !13, i64 36}
!59 = !{!"_ZTS8ImVectorI10ImGuiTableE", !13, i64 0, !13, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorIfE", !13, i64 0, !13, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !13, i64 0, !13, i64 4, !6, i64 8}
!62 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !63, i64 0, !29, i64 16, !13, i64 32, !13, i64 36}
!63 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !13, i64 0, !13, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !13, i64 0, !13, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !13, i64 0, !13, i64 4, !6, i64 8}
!66 = !{!"_ZTS19ImGuiBoxSelectState", !13, i64 0, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !11, i64 8, !13, i64 9, !14, i64 12, !14, i64 20, !14, i64 28, !6, i64 40, !11, i64 48, !40, i64 52, !40, i64 68, !40, i64 84}
!67 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!68 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !69, i64 0, !29, i64 16, !13, i64 32, !13, i64 36}
!69 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !13, i64 0, !13, i64 4, !6, i64 8}
!70 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !6, i64 32, !71, i64 40, !71, i64 56, !71, i64 72, !13, i64 88, !14, i64 92, !15, i64 100, !11, i64 104, !11, i64 105, !11, i64 106, !11, i64 107, !13, i64 108, !13, i64 112}
!71 = !{!"_ZTS8ImVectorIcE", !13, i64 0, !13, i64 4, !6, i64 8}
!72 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !13, i64 0, !71, i64 8}
!73 = !{!"_ZTS6ImFont", !60, i64 0, !15, i64 16, !15, i64 20, !18, i64 24, !74, 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}
!74 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !13, i64 0, !13, i64 4, !6, i64 8}
!75 = !{!"_ZTS21ImGuiComboPreviewData", !40, i64 0, !14, i64 16, !14, i64 24, !14, i64 32, !15, i64 40, !13, i64 44}
!76 = !{!"_ZTS8ImVectorIjE", !13, i64 0, !13, i64 4, !6, i64 8}
!77 = !{!"_ZTS22ImGuiTypingSelectState", !78, i64 0, !7, i64 24, !13, i64 88, !13, i64 92, !15, i64 96, !11, i64 100}
!78 = !{!"_ZTS24ImGuiTypingSelectRequest", !13, i64 0, !13, i64 4, !6, i64 8, !11, i64 16, !11, i64 17, !7, i64 18}
!79 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !14, i64 4, !15, i64 12}
!80 = !{!"_ZTS15ImGuiTextBuffer", !71, i64 0}
!81 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !13, i64 0, !13, i64 4, !6, i64 8}
!82 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !71, i64 0}
!83 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !71, i64 0}
!84 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !13, i64 0, !13, i64 4, !6, i64 8}
!85 = !{!"_ZTS23ImGuiErrorRecoveryState", !17, i64 0, !17, i64 2, !17, i64 4, !17, i64 6, !17, i64 8, !17, i64 10, !17, i64 12, !17, i64 14, !17, i64 16, !17, i64 18, !17, i64 20}
!86 = !{!"_ZTS14ImGuiTextIndex", !46, i64 0, !13, i64 16}
!87 = !{!"_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, !13, i64 20, !13, i64 24}
!88 = !{!"_ZTS16ImGuiIDStackTool", !13, i64 0, !13, i64 4, !13, i64 8, !89, i64 16, !11, i64 32, !15, i64 36}
!89 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !13, i64 0, !13, i64 4, !6, i64 8}
!90 = !{!"_ZTS19ImGuiDebugAllocInfo", !13, i64 0, !13, i64 4, !17, i64 8, !7, i64 12}
!91 = !{!13, !13, i64 0}
!92 = !{!93, !94, i64 4}
!93 = !{!"_ZTS16ImGuiContextHook", !13, i64 0, !94, i64 4, !13, i64 8, !6, i64 16, !6, i64 24}
!94 = !{!"_ZTS20ImGuiContextHookType", !7, i64 0}
!95 = distinct !{!95, !96}
!96 = !{!"llvm.loop.mustprogress"}
!97 = !{!10, !15, i64 24}
!98 = !{!10, !25, i64 4776}
!99 = !{!10, !11, i64 4800}
!100 = !{!10, !13, i64 4784}
!101 = !{!10, !17, i64 9406}
!102 = !{!10, !13, i64 4952}
!103 = !{!10, !13, i64 10364}
!104 = !{!15, !15, i64 0}
!105 = !{!10, !15, i64 10372}
!106 = !{!10, !13, i64 10368}
!107 = !{!10, !15, i64 192}
!108 = !{!10, !11, i64 97}
!109 = !{i8 0, i8 2}
!110 = !{}
!111 = !{!10, !6, i64 56}
!112 = !{!113, !11, i64 24}
!113 = !{!"_ZTS11ImFontAtlas", !13, i64 0, !38, 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, !44, i64 88, !114, i64 104, !115, i64 120, !7, i64 136, !6, i64 1160, !13, i64 1168, !13, i64 1172, !13, i64 1176}
!114 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !13, i64 0, !13, i64 4, !6, i64 8}
!115 = !{!"_ZTS8ImVectorI12ImFontConfigE", !13, i64 0, !13, i64 4, !6, i64 8}
!116 = !{!10, !6, i64 4216}
!117 = !{!118, !11, i64 80}
!118 = !{!"_ZTS14ImGuiViewportP", !119, i64 0, !7, i64 56, !7, i64 64, !120, i64 80, !122, i64 144, !14, i64 176, !14, i64 184, !14, i64 192, !14, i64 200}
!119 = !{!"_ZTS13ImGuiViewport", !13, i64 0, !13, i64 4, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !6, i64 40, !6, i64 48}
!120 = !{!"_ZTS10ImDrawData", !11, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !121, i64 16, !14, i64 32, !14, i64 40, !14, i64 48, !6, i64 56}
!121 = !{!"_ZTS8ImVectorIP10ImDrawListE", !13, i64 0, !13, i64 4, !6, i64 8}
!122 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0, !121, i64 16}
!123 = !{!10, !11, i64 8380}
!124 = !{!10, !13, i64 8412}
!125 = !{!10, !13, i64 5084}
!126 = !{!10, !11, i64 137}
!127 = !{!10, !11, i64 260}
!128 = !{!10, !13, i64 5052}
!129 = !{!10, !13, i64 5068}
!130 = !{!10, !13, i64 5064}
!131 = !{!10, !15, i64 5072}
!132 = !{!10, !13, i64 5060}
!133 = !{!10, !15, i64 5076}
!134 = !{!10, !11, i64 5080}
!135 = !{!10, !11, i64 5081}
!136 = !{!10, !13, i64 5088}
!137 = !{!10, !13, i64 5124}
!138 = !{!10, !13, i64 9908}
!139 = !{!10, !15, i64 5092}
!140 = !{!10, !15, i64 5152}
!141 = !{!10, !11, i64 5101}
!142 = !{!10, !11, i64 5096}
!143 = !{!10, !13, i64 9248}
!144 = !{!10, !13, i64 7400}
!145 = !{!10, !11, i64 7404}
!146 = !{!10, !13, i64 5132}
!147 = !{!10, !13, i64 5128}
!148 = !{!10, !11, i64 5137}
!149 = !{!10, !13, i64 8944}
!150 = !{!10, !15, i64 8972}
!151 = !{!10, !15, i64 4192}
!152 = !{!10, !13, i64 8960}
!153 = !{!10, !6, i64 4976}
!154 = !{!155, !13, i64 16}
!155 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !6, i64 32, !14, i64 40, !14, i64 48, !14, i64 56, !14, i64 64, !14, i64 72, !14, i64 80, !14, i64 88, !15, i64 96, !15, i64 100, !15, i64 104, !15, i64 108, !15, i64 112, !15, i64 116, !15, i64 120, !15, i64 124, !15, i64 128, !15, i64 132, !13, i64 136, !13, i64 140, !13, i64 144, !13, i64 148, !14, i64 152, !14, i64 160, !14, i64 168, !14, i64 176, !14, i64 184, !14, i64 192, !11, i64 200, !11, i64 201, !11, i64 202, !11, i64 203, !11, i64 204, !11, i64 205, !11, i64 206, !11, i64 207, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !7, i64 214, !7, i64 215, !17, i64 216, !17, i64 218, !17, i64 220, !17, i64 222, !17, i64 224, !7, i64 226, !7, i64 227, !11, i64 228, !21, i64 232, !7, i64 236, !7, i64 237, !7, i64 238, !7, i64 239, !13, i64 240, !13, i64 241, !13, i64 242, !14, i64 244, !14, i64 252, !76, i64 264, !156, i64 280, !40, i64 512, !40, i64 528, !40, i64 544, !40, i64 560, !40, i64 576, !40, i64 592, !40, i64 608, !159, i64 624, !159, i64 628, !13, i64 632, !15, i64 636, !15, i64 640, !29, i64 648, !160, i64 664, !15, i64 680, !13, i64 684, !6, i64 688, !161, i64 696, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !7, i64 976, !7, i64 984, !7, i64 1016, !13, i64 1032, !13, i64 1036, !13, i64 1040, !11, i64 1044}
!156 = !{!"_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, !157, i64 68, !157, i64 72, !157, i64 76, !14, i64 80, !51, i64 88, !17, i64 92, !17, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !14, i64 100, !158, i64 108, !13, i64 136, !13, i64 140, !27, i64 144, !6, i64 160, !6, i64 168, !13, i64 176, !13, i64 180, !13, i64 184, !13, i64 188, !15, i64 192, !15, i64 196, !60, i64 200, !60, i64 216}
!157 = !{!"_ZTS6ImVec1", !15, i64 0}
!158 = !{!"_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}
!159 = !{!"_ZTS8ImVec2ih", !17, i64 0, !17, i64 2}
!160 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !13, i64 0, !13, i64 4, !6, i64 8}
!161 = !{!"_ZTS10ImDrawList", !162, i64 0, !18, i64 16, !163, i64 32, !13, i64 48, !13, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !24, i64 80, !164, i64 96, !165, i64 128, !166, i64 152, !167, i64 168, !55, i64 184, !15, i64 200, !6, i64 208}
!162 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !13, i64 0, !13, i64 4, !6, i64 8}
!163 = !{!"_ZTS8ImVectorI10ImDrawVertE", !13, i64 0, !13, i64 4, !6, i64 8}
!164 = !{!"_ZTS15ImDrawCmdHeader", !23, i64 0, !38, i64 16, !13, i64 24}
!165 = !{!"_ZTS18ImDrawListSplitter", !13, i64 0, !13, i64 4, !61, i64 8}
!166 = !{!"_ZTS8ImVectorI6ImVec4E", !13, i64 0, !13, i64 4, !6, i64 8}
!167 = !{!"_ZTS8ImVectorIyE", !13, i64 0, !13, i64 4, !6, i64 8}
!168 = !{!10, !13, i64 8964}
!169 = !{!10, !13, i64 8948}
!170 = !{!10, !15, i64 8952}
!171 = !{!10, !15, i64 8956}
!172 = !{!10, !13, i64 8508}
!173 = !{!10, !13, i64 8512}
!174 = !{!10, !15, i64 8504}
!175 = !{!10, !11, i64 8381}
!176 = !{!10, !11, i64 8382}
!177 = !{!10, !13, i64 8520}
!178 = !{!10, !6, i64 9408}
!179 = !{!10, !13, i64 4888}
!180 = !{!10, !13, i64 4872}
!181 = !{!10, !11, i64 4802}
!182 = !{!10, !15, i64 108}
!183 = !{!155, !11, i64 202}
!184 = !{!155, !11, i64 203}
!185 = !{!155, !11, i64 204}
!186 = !{!155, !17, i64 216}
!187 = !{!155, !17, i64 218}
!188 = !{!155, !11, i64 1044}
!189 = !{!155, !15, i64 636}
!190 = !{!10, !6, i64 8320}
!191 = !{!10, !15, i64 8348}
!192 = !{!10, !15, i64 8376}
!193 = !{!10, !13, i64 8968}
!194 = !{!10, !13, i64 10384}
!195 = !{!10, !13, i64 10380}
!196 = !{!10, !13, i64 10376}
!197 = !{i64 0, i64 1, !198, i64 4, i64 4, !104, i64 8, i64 4, !104, i64 12, i64 4, !104}
!198 = !{!11, !11, i64 0}
!199 = !{!10, !11, i64 9552}
!200 = !{!10, !13, i64 8656}
!201 = distinct !{!201, !96}
!202 = !{!203, !15, i64 4}
!203 = !{!"_ZTS18ImGuiTableTempData", !13, i64 0, !15, i64 4, !15, i64 8, !204, i64 16, !14, i64 32, !165, i64 40, !40, i64 64, !40, i64 80, !14, i64 96, !14, i64 104, !14, i64 112, !157, i64 120, !15, i64 124, !13, i64 128}
!204 = !{!"_ZTS8ImVectorI20ImGuiTableHeaderDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!205 = !{!10, !6, i64 7848}
!206 = !{!10, !13, i64 7416}
!207 = !{!10, !7, i64 9961}
!208 = !{!10, !13, i64 7420}
!209 = !{!10, !11, i64 9962}
!210 = !{!10, !7, i64 9960}
!211 = !{!10, !13, i64 9956}
!212 = !{!10, !11, i64 4801}
!213 = !{!10, !6, i64 4968}
!214 = !{!155, !11, i64 211}
!215 = !{!10, !13, i64 9868}
!216 = !{!10, !11, i64 139}
!217 = !{!10, !7, i64 9968}


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

%struct.ImVec2 = type { float, float }

@GImGui = external dso_local local_unnamed_addr global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [111 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv = external hidden unnamed_addr constant [23 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.120 = 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 uwtable
declare dso_local void @_ZN5ImGui8DebugLogEPKcz(ptr noundef, ...) local_unnamed_addr #4

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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 #4 {
  %1 = alloca i32, align 4
  %2 = alloca %struct.ImVec2, align 4
  %3 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %.not = icmp eq ptr %3, null
  br i1 %.not, label %4, label %5

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

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

._crit_edge:                                      ; preds = %64, %5
  tail call void @_ZN5ImGui16CallContextHooksEP12ImGuiContext20ImGuiContextHookType(ptr noundef %3, i32 noundef 0)
  tail call void @_ZN5ImGuiL30ErrorCheckNewFrameSanityChecksEv()
  tail call void @_ZN5ImGuiL14UpdateSettingsEv()
  %9 = getelementptr inbounds i8, ptr %3, i64 24
  %10 = load float, ptr %9, align 8, !tbaa !91
  %11 = fpext float %10 to double
  %12 = getelementptr inbounds i8, ptr %3, i64 4776
  %13 = load double, ptr %12, align 8, !tbaa !92
  %14 = fadd double %13, %11
  store double %14, ptr %12, align 8, !tbaa !92
  %15 = getelementptr inbounds i8, ptr %3, i64 4800
  store i8 1, ptr %15, align 8, !tbaa !93
  %16 = getelementptr inbounds i8, ptr %3, i64 4784
  %17 = load i32, ptr %16, align 8, !tbaa !94
  %18 = add nsw i32 %17, 1
  store i32 %18, ptr %16, align 8, !tbaa !94
  %19 = getelementptr inbounds i8, ptr %3, i64 9406
  store i16 0, ptr %19, align 2, !tbaa !95
  %20 = getelementptr inbounds i8, ptr %3, i64 4952
  store i32 0, ptr %20, align 8, !tbaa !96
  %21 = getelementptr inbounds i8, ptr %3, i64 9432
  tail call void @_ZN8ImVectorIjE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %21, i32 noundef 0)
  %22 = load float, ptr %9, align 8, !tbaa !91
  %23 = getelementptr inbounds i8, ptr %3, i64 10124
  %24 = getelementptr inbounds i8, ptr %3, i64 10364
  %25 = load i32, ptr %24, align 4, !tbaa !97
  %26 = sext i32 %25 to i64
  %27 = getelementptr inbounds [60 x float], ptr %23, i64 0, i64 %26
  %28 = load float, ptr %27, align 4, !tbaa !98
  %29 = fsub float %22, %28
  %30 = getelementptr inbounds i8, ptr %3, i64 10372
  %31 = load float, ptr %30, align 4, !tbaa !99
  %32 = fadd float %31, %29
  store float %32, ptr %30, align 4, !tbaa !99
  store float %22, ptr %27, align 4, !tbaa !98
  %33 = add nsw i32 %25, 1
  %34 = srem i32 %33, 60
  store i32 %34, ptr %24, align 4, !tbaa !97
  %35 = getelementptr inbounds i8, ptr %3, i64 10368
  %36 = load i32, ptr %35, align 8, !tbaa !100
  %37 = add nsw i32 %36, 1
  %38 = tail call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %37, i32 noundef 60)
  store i32 %38, ptr %35, align 8, !tbaa !100
  %39 = load float, ptr %30, align 4, !tbaa !99
  %40 = fcmp ogt float %39, 0.000000e+00
  %41 = sitofp i32 %38 to float
  %42 = fdiv float %39, %41
  %43 = fdiv float 1.000000e+00, %42
  %44 = select i1 %40, float %43, float 0x47EFFFFFE0000000
  %45 = getelementptr inbounds i8, ptr %3, i64 192
  store float %44, ptr %45, align 8, !tbaa !101
  %46 = getelementptr inbounds i8, ptr %3, i64 4848
  tail call void @_ZN8ImVectorI15ImGuiInputEventE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %46, i32 noundef 0)
  %47 = getelementptr inbounds i8, ptr %3, i64 97
  %48 = load i8, ptr %47, align 1, !tbaa !102, !range !103, !noundef !104
  %49 = trunc nuw i8 %48 to i1
  tail call void @_ZN5ImGui17UpdateInputEventsEb(i1 noundef zeroext %49)
  tail call void @_ZN5ImGuiL23UpdateViewportsNewFrameEv()
  %50 = getelementptr inbounds i8, ptr %3, i64 56
  %51 = load ptr, ptr %50, align 8, !tbaa !105
  %52 = getelementptr inbounds i8, ptr %51, i64 24
  store i8 1, ptr %52, align 8, !tbaa !106
  tail call void @_ZL23SetupDrawListSharedDatav()
  %53 = tail call noundef ptr @_ZN5ImGui14GetDefaultFontEv()
  tail call void @_ZN5ImGui14SetCurrentFontEP6ImFont(ptr noundef %53)
  %54 = getelementptr inbounds i8, ptr %3, i64 4216
  %55 = load ptr, ptr %54, align 8, !tbaa !110
  %56 = tail call noundef zeroext i1 @_ZNK6ImFont8IsLoadedEv(ptr noundef nonnull align 8 dereferenceable(118) %55)
  br i1 %56, label %67, label %66

.lr.ph:                                           ; preds = %5, %64
  %.0280.in = phi i32 [ %.0280, %64 ], [ %7, %5 ]
  %.0280 = add nsw i32 %.0280.in, -1
  %57 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZN8ImVectorI16ImGuiContextHookEixEi(ptr noundef nonnull align 8 dereferenceable(16) %6, i32 noundef %.0280)
  %58 = getelementptr inbounds i8, ptr %57, i64 4
  %59 = load i32, ptr %58, align 4, !tbaa !111
  %60 = icmp eq i32 %59, 7
  br i1 %60, label %61, label %64

61:                                               ; preds = %.lr.ph
  %62 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZN8ImVectorI16ImGuiContextHookEixEi(ptr noundef nonnull align 8 dereferenceable(16) %6, i32 noundef %.0280)
  %63 = tail call noundef ptr @_ZN8ImVectorI16ImGuiContextHookE5eraseEPKS0_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %62)
  br label %64

64:                                               ; preds = %.lr.ph, %61
  %65 = icmp ugt i32 %.0280.in, 1
  br i1 %65, label %.lr.ph, label %._crit_edge, !llvm.loop !114

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

67:                                               ; preds = %._crit_edge
  %68 = getelementptr inbounds i8, ptr %3, i64 7824
  %69 = tail call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %68)
  %70 = tail call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %68)
  %.not246281 = icmp eq ptr %69, %70
  br i1 %.not246281, label %._crit_edge285, label %.lr.ph284

._crit_edge285:                                   ; preds = %.lr.ph284, %67
  %71 = getelementptr inbounds i8, ptr %3, i64 8380
  %72 = load i8, ptr %71, align 4, !tbaa !116, !range !103, !noundef !104
  %73 = trunc nuw i8 %72 to i1
  br i1 %73, label %77, label %84

.lr.ph284:                                        ; preds = %67, %.lr.ph284
  %.0229282 = phi ptr [ %76, %.lr.ph284 ], [ %69, %67 ]
  %74 = load ptr, ptr %.0229282, align 8, !tbaa !5
  %75 = getelementptr inbounds i8, ptr %74, i64 80
  store i8 0, ptr %75, align 8, !tbaa !117
  %76 = getelementptr inbounds i8, ptr %.0229282, i64 8
  %.not246 = icmp eq ptr %76, %70
  br i1 %.not246, label %._crit_edge285, label %.lr.ph284

77:                                               ; preds = %._crit_edge285
  %78 = getelementptr inbounds i8, ptr %3, i64 8412
  %79 = load i32, ptr %78, align 4, !tbaa !123
  %80 = getelementptr inbounds i8, ptr %3, i64 5084
  %81 = load i32, ptr %80, align 4, !tbaa !124
  %82 = icmp eq i32 %79, %81
  br i1 %82, label %83, label %84

83:                                               ; preds = %77
  tail call void @_ZN5ImGui11KeepAliveIDEj(i32 noundef %79)
  br label %84

84:                                               ; preds = %83, %77, %._crit_edge285
  %85 = getelementptr inbounds i8, ptr %3, i64 137
  %86 = load i8, ptr %85, align 1, !tbaa !125, !range !103, !noundef !104
  %87 = trunc nuw i8 %86 to i1
  br i1 %87, label %88, label %.sink.split

88:                                               ; preds = %84
  %89 = getelementptr inbounds i8, ptr %3, i64 260
  %90 = load i8, ptr %89, align 4, !tbaa !126, !range !103, !noundef !104
  %91 = trunc nuw i8 %90 to i1
  br i1 %91, label %.thread, label %.thread270

.thread270:                                       ; preds = %88
  %92 = getelementptr inbounds i8, ptr %3, i64 5052
  store i32 0, ptr %92, align 4, !tbaa !127
  br label %.thread

.thread:                                          ; preds = %88, %.thread270
  %93 = getelementptr inbounds i8, ptr %3, i64 5068
  %94 = load i32, ptr %93, align 4, !tbaa !128
  %95 = icmp sgt i32 %94, 1
  br i1 %95, label %96, label %100

96:                                               ; preds = %.thread
  %97 = getelementptr inbounds i8, ptr %3, i64 5064
  %98 = load i32, ptr %97, align 8, !tbaa !129
  br label %.sink.split

.sink.split:                                      ; preds = %84, %96
  %.sink = phi i32 [ %98, %96 ], [ 0, %84 ]
  %99 = getelementptr inbounds i8, ptr %3, i64 5052
  store i32 %.sink, ptr %99, align 4, !tbaa !127
  br label %100

100:                                              ; preds = %.sink.split, %.thread
  %101 = getelementptr inbounds i8, ptr %3, i64 5064
  %102 = load i32, ptr %101, align 8, !tbaa !129
  %.not247 = icmp eq i32 %102, 0
  br i1 %.not247, label %114, label %103

103:                                              ; preds = %100
  %104 = getelementptr inbounds i8, ptr %3, i64 5060
  %105 = load i32, ptr %104, align 4, !tbaa !130
  %.not249 = icmp eq i32 %105, 0
  br i1 %.not249, label %.thread306, label %107

.thread306:                                       ; preds = %103
  %106 = getelementptr inbounds i8, ptr %3, i64 5060
  br label %..thread272_crit_edge

107:                                              ; preds = %103
  %108 = getelementptr inbounds i8, ptr %3, i64 5084
  %109 = load i32, ptr %108, align 4, !tbaa !124
  %110 = icmp eq i32 %109, %105
  br i1 %110, label %.thread310, label %.thread308

.thread310:                                       ; preds = %107
  %111 = getelementptr inbounds i8, ptr %3, i64 5076
  store float 0.000000e+00, ptr %111, align 4, !tbaa !131
  %112 = getelementptr inbounds i8, ptr %3, i64 5060
  br label %118

.thread308:                                       ; preds = %107
  %113 = getelementptr inbounds i8, ptr %3, i64 5060
  br label %118

114:                                              ; preds = %100
  %115 = getelementptr inbounds i8, ptr %3, i64 5072
  %.phi.trans.insert.phi.trans.insert = getelementptr inbounds i8, ptr %3, i64 5060
  %.pre.pre = load i32, ptr %.phi.trans.insert.phi.trans.insert, align 4, !tbaa !130
  store <2 x float> zeroinitializer, ptr %115, align 8, !tbaa !98
  %116 = getelementptr inbounds i8, ptr %3, i64 5060
  %.not250 = icmp eq i32 %.pre.pre, 0
  br i1 %.not250, label %..thread272_crit_edge, label %118

..thread272_crit_edge:                            ; preds = %.thread306, %114
  %117 = phi ptr [ %106, %.thread306 ], [ %116, %114 ]
  %.phi.trans.insert300 = getelementptr inbounds i8, ptr %3, i64 5084
  %.pre301 = load i32, ptr %.phi.trans.insert300, align 4, !tbaa !124
  br label %.thread272

118:                                              ; preds = %.thread310, %.thread308, %114
  %119 = phi ptr [ %113, %.thread308 ], [ %116, %114 ], [ %112, %.thread310 ]
  %120 = phi i32 [ %105, %.thread308 ], [ %.pre.pre, %114 ], [ %105, %.thread310 ]
  %121 = load float, ptr %9, align 8, !tbaa !91
  %122 = getelementptr inbounds i8, ptr %3, i64 5072
  %123 = load float, ptr %122, align 8, !tbaa !132
  %124 = fadd float %121, %123
  store float %124, ptr %122, align 8, !tbaa !132
  %125 = getelementptr inbounds i8, ptr %3, i64 5084
  %126 = load i32, ptr %125, align 4, !tbaa !124
  %.not252 = icmp eq i32 %126, %120
  br i1 %.not252, label %.thread272.thread, label %130

.thread272.thread:                                ; preds = %118
  store i32 %120, ptr %101, align 8, !tbaa !129
  %127 = getelementptr inbounds i8, ptr %3, i64 5068
  store i32 0, ptr %127, align 4, !tbaa !128
  store i32 0, ptr %119, align 4, !tbaa !130
  %128 = getelementptr inbounds i8, ptr %3, i64 5080
  store i8 0, ptr %128, align 8, !tbaa !133
  %129 = getelementptr inbounds i8, ptr %3, i64 5081
  store i8 0, ptr %129, align 1, !tbaa !134
  br label %140

130:                                              ; preds = %118
  %131 = getelementptr inbounds i8, ptr %3, i64 5076
  %132 = load float, ptr %131, align 4, !tbaa !131
  %133 = fadd float %121, %132
  store float %133, ptr %131, align 4, !tbaa !131
  br label %.thread272

.thread272:                                       ; preds = %..thread272_crit_edge, %130
  %134 = phi ptr [ %117, %..thread272_crit_edge ], [ %119, %130 ]
  %135 = phi i32 [ 0, %..thread272_crit_edge ], [ %120, %130 ]
  %136 = phi i32 [ %.pre301, %..thread272_crit_edge ], [ %126, %130 ]
  store i32 %135, ptr %101, align 8, !tbaa !129
  %137 = getelementptr inbounds i8, ptr %3, i64 5068
  store i32 0, ptr %137, align 4, !tbaa !128
  store i32 0, ptr %134, align 4, !tbaa !130
  %138 = getelementptr inbounds i8, ptr %3, i64 5080
  store i8 0, ptr %138, align 8, !tbaa !133
  %139 = getelementptr inbounds i8, ptr %3, i64 5081
  store i8 0, ptr %139, align 1, !tbaa !134
  %.not253 = icmp eq i32 %136, 0
  br i1 %.not253, label %.thread272..thread273_crit_edge, label %140

.thread272..thread273_crit_edge:                  ; preds = %.thread272
  %.pre303 = load float, ptr %9, align 8, !tbaa !91
  br label %.thread273

140:                                              ; preds = %.thread272.thread, %.thread272
  %141 = phi i32 [ %120, %.thread272.thread ], [ %136, %.thread272 ]
  %142 = getelementptr inbounds i8, ptr %3, i64 5084
  %143 = getelementptr inbounds i8, ptr %3, i64 5088
  %144 = load i32, ptr %143, align 8, !tbaa !135
  %.not254 = icmp eq i32 %144, %141
  br i1 %.not254, label %.thread314, label %145

145:                                              ; preds = %140
  %146 = getelementptr inbounds i8, ptr %3, i64 5124
  %147 = load i32, ptr %146, align 4, !tbaa !136
  %148 = icmp eq i32 %147, %141
  br i1 %148, label %149, label %.thread314

149:                                              ; preds = %145
  %150 = getelementptr inbounds i8, ptr %3, i64 9908
  %151 = load i32, ptr %150, align 4, !tbaa !137
  %152 = and i32 %151, 2
  %.not255 = icmp eq i32 %152, 0
  br i1 %.not255, label %154, label %153

153:                                              ; preds = %149
  tail call void (ptr, ...) @_ZN5ImGui8DebugLogEPKcz(ptr noundef nonnull @.str.116)
  br label %154

.thread314:                                       ; preds = %145, %140
  %.pre304317 = load float, ptr %9, align 8, !tbaa !91
  br label %155

154:                                              ; preds = %149, %153
  tail call void @_ZN5ImGui13ClearActiveIDEv()
  %.pr.pre = load i32, ptr %142, align 4, !tbaa !124
  %.not256 = icmp eq i32 %.pr.pre, 0
  %.pre304 = load float, ptr %9, align 8, !tbaa !91
  br i1 %.not256, label %.thread273, label %155

155:                                              ; preds = %.thread314, %154
  %.pre304319 = phi float [ %.pre304317, %.thread314 ], [ %.pre304, %154 ]
  %.pr318 = phi i32 [ %141, %.thread314 ], [ %.pr.pre, %154 ]
  %156 = getelementptr inbounds i8, ptr %3, i64 5092
  %157 = load float, ptr %156, align 4, !tbaa !138
  %158 = fadd float %.pre304319, %157
  store float %158, ptr %156, align 4, !tbaa !138
  br label %.thread273

.thread273:                                       ; preds = %.thread272..thread273_crit_edge, %155, %154
  %159 = phi float [ %.pre304319, %155 ], [ %.pre304, %154 ], [ %.pre303, %.thread272..thread273_crit_edge ]
  %.not256275 = phi i1 [ false, %155 ], [ true, %154 ], [ true, %.thread272..thread273_crit_edge ]
  %160 = phi i32 [ %.pr318, %155 ], [ 0, %154 ], [ 0, %.thread272..thread273_crit_edge ]
  %161 = getelementptr inbounds i8, ptr %3, i64 5152
  %162 = load float, ptr %161, align 8, !tbaa !139
  %163 = fadd float %159, %162
  store float %163, ptr %161, align 8, !tbaa !139
  %164 = getelementptr inbounds i8, ptr %3, i64 5124
  store i32 %160, ptr %164, align 4, !tbaa !136
  %165 = getelementptr inbounds i8, ptr %3, i64 5088
  store i32 0, ptr %165, align 8, !tbaa !135
  %166 = getelementptr inbounds i8, ptr %3, i64 5101
  store i8 0, ptr %166, align 1, !tbaa !140
  %167 = getelementptr inbounds i8, ptr %3, i64 5096
  store i8 0, ptr %167, align 8, !tbaa !141
  %168 = getelementptr inbounds i8, ptr %3, i64 9248
  %169 = load i32, ptr %168, align 8, !tbaa !142
  %.not257 = icmp eq i32 %169, 0
  %.not258 = icmp eq i32 %160, %169
  %or.cond278 = or i1 %.not257, %.not258
  br i1 %or.cond278, label %171, label %170

170:                                              ; preds = %.thread273
  store i32 0, ptr %168, align 8, !tbaa !142
  br label %171

171:                                              ; preds = %170, %.thread273
  br i1 %.not256275, label %172, label %175

172:                                              ; preds = %171
  %173 = getelementptr inbounds i8, ptr %3, i64 7400
  store i32 0, ptr %173, align 8, !tbaa !143
  %174 = getelementptr inbounds i8, ptr %3, i64 7404
  store i8 0, ptr %174, align 4, !tbaa !144
  br label %175

175:                                              ; preds = %172, %171
  %176 = getelementptr inbounds i8, ptr %3, i64 5132
  %177 = load i32, ptr %176, align 4, !tbaa !145
  %178 = load i32, ptr %16, align 8, !tbaa !94
  %179 = icmp slt i32 %177, %178
  br i1 %179, label %180, label %182

180:                                              ; preds = %175
  %181 = getelementptr inbounds i8, ptr %3, i64 5128
  store i32 0, ptr %181, align 8, !tbaa !146
  br label %182

182:                                              ; preds = %180, %175
  %183 = getelementptr inbounds i8, ptr %3, i64 5137
  store i8 0, ptr %183, align 1, !tbaa !147
  %184 = getelementptr inbounds i8, ptr %3, i64 8944
  %185 = load i32, ptr %184, align 8, !tbaa !148
  %.not259 = icmp eq i32 %185, 0
  br i1 %.not259, label %.sink.split321, label %186

186:                                              ; preds = %182
  %187 = getelementptr inbounds i8, ptr %3, i64 8972
  %188 = load float, ptr %187, align 4, !tbaa !149
  %189 = getelementptr inbounds i8, ptr %3, i64 4192
  %190 = load float, ptr %189, align 8, !tbaa !150
  %191 = fcmp ult float %188, %190
  br i1 %191, label %193, label %.sink.split321

.sink.split321:                                   ; preds = %182, %186
  %.sink322 = phi i32 [ %185, %186 ], [ 0, %182 ]
  %192 = getelementptr inbounds i8, ptr %3, i64 8960
  store i32 %.sink322, ptr %192, align 8, !tbaa !151
  br label %193

193:                                              ; preds = %.sink.split321, %186
  %194 = getelementptr inbounds i8, ptr %3, i64 4976
  %195 = load ptr, ptr %194, align 8, !tbaa !152
  %.not260 = icmp eq ptr %195, null
  br i1 %.not260, label %.sink.split324, label %196

196:                                              ; preds = %193
  %197 = getelementptr inbounds i8, ptr %3, i64 8972
  %198 = load float, ptr %197, align 4, !tbaa !149
  %199 = getelementptr inbounds i8, ptr %3, i64 4192
  %200 = load float, ptr %199, align 8, !tbaa !150
  %201 = fcmp ult float %198, %200
  br i1 %201, label %206, label %202

202:                                              ; preds = %196
  %203 = getelementptr inbounds i8, ptr %195, i64 16
  %204 = load i32, ptr %203, align 8, !tbaa !153
  br label %.sink.split324

.sink.split324:                                   ; preds = %193, %202
  %.sink325 = phi i32 [ %204, %202 ], [ 0, %193 ]
  %205 = getelementptr inbounds i8, ptr %3, i64 8964
  store i32 %.sink325, ptr %205, align 4, !tbaa !167
  br label %206

206:                                              ; preds = %.sink.split324, %196
  %207 = getelementptr inbounds i8, ptr %3, i64 8948
  store i32 %185, ptr %207, align 4, !tbaa !168
  %208 = getelementptr inbounds i8, ptr %3, i64 8952
  %209 = load float, ptr %208, align 8, !tbaa !169
  br i1 %.not259, label %213, label %210

210:                                              ; preds = %206
  %211 = fadd float %159, %209
  store float %211, ptr %208, align 8, !tbaa !169
  %212 = getelementptr inbounds i8, ptr %3, i64 8956
  store float 0.000000e+00, ptr %212, align 4, !tbaa !170
  store i32 0, ptr %184, align 8, !tbaa !148
  br label %223

213:                                              ; preds = %206
  %214 = fcmp ogt float %209, 0.000000e+00
  br i1 %214, label %215, label %223

215:                                              ; preds = %213
  %216 = getelementptr inbounds i8, ptr %3, i64 8956
  %217 = load float, ptr %216, align 4, !tbaa !170
  %218 = fadd float %159, %217
  store float %218, ptr %216, align 4, !tbaa !170
  %219 = fmul float %159, 2.000000e+00
  %220 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 2.500000e-01, float noundef %219)
  %221 = fcmp ult float %218, %220
  br i1 %221, label %223, label %222

222:                                              ; preds = %215
  store <2 x float> zeroinitializer, ptr %208, align 8, !tbaa !98
  br label %223

223:                                              ; preds = %213, %222, %215, %210
  %224 = getelementptr inbounds i8, ptr %3, i64 8508
  %225 = load i32, ptr %224, align 4, !tbaa !171
  %226 = getelementptr inbounds i8, ptr %3, i64 8512
  store i32 %225, ptr %226, align 8, !tbaa !172
  store i32 0, ptr %224, align 4, !tbaa !171
  %227 = getelementptr inbounds i8, ptr %3, i64 8504
  store float 0x47EFFFFFE0000000, ptr %227, align 8, !tbaa !173
  %228 = getelementptr inbounds i8, ptr %3, i64 8381
  store i8 0, ptr %228, align 1, !tbaa !174
  %229 = getelementptr inbounds i8, ptr %3, i64 8382
  store i8 0, ptr %229, align 2, !tbaa !175
  %230 = getelementptr inbounds i8, ptr %3, i64 8520
  store i32 0, ptr %230, align 8, !tbaa !176
  %231 = getelementptr inbounds i8, ptr %3, i64 9408
  store ptr null, ptr %231, align 8, !tbaa !177
  tail call void @_ZN5ImGuiL20UpdateKeyboardInputsEv()
  tail call void @_ZN5ImGuiL9NavUpdateEv()
  tail call void @_ZN5ImGuiL17UpdateMouseInputsEv()
  %232 = getelementptr inbounds i8, ptr %3, i64 4888
  %233 = load i32, ptr %232, align 8, !tbaa !178
  %234 = getelementptr inbounds i8, ptr %3, i64 4872
  %235 = load i32, ptr %234, align 8, !tbaa !179
  %.not262 = icmp sgt i32 %233, %235
  br i1 %.not262, label %236, label %237

236:                                              ; preds = %223
  tail call void @__assert_fail(ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.3, i32 noundef 5269, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

237:                                              ; preds = %223
  %238 = getelementptr inbounds i8, ptr %3, i64 4802
  %239 = load i8, ptr %238, align 2, !tbaa !180, !range !103, !noundef !104
  %240 = trunc nuw i8 %239 to i1
  br i1 %240, label %249, label %241

241:                                              ; preds = %237
  %242 = getelementptr inbounds i8, ptr %3, i64 108
  %243 = load float, ptr %242, align 4, !tbaa !181
  %244 = fcmp olt float %243, 0.000000e+00
  br i1 %244, label %249, label %245

245:                                              ; preds = %241
  %246 = load double, ptr %12, align 8, !tbaa !92
  %247 = fptrunc double %246 to float
  %248 = fsub float %247, %243
  br label %249

249:                                              ; preds = %237, %241, %245
  %250 = phi float [ %248, %245 ], [ 0x47EFFFFFE0000000, %241 ], [ 0x47EFFFFFE0000000, %237 ]
  %251 = tail call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %234)
  %252 = tail call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %234)
  %.not263286 = icmp eq ptr %251, %252
  br i1 %.not263286, label %._crit_edge290, label %.lr.ph289

._crit_edge290:                                   ; preds = %272, %249
  tail call void @_ZN5ImGui34UpdateHoveredWindowAndCaptureFlagsEv()
  tail call void @_ZN5ImGui31UpdateMouseMovingWindowNewFrameEv()
  %253 = tail call noundef ptr @_ZN5ImGui20GetTopMostPopupModalEv()
  %.not264 = icmp eq ptr %253, null
  br i1 %.not264, label %274, label %281

.lr.ph289:                                        ; preds = %249, %272
  %.0231287 = phi ptr [ %273, %272 ], [ %251, %249 ]
  %254 = load ptr, ptr %.0231287, align 8, !tbaa !5
  %255 = getelementptr inbounds i8, ptr %254, i64 202
  %256 = load i8, ptr %255, align 2, !tbaa !182, !range !103, !noundef !104
  %257 = getelementptr inbounds i8, ptr %254, i64 203
  store i8 %256, ptr %257, align 1, !tbaa !183
  store i8 0, ptr %255, align 2, !tbaa !182
  %258 = getelementptr inbounds i8, ptr %254, i64 204
  store i8 0, ptr %258, align 4, !tbaa !184
  %259 = getelementptr inbounds i8, ptr %254, i64 216
  %260 = load i16, ptr %259, align 8, !tbaa !185
  %261 = getelementptr inbounds i8, ptr %254, i64 218
  store i16 %260, ptr %261, align 2, !tbaa !186
  store i16 0, ptr %259, align 8, !tbaa !185
  %262 = trunc nuw i8 %256 to i1
  br i1 %262, label %272, label %263

263:                                              ; preds = %.lr.ph289
  %264 = getelementptr inbounds i8, ptr %254, i64 1044
  %265 = load i8, ptr %264, align 4, !tbaa !187, !range !103, !noundef !104
  %266 = trunc nuw i8 %265 to i1
  br i1 %266, label %272, label %267

267:                                              ; preds = %263
  %268 = getelementptr inbounds i8, ptr %254, i64 636
  %269 = load float, ptr %268, align 4, !tbaa !188
  %270 = fcmp olt float %269, %250
  br i1 %270, label %271, label %272

271:                                              ; preds = %267
  tail call void @_ZN5ImGui31GcCompactTransientWindowBuffersEP11ImGuiWindow(ptr noundef nonnull %254)
  br label %272

272:                                              ; preds = %271, %267, %263, %.lr.ph289
  %273 = getelementptr inbounds i8, ptr %.0231287, i64 8
  %.not263 = icmp eq ptr %273, %252
  br i1 %.not263, label %._crit_edge290, label %.lr.ph289

274:                                              ; preds = %._crit_edge290
  %275 = getelementptr inbounds i8, ptr %3, i64 8320
  %276 = load ptr, ptr %275, align 8, !tbaa !189
  %.not265 = icmp eq ptr %276, null
  br i1 %.not265, label %287, label %277

277:                                              ; preds = %274
  %278 = getelementptr inbounds i8, ptr %3, i64 8348
  %279 = load float, ptr %278, align 4, !tbaa !190
  %280 = fcmp ogt float %279, 0.000000e+00
  br i1 %280, label %281, label %287

281:                                              ; preds = %277, %._crit_edge290
  %282 = getelementptr inbounds i8, ptr %3, i64 8376
  %283 = load float, ptr %282, align 8, !tbaa !191
  %284 = load float, ptr %9, align 8, !tbaa !91
  %285 = tail call float @llvm.fmuladd.f32(float %284, float 6.000000e+00, float %283)
  %286 = tail call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %285, float noundef 1.000000e+00)
  store float %286, ptr %282, align 8, !tbaa !191
  br label %294

287:                                              ; preds = %277, %274
  %288 = getelementptr inbounds i8, ptr %3, i64 8376
  %289 = load float, ptr %288, align 8, !tbaa !191
  %290 = load float, ptr %9, align 8, !tbaa !91
  %291 = fneg float %290
  %292 = tail call float @llvm.fmuladd.f32(float %291, float 1.000000e+01, float %289)
  %293 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %292, float noundef 0.000000e+00)
  store float %293, ptr %288, align 8, !tbaa !191
  br label %294

294:                                              ; preds = %287, %281
  %295 = getelementptr inbounds i8, ptr %3, i64 8968
  store i32 0, ptr %295, align 8, !tbaa !192
  %296 = getelementptr inbounds i8, ptr %3, i64 10384
  store i32 -1, ptr %296, align 8, !tbaa !193
  %297 = getelementptr inbounds i8, ptr %3, i64 10380
  store i32 -1, ptr %297, align 4, !tbaa !194
  %298 = getelementptr inbounds i8, ptr %3, i64 10376
  store i32 -1, ptr %298, align 8, !tbaa !195
  %299 = getelementptr inbounds i8, ptr %3, i64 9552
  %300 = getelementptr inbounds i8, ptr %3, i64 9568
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %300, ptr noundef nonnull align 8 dereferenceable(16) %299, i64 16, i1 false), !tbaa.struct !196
  store i8 0, ptr %299, align 8, !tbaa !198
  tail call void @_ZN5ImGuiL16UpdateMouseWheelEv()
  %301 = getelementptr inbounds i8, ptr %3, i64 8656
  %302 = load i32, ptr %301, align 8, !tbaa !199
  %303 = icmp sgt i32 %302, 0
  br i1 %303, label %.lr.ph293, label %._crit_edge294

.lr.ph293:                                        ; preds = %294
  %304 = getelementptr inbounds i8, ptr %3, i64 8616
  br label %308

._crit_edge294:                                   ; preds = %318, %294
  %305 = getelementptr inbounds i8, ptr %3, i64 8600
  %306 = tail call noundef ptr @_ZN8ImVectorI18ImGuiTableTempDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %305)
  %307 = tail call noundef ptr @_ZN8ImVectorI18ImGuiTableTempDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %305)
  %.not266295 = icmp eq ptr %306, %307
  br i1 %.not266295, label %._crit_edge299, label %.lr.ph298

308:                                              ; preds = %.lr.ph293, %318
  %.0232291 = phi i32 [ 0, %.lr.ph293 ], [ %319, %318 ]
  %309 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfEixEi(ptr noundef nonnull align 8 dereferenceable(16) %301, i32 noundef %.0232291)
  %310 = load float, ptr %309, align 4, !tbaa !98
  %311 = fcmp ult float %310, 0.000000e+00
  br i1 %311, label %318, label %312

312:                                              ; preds = %308
  %313 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfEixEi(ptr noundef nonnull align 8 dereferenceable(16) %301, i32 noundef %.0232291)
  %314 = load float, ptr %313, align 4, !tbaa !98
  %315 = fcmp olt float %314, %250
  br i1 %315, label %316, label %318

316:                                              ; preds = %312
  %317 = tail call noundef ptr @_ZN6ImPoolI10ImGuiTableE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(40) %304, i32 noundef %.0232291)
  tail call void @_ZN5ImGui30TableGcCompactTransientBuffersEP10ImGuiTable(ptr noundef %317)
  br label %318

318:                                              ; preds = %308, %312, %316
  %319 = add nuw nsw i32 %.0232291, 1
  %320 = load i32, ptr %301, align 8, !tbaa !199
  %321 = icmp slt i32 %319, %320
  br i1 %321, label %308, label %._crit_edge294, !llvm.loop !200

._crit_edge299:                                   ; preds = %329, %._crit_edge294
  %322 = load i8, ptr %238, align 2, !tbaa !180, !range !103, !noundef !104
  %323 = trunc nuw i8 %322 to i1
  br i1 %323, label %331, label %332

.lr.ph298:                                        ; preds = %._crit_edge294, %329
  %.0230296 = phi ptr [ %330, %329 ], [ %306, %._crit_edge294 ]
  %324 = getelementptr inbounds i8, ptr %.0230296, i64 4
  %325 = load float, ptr %324, align 4, !tbaa !201
  %326 = fcmp oge float %325, 0.000000e+00
  %327 = fcmp olt float %325, %250
  %or.cond = select i1 %326, i1 %327, i1 false
  br i1 %or.cond, label %328, label %329

328:                                              ; preds = %.lr.ph298
  tail call void @_ZN5ImGui30TableGcCompactTransientBuffersEP18ImGuiTableTempData(ptr noundef nonnull %.0230296)
  br label %329

329:                                              ; preds = %328, %.lr.ph298
  %330 = getelementptr inbounds i8, ptr %.0230296, i64 136
  %.not266 = icmp eq ptr %330, %307
  br i1 %.not266, label %._crit_edge299, label %.lr.ph298

331:                                              ; preds = %._crit_edge299
  tail call void @_ZN5ImGui29GcCompactTransientMiscBuffersEv()
  br label %332

332:                                              ; preds = %331, %._crit_edge299
  store i8 0, ptr %238, align 2, !tbaa !180
  %333 = getelementptr inbounds i8, ptr %3, i64 7848
  %334 = load ptr, ptr %333, align 8, !tbaa !204
  %.not267 = icmp eq ptr %334, null
  br i1 %.not267, label %340, label %335

335:                                              ; preds = %332
  %336 = getelementptr inbounds i8, ptr %334, i64 203
  %337 = load i8, ptr %336, align 1, !tbaa !183, !range !103, !noundef !104
  %338 = trunc nuw i8 %337 to i1
  br i1 %338, label %340, label %339

339:                                              ; preds = %335
  tail call void @_ZN5ImGui26FocusTopMostWindowUnderOneEP11ImGuiWindowS1_P13ImGuiViewporti(ptr noundef null, ptr noundef null, ptr noundef null, i32 noundef 1)
  br label %340

340:                                              ; preds = %339, %335, %332
  %341 = getelementptr inbounds i8, ptr %3, i64 4920
  tail call void @_ZN8ImVectorI20ImGuiWindowStackDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %341, i32 noundef 0)
  %342 = getelementptr inbounds i8, ptr %3, i64 7792
  tail call void @_ZN8ImVectorI14ImGuiPopupDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %342, i32 noundef 0)
  %343 = getelementptr inbounds i8, ptr %3, i64 7744
  tail call void @_ZN8ImVectorIiE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %343, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %1) #11
  store i32 16, ptr %1, align 4, !tbaa !205
  call void @_ZN8ImVectorIiE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(16) %343, ptr noundef nonnull align 4 dereferenceable(4) %1)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1) #11
  %344 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIiE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %343)
  %345 = load i32, ptr %344, align 4, !tbaa !205
  %346 = getelementptr inbounds i8, ptr %3, i64 7416
  store i32 %345, ptr %346, align 8, !tbaa !206
  %347 = getelementptr inbounds i8, ptr %3, i64 7760
  call void @_ZN8ImVectorI14ImGuiGroupDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %347, i32 noundef 0)
  call void @_ZN5ImGuiL25UpdateDebugToolItemPickerEv()
  call void @_ZN5ImGuiL27UpdateDebugToolStackQueriesEv()
  call void @_ZN5ImGuiL30UpdateDebugToolFlashStyleColorEv()
  %348 = getelementptr inbounds i8, ptr %3, i64 9961
  %349 = load i8, ptr %348, align 1, !tbaa !207
  %.not268 = icmp eq i8 %349, 0
  br i1 %.not268, label %356, label %350

350:                                              ; preds = %340
  %351 = add i8 %349, -1
  store i8 %351, ptr %348, align 1, !tbaa !207
  %352 = icmp eq i8 %351, 0
  br i1 %352, label %353, label %356

353:                                              ; preds = %350
  %354 = getelementptr inbounds i8, ptr %3, i64 7420
  store i32 0, ptr %354, align 4, !tbaa !208
  %355 = getelementptr inbounds i8, ptr %3, i64 9962
  store i8 0, ptr %355, align 2, !tbaa !209
  br label %356

356:                                              ; preds = %353, %350, %340
  %357 = getelementptr inbounds i8, ptr %3, i64 9960
  %358 = load i8, ptr %357, align 8, !tbaa !210
  %.not269 = icmp eq i8 %358, 0
  br i1 %.not269, label %369, label %359

359:                                              ; preds = %356
  %360 = add i8 %358, -1
  store i8 %360, ptr %357, align 8, !tbaa !210
  %361 = icmp eq i8 %360, 0
  br i1 %361, label %362, label %369

362:                                              ; preds = %359
  call void (ptr, ...) @_ZN5ImGui8DebugLogEPKcz(ptr noundef nonnull @.str.118)
  %363 = getelementptr inbounds i8, ptr %3, i64 9956
  %364 = load i32, ptr %363, align 4, !tbaa !211
  %365 = xor i32 %364, -1
  %366 = getelementptr inbounds i8, ptr %3, i64 9908
  %367 = load i32, ptr %366, align 4, !tbaa !137
  %368 = and i32 %367, %365
  store i32 %368, ptr %366, align 4, !tbaa !137
  store i32 0, ptr %363, align 4, !tbaa !211
  br label %369

369:                                              ; preds = %362, %359, %356
  %370 = getelementptr inbounds i8, ptr %3, i64 4801
  store i8 1, ptr %370, align 1, !tbaa !212
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %2, float noundef 4.000000e+02, float noundef 4.000000e+02)
  call void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8) %2, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #11
  %371 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.119, ptr noundef null, i32 noundef 0)
  %372 = getelementptr inbounds i8, ptr %3, i64 4968
  %373 = load ptr, ptr %372, align 8, !tbaa !213
  %374 = getelementptr inbounds i8, ptr %373, i64 211
  %375 = load i8, ptr %374, align 1, !tbaa !214, !range !103, !noundef !104
  %376 = trunc nuw i8 %375 to i1
  br i1 %376, label %378, label %377

377:                                              ; preds = %369
  call void @__assert_fail(ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 5356, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui8NewFrameEv) #10
  unreachable

378:                                              ; preds = %369
  %379 = getelementptr inbounds i8, ptr %3, i64 9868
  store i32 0, ptr %379, align 4, !tbaa !215
  %380 = getelementptr inbounds i8, ptr %3, i64 9872
  call void @_ZN5ImGui23ErrorRecoveryStoreStateEP23ImGuiErrorRecoveryState(ptr noundef nonnull %380)
  %381 = getelementptr inbounds i8, ptr %3, i64 139
  %382 = load i8, ptr %381, align 1, !tbaa !216, !range !103, !noundef !104
  %383 = trunc nuw i8 %382 to i1
  %384 = getelementptr inbounds i8, ptr %3, i64 9968
  br i1 %383, label %385, label %396

385:                                              ; preds = %378
  %386 = load i8, ptr %384, align 8, !tbaa !217
  %387 = icmp eq i8 %386, -1
  br i1 %387, label %396, label %388

388:                                              ; preds = %385
  %389 = sext i8 %386 to i16
  %390 = load i32, ptr %16, align 8, !tbaa !94
  %391 = and i32 %390, 3
  %392 = icmp eq i32 %391, 0
  %393 = zext i1 %392 to i16
  %.lhs.trunc = add nsw i16 %393, %389
  %394 = srem i16 %.lhs.trunc, 10
  %395 = trunc nsw i16 %394 to i8
  br label %396

396:                                              ; preds = %378, %388, %385
  %.sink327 = phi i8 [ %395, %388 ], [ 0, %385 ], [ -1, %378 ]
  store i8 %.sink327, ptr %384, align 8, !tbaa !217
  call void @_ZN5ImGui16CallContextHooksEP12ImGuiContext20ImGuiContextHookType(ptr noundef nonnull %3, i32 noundef 1)
  ret void
}

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

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

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

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

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

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

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

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

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

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

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

; 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 hidden void @_ZN5ImGuiL20UpdateKeyboardInputsEv() local_unnamed_addr #4

; 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6 align 2

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

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

; 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 #6 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 ptr @_ZN8ImVectorI18ImGuiTableTempDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN8ImVectorI18ImGuiTableTempDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6 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 #4

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIiE4backEv(ptr noundef nonnull align 8 dereferenceable(16)) 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 #7 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN5ImGuiL30UpdateDebugToolFlashStyleColorEv() local_unnamed_addr #1

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

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

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

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 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 #5 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 9656}
!10 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !12, i64 8, !19, i64 2984, !20, i64 3056, !6, i64 4216, !15, i64 4224, !15, i64 4228, !15, i64 4232, !15, i64 4236, !22, i64 4240, !25, i64 4776, !13, i64 4784, !13, i64 4788, !13, i64 4792, !13, i64 4796, !11, i64 4800, !11, i64 4801, !11, i64 4802, !11, i64 4803, !6, i64 4808, !7, i64 4816, !26, i64 4832, !26, i64 4848, !16, i64 4864, !13, i64 4868, !27, i64 4872, !27, i64 4888, !27, i64 4904, !28, i64 4920, !29, i64 4936, !13, i64 4952, !14, i64 4956, !13, i64 4964, !6, i64 4968, !6, i64 4976, !6, i64 4984, !6, i64 4992, !6, i64 5000, !6, i64 5008, !14, i64 5016, !13, i64 5024, !13, i64 5028, !15, i64 5032, !14, i64 5036, !14, i64 5044, !13, i64 5052, !13, i64 5056, !13, i64 5060, !13, i64 5064, !13, i64 5068, !15, i64 5072, !15, i64 5076, !11, i64 5080, !11, i64 5081, !11, i64 5082, !13, i64 5084, !13, i64 5088, !15, i64 5092, !11, i64 5096, !11, i64 5097, !11, i64 5098, !11, i64 5099, !11, i64 5100, !11, i64 5101, !11, i64 5102, !13, i64 5103, !14, i64 5104, !6, i64 5112, !31, i64 5120, !13, i64 5124, !32, i64 5128, !33, i64 5140, !13, i64 5148, !15, i64 5152, !25, i64 5160, !25, i64 5168, !25, i64 5176, !34, i64 5184, !7, i64 5204, !35, i64 7056, !13, i64 7400, !11, i64 7404, !13, i64 7408, !13, i64 7412, !13, i64 7416, !13, i64 7420, !37, i64 7424, !39, i64 7480, !41, i64 7560, !11, i64 7672, !13, i64 7676, !42, i64 7680, !43, i64 7696, !44, i64 7712, !45, i64 7728, !46, i64 7744, !47, i64 7760, !48, i64 7776, !48, i64 7792, !49, i64 7808, !50, i64 7824, !11, i64 7840, !11, i64 7841, !11, i64 7842, !11, i64 7843, !13, i64 7844, !6, i64 7848, !13, i64 7856, !51, i64 7860, !13, i64 7864, !13, i64 7868, !13, i64 7872, !13, i64 7876, !45, i64 7880, !13, i64 7896, !15, i64 7900, !13, i64 7904, !13, i64 7908, !31, i64 7912, !38, i64 7920, !7, i64 7928, !11, i64 7929, !11, i64 7930, !11, i64 7931, !52, i64 7936, !11, i64 7992, !11, i64 7993, !11, i64 7994, !13, i64 7996, !13, i64 8000, !13, i64 8004, !21, i64 8008, !21, i64 8012, !21, i64 8016, !40, i64 8020, !40, i64 8036, !13, i64 8052, !13, i64 8056, !13, i64 8060, !52, i64 8064, !52, i64 8120, !52, i64 8176, !52, i64 8232, !13, i64 8288, !13, i64 8292, !13, i64 8296, !13, i64 8300, !11, i64 8304, !11, i64 8305, !13, i64 8308, !13, i64 8312, !6, i64 8320, !6, i64 8328, !6, i64 8336, !15, i64 8344, !15, i64 8348, !11, i64 8352, !53, i64 8356, !14, i64 8360, !14, i64 8368, !15, i64 8376, !11, i64 8380, !11, i64 8381, !11, i64 8382, !13, i64 8384, !13, i64 8388, !13, i64 8392, !54, i64 8400, !40, i64 8464, !40, i64 8480, !13, i64 8496, !13, i64 8500, !15, i64 8504, !13, i64 8508, !13, i64 8512, !13, i64 8516, !13, i64 8520, !55, i64 8528, !7, i64 8544, !13, i64 8560, !56, i64 8568, !6, i64 8584, !13, i64 8592, !13, i64 8596, !57, i64 8600, !58, i64 8616, !60, i64 8656, !61, i64 8672, !6, i64 8688, !62, i64 8696, !64, i64 8736, !65, i64 8752, !66, i64 8768, !6, i64 8872, !13, i64 8880, !67, i64 8888, !68, i64 8904, !13, i64 8944, !13, i64 8948, !15, i64 8952, !15, i64 8956, !13, i64 8960, !13, i64 8964, !13, i64 8968, !15, i64 8972, !14, i64 8976, !70, i64 8984, !72, i64 9104, !73, i64 9128, !13, i64 9248, !33, i64 9252, !13, i64 9260, !13, i64 9264, !13, i64 9268, !13, i64 9272, !13, i64 9276, !15, i64 9280, !15, i64 9284, !13, i64 9288, !23, i64 9292, !75, i64 9308, !40, i64 9356, !11, i64 9372, !17, i64 9374, !15, i64 9376, !15, i64 9380, !15, i64 9384, !11, i64 9388, !11, i64 9389, !15, i64 9392, !15, i64 9396, !15, i64 9400, !17, i64 9404, !17, i64 9406, !6, i64 9408, !71, i64 9416, !76, i64 9432, !77, i64 9448, !79, i64 9552, !79, i64 9568, !11, i64 9584, !15, i64 9588, !80, i64 9592, !81, i64 9608, !82, i64 9624, !83, i64 9640, !84, i64 9656, !13, i64 9672, !7, i64 9680, !11, i64 9760, !13, i64 9764, !6, i64 9768, !6, i64 9776, !80, i64 9784, !6, i64 9800, !6, i64 9808, !15, i64 9816, !11, i64 9820, !13, i64 9824, !13, i64 9828, !13, i64 9832, !6, i64 9840, !6, i64 9848, !14, i64 9856, !11, i64 9864, !13, i64 9868, !85, i64 9872, !6, i64 9896, !13, i64 9904, !13, i64 9908, !80, i64 9912, !86, i64 9928, !13, i64 9952, !13, i64 9956, !7, i64 9960, !7, i64 9961, !11, i64 9962, !13, i64 9964, !7, i64 9968, !11, i64 9969, !7, i64 9970, !13, i64 9972, !15, i64 9976, !23, i64 9980, !87, i64 9996, !88, i64 10024, !90, i64 10064, !7, i64 10124, !13, i64 10364, !13, i64 10368, !15, i64 10372, !13, i64 10376, !13, i64 10380, !13, i64 10384, !71, i64 10392, !7, i64 10408}
!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, !11, i64 96, !15, i64 100, !15, i64 104, !15, i64 108, !15, i64 112, !15, i64 116, !15, i64 120, !11, i64 124, !11, i64 125, !11, i64 126, !11, i64 127, !11, i64 128, !11, i64 129, !11, i64 130, !11, i64 131, !11, i64 132, !11, i64 133, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !11, i64 176, !11, i64 177, !11, i64 178, !11, i64 179, !11, i64 180, !11, i64 181, !11, i64 182, !15, i64 184, !13, i64 188, !13, i64 192, !13, i64 196, !13, i64 200, !14, i64 204, !6, i64 216, !14, i64 224, !7, i64 232, !15, i64 240, !15, i64 244, !16, i64 248, !11, i64 252, !11, i64 253, !11, i64 254, !11, i64 255, !13, i64 256, !7, i64 260, !11, i64 2724, !14, i64 2728, !7, i64 2736, !7, i64 2776, !7, i64 2816, !7, i64 2821, !7, i64 2826, !7, i64 2836, !7, i64 2846, !7, i64 2851, !7, i64 2856, !11, i64 2861, !11, i64 2862, !7, i64 2864, !7, i64 2884, !7, i64 2904, !15, i64 2924, !11, i64 2928, !11, i64 2929, !17, i64 2930, !18, i64 2936, !6, i64 2952, !6, i64 2960, !6, i64 2968}
!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, !17, i64 56, !6, i64 64}
!20 = !{!"_ZTS10ImGuiStyle", !15, i64 0, !15, i64 4, !14, i64 8, !15, i64 16, !15, i64 20, !14, i64 24, !14, i64 32, !21, 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, !15, i64 148, !15, i64 152, !15, i64 156, !14, i64 160, !21, i64 168, !14, i64 172, !14, i64 180, !15, i64 188, !14, i64 192, !14, i64 200, !14, i64 208, !14, i64 216, !15, i64 224, !11, i64 228, !11, i64 229, !11, i64 230, !15, i64 232, !15, i64 236, !7, i64 240, !15, i64 1136, !15, i64 1140, !15, i64 1144, !13, i64 1148, !13, i64 1152}
!21 = !{!"_ZTS8ImGuiDir", !7, i64 0}
!22 = !{!"_ZTS20ImDrawListSharedData", !14, i64 0, !6, i64 8, !6, i64 16, !15, i64 24, !15, i64 28, !15, i64 32, !15, i64 36, !23, i64 40, !13, i64 56, !24, i64 64, !7, i64 80, !15, i64 464, !7, i64 468}
!23 = !{!"_ZTS6ImVec4", !15, i64 0, !15, i64 4, !15, i64 8, !15, i64 12}
!24 = !{!"_ZTS8ImVectorI6ImVec2E", !13, i64 0, !13, i64 4, !6, i64 8}
!25 = !{!"double", !7, i64 0}
!26 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !13, i64 0, !13, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !13, i64 0, !13, i64 4, !6, i64 8}
!28 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!29 = !{!"_ZTS12ImGuiStorage", !30, i64 0}
!30 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !13, i64 0, !13, i64 4, !6, i64 8}
!31 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!32 = !{!"_ZTS24ImGuiDeactivatedItemData", !13, i64 0, !13, i64 4, !11, i64 8, !11, i64 9}
!33 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!34 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!35 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !36, i64 312, !36, i64 328}
!36 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!37 = !{!"_ZTS17ImGuiNextItemData", !13, i64 0, !13, i64 4, !13, i64 8, !38, i64 16, !15, i64 24, !13, i64 28, !13, i64 32, !11, i64 36, !7, i64 37, !33, i64 38, !13, i64 48}
!38 = !{!"long long", !7, i64 0}
!39 = !{!"_ZTS17ImGuiLastItemData", !13, i64 0, !13, i64 4, !13, i64 8, !40, i64 12, !40, i64 28, !40, i64 44, !40, i64 60, !13, i64 76}
!40 = !{!"_ZTS6ImRect", !14, i64 0, !14, i64 8}
!41 = !{!"_ZTS19ImGuiNextWindowData", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48, !13, i64 56, !11, i64 60, !40, i64 64, !6, i64 80, !6, i64 88, !15, i64 96, !14, i64 100, !13, i64 108}
!42 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !13, i64 0, !13, i64 4, !6, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !13, i64 0, !13, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorIP6ImFontE", !13, i64 0, !13, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorIiE", !13, i64 0, !13, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!48 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!49 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!50 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !13, i64 0, !13, i64 4, !6, i64 8}
!51 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!52 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !13, i64 8, !13, i64 12, !40, i64 16, !13, i64 32, !15, i64 36, !15, i64 40, !15, i64 44, !38, i64 48}
!53 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!54 = !{!"_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}
!55 = !{!"_ZTS8ImVectorIhE", !13, i64 0, !13, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!58 = !{!"_ZTS6ImPoolI10ImGuiTableE", !59, i64 0, !29, i64 16, !13, i64 32, !13, i64 36}
!59 = !{!"_ZTS8ImVectorI10ImGuiTableE", !13, i64 0, !13, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorIfE", !13, i64 0, !13, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !13, i64 0, !13, i64 4, !6, i64 8}
!62 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !63, i64 0, !29, i64 16, !13, i64 32, !13, i64 36}
!63 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !13, i64 0, !13, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !13, i64 0, !13, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !13, i64 0, !13, i64 4, !6, i64 8}
!66 = !{!"_ZTS19ImGuiBoxSelectState", !13, i64 0, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !11, i64 8, !13, i64 9, !14, i64 12, !14, i64 20, !14, i64 28, !6, i64 40, !11, i64 48, !40, i64 52, !40, i64 68, !40, i64 84}
!67 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!68 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !69, i64 0, !29, i64 16, !13, i64 32, !13, i64 36}
!69 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !13, i64 0, !13, i64 4, !6, i64 8}
!70 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !6, i64 32, !71, i64 40, !71, i64 56, !71, i64 72, !13, i64 88, !14, i64 92, !15, i64 100, !11, i64 104, !11, i64 105, !11, i64 106, !11, i64 107, !13, i64 108, !13, i64 112}
!71 = !{!"_ZTS8ImVectorIcE", !13, i64 0, !13, i64 4, !6, i64 8}
!72 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !13, i64 0, !71, i64 8}
!73 = !{!"_ZTS6ImFont", !60, i64 0, !15, i64 16, !15, i64 20, !18, i64 24, !74, 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}
!74 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !13, i64 0, !13, i64 4, !6, i64 8}
!75 = !{!"_ZTS21ImGuiComboPreviewData", !40, i64 0, !14, i64 16, !14, i64 24, !14, i64 32, !15, i64 40, !13, i64 44}
!76 = !{!"_ZTS8ImVectorIjE", !13, i64 0, !13, i64 4, !6, i64 8}
!77 = !{!"_ZTS22ImGuiTypingSelectState", !78, i64 0, !7, i64 24, !13, i64 88, !13, i64 92, !15, i64 96, !11, i64 100}
!78 = !{!"_ZTS24ImGuiTypingSelectRequest", !13, i64 0, !13, i64 4, !6, i64 8, !11, i64 16, !11, i64 17, !7, i64 18}
!79 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !14, i64 4, !15, i64 12}
!80 = !{!"_ZTS15ImGuiTextBuffer", !71, i64 0}
!81 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !13, i64 0, !13, i64 4, !6, i64 8}
!82 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !71, i64 0}
!83 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !71, i64 0}
!84 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !13, i64 0, !13, i64 4, !6, i64 8}
!85 = !{!"_ZTS23ImGuiErrorRecoveryState", !17, i64 0, !17, i64 2, !17, i64 4, !17, i64 6, !17, i64 8, !17, i64 10, !17, i64 12, !17, i64 14, !17, i64 16, !17, i64 18, !17, i64 20}
!86 = !{!"_ZTS14ImGuiTextIndex", !46, i64 0, !13, i64 16}
!87 = !{!"_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, !13, i64 20, !13, i64 24}
!88 = !{!"_ZTS16ImGuiIDStackTool", !13, i64 0, !13, i64 4, !13, i64 8, !89, i64 16, !11, i64 32, !15, i64 36}
!89 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !13, i64 0, !13, i64 4, !6, i64 8}
!90 = !{!"_ZTS19ImGuiDebugAllocInfo", !13, i64 0, !13, i64 4, !17, i64 8, !7, i64 12}
!91 = !{!10, !15, i64 24}
!92 = !{!10, !25, i64 4776}
!93 = !{!10, !11, i64 4800}
!94 = !{!10, !13, i64 4784}
!95 = !{!10, !17, i64 9406}
!96 = !{!10, !13, i64 4952}
!97 = !{!10, !13, i64 10364}
!98 = !{!15, !15, i64 0}
!99 = !{!10, !15, i64 10372}
!100 = !{!10, !13, i64 10368}
!101 = !{!10, !15, i64 192}
!102 = !{!10, !11, i64 97}
!103 = !{i8 0, i8 2}
!104 = !{}
!105 = !{!10, !6, i64 56}
!106 = !{!107, !11, i64 24}
!107 = !{!"_ZTS11ImFontAtlas", !13, i64 0, !38, 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, !44, i64 88, !108, i64 104, !109, i64 120, !7, i64 136, !6, i64 1160, !13, i64 1168, !13, i64 1172, !13, i64 1176}
!108 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !13, i64 0, !13, i64 4, !6, i64 8}
!109 = !{!"_ZTS8ImVectorI12ImFontConfigE", !13, i64 0, !13, i64 4, !6, i64 8}
!110 = !{!10, !6, i64 4216}
!111 = !{!112, !113, i64 4}
!112 = !{!"_ZTS16ImGuiContextHook", !13, i64 0, !113, i64 4, !13, i64 8, !6, i64 16, !6, i64 24}
!113 = !{!"_ZTS20ImGuiContextHookType", !7, i64 0}
!114 = distinct !{!114, !115}
!115 = !{!"llvm.loop.mustprogress"}
!116 = !{!10, !11, i64 8380}
!117 = !{!118, !11, i64 80}
!118 = !{!"_ZTS14ImGuiViewportP", !119, i64 0, !7, i64 56, !7, i64 64, !120, i64 80, !122, i64 144, !14, i64 176, !14, i64 184, !14, i64 192, !14, i64 200}
!119 = !{!"_ZTS13ImGuiViewport", !13, i64 0, !13, i64 4, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !6, i64 40, !6, i64 48}
!120 = !{!"_ZTS10ImDrawData", !11, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !121, i64 16, !14, i64 32, !14, i64 40, !14, i64 48, !6, i64 56}
!121 = !{!"_ZTS8ImVectorIP10ImDrawListE", !13, i64 0, !13, i64 4, !6, i64 8}
!122 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0, !121, i64 16}
!123 = !{!10, !13, i64 8412}
!124 = !{!10, !13, i64 5084}
!125 = !{!10, !11, i64 137}
!126 = !{!10, !11, i64 260}
!127 = !{!10, !13, i64 5052}
!128 = !{!10, !13, i64 5068}
!129 = !{!10, !13, i64 5064}
!130 = !{!10, !13, i64 5060}
!131 = !{!10, !15, i64 5076}
!132 = !{!10, !15, i64 5072}
!133 = !{!10, !11, i64 5080}
!134 = !{!10, !11, i64 5081}
!135 = !{!10, !13, i64 5088}
!136 = !{!10, !13, i64 5124}
!137 = !{!10, !13, i64 9908}
!138 = !{!10, !15, i64 5092}
!139 = !{!10, !15, i64 5152}
!140 = !{!10, !11, i64 5101}
!141 = !{!10, !11, i64 5096}
!142 = !{!10, !13, i64 9248}
!143 = !{!10, !13, i64 7400}
!144 = !{!10, !11, i64 7404}
!145 = !{!10, !13, i64 5132}
!146 = !{!10, !13, i64 5128}
!147 = !{!10, !11, i64 5137}
!148 = !{!10, !13, i64 8944}
!149 = !{!10, !15, i64 8972}
!150 = !{!10, !15, i64 4192}
!151 = !{!10, !13, i64 8960}
!152 = !{!10, !6, i64 4976}
!153 = !{!154, !13, i64 16}
!154 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !6, i64 32, !14, i64 40, !14, i64 48, !14, i64 56, !14, i64 64, !14, i64 72, !14, i64 80, !14, i64 88, !15, i64 96, !15, i64 100, !15, i64 104, !15, i64 108, !15, i64 112, !15, i64 116, !15, i64 120, !15, i64 124, !15, i64 128, !15, i64 132, !13, i64 136, !13, i64 140, !13, i64 144, !13, i64 148, !14, i64 152, !14, i64 160, !14, i64 168, !14, i64 176, !14, i64 184, !14, i64 192, !11, i64 200, !11, i64 201, !11, i64 202, !11, i64 203, !11, i64 204, !11, i64 205, !11, i64 206, !11, i64 207, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !7, i64 214, !7, i64 215, !17, i64 216, !17, i64 218, !17, i64 220, !17, i64 222, !17, i64 224, !7, i64 226, !7, i64 227, !11, i64 228, !21, i64 232, !7, i64 236, !7, i64 237, !7, i64 238, !7, i64 239, !13, i64 240, !13, i64 241, !13, i64 242, !14, i64 244, !14, i64 252, !76, i64 264, !155, i64 280, !40, i64 512, !40, i64 528, !40, i64 544, !40, i64 560, !40, i64 576, !40, i64 592, !40, i64 608, !158, i64 624, !158, i64 628, !13, i64 632, !15, i64 636, !15, i64 640, !29, i64 648, !159, i64 664, !15, i64 680, !13, i64 684, !6, i64 688, !160, i64 696, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !7, i64 976, !7, i64 984, !7, i64 1016, !13, i64 1032, !13, i64 1036, !13, i64 1040, !11, i64 1044}
!155 = !{!"_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, !156, i64 68, !156, i64 72, !156, i64 76, !14, i64 80, !51, i64 88, !17, i64 92, !17, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !14, i64 100, !157, i64 108, !13, i64 136, !13, i64 140, !27, i64 144, !6, i64 160, !6, i64 168, !13, i64 176, !13, i64 180, !13, i64 184, !13, i64 188, !15, i64 192, !15, i64 196, !60, i64 200, !60, i64 216}
!156 = !{!"_ZTS6ImVec1", !15, i64 0}
!157 = !{!"_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}
!158 = !{!"_ZTS8ImVec2ih", !17, i64 0, !17, i64 2}
!159 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !13, i64 0, !13, i64 4, !6, i64 8}
!160 = !{!"_ZTS10ImDrawList", !161, i64 0, !18, i64 16, !162, i64 32, !13, i64 48, !13, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !24, i64 80, !163, i64 96, !164, i64 128, !165, i64 152, !166, i64 168, !55, i64 184, !15, i64 200, !6, i64 208}
!161 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !13, i64 0, !13, i64 4, !6, i64 8}
!162 = !{!"_ZTS8ImVectorI10ImDrawVertE", !13, i64 0, !13, i64 4, !6, i64 8}
!163 = !{!"_ZTS15ImDrawCmdHeader", !23, i64 0, !38, i64 16, !13, i64 24}
!164 = !{!"_ZTS18ImDrawListSplitter", !13, i64 0, !13, i64 4, !61, i64 8}
!165 = !{!"_ZTS8ImVectorI6ImVec4E", !13, i64 0, !13, i64 4, !6, i64 8}
!166 = !{!"_ZTS8ImVectorIyE", !13, i64 0, !13, i64 4, !6, i64 8}
!167 = !{!10, !13, i64 8964}
!168 = !{!10, !13, i64 8948}
!169 = !{!10, !15, i64 8952}
!170 = !{!10, !15, i64 8956}
!171 = !{!10, !13, i64 8508}
!172 = !{!10, !13, i64 8512}
!173 = !{!10, !15, i64 8504}
!174 = !{!10, !11, i64 8381}
!175 = !{!10, !11, i64 8382}
!176 = !{!10, !13, i64 8520}
!177 = !{!10, !6, i64 9408}
!178 = !{!10, !13, i64 4888}
!179 = !{!10, !13, i64 4872}
!180 = !{!10, !11, i64 4802}
!181 = !{!10, !15, i64 108}
!182 = !{!154, !11, i64 202}
!183 = !{!154, !11, i64 203}
!184 = !{!154, !11, i64 204}
!185 = !{!154, !17, i64 216}
!186 = !{!154, !17, i64 218}
!187 = !{!154, !11, i64 1044}
!188 = !{!154, !15, i64 636}
!189 = !{!10, !6, i64 8320}
!190 = !{!10, !15, i64 8348}
!191 = !{!10, !15, i64 8376}
!192 = !{!10, !13, i64 8968}
!193 = !{!10, !13, i64 10384}
!194 = !{!10, !13, i64 10380}
!195 = !{!10, !13, i64 10376}
!196 = !{i64 0, i64 1, !197, i64 4, i64 4, !98, i64 8, i64 4, !98, i64 12, i64 4, !98}
!197 = !{!11, !11, i64 0}
!198 = !{!10, !11, i64 9552}
!199 = !{!10, !13, i64 8656}
!200 = distinct !{!200, !115}
!201 = !{!202, !15, i64 4}
!202 = !{!"_ZTS18ImGuiTableTempData", !13, i64 0, !15, i64 4, !15, i64 8, !203, i64 16, !14, i64 32, !164, i64 40, !40, i64 64, !40, i64 80, !14, i64 96, !14, i64 104, !14, i64 112, !156, i64 120, !15, i64 124, !13, i64 128}
!203 = !{!"_ZTS8ImVectorI20ImGuiTableHeaderDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!204 = !{!10, !6, i64 7848}
!205 = !{!13, !13, i64 0}
!206 = !{!10, !13, i64 7416}
!207 = !{!10, !7, i64 9961}
!208 = !{!10, !13, i64 7420}
!209 = !{!10, !11, i64 9962}
!210 = !{!10, !7, i64 9960}
!211 = !{!10, !13, i64 9956}
!212 = !{!10, !11, i64 4801}
!213 = !{!10, !6, i64 4968}
!214 = !{!154, !11, i64 211}
!215 = !{!10, !13, i64 9868}
!216 = !{!10, !11, i64 139}
!217 = !{!10, !7, i64 9968}


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