; LLVM IR from Sonryle/JoePhys :: testbed/dependencies/imgui/imgui.ll (ZN5ImGui5BeginEPKcPbi)

; 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.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec4 = type { float, float, 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, float, 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, 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 double], [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, 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, 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, float, i32, %struct.ImVec4, %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, 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, float, float, float, i32, i8, [1 x i8], [6 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.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.ImGuiMetricsConfig = type { 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.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, float, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], [2 x %struct.ImVec2], i32, i32, i32, i8, [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, 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.ImGuiPopupData = type <{ i32, [4 x i8], ptr, ptr, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, [4 x i8] }>
%struct.ImGuiWindowStackData = type <{ ptr, %struct.ImGuiLastItemData, %struct.ImGuiErrorRecoveryState, i8, i8 }>
%struct.ImDrawCmd = type { %struct.ImVec4, i64, i32, i32, i32, ptr, ptr, i32, i32 }
%struct.ImFontAtlas = type <{ i32, [4 x i8], i64, i32, i32, ptr, i8, i8, i8, [5 x i8], ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.8, %struct.ImVector.49, %struct.ImVector.50, [33 x %struct.ImVec4], ptr, i32, i32, i32, [4 x i8] }>
%struct.ImVector.49 = type { i32, i32, ptr }
%struct.ImVector.50 = type { i32, i32, ptr }

@GImGui = external dso_local global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [34 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi = external hidden unnamed_addr constant [58 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [43 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: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZL7ImTruncRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) #3

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_Z11ImStrdupcpyPcPmPKc(ptr noundef, ptr noundef, ptr noundef) #8

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

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

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

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

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

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

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

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

declare void @_ZN10ImDrawList13PushTextureIDEy(ptr noundef nonnull align 8 dereferenceable(216), i64 noundef) #10

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

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

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

; Function Attrs: nounwind
declare void @llvm.debugtrap() #12

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef %0, ptr noundef %1, i32 noundef %2) #9 {
  %4 = alloca i1, align 1
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i8, align 1
  %12 = alloca i32, align 4
  %13 = alloca i8, align 1
  %14 = alloca i8, align 1
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i8, align 1
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca i8, align 1
  %25 = alloca i8, align 1
  %26 = alloca %struct.ImRect, align 4
  %27 = alloca %struct.ImVec4, align 4
  %28 = alloca i8, align 1
  %29 = alloca i64, align 8
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca ptr, align 8
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca i8, align 1
  %34 = alloca i8, align 1
  %35 = alloca %struct.ImRect, align 4
  %36 = alloca %struct.ImVec2, align 4
  %37 = alloca %struct.ImVec2, align 4
  %38 = alloca %struct.ImVec2, align 4
  %39 = alloca %struct.ImVec2, align 4
  %40 = alloca %struct.ImVec2, align 4
  %41 = alloca %struct.ImRect, align 4
  %42 = alloca i8, align 1
  %43 = alloca %struct.ImVec2, align 4
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca %struct.ImVec2, align 4
  %46 = alloca %struct.ImVec2, align 4
  %47 = alloca %struct.ImVec2, align 4
  %48 = alloca %struct.ImRect, align 4
  %49 = alloca %struct.ImRect, align 4
  %50 = alloca %struct.ImVec2, align 4
  %51 = alloca %struct.ImRect, align 4
  %52 = alloca %struct.ImVec2, align 4
  %53 = alloca %struct.ImVec2, align 4
  %54 = alloca %struct.ImVec2, align 4
  %55 = alloca i8, align 1
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca [4 x i32], align 16
  %59 = alloca i32, align 4
  %60 = alloca float, align 4
  %61 = alloca i32, align 4
  %62 = alloca %struct.ImVec2, align 4
  %63 = alloca %struct.ImVec2, align 4
  %64 = alloca %struct.ImVec2, align 4
  %65 = alloca %struct.ImVec2, align 4
  %66 = alloca %struct.ImVec2, align 4
  %67 = alloca float, align 4
  %68 = alloca float, align 4
  %69 = alloca %struct.ImVec2, align 4
  %70 = alloca %struct.ImRect, align 4
  %71 = alloca %struct.ImRect, align 4
  %72 = alloca %struct.ImRect, align 4
  %73 = alloca float, align 4
  %74 = alloca %struct.ImVec2, align 4
  %75 = alloca %struct.ImVec2, align 4
  %76 = alloca i8, align 1
  %77 = alloca ptr, align 8
  %78 = alloca i8, align 1
  %79 = alloca %struct.ImRect, align 4
  %80 = alloca %struct.ImRect, align 4
  %81 = alloca i8, align 1
  %82 = alloca ptr, align 8
  %83 = alloca i8, align 1
  %84 = alloca i8, align 1
  %85 = alloca i8, align 1
  %86 = alloca i8, align 1
  %87 = alloca float, align 4
  %88 = alloca float, align 4
  %89 = alloca double, align 8
  %90 = alloca double, align 8
  %91 = alloca %struct.ImVec2, align 4
  %92 = alloca %struct.ImVec2, align 4
  %93 = alloca %struct.ImVec2, align 4
  %94 = alloca %struct.ImRect, align 4
  %95 = alloca %struct.ImRect, align 4
  %96 = alloca i8, align 1
  %97 = alloca i8, align 1
  %98 = alloca i8, align 1
  %99 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store i32 %2, ptr %7, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #12
  %100 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %100, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #12
  %101 = load ptr, ptr %8, align 8, !tbaa !5
  %102 = getelementptr inbounds %struct.ImGuiContext, ptr %101, i32 0, i32 4
  store ptr %102, ptr %9, align 8, !tbaa !5
  %103 = load ptr, ptr %5, align 8, !tbaa !5
  %104 = icmp ne ptr %103, null
  br i1 %104, label %105, label %111

105:                                              ; preds = %3
  %106 = load ptr, ptr %5, align 8, !tbaa !5
  %107 = getelementptr inbounds i8, ptr %106, i64 0
  %108 = load i8, ptr %107, align 1, !tbaa !11
  %109 = sext i8 %108 to i32
  %110 = icmp ne i32 %109, 0
  br label %111

111:                                              ; preds = %105, %3
  %112 = phi i1 [ false, %3 ], [ %110, %105 ]
  br i1 %112, label %113, label %114

113:                                              ; preds = %111
  br label %116

114:                                              ; preds = %111
  call void @__assert_fail(ptr noundef @.str.147, ptr noundef @.str.3, i32 noundef 7021, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

115:                                              ; No predecessors!
  br label %116

116:                                              ; preds = %115, %113
  %117 = load ptr, ptr %8, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct.ImGuiContext, ptr %117, i32 0, i32 16
  %119 = load i8, ptr %118, align 8, !tbaa !12, !range !93, !noundef !94
  %120 = trunc i8 %119 to i1
  br i1 %120, label %121, label %122

121:                                              ; preds = %116
  br label %124

122:                                              ; preds = %116
  call void @__assert_fail(ptr noundef @.str.148, ptr noundef @.str.3, i32 noundef 7022, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

123:                                              ; No predecessors!
  br label %124

124:                                              ; preds = %123, %121
  %125 = load ptr, ptr %8, align 8, !tbaa !5
  %126 = getelementptr inbounds %struct.ImGuiContext, ptr %125, i32 0, i32 13
  %127 = load i32, ptr %126, align 4, !tbaa !95
  %128 = load ptr, ptr %8, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.ImGuiContext, ptr %128, i32 0, i32 12
  %130 = load i32, ptr %129, align 8, !tbaa !96
  %131 = icmp ne i32 %127, %130
  br i1 %131, label %132, label %133

132:                                              ; preds = %124
  br label %135

133:                                              ; preds = %124
  call void @__assert_fail(ptr noundef @.str.149, ptr noundef @.str.3, i32 noundef 7023, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

134:                                              ; No predecessors!
  br label %135

135:                                              ; preds = %134, %132
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #12
  %136 = load ptr, ptr %5, align 8, !tbaa !5
  %137 = call noundef ptr @_ZN5ImGui16FindWindowByNameEPKc(ptr noundef %136)
  store ptr %137, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #12
  %138 = load ptr, ptr %10, align 8, !tbaa !5
  %139 = icmp eq ptr %138, null
  %140 = zext i1 %139 to i8
  store i8 %140, ptr %11, align 1, !tbaa !97
  %141 = load i8, ptr %11, align 1, !tbaa !97, !range !93, !noundef !94
  %142 = trunc i8 %141 to i1
  br i1 %142, label %143, label %147

143:                                              ; preds = %135
  %144 = load ptr, ptr %5, align 8, !tbaa !5
  %145 = load i32, ptr %7, align 4, !tbaa !9
  %146 = call noundef ptr @_ZL15CreateNewWindowPKci(ptr noundef %144, i32 noundef %145)
  store ptr %146, ptr %10, align 8, !tbaa !5
  br label %147

147:                                              ; preds = %143, %135
  %148 = load ptr, ptr %8, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.ImGuiContext, ptr %148, i32 0, i32 33
  %150 = load i32, ptr %149, align 8, !tbaa !98
  %151 = load ptr, ptr %10, align 8, !tbaa !5
  %152 = getelementptr inbounds %struct.ImGuiWindow, ptr %151, i32 0, i32 2
  %153 = load i32, ptr %152, align 8, !tbaa !99
  %154 = icmp eq i32 %150, %153
  br i1 %154, label %155, label %156

155:                                              ; preds = %147
  call void @llvm.debugtrap()
  br label %156

156:                                              ; preds = %155, %147
  %157 = load i32, ptr %7, align 4, !tbaa !9
  %158 = and i32 %157, 197120
  %159 = icmp eq i32 %158, 197120
  br i1 %159, label %160, label %163

160:                                              ; preds = %156
  %161 = load i32, ptr %7, align 4, !tbaa !9
  %162 = or i32 %161, 6
  store i32 %162, ptr %7, align 4, !tbaa !9
  br label %163

163:                                              ; preds = %160, %156
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #12
  %164 = load ptr, ptr %8, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.ImGuiContext, ptr %164, i32 0, i32 12
  %166 = load i32, ptr %165, align 8, !tbaa !96
  store i32 %166, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #12
  %167 = load ptr, ptr %10, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.ImGuiWindow, ptr %167, i32 0, i32 79
  %169 = load i32, ptr %168, align 8, !tbaa !113
  %170 = load i32, ptr %12, align 4, !tbaa !9
  %171 = icmp ne i32 %169, %170
  %172 = zext i1 %171 to i8
  store i8 %172, ptr %13, align 1, !tbaa !97
  %173 = load ptr, ptr %8, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.ImGuiContext, ptr %173, i32 0, i32 29
  %175 = getelementptr inbounds %struct.ImVector.3, ptr %174, i32 0, i32 0
  %176 = load i32, ptr %175, align 8, !tbaa !114
  %177 = icmp eq i32 %176, 0
  br i1 %177, label %178, label %183

178:                                              ; preds = %163
  %179 = load ptr, ptr %8, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.ImGuiContext, ptr %179, i32 0, i32 17
  %181 = load i8, ptr %180, align 1, !tbaa !115, !range !93, !noundef !94
  %182 = trunc i8 %181 to i1
  br label %183

183:                                              ; preds = %178, %163
  %184 = phi i1 [ false, %163 ], [ %182, %178 ]
  %185 = load ptr, ptr %10, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.ImGuiWindow, ptr %185, i32 0, i32 45
  %187 = zext i1 %184 to i8
  store i8 %187, ptr %186, align 1, !tbaa !116
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #12
  %188 = load ptr, ptr %10, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.ImGuiWindow, ptr %188, i32 0, i32 79
  %190 = load i32, ptr %189, align 8, !tbaa !113
  %191 = load i32, ptr %12, align 4, !tbaa !9
  %192 = sub nsw i32 %191, 1
  %193 = icmp slt i32 %190, %192
  %194 = zext i1 %193 to i8
  store i8 %194, ptr %14, align 1, !tbaa !97
  %195 = load i32, ptr %7, align 4, !tbaa !9
  %196 = and i32 %195, 67108864
  %197 = icmp ne i32 %196, 0
  br i1 %197, label %198, label %232

198:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #12
  %199 = load ptr, ptr %8, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.ImGuiContext, ptr %199, i32 0, i32 98
  %201 = load ptr, ptr %8, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.ImGuiContext, ptr %201, i32 0, i32 99
  %203 = getelementptr inbounds %struct.ImVector.12, ptr %202, i32 0, i32 0
  %204 = load i32, ptr %203, align 8, !tbaa !117
  %205 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %200, i32 noundef %204)
  store ptr %205, ptr %15, align 8, !tbaa !5
  %206 = load ptr, ptr %10, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.ImGuiWindow, ptr %206, i32 0, i32 27
  %208 = load i32, ptr %207, align 4, !tbaa !118
  %209 = load ptr, ptr %15, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.ImGuiPopupData, ptr %209, i32 0, i32 0
  %211 = load i32, ptr %210, align 8, !tbaa !119
  %212 = icmp ne i32 %208, %211
  %213 = zext i1 %212 to i32
  %214 = load i8, ptr %14, align 1, !tbaa !97, !range !93, !noundef !94
  %215 = trunc i8 %214 to i1
  %216 = zext i1 %215 to i32
  %217 = or i32 %216, %213
  %218 = icmp ne i32 %217, 0
  %219 = zext i1 %218 to i8
  store i8 %219, ptr %14, align 1, !tbaa !97
  %220 = load ptr, ptr %10, align 8, !tbaa !5
  %221 = load ptr, ptr %15, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.ImGuiPopupData, ptr %221, i32 0, i32 2
  %223 = load ptr, ptr %222, align 8, !tbaa !121
  %224 = icmp ne ptr %220, %223
  %225 = zext i1 %224 to i32
  %226 = load i8, ptr %14, align 1, !tbaa !97, !range !93, !noundef !94
  %227 = trunc i8 %226 to i1
  %228 = zext i1 %227 to i32
  %229 = or i32 %228, %225
  %230 = icmp ne i32 %229, 0
  %231 = zext i1 %230 to i8
  store i8 %231, ptr %14, align 1, !tbaa !97
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #12
  br label %232

232:                                              ; preds = %198, %183
  %233 = load i8, ptr %14, align 1, !tbaa !97, !range !93, !noundef !94
  %234 = trunc i8 %233 to i1
  %235 = load ptr, ptr %10, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.ImGuiWindow, ptr %235, i32 0, i32 43
  %237 = zext i1 %234 to i8
  store i8 %237, ptr %236, align 1, !tbaa !122
  %238 = load ptr, ptr %10, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.ImGuiWindow, ptr %238, i32 0, i32 43
  %240 = load i8, ptr %239, align 1, !tbaa !122, !range !93, !noundef !94
  %241 = trunc i8 %240 to i1
  br i1 %241, label %242, label %244

242:                                              ; preds = %232
  %243 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZL28SetWindowConditionAllowFlagsP11ImGuiWindowib(ptr noundef %243, i32 noundef 8, i1 noundef zeroext true)
  br label %244

244:                                              ; preds = %242, %232
  %245 = load i8, ptr %13, align 1, !tbaa !97, !range !93, !noundef !94
  %246 = trunc i8 %245 to i1
  br i1 %246, label %247, label %289

247:                                              ; preds = %244
  %248 = load ptr, ptr %10, align 8, !tbaa !5
  %249 = load i8, ptr %11, align 1, !tbaa !97, !range !93, !noundef !94
  %250 = trunc i8 %249 to i1
  %251 = load i32, ptr %7, align 4, !tbaa !9
  call void @_ZN5ImGuiL28UpdateWindowInFocusOrderListEP11ImGuiWindowbi(ptr noundef %248, i1 noundef zeroext %250, i32 noundef %251)
  %252 = load i32, ptr %7, align 4, !tbaa !9
  %253 = load ptr, ptr %10, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.ImGuiWindow, ptr %253, i32 0, i32 3
  store i32 %252, ptr %254, align 4, !tbaa !123
  %255 = load ptr, ptr %8, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.ImGuiContext, ptr %255, i32 0, i32 89
  %257 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %256, i32 0, i32 0
  %258 = load i32, ptr %257, align 8, !tbaa !124
  %259 = and i32 %258, 512
  %260 = icmp ne i32 %259, 0
  br i1 %260, label %261, label %266

261:                                              ; preds = %247
  %262 = load ptr, ptr %8, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.ImGuiContext, ptr %262, i32 0, i32 89
  %264 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %263, i32 0, i32 10
  %265 = load i32, ptr %264, align 4, !tbaa !125
  br label %267

266:                                              ; preds = %247
  br label %267

267:                                              ; preds = %266, %261
  %268 = phi i32 [ %265, %261 ], [ 0, %266 ]
  %269 = load ptr, ptr %10, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.ImGuiWindow, ptr %269, i32 0, i32 4
  store i32 %268, ptr %270, align 8, !tbaa !126
  %271 = load i32, ptr %12, align 4, !tbaa !9
  %272 = load ptr, ptr %10, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.ImGuiWindow, ptr %272, i32 0, i32 79
  store i32 %271, ptr %273, align 8, !tbaa !113
  %274 = load ptr, ptr %8, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.ImGuiContext, ptr %274, i32 0, i32 11
  %276 = load double, ptr %275, align 8, !tbaa !127
  %277 = fptrunc double %276 to float
  %278 = load ptr, ptr %10, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.ImGuiWindow, ptr %278, i32 0, i32 80
  store float %277, ptr %279, align 4, !tbaa !128
  %280 = load ptr, ptr %10, align 8, !tbaa !5
  %281 = getelementptr inbounds %struct.ImGuiWindow, ptr %280, i32 0, i32 52
  store i16 0, ptr %281, align 4, !tbaa !129
  %282 = load ptr, ptr %8, align 8, !tbaa !5
  %283 = getelementptr inbounds %struct.ImGuiContext, ptr %282, i32 0, i32 31
  %284 = load i32, ptr %283, align 8, !tbaa !130
  %285 = add nsw i32 %284, 1
  store i32 %285, ptr %283, align 8, !tbaa !130
  %286 = trunc i32 %284 to i16
  %287 = load ptr, ptr %10, align 8, !tbaa !5
  %288 = getelementptr inbounds %struct.ImGuiWindow, ptr %287, i32 0, i32 53
  store i16 %286, ptr %288, align 2, !tbaa !131
  br label %293

289:                                              ; preds = %244
  %290 = load ptr, ptr %10, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.ImGuiWindow, ptr %290, i32 0, i32 3
  %292 = load i32, ptr %291, align 4, !tbaa !123
  store i32 %292, ptr %7, align 4, !tbaa !9
  br label %293

293:                                              ; preds = %289, %267
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #12
  %294 = load ptr, ptr %8, align 8, !tbaa !5
  %295 = getelementptr inbounds %struct.ImGuiContext, ptr %294, i32 0, i32 29
  %296 = call noundef zeroext i1 @_ZNK8ImVectorI20ImGuiWindowStackDataE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %295)
  br i1 %296, label %297, label %298

297:                                              ; preds = %293
  br label %304

298:                                              ; preds = %293
  %299 = load ptr, ptr %8, align 8, !tbaa !5
  %300 = getelementptr inbounds %struct.ImGuiContext, ptr %299, i32 0, i32 29
  %301 = call noundef nonnull align 8 dereferenceable(111) ptr @_ZN8ImVectorI20ImGuiWindowStackDataE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %300)
  %302 = getelementptr inbounds %struct.ImGuiWindowStackData, ptr %301, i32 0, i32 0
  %303 = load ptr, ptr %302, align 8, !tbaa !132
  br label %304

304:                                              ; preds = %298, %297
  %305 = phi ptr [ null, %297 ], [ %303, %298 ]
  store ptr %305, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #12
  %306 = load i8, ptr %13, align 1, !tbaa !97, !range !93, !noundef !94
  %307 = trunc i8 %306 to i1
  br i1 %307, label %308, label %317

308:                                              ; preds = %304
  %309 = load i32, ptr %7, align 4, !tbaa !9
  %310 = and i32 %309, 83886080
  %311 = icmp ne i32 %310, 0
  br i1 %311, label %312, label %314

312:                                              ; preds = %308
  %313 = load ptr, ptr %16, align 8, !tbaa !5
  br label %315

314:                                              ; preds = %308
  br label %315

315:                                              ; preds = %314, %312
  %316 = phi ptr [ %313, %312 ], [ null, %314 ]
  br label %321

317:                                              ; preds = %304
  %318 = load ptr, ptr %10, align 8, !tbaa !5
  %319 = getelementptr inbounds %struct.ImGuiWindow, ptr %318, i32 0, i32 91
  %320 = load ptr, ptr %319, align 8, !tbaa !134
  br label %321

321:                                              ; preds = %317, %315
  %322 = phi ptr [ %316, %315 ], [ %320, %317 ]
  store ptr %322, ptr %17, align 8, !tbaa !5
  %323 = load ptr, ptr %17, align 8, !tbaa !5
  %324 = icmp ne ptr %323, null
  br i1 %324, label %330, label %325

325:                                              ; preds = %321
  %326 = load i32, ptr %7, align 4, !tbaa !9
  %327 = and i32 %326, 16777216
  %328 = icmp ne i32 %327, 0
  %329 = xor i1 %328, true
  br label %330

330:                                              ; preds = %325, %321
  %331 = phi i1 [ true, %321 ], [ %329, %325 ]
  br i1 %331, label %332, label %333

332:                                              ; preds = %330
  br label %335

333:                                              ; preds = %330
  call void @__assert_fail(ptr noundef @.str.150, ptr noundef @.str.3, i32 noundef 7074, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

334:                                              ; No predecessors!
  br label %335

335:                                              ; preds = %334, %332
  %336 = load ptr, ptr %10, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.ImGuiWindow, ptr %336, i32 0, i32 68
  %338 = getelementptr inbounds %struct.ImVector.30, ptr %337, i32 0, i32 0
  %339 = load i32, ptr %338, align 8, !tbaa !135
  %340 = icmp eq i32 %339, 0
  br i1 %340, label %341, label %346

341:                                              ; preds = %335
  %342 = load ptr, ptr %10, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.ImGuiWindow, ptr %342, i32 0, i32 68
  %344 = load ptr, ptr %10, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.ImGuiWindow, ptr %344, i32 0, i32 2
  call void @_ZN8ImVectorIjE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(16) %343, ptr noundef nonnull align 4 dereferenceable(4) %345)
  br label %346

346:                                              ; preds = %341, %335
  %347 = load ptr, ptr %10, align 8, !tbaa !5
  %348 = load ptr, ptr %8, align 8, !tbaa !5
  %349 = getelementptr inbounds %struct.ImGuiContext, ptr %348, i32 0, i32 34
  store ptr %347, ptr %349, align 8, !tbaa !136
  %350 = load ptr, ptr %8, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.ImGuiContext, ptr %350, i32 0, i32 29
  %352 = load ptr, ptr %8, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.ImGuiContext, ptr %352, i32 0, i32 29
  %354 = getelementptr inbounds %struct.ImVector.3, ptr %353, i32 0, i32 0
  %355 = load i32, ptr %354, align 8, !tbaa !114
  %356 = add nsw i32 %355, 1
  call void @_ZN8ImVectorI20ImGuiWindowStackDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %351, i32 noundef %356)
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #12
  %357 = load ptr, ptr %8, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.ImGuiContext, ptr %357, i32 0, i32 29
  %359 = call noundef nonnull align 8 dereferenceable(111) ptr @_ZN8ImVectorI20ImGuiWindowStackDataE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %358)
  store ptr %359, ptr %18, align 8, !tbaa !5
  %360 = load ptr, ptr %10, align 8, !tbaa !5
  %361 = load ptr, ptr %18, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.ImGuiWindowStackData, ptr %361, i32 0, i32 0
  store ptr %360, ptr %362, align 8, !tbaa !132
  %363 = load ptr, ptr %8, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.ImGuiContext, ptr %363, i32 0, i32 88
  %365 = load ptr, ptr %18, align 8, !tbaa !5
  %366 = getelementptr inbounds %struct.ImGuiWindowStackData, ptr %365, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %366, ptr align 8 %364, i64 80, i1 false), !tbaa.struct !137
  %367 = load i32, ptr %7, align 4, !tbaa !9
  %368 = and i32 %367, 33554432
  %369 = icmp ne i32 %368, 0
  br i1 %369, label %370, label %376

370:                                              ; preds = %346
  %371 = load ptr, ptr %8, align 8, !tbaa !5
  %372 = getelementptr inbounds %struct.ImGuiContext, ptr %371, i32 0, i32 85
  %373 = load i32, ptr %372, align 8, !tbaa !139
  %374 = and i32 %373, 1024
  %375 = icmp ne i32 %374, 0
  br label %376

376:                                              ; preds = %370, %346
  %377 = phi i1 [ false, %346 ], [ %375, %370 ]
  %378 = load ptr, ptr %18, align 8, !tbaa !5
  %379 = getelementptr inbounds %struct.ImGuiWindowStackData, ptr %378, i32 0, i32 3
  %380 = zext i1 %377 to i8
  store i8 %380, ptr %379, align 2, !tbaa !140
  %381 = load ptr, ptr %18, align 8, !tbaa !5
  %382 = getelementptr inbounds %struct.ImGuiWindowStackData, ptr %381, i32 0, i32 2
  call void @_ZN5ImGui23ErrorRecoveryStoreStateEP23ImGuiErrorRecoveryState(ptr noundef %382)
  %383 = load ptr, ptr %18, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.ImGuiWindowStackData, ptr %383, i32 0, i32 2
  %385 = load ptr, ptr %8, align 8, !tbaa !5
  %386 = getelementptr inbounds %struct.ImGuiContext, ptr %385, i32 0, i32 269
  store ptr %384, ptr %386, align 8, !tbaa !141
  %387 = load i32, ptr %7, align 4, !tbaa !9
  %388 = and i32 %387, 268435456
  %389 = icmp ne i32 %388, 0
  br i1 %389, label %390, label %395

390:                                              ; preds = %376
  %391 = load ptr, ptr %8, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.ImGuiContext, ptr %391, i32 0, i32 213
  %393 = load i32, ptr %392, align 4, !tbaa !142
  %394 = add nsw i32 %393, 1
  store i32 %394, ptr %392, align 4, !tbaa !142
  br label %395

395:                                              ; preds = %390, %376
  %396 = load i8, ptr %13, align 1, !tbaa !97, !range !93, !noundef !94
  %397 = trunc i8 %396 to i1
  br i1 %397, label %398, label %430

398:                                              ; preds = %395
  %399 = load ptr, ptr %10, align 8, !tbaa !5
  %400 = load i32, ptr %7, align 4, !tbaa !9
  %401 = load ptr, ptr %17, align 8, !tbaa !5
  call void @_ZN5ImGui30UpdateWindowParentAndRootLinksEP11ImGuiWindowiS1_(ptr noundef %399, i32 noundef %400, ptr noundef %401)
  %402 = load ptr, ptr %16, align 8, !tbaa !5
  %403 = load ptr, ptr %10, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.ImGuiWindow, ptr %403, i32 0, i32 92
  store ptr %402, ptr %404, align 8, !tbaa !143
  %405 = load i32, ptr %7, align 4, !tbaa !9
  %406 = and i32 %405, 16777216
  %407 = icmp ne i32 %406, 0
  br i1 %407, label %408, label %410

408:                                              ; preds = %398
  %409 = load ptr, ptr %16, align 8, !tbaa !5
  br label %411

410:                                              ; preds = %398
  br label %411

411:                                              ; preds = %410, %408
  %412 = phi ptr [ %409, %408 ], [ null, %410 ]
  %413 = load ptr, ptr %10, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.ImGuiWindow, ptr %413, i32 0, i32 97
  store ptr %412, ptr %414, align 8, !tbaa !144
  %415 = load ptr, ptr %17, align 8, !tbaa !5
  %416 = icmp ne ptr %415, null
  br i1 %416, label %417, label %425

417:                                              ; preds = %411
  %418 = load ptr, ptr %17, align 8, !tbaa !5
  %419 = getelementptr inbounds %struct.ImGuiWindow, ptr %418, i32 0, i32 86
  %420 = load float, ptr %419, align 4, !tbaa !145
  %421 = load ptr, ptr %17, align 8, !tbaa !5
  %422 = getelementptr inbounds %struct.ImGuiWindow, ptr %421, i32 0, i32 85
  %423 = load float, ptr %422, align 8, !tbaa !146
  %424 = fmul float %420, %423
  br label %426

425:                                              ; preds = %411
  br label %426

426:                                              ; preds = %425, %417
  %427 = phi float [ %424, %417 ], [ 1.000000e+00, %425 ]
  %428 = load ptr, ptr %10, align 8, !tbaa !5
  %429 = getelementptr inbounds %struct.ImGuiWindow, ptr %428, i32 0, i32 86
  store float %427, ptr %429, align 4, !tbaa !145
  br label %430

430:                                              ; preds = %426, %395
  %431 = load ptr, ptr %10, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.ImGuiWindow, ptr %431, i32 0, i32 4
  %433 = load i32, ptr %432, align 8, !tbaa !126
  %434 = and i32 %433, 256
  %435 = icmp ne i32 %434, 0
  br i1 %435, label %436, label %440

436:                                              ; preds = %430
  %437 = load ptr, ptr %8, align 8, !tbaa !5
  %438 = getelementptr inbounds %struct.ImGuiContext, ptr %437, i32 0, i32 84
  %439 = load i32, ptr %438, align 4, !tbaa !147
  br label %444

440:                                              ; preds = %430
  %441 = load ptr, ptr %10, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.ImGuiWindow, ptr %441, i32 0, i32 2
  %443 = load i32, ptr %442, align 8, !tbaa !99
  br label %444

444:                                              ; preds = %440, %436
  %445 = phi i32 [ %439, %436 ], [ %443, %440 ]
  call void @_ZN5ImGui14PushFocusScopeEj(i32 noundef %445)
  %446 = load ptr, ptr %8, align 8, !tbaa !5
  %447 = getelementptr inbounds %struct.ImGuiContext, ptr %446, i32 0, i32 84
  %448 = load i32, ptr %447, align 4, !tbaa !147
  %449 = load ptr, ptr %10, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.ImGuiWindow, ptr %449, i32 0, i32 102
  store i32 %448, ptr %450, align 8, !tbaa !148
  %451 = load i32, ptr %7, align 4, !tbaa !9
  %452 = and i32 %451, 67108864
  %453 = icmp ne i32 %452, 0
  br i1 %453, label %454, label %479

454:                                              ; preds = %444
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #12
  %455 = load ptr, ptr %8, align 8, !tbaa !5
  %456 = getelementptr inbounds %struct.ImGuiContext, ptr %455, i32 0, i32 98
  %457 = load ptr, ptr %8, align 8, !tbaa !5
  %458 = getelementptr inbounds %struct.ImGuiContext, ptr %457, i32 0, i32 99
  %459 = getelementptr inbounds %struct.ImVector.12, ptr %458, i32 0, i32 0
  %460 = load i32, ptr %459, align 8, !tbaa !117
  %461 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %456, i32 noundef %460)
  store ptr %461, ptr %19, align 8, !tbaa !5
  %462 = load ptr, ptr %10, align 8, !tbaa !5
  %463 = load ptr, ptr %19, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.ImGuiPopupData, ptr %463, i32 0, i32 2
  store ptr %462, ptr %464, align 8, !tbaa !121
  %465 = load ptr, ptr %16, align 8, !tbaa !5
  %466 = getelementptr inbounds %struct.ImGuiWindow, ptr %465, i32 0, i32 69
  %467 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %466, i32 0, i32 15
  %468 = load i32, ptr %467, align 8, !tbaa !149
  %469 = load ptr, ptr %19, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.ImGuiPopupData, ptr %469, i32 0, i32 4
  store i32 %468, ptr %470, align 8, !tbaa !150
  %471 = load ptr, ptr %8, align 8, !tbaa !5
  %472 = getelementptr inbounds %struct.ImGuiContext, ptr %471, i32 0, i32 99
  %473 = load ptr, ptr %19, align 8, !tbaa !5
  call void @_ZN8ImVectorI14ImGuiPopupDataE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %472, ptr noundef nonnull align 8 dereferenceable(52) %473)
  %474 = load ptr, ptr %19, align 8, !tbaa !5
  %475 = getelementptr inbounds %struct.ImGuiPopupData, ptr %474, i32 0, i32 0
  %476 = load i32, ptr %475, align 8, !tbaa !119
  %477 = load ptr, ptr %10, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.ImGuiWindow, ptr %477, i32 0, i32 27
  store i32 %476, ptr %478, align 4, !tbaa !118
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #12
  br label %479

479:                                              ; preds = %454, %444
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #12
  store i8 0, ptr %20, align 1, !tbaa !97
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #12
  store i8 0, ptr %21, align 1, !tbaa !97
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #12
  store i8 0, ptr %22, align 1, !tbaa !97
  %480 = load ptr, ptr %8, align 8, !tbaa !5
  %481 = getelementptr inbounds %struct.ImGuiContext, ptr %480, i32 0, i32 89
  %482 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %481, i32 0, i32 0
  %483 = load i32, ptr %482, align 8, !tbaa !124
  %484 = and i32 %483, 1
  %485 = icmp ne i32 %484, 0
  br i1 %485, label %486, label %540

486:                                              ; preds = %479
  %487 = load ptr, ptr %10, align 8, !tbaa !5
  %488 = getelementptr inbounds %struct.ImGuiWindow, ptr %487, i32 0, i32 64
  %489 = load i32, ptr %488, align 8
  %490 = shl i32 %489, 24
  %491 = ashr i32 %490, 24
  %492 = load ptr, ptr %8, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.ImGuiContext, ptr %492, i32 0, i32 89
  %494 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %493, i32 0, i32 1
  %495 = load i32, ptr %494, align 4, !tbaa !151
  %496 = and i32 %491, %495
  %497 = icmp ne i32 %496, 0
  %498 = zext i1 %497 to i8
  store i8 %498, ptr %20, align 1, !tbaa !97
  %499 = load i8, ptr %20, align 1, !tbaa !97, !range !93, !noundef !94
  %500 = trunc i8 %499 to i1
  br i1 %500, label %501, label %530

501:                                              ; preds = %486
  %502 = load ptr, ptr %8, align 8, !tbaa !5
  %503 = getelementptr inbounds %struct.ImGuiContext, ptr %502, i32 0, i32 89
  %504 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %503, i32 0, i32 5
  %505 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %504)
  %506 = fcmp ogt float %505, 0x3EE4F8B580000000
  br i1 %506, label %507, label %530

507:                                              ; preds = %501
  %508 = load ptr, ptr %8, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct.ImGuiContext, ptr %508, i32 0, i32 89
  %510 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %509, i32 0, i32 4
  %511 = load ptr, ptr %10, align 8, !tbaa !5
  %512 = getelementptr inbounds %struct.ImGuiWindow, ptr %511, i32 0, i32 65
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %512, ptr align 8 %510, i64 8, i1 false), !tbaa.struct !152
  %513 = load ptr, ptr %8, align 8, !tbaa !5
  %514 = getelementptr inbounds %struct.ImGuiContext, ptr %513, i32 0, i32 89
  %515 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %514, i32 0, i32 5
  %516 = load ptr, ptr %10, align 8, !tbaa !5
  %517 = getelementptr inbounds %struct.ImGuiWindow, ptr %516, i32 0, i32 66
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %517, ptr align 8 %515, i64 8, i1 false), !tbaa.struct !152
  %518 = load ptr, ptr %10, align 8, !tbaa !5
  %519 = getelementptr inbounds %struct.ImGuiWindow, ptr %518, i32 0, i32 64
  %520 = load i32, ptr %519, align 8
  %521 = shl i32 %520, 24
  %522 = ashr i32 %521, 24
  %523 = and i32 %522, -15
  %524 = load i32, ptr %519, align 8
  %525 = and i32 %523, 255
  %526 = and i32 %524, -256
  %527 = or i32 %526, %525
  store i32 %527, ptr %519, align 8
  %528 = shl i32 %525, 24
  %529 = ashr i32 %528, 24
  br label %539

530:                                              ; preds = %501, %486
  %531 = load ptr, ptr %10, align 8, !tbaa !5
  %532 = load ptr, ptr %8, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.ImGuiContext, ptr %532, i32 0, i32 89
  %534 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %533, i32 0, i32 4
  %535 = load ptr, ptr %8, align 8, !tbaa !5
  %536 = getelementptr inbounds %struct.ImGuiContext, ptr %535, i32 0, i32 89
  %537 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %536, i32 0, i32 1
  %538 = load i32, ptr %537, align 4, !tbaa !151
  call void @_ZN5ImGui12SetWindowPosEP11ImGuiWindowRK6ImVec2i(ptr noundef %531, ptr noundef nonnull align 4 dereferenceable(8) %534, i32 noundef %538)
  br label %539

539:                                              ; preds = %530, %507
  br label %540

540:                                              ; preds = %539, %479
  %541 = load ptr, ptr %8, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.ImGuiContext, ptr %541, i32 0, i32 89
  %543 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %542, i32 0, i32 0
  %544 = load i32, ptr %543, align 8, !tbaa !124
  %545 = and i32 %544, 2
  %546 = icmp ne i32 %545, 0
  br i1 %546, label %547, label %644

547:                                              ; preds = %540
  %548 = load ptr, ptr %10, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.ImGuiWindow, ptr %548, i32 0, i32 64
  %550 = load i32, ptr %549, align 8
  %551 = shl i32 %550, 16
  %552 = ashr i32 %551, 24
  %553 = load ptr, ptr %8, align 8, !tbaa !5
  %554 = getelementptr inbounds %struct.ImGuiContext, ptr %553, i32 0, i32 89
  %555 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %554, i32 0, i32 2
  %556 = load i32, ptr %555, align 8, !tbaa !153
  %557 = and i32 %552, %556
  %558 = icmp ne i32 %557, 0
  br i1 %558, label %559, label %566

559:                                              ; preds = %547
  %560 = load ptr, ptr %8, align 8, !tbaa !5
  %561 = getelementptr inbounds %struct.ImGuiContext, ptr %560, i32 0, i32 89
  %562 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %561, i32 0, i32 6
  %563 = getelementptr inbounds %struct.ImVec2, ptr %562, i32 0, i32 0
  %564 = load float, ptr %563, align 8, !tbaa !154
  %565 = fcmp ogt float %564, 0.000000e+00
  br label %566

566:                                              ; preds = %559, %547
  %567 = phi i1 [ false, %547 ], [ %565, %559 ]
  %568 = zext i1 %567 to i8
  store i8 %568, ptr %21, align 1, !tbaa !97
  %569 = load ptr, ptr %10, align 8, !tbaa !5
  %570 = getelementptr inbounds %struct.ImGuiWindow, ptr %569, i32 0, i32 64
  %571 = load i32, ptr %570, align 8
  %572 = shl i32 %571, 16
  %573 = ashr i32 %572, 24
  %574 = load ptr, ptr %8, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.ImGuiContext, ptr %574, i32 0, i32 89
  %576 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %575, i32 0, i32 2
  %577 = load i32, ptr %576, align 8, !tbaa !153
  %578 = and i32 %573, %577
  %579 = icmp ne i32 %578, 0
  br i1 %579, label %580, label %587

580:                                              ; preds = %566
  %581 = load ptr, ptr %8, align 8, !tbaa !5
  %582 = getelementptr inbounds %struct.ImGuiContext, ptr %581, i32 0, i32 89
  %583 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %582, i32 0, i32 6
  %584 = getelementptr inbounds %struct.ImVec2, ptr %583, i32 0, i32 1
  %585 = load float, ptr %584, align 4, !tbaa !155
  %586 = fcmp ogt float %585, 0.000000e+00
  br label %587

587:                                              ; preds = %580, %566
  %588 = phi i1 [ false, %566 ], [ %586, %580 ]
  %589 = zext i1 %588 to i8
  store i8 %589, ptr %22, align 1, !tbaa !97
  %590 = load ptr, ptr %10, align 8, !tbaa !5
  %591 = getelementptr inbounds %struct.ImGuiWindow, ptr %590, i32 0, i32 4
  %592 = load i32, ptr %591, align 8, !tbaa !126
  %593 = and i32 %592, 4
  %594 = icmp ne i32 %593, 0
  br i1 %594, label %595, label %612

595:                                              ; preds = %587
  %596 = load ptr, ptr %10, align 8, !tbaa !5
  %597 = getelementptr inbounds %struct.ImGuiWindow, ptr %596, i32 0, i32 64
  %598 = load i32, ptr %597, align 8
  %599 = shl i32 %598, 16
  %600 = ashr i32 %599, 24
  %601 = and i32 %600, 4
  %602 = icmp eq i32 %601, 0
  br i1 %602, label %603, label %612

603:                                              ; preds = %595
  %604 = load ptr, ptr %10, align 8, !tbaa !5
  %605 = getelementptr inbounds %struct.ImGuiWindow, ptr %604, i32 0, i32 9
  %606 = getelementptr inbounds %struct.ImVec2, ptr %605, i32 0, i32 0
  %607 = load float, ptr %606, align 8, !tbaa !156
  %608 = load ptr, ptr %8, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.ImGuiContext, ptr %608, i32 0, i32 89
  %610 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %609, i32 0, i32 6
  %611 = getelementptr inbounds %struct.ImVec2, ptr %610, i32 0, i32 0
  store float %607, ptr %611, align 8, !tbaa !154
  br label %612

612:                                              ; preds = %603, %595, %587
  %613 = load ptr, ptr %10, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.ImGuiWindow, ptr %613, i32 0, i32 4
  %615 = load i32, ptr %614, align 8, !tbaa !126
  %616 = and i32 %615, 8
  %617 = icmp ne i32 %616, 0
  br i1 %617, label %618, label %635

618:                                              ; preds = %612
  %619 = load ptr, ptr %10, align 8, !tbaa !5
  %620 = getelementptr inbounds %struct.ImGuiWindow, ptr %619, i32 0, i32 64
  %621 = load i32, ptr %620, align 8
  %622 = shl i32 %621, 16
  %623 = ashr i32 %622, 24
  %624 = and i32 %623, 4
  %625 = icmp eq i32 %624, 0
  br i1 %625, label %626, label %635

626:                                              ; preds = %618
  %627 = load ptr, ptr %10, align 8, !tbaa !5
  %628 = getelementptr inbounds %struct.ImGuiWindow, ptr %627, i32 0, i32 9
  %629 = getelementptr inbounds %struct.ImVec2, ptr %628, i32 0, i32 1
  %630 = load float, ptr %629, align 4, !tbaa !157
  %631 = load ptr, ptr %8, align 8, !tbaa !5
  %632 = getelementptr inbounds %struct.ImGuiContext, ptr %631, i32 0, i32 89
  %633 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %632, i32 0, i32 6
  %634 = getelementptr inbounds %struct.ImVec2, ptr %633, i32 0, i32 1
  store float %630, ptr %634, align 4, !tbaa !155
  br label %635

635:                                              ; preds = %626, %618, %612
  %636 = load ptr, ptr %10, align 8, !tbaa !5
  %637 = load ptr, ptr %8, align 8, !tbaa !5
  %638 = getelementptr inbounds %struct.ImGuiContext, ptr %637, i32 0, i32 89
  %639 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %638, i32 0, i32 6
  %640 = load ptr, ptr %8, align 8, !tbaa !5
  %641 = getelementptr inbounds %struct.ImGuiContext, ptr %640, i32 0, i32 89
  %642 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %641, i32 0, i32 2
  %643 = load i32, ptr %642, align 8, !tbaa !153
  call void @_ZN5ImGui13SetWindowSizeEP11ImGuiWindowRK6ImVec2i(ptr noundef %636, ptr noundef nonnull align 4 dereferenceable(8) %639, i32 noundef %643)
  br label %644

644:                                              ; preds = %635, %540
  %645 = load ptr, ptr %8, align 8, !tbaa !5
  %646 = getelementptr inbounds %struct.ImGuiContext, ptr %645, i32 0, i32 89
  %647 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %646, i32 0, i32 0
  %648 = load i32, ptr %647, align 8, !tbaa !124
  %649 = and i32 %648, 128
  %650 = icmp ne i32 %649, 0
  br i1 %650, label %651, label %690

651:                                              ; preds = %644
  %652 = load ptr, ptr %8, align 8, !tbaa !5
  %653 = getelementptr inbounds %struct.ImGuiContext, ptr %652, i32 0, i32 89
  %654 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %653, i32 0, i32 8
  %655 = getelementptr inbounds %struct.ImVec2, ptr %654, i32 0, i32 0
  %656 = load float, ptr %655, align 8, !tbaa !158
  %657 = fcmp oge float %656, 0.000000e+00
  br i1 %657, label %658, label %670

658:                                              ; preds = %651
  %659 = load ptr, ptr %8, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.ImGuiContext, ptr %659, i32 0, i32 89
  %661 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %660, i32 0, i32 8
  %662 = getelementptr inbounds %struct.ImVec2, ptr %661, i32 0, i32 0
  %663 = load float, ptr %662, align 8, !tbaa !158
  %664 = load ptr, ptr %10, align 8, !tbaa !5
  %665 = getelementptr inbounds %struct.ImGuiWindow, ptr %664, i32 0, i32 30
  %666 = getelementptr inbounds %struct.ImVec2, ptr %665, i32 0, i32 0
  store float %663, ptr %666, align 8, !tbaa !159
  %667 = load ptr, ptr %10, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.ImGuiWindow, ptr %667, i32 0, i32 31
  %669 = getelementptr inbounds %struct.ImVec2, ptr %668, i32 0, i32 0
  store float 0.000000e+00, ptr %669, align 8, !tbaa !160
  br label %670

670:                                              ; preds = %658, %651
  %671 = load ptr, ptr %8, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.ImGuiContext, ptr %671, i32 0, i32 89
  %673 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %672, i32 0, i32 8
  %674 = getelementptr inbounds %struct.ImVec2, ptr %673, i32 0, i32 1
  %675 = load float, ptr %674, align 4, !tbaa !161
  %676 = fcmp oge float %675, 0.000000e+00
  br i1 %676, label %677, label %689

677:                                              ; preds = %670
  %678 = load ptr, ptr %8, align 8, !tbaa !5
  %679 = getelementptr inbounds %struct.ImGuiContext, ptr %678, i32 0, i32 89
  %680 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %679, i32 0, i32 8
  %681 = getelementptr inbounds %struct.ImVec2, ptr %680, i32 0, i32 1
  %682 = load float, ptr %681, align 4, !tbaa !161
  %683 = load ptr, ptr %10, align 8, !tbaa !5
  %684 = getelementptr inbounds %struct.ImGuiWindow, ptr %683, i32 0, i32 30
  %685 = getelementptr inbounds %struct.ImVec2, ptr %684, i32 0, i32 1
  store float %682, ptr %685, align 4, !tbaa !162
  %686 = load ptr, ptr %10, align 8, !tbaa !5
  %687 = getelementptr inbounds %struct.ImGuiWindow, ptr %686, i32 0, i32 31
  %688 = getelementptr inbounds %struct.ImVec2, ptr %687, i32 0, i32 1
  store float 0.000000e+00, ptr %688, align 4, !tbaa !163
  br label %689

689:                                              ; preds = %677, %670
  br label %690

690:                                              ; preds = %689, %644
  %691 = load ptr, ptr %8, align 8, !tbaa !5
  %692 = getelementptr inbounds %struct.ImGuiContext, ptr %691, i32 0, i32 89
  %693 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %692, i32 0, i32 0
  %694 = load i32, ptr %693, align 8, !tbaa !124
  %695 = and i32 %694, 4
  %696 = icmp ne i32 %695, 0
  br i1 %696, label %697, label %703

697:                                              ; preds = %690
  %698 = load ptr, ptr %8, align 8, !tbaa !5
  %699 = getelementptr inbounds %struct.ImGuiContext, ptr %698, i32 0, i32 89
  %700 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %699, i32 0, i32 7
  %701 = load ptr, ptr %10, align 8, !tbaa !5
  %702 = getelementptr inbounds %struct.ImGuiWindow, ptr %701, i32 0, i32 12
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %702, ptr align 8 %700, i64 8, i1 false), !tbaa.struct !152
  br label %710

703:                                              ; preds = %690
  %704 = load i8, ptr %13, align 1, !tbaa !97, !range !93, !noundef !94
  %705 = trunc i8 %704 to i1
  br i1 %705, label %706, label %709

706:                                              ; preds = %703
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #12
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %707 = load ptr, ptr %10, align 8, !tbaa !5
  %708 = getelementptr inbounds %struct.ImGuiWindow, ptr %707, i32 0, i32 12
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %708, ptr align 4 %23, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #12
  br label %709

709:                                              ; preds = %706, %703
  br label %710

710:                                              ; preds = %709, %697
  %711 = load ptr, ptr %8, align 8, !tbaa !5
  %712 = getelementptr inbounds %struct.ImGuiContext, ptr %711, i32 0, i32 89
  %713 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %712, i32 0, i32 0
  %714 = load i32, ptr %713, align 8, !tbaa !124
  %715 = and i32 %714, 8
  %716 = icmp ne i32 %715, 0
  br i1 %716, label %717, label %728

717:                                              ; preds = %710
  %718 = load ptr, ptr %10, align 8, !tbaa !5
  %719 = load ptr, ptr %8, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.ImGuiContext, ptr %719, i32 0, i32 89
  %721 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %720, i32 0, i32 11
  %722 = load i8, ptr %721, align 8, !tbaa !164, !range !93, !noundef !94
  %723 = trunc i8 %722 to i1
  %724 = load ptr, ptr %8, align 8, !tbaa !5
  %725 = getelementptr inbounds %struct.ImGuiContext, ptr %724, i32 0, i32 89
  %726 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %725, i32 0, i32 3
  %727 = load i32, ptr %726, align 4, !tbaa !165
  call void @_ZN5ImGui18SetWindowCollapsedEP11ImGuiWindowbi(ptr noundef %718, i1 noundef zeroext %723, i32 noundef %727)
  br label %728

728:                                              ; preds = %717, %710
  %729 = load ptr, ptr %8, align 8, !tbaa !5
  %730 = getelementptr inbounds %struct.ImGuiContext, ptr %729, i32 0, i32 89
  %731 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %730, i32 0, i32 0
  %732 = load i32, ptr %731, align 8, !tbaa !124
  %733 = and i32 %732, 32
  %734 = icmp ne i32 %733, 0
  br i1 %734, label %735, label %737

735:                                              ; preds = %728
  %736 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindowi(ptr noundef %736, i32 noundef 0)
  br label %737

737:                                              ; preds = %735, %728
  %738 = load ptr, ptr %10, align 8, !tbaa !5
  %739 = getelementptr inbounds %struct.ImGuiWindow, ptr %738, i32 0, i32 43
  %740 = load i8, ptr %739, align 1, !tbaa !122, !range !93, !noundef !94
  %741 = trunc i8 %740 to i1
  br i1 %741, label %742, label %744

742:                                              ; preds = %737
  %743 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZL28SetWindowConditionAllowFlagsP11ImGuiWindowib(ptr noundef %743, i32 noundef 8, i1 noundef zeroext false)
  br label %744

744:                                              ; preds = %742, %737
  %745 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZN5ImGui23UpdateWindowSkipRefreshEP11ImGuiWindow(ptr noundef %745)
  %746 = load ptr, ptr %18, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.ImGuiWindowStackData, ptr %746, i32 0, i32 3
  %748 = load i8, ptr %747, align 2, !tbaa !140, !range !93, !noundef !94
  %749 = trunc i8 %748 to i1
  br i1 %749, label %750, label %757

750:                                              ; preds = %744
  %751 = load ptr, ptr %10, align 8, !tbaa !5
  %752 = getelementptr inbounds %struct.ImGuiWindow, ptr %751, i32 0, i32 93
  %753 = load ptr, ptr %752, align 8, !tbaa !166
  %754 = load ptr, ptr %10, align 8, !tbaa !5
  %755 = icmp eq ptr %753, %754
  br i1 %755, label %756, label %757

756:                                              ; preds = %750
  call void @_ZN5ImGui29BeginDisabledOverrideReenableEv()
  br label %757

757:                                              ; preds = %756, %750, %744
  %758 = load ptr, ptr %8, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.ImGuiContext, ptr %758, i32 0, i32 34
  store ptr null, ptr %759, align 8, !tbaa !136
  %760 = load i8, ptr %13, align 1, !tbaa !97, !range !93, !noundef !94
  %761 = trunc i8 %760 to i1
  br i1 %761, label %762, label %2920

762:                                              ; preds = %757
  %763 = load ptr, ptr %10, align 8, !tbaa !5
  %764 = getelementptr inbounds %struct.ImGuiWindow, ptr %763, i32 0, i32 42
  %765 = load i8, ptr %764, align 8, !tbaa !167, !range !93, !noundef !94
  %766 = trunc i8 %765 to i1
  br i1 %766, label %2920, label %767

767:                                              ; preds = %762
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #12
  %768 = load i32, ptr %7, align 4, !tbaa !9
  %769 = and i32 %768, 16777216
  %770 = icmp ne i32 %769, 0
  br i1 %770, label %771, label %775

771:                                              ; preds = %767
  %772 = load i32, ptr %7, align 4, !tbaa !9
  %773 = and i32 %772, 33554432
  %774 = icmp ne i32 %773, 0
  br label %775

775:                                              ; preds = %771, %767
  %776 = phi i1 [ false, %767 ], [ %774, %771 ]
  %777 = zext i1 %776 to i8
  store i8 %777, ptr %24, align 1, !tbaa !97
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #12
  %778 = load ptr, ptr %10, align 8, !tbaa !5
  %779 = getelementptr inbounds %struct.ImGuiWindow, ptr %778, i32 0, i32 61
  %780 = load i8, ptr %779, align 1, !tbaa !168
  %781 = sext i8 %780 to i32
  %782 = icmp sgt i32 %781, 0
  %783 = zext i1 %782 to i8
  store i8 %783, ptr %25, align 1, !tbaa !97
  %784 = load ptr, ptr %10, align 8, !tbaa !5
  %785 = getelementptr inbounds %struct.ImGuiWindow, ptr %784, i32 0, i32 36
  store i8 1, ptr %785, align 2, !tbaa !169
  %786 = load ptr, ptr %6, align 8, !tbaa !5
  %787 = icmp ne ptr %786, null
  %788 = load ptr, ptr %10, align 8, !tbaa !5
  %789 = getelementptr inbounds %struct.ImGuiWindow, ptr %788, i32 0, i32 47
  %790 = zext i1 %787 to i8
  store i8 %790, ptr %789, align 1, !tbaa !170
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #12
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %27, float noundef 0xC7EFFFFFE0000000, float noundef 0xC7EFFFFFE0000000, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000)
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %26, ptr noundef nonnull align 4 dereferenceable(16) %27)
  %791 = load ptr, ptr %10, align 8, !tbaa !5
  %792 = getelementptr inbounds %struct.ImGuiWindow, ptr %791, i32 0, i32 75
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %792, ptr align 4 %26, i64 16, i1 false), !tbaa.struct !171
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #12
  %793 = load ptr, ptr %10, align 8, !tbaa !5
  %794 = getelementptr inbounds %struct.ImGuiWindow, ptr %793, i32 0, i32 68
  call void @_ZN8ImVectorIjE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %794, i32 noundef 1)
  %795 = load ptr, ptr %10, align 8, !tbaa !5
  %796 = getelementptr inbounds %struct.ImGuiWindow, ptr %795, i32 0, i32 89
  %797 = load ptr, ptr %796, align 8, !tbaa !172
  call void @_ZN10ImDrawList17_ResetForNewFrameEv(ptr noundef nonnull align 8 dereferenceable(216) %797)
  %798 = load ptr, ptr %10, align 8, !tbaa !5
  %799 = getelementptr inbounds %struct.ImGuiWindow, ptr %798, i32 0, i32 69
  %800 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %799, i32 0, i32 29
  store i32 -1, ptr %800, align 8, !tbaa !173
  %801 = load ptr, ptr %10, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.ImGuiWindow, ptr %801, i32 0, i32 105
  %803 = load i8, ptr %802, align 4, !tbaa !174, !range !93, !noundef !94
  %804 = trunc i8 %803 to i1
  br i1 %804, label %805, label %807

805:                                              ; preds = %775
  %806 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZN5ImGui29GcAwakeTransientWindowBuffersEP11ImGuiWindow(ptr noundef %806)
  br label %807

807:                                              ; preds = %805, %775
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #12
  store i8 0, ptr %28, align 1, !tbaa !97
  %808 = load ptr, ptr %8, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.ImGuiContext, ptr %808, i32 0, i32 154
  %810 = load ptr, ptr %809, align 8, !tbaa !175
  %811 = icmp ne ptr %810, null
  br i1 %811, label %812, label %819

812:                                              ; preds = %807
  %813 = load ptr, ptr %10, align 8, !tbaa !5
  %814 = getelementptr inbounds %struct.ImGuiWindow, ptr %813, i32 0, i32 3
  %815 = load i32, ptr %814, align 4, !tbaa !123
  %816 = and i32 %815, 131072
  %817 = icmp eq i32 %816, 0
  br i1 %817, label %818, label %819

818:                                              ; preds = %812
  store i8 1, ptr %28, align 1, !tbaa !97
  br label %819

819:                                              ; preds = %818, %812, %807
  %820 = load i8, ptr %28, align 1, !tbaa !97, !range !93, !noundef !94
  %821 = trunc i8 %820 to i1
  br i1 %821, label %822, label %848

822:                                              ; preds = %819
  %823 = load i8, ptr %11, align 1, !tbaa !97, !range !93, !noundef !94
  %824 = trunc i8 %823 to i1
  br i1 %824, label %848, label %825

825:                                              ; preds = %822
  %826 = load ptr, ptr %5, align 8, !tbaa !5
  %827 = load ptr, ptr %10, align 8, !tbaa !5
  %828 = getelementptr inbounds %struct.ImGuiWindow, ptr %827, i32 0, i32 1
  %829 = load ptr, ptr %828, align 8, !tbaa !176
  %830 = call i32 @strcmp(ptr noundef %826, ptr noundef %829) #15
  %831 = icmp ne i32 %830, 0
  br i1 %831, label %832, label %848

832:                                              ; preds = %825
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #12
  %833 = load ptr, ptr %10, align 8, !tbaa !5
  %834 = getelementptr inbounds %struct.ImGuiWindow, ptr %833, i32 0, i32 24
  %835 = load i32, ptr %834, align 8, !tbaa !177
  %836 = sext i32 %835 to i64
  store i64 %836, ptr %29, align 8, !tbaa !178
  %837 = load ptr, ptr %10, align 8, !tbaa !5
  %838 = getelementptr inbounds %struct.ImGuiWindow, ptr %837, i32 0, i32 1
  %839 = load ptr, ptr %838, align 8, !tbaa !176
  %840 = load ptr, ptr %5, align 8, !tbaa !5
  %841 = call noundef ptr @_Z11ImStrdupcpyPcPmPKc(ptr noundef %839, ptr noundef %29, ptr noundef %840)
  %842 = load ptr, ptr %10, align 8, !tbaa !5
  %843 = getelementptr inbounds %struct.ImGuiWindow, ptr %842, i32 0, i32 1
  store ptr %841, ptr %843, align 8, !tbaa !176
  %844 = load i64, ptr %29, align 8, !tbaa !178
  %845 = trunc i64 %844 to i32
  %846 = load ptr, ptr %10, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.ImGuiWindow, ptr %846, i32 0, i32 24
  store i32 %845, ptr %847, align 8, !tbaa !177
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #12
  br label %848

848:                                              ; preds = %832, %825, %822, %819
  %849 = load ptr, ptr %10, align 8, !tbaa !5
  %850 = load ptr, ptr %10, align 8, !tbaa !5
  %851 = getelementptr inbounds %struct.ImGuiWindow, ptr %850, i32 0, i32 10
  %852 = load ptr, ptr %10, align 8, !tbaa !5
  %853 = getelementptr inbounds %struct.ImGuiWindow, ptr %852, i32 0, i32 11
  call void @_ZL22CalcWindowContentSizesP11ImGuiWindowP6ImVec2S2_(ptr noundef %849, ptr noundef %851, ptr noundef %853)
  %854 = load ptr, ptr %10, align 8, !tbaa !5
  %855 = getelementptr inbounds %struct.ImGuiWindow, ptr %854, i32 0, i32 60
  %856 = load i8, ptr %855, align 4, !tbaa !180
  %857 = sext i8 %856 to i32
  %858 = icmp sgt i32 %857, 0
  br i1 %858, label %859, label %864

859:                                              ; preds = %848
  %860 = load ptr, ptr %10, align 8, !tbaa !5
  %861 = getelementptr inbounds %struct.ImGuiWindow, ptr %860, i32 0, i32 60
  %862 = load i8, ptr %861, align 4, !tbaa !180
  %863 = add i8 %862, -1
  store i8 %863, ptr %861, align 4, !tbaa !180
  br label %864

864:                                              ; preds = %859, %848
  %865 = load ptr, ptr %10, align 8, !tbaa !5
  %866 = getelementptr inbounds %struct.ImGuiWindow, ptr %865, i32 0, i32 61
  %867 = load i8, ptr %866, align 1, !tbaa !168
  %868 = sext i8 %867 to i32
  %869 = icmp sgt i32 %868, 0
  br i1 %869, label %870, label %875

870:                                              ; preds = %864
  %871 = load ptr, ptr %10, align 8, !tbaa !5
  %872 = getelementptr inbounds %struct.ImGuiWindow, ptr %871, i32 0, i32 61
  %873 = load i8, ptr %872, align 1, !tbaa !168
  %874 = add i8 %873, -1
  store i8 %874, ptr %872, align 1, !tbaa !168
  br label %875

875:                                              ; preds = %870, %864
  %876 = load ptr, ptr %10, align 8, !tbaa !5
  %877 = getelementptr inbounds %struct.ImGuiWindow, ptr %876, i32 0, i32 62
  %878 = load i8, ptr %877, align 2, !tbaa !181
  %879 = sext i8 %878 to i32
  %880 = icmp sgt i32 %879, 0
  br i1 %880, label %881, label %886

881:                                              ; preds = %875
  %882 = load ptr, ptr %10, align 8, !tbaa !5
  %883 = getelementptr inbounds %struct.ImGuiWindow, ptr %882, i32 0, i32 62
  %884 = load i8, ptr %883, align 2, !tbaa !181
  %885 = add i8 %884, -1
  store i8 %885, ptr %883, align 2, !tbaa !181
  br label %886

886:                                              ; preds = %881, %875
  %887 = load i8, ptr %11, align 1, !tbaa !97, !range !93, !noundef !94
  %888 = trunc i8 %887 to i1
  br i1 %888, label %889, label %898

889:                                              ; preds = %886
  %890 = load i8, ptr %21, align 1, !tbaa !97, !range !93, !noundef !94
  %891 = trunc i8 %890 to i1
  br i1 %891, label %892, label %895

892:                                              ; preds = %889
  %893 = load i8, ptr %22, align 1, !tbaa !97, !range !93, !noundef !94
  %894 = trunc i8 %893 to i1
  br i1 %894, label %898, label %895

895:                                              ; preds = %892, %889
  %896 = load ptr, ptr %10, align 8, !tbaa !5
  %897 = getelementptr inbounds %struct.ImGuiWindow, ptr %896, i32 0, i32 61
  store i8 1, ptr %897, align 1, !tbaa !168
  br label %898

898:                                              ; preds = %895, %892, %886
  %899 = load i8, ptr %14, align 1, !tbaa !97, !range !93, !noundef !94
  %900 = trunc i8 %899 to i1
  br i1 %900, label %901, label %937

901:                                              ; preds = %898
  %902 = load i32, ptr %7, align 4, !tbaa !9
  %903 = and i32 %902, 100663296
  %904 = icmp ne i32 %903, 0
  br i1 %904, label %905, label %937

905:                                              ; preds = %901
  %906 = load ptr, ptr %10, align 8, !tbaa !5
  %907 = getelementptr inbounds %struct.ImGuiWindow, ptr %906, i32 0, i32 61
  store i8 1, ptr %907, align 1, !tbaa !168
  %908 = load i32, ptr %7, align 4, !tbaa !9
  %909 = and i32 %908, 64
  %910 = icmp ne i32 %909, 0
  br i1 %910, label %911, label %936

911:                                              ; preds = %905
  %912 = load i8, ptr %21, align 1, !tbaa !97, !range !93, !noundef !94
  %913 = trunc i8 %912 to i1
  br i1 %913, label %921, label %914

914:                                              ; preds = %911
  %915 = load ptr, ptr %10, align 8, !tbaa !5
  %916 = getelementptr inbounds %struct.ImGuiWindow, ptr %915, i32 0, i32 9
  %917 = getelementptr inbounds %struct.ImVec2, ptr %916, i32 0, i32 0
  store float 0.000000e+00, ptr %917, align 8, !tbaa !156
  %918 = load ptr, ptr %10, align 8, !tbaa !5
  %919 = getelementptr inbounds %struct.ImGuiWindow, ptr %918, i32 0, i32 8
  %920 = getelementptr inbounds %struct.ImVec2, ptr %919, i32 0, i32 0
  store float 0.000000e+00, ptr %920, align 8, !tbaa !182
  br label %921

921:                                              ; preds = %914, %911
  %922 = load i8, ptr %22, align 1, !tbaa !97, !range !93, !noundef !94
  %923 = trunc i8 %922 to i1
  br i1 %923, label %931, label %924

924:                                              ; preds = %921
  %925 = load ptr, ptr %10, align 8, !tbaa !5
  %926 = getelementptr inbounds %struct.ImGuiWindow, ptr %925, i32 0, i32 9
  %927 = getelementptr inbounds %struct.ImVec2, ptr %926, i32 0, i32 1
  store float 0.000000e+00, ptr %927, align 4, !tbaa !157
  %928 = load ptr, ptr %10, align 8, !tbaa !5
  %929 = getelementptr inbounds %struct.ImGuiWindow, ptr %928, i32 0, i32 8
  %930 = getelementptr inbounds %struct.ImVec2, ptr %929, i32 0, i32 1
  store float 0.000000e+00, ptr %930, align 4, !tbaa !183
  br label %931

931:                                              ; preds = %924, %921
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #12
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %932 = load ptr, ptr %10, align 8, !tbaa !5
  %933 = getelementptr inbounds %struct.ImGuiWindow, ptr %932, i32 0, i32 11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %933, ptr align 4 %30, i64 8, i1 false), !tbaa.struct !152
  %934 = load ptr, ptr %10, align 8, !tbaa !5
  %935 = getelementptr inbounds %struct.ImGuiWindow, ptr %934, i32 0, i32 10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %935, ptr align 4 %933, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #12
  br label %936

936:                                              ; preds = %931, %905
  br label %937

937:                                              ; preds = %936, %901, %898
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #12
  %938 = call noundef ptr @_ZN5ImGui15GetMainViewportEv()
  store ptr %938, ptr %31, align 8, !tbaa !5
  %939 = load ptr, ptr %10, align 8, !tbaa !5
  %940 = load ptr, ptr %31, align 8, !tbaa !5
  call void @_ZN5ImGui17SetWindowViewportEP11ImGuiWindowP14ImGuiViewportP(ptr noundef %939, ptr noundef %940)
  %941 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZL16SetCurrentWindowP11ImGuiWindow(ptr noundef %941)
  %942 = load i32, ptr %7, align 4, !tbaa !9
  %943 = and i32 %942, 16777216
  %944 = icmp ne i32 %943, 0
  br i1 %944, label %945, label %951

945:                                              ; preds = %937
  %946 = load ptr, ptr %9, align 8, !tbaa !5
  %947 = getelementptr inbounds %struct.ImGuiStyle, ptr %946, i32 0, i32 10
  %948 = load float, ptr %947, align 4, !tbaa !184
  %949 = load ptr, ptr %10, align 8, !tbaa !5
  %950 = getelementptr inbounds %struct.ImGuiWindow, ptr %949, i32 0, i32 15
  store float %948, ptr %950, align 4, !tbaa !185
  br label %971

951:                                              ; preds = %937
  %952 = load i32, ptr %7, align 4, !tbaa !9
  %953 = and i32 %952, 100663296
  %954 = icmp ne i32 %953, 0
  br i1 %954, label %955, label %963

955:                                              ; preds = %951
  %956 = load i32, ptr %7, align 4, !tbaa !9
  %957 = and i32 %956, 134217728
  %958 = icmp ne i32 %957, 0
  br i1 %958, label %963, label %959

959:                                              ; preds = %955
  %960 = load ptr, ptr %9, align 8, !tbaa !5
  %961 = getelementptr inbounds %struct.ImGuiStyle, ptr %960, i32 0, i32 12
  %962 = load float, ptr %961, align 4, !tbaa !186
  br label %967

963:                                              ; preds = %955, %951
  %964 = load ptr, ptr %9, align 8, !tbaa !5
  %965 = getelementptr inbounds %struct.ImGuiStyle, ptr %964, i32 0, i32 4
  %966 = load float, ptr %965, align 4, !tbaa !187
  br label %967

967:                                              ; preds = %963, %959
  %968 = phi float [ %962, %959 ], [ %966, %963 ]
  %969 = load ptr, ptr %10, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.ImGuiWindow, ptr %969, i32 0, i32 15
  store float %968, ptr %970, align 4, !tbaa !185
  br label %971

971:                                              ; preds = %967, %945
  %972 = load ptr, ptr %9, align 8, !tbaa !5
  %973 = getelementptr inbounds %struct.ImGuiStyle, ptr %972, i32 0, i32 2
  %974 = load ptr, ptr %10, align 8, !tbaa !5
  %975 = getelementptr inbounds %struct.ImGuiWindow, ptr %974, i32 0, i32 13
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %975, ptr align 4 %973, i64 8, i1 false), !tbaa.struct !152
  %976 = load i32, ptr %7, align 4, !tbaa !9
  %977 = and i32 %976, 16777216
  %978 = icmp ne i32 %977, 0
  br i1 %978, label %979, label %1008

979:                                              ; preds = %971
  %980 = load i32, ptr %7, align 4, !tbaa !9
  %981 = and i32 %980, 67108864
  %982 = icmp ne i32 %981, 0
  br i1 %982, label %1008, label %983

983:                                              ; preds = %979
  %984 = load ptr, ptr %10, align 8, !tbaa !5
  %985 = getelementptr inbounds %struct.ImGuiWindow, ptr %984, i32 0, i32 4
  %986 = load i32, ptr %985, align 8, !tbaa !126
  %987 = and i32 %986, 2
  %988 = icmp ne i32 %987, 0
  br i1 %988, label %1008, label %989

989:                                              ; preds = %983
  %990 = load ptr, ptr %10, align 8, !tbaa !5
  %991 = getelementptr inbounds %struct.ImGuiWindow, ptr %990, i32 0, i32 15
  %992 = load float, ptr %991, align 4, !tbaa !185
  %993 = fcmp oeq float %992, 0.000000e+00
  br i1 %993, label %994, label %1008

994:                                              ; preds = %989
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #12
  %995 = load i32, ptr %7, align 4, !tbaa !9
  %996 = and i32 %995, 1024
  %997 = icmp ne i32 %996, 0
  br i1 %997, label %998, label %1003

998:                                              ; preds = %994
  %999 = load ptr, ptr %9, align 8, !tbaa !5
  %1000 = getelementptr inbounds %struct.ImGuiStyle, ptr %999, i32 0, i32 2
  %1001 = getelementptr inbounds %struct.ImVec2, ptr %1000, i32 0, i32 1
  %1002 = load float, ptr %1001, align 4, !tbaa !188
  br label %1004

1003:                                             ; preds = %994
  br label %1004

1004:                                             ; preds = %1003, %998
  %1005 = phi float [ %1002, %998 ], [ 0.000000e+00, %1003 ]
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef 0.000000e+00, float noundef %1005)
  %1006 = load ptr, ptr %10, align 8, !tbaa !5
  %1007 = getelementptr inbounds %struct.ImGuiWindow, ptr %1006, i32 0, i32 13
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1007, ptr align 4 %32, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #12
  br label %1008

1008:                                             ; preds = %1004, %989, %983, %979, %971
  %1009 = load ptr, ptr %10, align 8, !tbaa !5
  %1010 = getelementptr inbounds %struct.ImGuiWindow, ptr %1009, i32 0, i32 13
  %1011 = getelementptr inbounds %struct.ImVec2, ptr %1010, i32 0, i32 0
  %1012 = load float, ptr %1011, align 8, !tbaa !189
  %1013 = load ptr, ptr %9, align 8, !tbaa !5
  %1014 = getelementptr inbounds %struct.ImGuiStyle, ptr %1013, i32 0, i32 16
  %1015 = getelementptr inbounds %struct.ImVec2, ptr %1014, i32 0, i32 0
  %1016 = load float, ptr %1015, align 4, !tbaa !190
  %1017 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1012, float noundef %1016)
  %1018 = load ptr, ptr %8, align 8, !tbaa !5
  %1019 = getelementptr inbounds %struct.ImGuiContext, ptr %1018, i32 0, i32 89
  %1020 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %1019, i32 0, i32 16
  %1021 = getelementptr inbounds %struct.ImVec2, ptr %1020, i32 0, i32 0
  %1022 = load float, ptr %1021, align 4, !tbaa !191
  %1023 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1017, float noundef %1022)
  %1024 = load ptr, ptr %10, align 8, !tbaa !5
  %1025 = getelementptr inbounds %struct.ImGuiWindow, ptr %1024, i32 0, i32 69
  %1026 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1025, i32 0, i32 22
  %1027 = getelementptr inbounds %struct.ImVec2, ptr %1026, i32 0, i32 0
  store float %1023, ptr %1027, align 4, !tbaa !192
  %1028 = load ptr, ptr %8, align 8, !tbaa !5
  %1029 = getelementptr inbounds %struct.ImGuiContext, ptr %1028, i32 0, i32 89
  %1030 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %1029, i32 0, i32 16
  %1031 = getelementptr inbounds %struct.ImVec2, ptr %1030, i32 0, i32 1
  %1032 = load float, ptr %1031, align 4, !tbaa !193
  %1033 = load ptr, ptr %10, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.ImGuiWindow, ptr %1033, i32 0, i32 69
  %1035 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1034, i32 0, i32 22
  %1036 = getelementptr inbounds %struct.ImVec2, ptr %1035, i32 0, i32 1
  store float %1032, ptr %1036, align 4, !tbaa !194
  %1037 = load i32, ptr %7, align 4, !tbaa !9
  %1038 = and i32 %1037, 1
  %1039 = icmp ne i32 %1038, 0
  br i1 %1039, label %1040, label %1041

1040:                                             ; preds = %1008
  br label %1051

1041:                                             ; preds = %1008
  %1042 = load ptr, ptr %8, align 8, !tbaa !5
  %1043 = getelementptr inbounds %struct.ImGuiContext, ptr %1042, i32 0, i32 6
  %1044 = load float, ptr %1043, align 8, !tbaa !195
  %1045 = load ptr, ptr %8, align 8, !tbaa !5
  %1046 = getelementptr inbounds %struct.ImGuiContext, ptr %1045, i32 0, i32 4
  %1047 = getelementptr inbounds %struct.ImGuiStyle, ptr %1046, i32 0, i32 13
  %1048 = getelementptr inbounds %struct.ImVec2, ptr %1047, i32 0, i32 1
  %1049 = load float, ptr %1048, align 4, !tbaa !196
  %1050 = call float @llvm.fmuladd.f32(float %1049, float 2.000000e+00, float %1044)
  br label %1051

1051:                                             ; preds = %1041, %1040
  %1052 = phi float [ 0.000000e+00, %1040 ], [ %1050, %1041 ]
  %1053 = load ptr, ptr %10, align 8, !tbaa !5
  %1054 = getelementptr inbounds %struct.ImGuiWindow, ptr %1053, i32 0, i32 16
  store float %1052, ptr %1054, align 8, !tbaa !197
  %1055 = load i32, ptr %7, align 4, !tbaa !9
  %1056 = and i32 %1055, 1024
  %1057 = icmp ne i32 %1056, 0
  br i1 %1057, label %1058, label %1074

1058:                                             ; preds = %1051
  %1059 = load ptr, ptr %10, align 8, !tbaa !5
  %1060 = getelementptr inbounds %struct.ImGuiWindow, ptr %1059, i32 0, i32 69
  %1061 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1060, i32 0, i32 22
  %1062 = getelementptr inbounds %struct.ImVec2, ptr %1061, i32 0, i32 1
  %1063 = load float, ptr %1062, align 4, !tbaa !194
  %1064 = load ptr, ptr %8, align 8, !tbaa !5
  %1065 = getelementptr inbounds %struct.ImGuiContext, ptr %1064, i32 0, i32 6
  %1066 = load float, ptr %1065, align 8, !tbaa !195
  %1067 = fadd float %1063, %1066
  %1068 = load ptr, ptr %8, align 8, !tbaa !5
  %1069 = getelementptr inbounds %struct.ImGuiContext, ptr %1068, i32 0, i32 4
  %1070 = getelementptr inbounds %struct.ImGuiStyle, ptr %1069, i32 0, i32 13
  %1071 = getelementptr inbounds %struct.ImVec2, ptr %1070, i32 0, i32 1
  %1072 = load float, ptr %1071, align 4, !tbaa !196
  %1073 = call float @llvm.fmuladd.f32(float %1072, float 2.000000e+00, float %1067)
  br label %1075

1074:                                             ; preds = %1051
  br label %1075

1075:                                             ; preds = %1074, %1058
  %1076 = phi float [ %1073, %1058 ], [ 0.000000e+00, %1074 ]
  %1077 = load ptr, ptr %10, align 8, !tbaa !5
  %1078 = getelementptr inbounds %struct.ImGuiWindow, ptr %1077, i32 0, i32 17
  store float %1076, ptr %1078, align 4, !tbaa !198
  %1079 = load ptr, ptr %8, align 8, !tbaa !5
  %1080 = getelementptr inbounds %struct.ImGuiContext, ptr %1079, i32 0, i32 6
  %1081 = load float, ptr %1080, align 8, !tbaa !195
  %1082 = load ptr, ptr %10, align 8, !tbaa !5
  %1083 = getelementptr inbounds %struct.ImGuiWindow, ptr %1082, i32 0, i32 87
  store float %1081, ptr %1083, align 8, !tbaa !199
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #12
  %1084 = load i8, ptr %11, align 1, !tbaa !97, !range !93, !noundef !94
  %1085 = trunc i8 %1084 to i1
  %1086 = zext i1 %1085 to i8
  store i8 %1086, ptr %33, align 1, !tbaa !97
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #12
  %1087 = load i8, ptr %11, align 1, !tbaa !97, !range !93, !noundef !94
  %1088 = trunc i8 %1087 to i1
  %1089 = zext i1 %1088 to i8
  store i8 %1089, ptr %34, align 1, !tbaa !97
  %1090 = load i8, ptr %21, align 1, !tbaa !97, !range !93, !noundef !94
  %1091 = trunc i8 %1090 to i1
  br i1 %1091, label %1092, label %1099

1092:                                             ; preds = %1075
  %1093 = load ptr, ptr %10, align 8, !tbaa !5
  %1094 = getelementptr inbounds %struct.ImGuiWindow, ptr %1093, i32 0, i32 12
  %1095 = getelementptr inbounds %struct.ImVec2, ptr %1094, i32 0, i32 0
  %1096 = load float, ptr %1095, align 8, !tbaa !200
  %1097 = fcmp une float %1096, 0.000000e+00
  br i1 %1097, label %1098, label %1099

1098:                                             ; preds = %1092
  store i8 1, ptr %33, align 1, !tbaa !97
  br label %1099

1099:                                             ; preds = %1098, %1092, %1075
  %1100 = load i8, ptr %22, align 1, !tbaa !97, !range !93, !noundef !94
  %1101 = trunc i8 %1100 to i1
  br i1 %1101, label %1102, label %1109

1102:                                             ; preds = %1099
  %1103 = load ptr, ptr %10, align 8, !tbaa !5
  %1104 = getelementptr inbounds %struct.ImGuiWindow, ptr %1103, i32 0, i32 12
  %1105 = getelementptr inbounds %struct.ImVec2, ptr %1104, i32 0, i32 1
  %1106 = load float, ptr %1105, align 4, !tbaa !201
  %1107 = fcmp une float %1106, 0.000000e+00
  br i1 %1107, label %1108, label %1109

1108:                                             ; preds = %1102
  store i8 1, ptr %34, align 1, !tbaa !97
  br label %1109

1109:                                             ; preds = %1108, %1102, %1099
  %1110 = load i32, ptr %7, align 4, !tbaa !9
  %1111 = and i32 %1110, 1
  %1112 = icmp ne i32 %1111, 0
  br i1 %1112, label %1185, label %1113

1113:                                             ; preds = %1109
  %1114 = load i32, ptr %7, align 4, !tbaa !9
  %1115 = and i32 %1114, 32
  %1116 = icmp ne i32 %1115, 0
  br i1 %1116, label %1185, label %1117

1117:                                             ; preds = %1113
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #12
  %1118 = load ptr, ptr %10, align 8, !tbaa !5
  %1119 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(1061) %1118)
  %1120 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %35, i32 0, i32 0
  %1121 = extractvalue { <2 x float>, <2 x float> } %1119, 0
  store <2 x float> %1121, ptr %1120, align 4
  %1122 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %35, i32 0, i32 1
  %1123 = extractvalue { <2 x float>, <2 x float> } %1119, 1
  store <2 x float> %1123, ptr %1122, align 4
  %1124 = load ptr, ptr %8, align 8, !tbaa !5
  %1125 = getelementptr inbounds %struct.ImGuiContext, ptr %1124, i32 0, i32 35
  %1126 = load ptr, ptr %1125, align 8, !tbaa !202
  %1127 = load ptr, ptr %10, align 8, !tbaa !5
  %1128 = icmp eq ptr %1126, %1127
  br i1 %1128, label %1129, label %1163

1129:                                             ; preds = %1117
  %1130 = load ptr, ptr %8, align 8, !tbaa !5
  %1131 = getelementptr inbounds %struct.ImGuiContext, ptr %1130, i32 0, i32 48
  %1132 = load i32, ptr %1131, align 4, !tbaa !203
  %1133 = icmp eq i32 %1132, 0
  br i1 %1133, label %1134, label %1163

1134:                                             ; preds = %1129
  %1135 = load ptr, ptr %8, align 8, !tbaa !5
  %1136 = getelementptr inbounds %struct.ImGuiContext, ptr %1135, i32 0, i32 49
  %1137 = load i32, ptr %1136, align 8, !tbaa !204
  %1138 = icmp eq i32 %1137, 0
  br i1 %1138, label %1139, label %1163

1139:                                             ; preds = %1134
  %1140 = load ptr, ptr %8, align 8, !tbaa !5
  %1141 = getelementptr inbounds %struct.ImGuiContext, ptr %1140, i32 0, i32 56
  %1142 = load i32, ptr %1141, align 4, !tbaa !205
  %1143 = icmp eq i32 %1142, 0
  br i1 %1143, label %1144, label %1163

1144:                                             ; preds = %1139
  %1145 = getelementptr inbounds %struct.ImRect, ptr %35, i32 0, i32 0
  %1146 = getelementptr inbounds %struct.ImRect, ptr %35, i32 0, i32 1
  %1147 = call noundef zeroext i1 @_ZN5ImGui19IsMouseHoveringRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %1145, ptr noundef nonnull align 4 dereferenceable(8) %1146, i1 noundef zeroext true)
  br i1 %1147, label %1148, label %1163

1148:                                             ; preds = %1144
  %1149 = load ptr, ptr %8, align 8, !tbaa !5
  %1150 = getelementptr inbounds %struct.ImGuiContext, ptr %1149, i32 0, i32 2
  %1151 = getelementptr inbounds %struct.ImGuiIO, ptr %1150, i32 0, i32 83
  %1152 = getelementptr inbounds [5 x i16], ptr %1151, i64 0, i64 0
  %1153 = load i16, ptr %1152, align 2, !tbaa !206
  %1154 = zext i16 %1153 to i32
  %1155 = icmp eq i32 %1154, 2
  br i1 %1155, label %1156, label %1162

1156:                                             ; preds = %1148
  %1157 = call noundef i32 @_ZN5ImGui11GetKeyOwnerE8ImGuiKey(i32 noundef 655)
  %1158 = icmp eq i32 %1157, -1
  br i1 %1158, label %1159, label %1162

1159:                                             ; preds = %1156
  %1160 = load ptr, ptr %10, align 8, !tbaa !5
  %1161 = getelementptr inbounds %struct.ImGuiWindow, ptr %1160, i32 0, i32 40
  store i8 1, ptr %1161, align 2, !tbaa !207
  br label %1162

1162:                                             ; preds = %1159, %1156, %1148
  br label %1163

1163:                                             ; preds = %1162, %1144, %1139, %1134, %1129, %1117
  %1164 = load ptr, ptr %10, align 8, !tbaa !5
  %1165 = getelementptr inbounds %struct.ImGuiWindow, ptr %1164, i32 0, i32 40
  %1166 = load i8, ptr %1165, align 2, !tbaa !207, !range !93, !noundef !94
  %1167 = trunc i8 %1166 to i1
  br i1 %1167, label %1168, label %1184

1168:                                             ; preds = %1163
  %1169 = load ptr, ptr %10, align 8, !tbaa !5
  %1170 = getelementptr inbounds %struct.ImGuiWindow, ptr %1169, i32 0, i32 39
  %1171 = load i8, ptr %1170, align 1, !tbaa !208, !range !93, !noundef !94
  %1172 = trunc i8 %1171 to i1
  %1173 = xor i1 %1172, true
  %1174 = load ptr, ptr %10, align 8, !tbaa !5
  %1175 = getelementptr inbounds %struct.ImGuiWindow, ptr %1174, i32 0, i32 39
  %1176 = zext i1 %1173 to i8
  store i8 %1176, ptr %1175, align 1, !tbaa !208
  %1177 = load ptr, ptr %10, align 8, !tbaa !5
  %1178 = getelementptr inbounds %struct.ImGuiWindow, ptr %1177, i32 0, i32 39
  %1179 = load i8, ptr %1178, align 1, !tbaa !208, !range !93, !noundef !94
  %1180 = trunc i8 %1179 to i1
  br i1 %1180, label %1182, label %1181

1181:                                             ; preds = %1168
  store i8 1, ptr %34, align 1, !tbaa !97
  br label %1182

1182:                                             ; preds = %1181, %1168
  %1183 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZN5ImGui20MarkIniSettingsDirtyEP11ImGuiWindow(ptr noundef %1183)
  br label %1184

1184:                                             ; preds = %1182, %1163
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #12
  br label %1188

1185:                                             ; preds = %1113, %1109
  %1186 = load ptr, ptr %10, align 8, !tbaa !5
  %1187 = getelementptr inbounds %struct.ImGuiWindow, ptr %1186, i32 0, i32 39
  store i8 0, ptr %1187, align 1, !tbaa !208
  br label %1188

1188:                                             ; preds = %1185, %1184
  %1189 = load ptr, ptr %10, align 8, !tbaa !5
  %1190 = getelementptr inbounds %struct.ImGuiWindow, ptr %1189, i32 0, i32 40
  store i8 0, ptr %1190, align 2, !tbaa !207
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #12
  %1191 = load ptr, ptr %10, align 8, !tbaa !5
  %1192 = getelementptr inbounds %struct.ImGuiWindow, ptr %1191, i32 0, i32 33
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %36, ptr align 8 %1192, i64 8, i1 false), !tbaa.struct !152
  %1193 = load ptr, ptr %10, align 8, !tbaa !5
  %1194 = getelementptr inbounds %struct.ImGuiWindow, ptr %1193, i32 0, i32 18
  store float 0.000000e+00, ptr %1194, align 8, !tbaa !209
  %1195 = load ptr, ptr %10, align 8, !tbaa !5
  %1196 = getelementptr inbounds %struct.ImGuiWindow, ptr %1195, i32 0, i32 20
  store float 0.000000e+00, ptr %1196, align 8, !tbaa !210
  %1197 = load ptr, ptr %10, align 8, !tbaa !5
  %1198 = getelementptr inbounds %struct.ImGuiWindow, ptr %1197, i32 0, i32 16
  %1199 = load float, ptr %1198, align 8, !tbaa !197
  %1200 = load ptr, ptr %10, align 8, !tbaa !5
  %1201 = getelementptr inbounds %struct.ImGuiWindow, ptr %1200, i32 0, i32 17
  %1202 = load float, ptr %1201, align 4, !tbaa !198
  %1203 = fadd float %1199, %1202
  %1204 = load ptr, ptr %10, align 8, !tbaa !5
  %1205 = getelementptr inbounds %struct.ImGuiWindow, ptr %1204, i32 0, i32 19
  store float %1203, ptr %1205, align 4, !tbaa !211
  %1206 = load ptr, ptr %10, align 8, !tbaa !5
  %1207 = getelementptr inbounds %struct.ImGuiWindow, ptr %1206, i32 0, i32 21
  store float 0.000000e+00, ptr %1207, align 4, !tbaa !212
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #12
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %37, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %1208 = load ptr, ptr %10, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.ImGuiWindow, ptr %1208, i32 0, i32 33
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1209, ptr align 4 %37, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #12
  %1210 = load ptr, ptr %10, align 8, !tbaa !5
  %1211 = load ptr, ptr %10, align 8, !tbaa !5
  %1212 = getelementptr inbounds %struct.ImGuiWindow, ptr %1211, i32 0, i32 11
  %1213 = call <2 x float> @_ZL21CalcWindowAutoFitSizeP11ImGuiWindowRK6ImVec2(ptr noundef %1210, ptr noundef nonnull align 4 dereferenceable(8) %1212)
  store <2 x float> %1213, ptr %38, align 4
  %1214 = load i32, ptr %7, align 4, !tbaa !9
  %1215 = and i32 %1214, 64
  %1216 = icmp ne i32 %1215, 0
  br i1 %1216, label %1217, label %1241

1217:                                             ; preds = %1188
  %1218 = load ptr, ptr %10, align 8, !tbaa !5
  %1219 = getelementptr inbounds %struct.ImGuiWindow, ptr %1218, i32 0, i32 39
  %1220 = load i8, ptr %1219, align 1, !tbaa !208, !range !93, !noundef !94
  %1221 = trunc i8 %1220 to i1
  br i1 %1221, label %1241, label %1222

1222:                                             ; preds = %1217
  %1223 = load i8, ptr %21, align 1, !tbaa !97, !range !93, !noundef !94
  %1224 = trunc i8 %1223 to i1
  br i1 %1224, label %1231, label %1225

1225:                                             ; preds = %1222
  %1226 = getelementptr inbounds %struct.ImVec2, ptr %38, i32 0, i32 0
  %1227 = load float, ptr %1226, align 4, !tbaa !213
  %1228 = load ptr, ptr %10, align 8, !tbaa !5
  %1229 = getelementptr inbounds %struct.ImGuiWindow, ptr %1228, i32 0, i32 9
  %1230 = getelementptr inbounds %struct.ImVec2, ptr %1229, i32 0, i32 0
  store float %1227, ptr %1230, align 8, !tbaa !156
  store i8 1, ptr %33, align 1, !tbaa !97
  br label %1231

1231:                                             ; preds = %1225, %1222
  %1232 = load i8, ptr %22, align 1, !tbaa !97, !range !93, !noundef !94
  %1233 = trunc i8 %1232 to i1
  br i1 %1233, label %1240, label %1234

1234:                                             ; preds = %1231
  %1235 = getelementptr inbounds %struct.ImVec2, ptr %38, i32 0, i32 1
  %1236 = load float, ptr %1235, align 4, !tbaa !214
  %1237 = load ptr, ptr %10, align 8, !tbaa !5
  %1238 = getelementptr inbounds %struct.ImGuiWindow, ptr %1237, i32 0, i32 9
  %1239 = getelementptr inbounds %struct.ImVec2, ptr %1238, i32 0, i32 1
  store float %1236, ptr %1239, align 4, !tbaa !157
  store i8 1, ptr %34, align 1, !tbaa !97
  br label %1240

1240:                                             ; preds = %1234, %1231
  br label %1322

1241:                                             ; preds = %1217, %1188
  %1242 = load ptr, ptr %10, align 8, !tbaa !5
  %1243 = getelementptr inbounds %struct.ImGuiWindow, ptr %1242, i32 0, i32 55
  %1244 = load i8, ptr %1243, align 2, !tbaa !215
  %1245 = sext i8 %1244 to i32
  %1246 = icmp sgt i32 %1245, 0
  br i1 %1246, label %1253, label %1247

1247:                                             ; preds = %1241
  %1248 = load ptr, ptr %10, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.ImGuiWindow, ptr %1248, i32 0, i32 56
  %1250 = load i8, ptr %1249, align 1, !tbaa !216
  %1251 = sext i8 %1250 to i32
  %1252 = icmp sgt i32 %1251, 0
  br i1 %1252, label %1253, label %1321

1253:                                             ; preds = %1247, %1241
  %1254 = load i8, ptr %21, align 1, !tbaa !97, !range !93, !noundef !94
  %1255 = trunc i8 %1254 to i1
  br i1 %1255, label %1283, label %1256

1256:                                             ; preds = %1253
  %1257 = load ptr, ptr %10, align 8, !tbaa !5
  %1258 = getelementptr inbounds %struct.ImGuiWindow, ptr %1257, i32 0, i32 55
  %1259 = load i8, ptr %1258, align 2, !tbaa !215
  %1260 = sext i8 %1259 to i32
  %1261 = icmp sgt i32 %1260, 0
  br i1 %1261, label %1262, label %1283

1262:                                             ; preds = %1256
  %1263 = load ptr, ptr %10, align 8, !tbaa !5
  %1264 = getelementptr inbounds %struct.ImGuiWindow, ptr %1263, i32 0, i32 57
  %1265 = load i8, ptr %1264, align 4, !tbaa !217, !range !93, !noundef !94
  %1266 = trunc i8 %1265 to i1
  br i1 %1266, label %1267, label %1275

1267:                                             ; preds = %1262
  %1268 = load ptr, ptr %10, align 8, !tbaa !5
  %1269 = getelementptr inbounds %struct.ImGuiWindow, ptr %1268, i32 0, i32 9
  %1270 = getelementptr inbounds %struct.ImVec2, ptr %1269, i32 0, i32 0
  %1271 = load float, ptr %1270, align 8, !tbaa !156
  %1272 = getelementptr inbounds %struct.ImVec2, ptr %38, i32 0, i32 0
  %1273 = load float, ptr %1272, align 4, !tbaa !213
  %1274 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1271, float noundef %1273)
  br label %1278

1275:                                             ; preds = %1262
  %1276 = getelementptr inbounds %struct.ImVec2, ptr %38, i32 0, i32 0
  %1277 = load float, ptr %1276, align 4, !tbaa !213
  br label %1278

1278:                                             ; preds = %1275, %1267
  %1279 = phi float [ %1274, %1267 ], [ %1277, %1275 ]
  %1280 = load ptr, ptr %10, align 8, !tbaa !5
  %1281 = getelementptr inbounds %struct.ImGuiWindow, ptr %1280, i32 0, i32 9
  %1282 = getelementptr inbounds %struct.ImVec2, ptr %1281, i32 0, i32 0
  store float %1279, ptr %1282, align 8, !tbaa !156
  store i8 1, ptr %33, align 1, !tbaa !97
  br label %1283

1283:                                             ; preds = %1278, %1256, %1253
  %1284 = load i8, ptr %22, align 1, !tbaa !97, !range !93, !noundef !94
  %1285 = trunc i8 %1284 to i1
  br i1 %1285, label %1313, label %1286

1286:                                             ; preds = %1283
  %1287 = load ptr, ptr %10, align 8, !tbaa !5
  %1288 = getelementptr inbounds %struct.ImGuiWindow, ptr %1287, i32 0, i32 56
  %1289 = load i8, ptr %1288, align 1, !tbaa !216
  %1290 = sext i8 %1289 to i32
  %1291 = icmp sgt i32 %1290, 0
  br i1 %1291, label %1292, label %1313

1292:                                             ; preds = %1286
  %1293 = load ptr, ptr %10, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.ImGuiWindow, ptr %1293, i32 0, i32 57
  %1295 = load i8, ptr %1294, align 4, !tbaa !217, !range !93, !noundef !94
  %1296 = trunc i8 %1295 to i1
  br i1 %1296, label %1297, label %1305

1297:                                             ; preds = %1292
  %1298 = load ptr, ptr %10, align 8, !tbaa !5
  %1299 = getelementptr inbounds %struct.ImGuiWindow, ptr %1298, i32 0, i32 9
  %1300 = getelementptr inbounds %struct.ImVec2, ptr %1299, i32 0, i32 1
  %1301 = load float, ptr %1300, align 4, !tbaa !157
  %1302 = getelementptr inbounds %struct.ImVec2, ptr %38, i32 0, i32 1
  %1303 = load float, ptr %1302, align 4, !tbaa !214
  %1304 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1301, float noundef %1303)
  br label %1308

1305:                                             ; preds = %1292
  %1306 = getelementptr inbounds %struct.ImVec2, ptr %38, i32 0, i32 1
  %1307 = load float, ptr %1306, align 4, !tbaa !214
  br label %1308

1308:                                             ; preds = %1305, %1297
  %1309 = phi float [ %1304, %1297 ], [ %1307, %1305 ]
  %1310 = load ptr, ptr %10, align 8, !tbaa !5
  %1311 = getelementptr inbounds %struct.ImGuiWindow, ptr %1310, i32 0, i32 9
  %1312 = getelementptr inbounds %struct.ImVec2, ptr %1311, i32 0, i32 1
  store float %1309, ptr %1312, align 4, !tbaa !157
  store i8 1, ptr %34, align 1, !tbaa !97
  br label %1313

1313:                                             ; preds = %1308, %1286, %1283
  %1314 = load ptr, ptr %10, align 8, !tbaa !5
  %1315 = getelementptr inbounds %struct.ImGuiWindow, ptr %1314, i32 0, i32 39
  %1316 = load i8, ptr %1315, align 1, !tbaa !208, !range !93, !noundef !94
  %1317 = trunc i8 %1316 to i1
  br i1 %1317, label %1320, label %1318

1318:                                             ; preds = %1313
  %1319 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZN5ImGui20MarkIniSettingsDirtyEP11ImGuiWindow(ptr noundef %1319)
  br label %1320

1320:                                             ; preds = %1318, %1313
  br label %1321

1321:                                             ; preds = %1320, %1247
  br label %1322

1322:                                             ; preds = %1321, %1240
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #12
  %1323 = load ptr, ptr %10, align 8, !tbaa !5
  %1324 = load ptr, ptr %10, align 8, !tbaa !5
  %1325 = getelementptr inbounds %struct.ImGuiWindow, ptr %1324, i32 0, i32 9
  %1326 = call <2 x float> @_ZL29CalcWindowSizeAfterConstraintP11ImGuiWindowRK6ImVec2(ptr noundef %1323, ptr noundef nonnull align 4 dereferenceable(8) %1325)
  store <2 x float> %1326, ptr %39, align 4
  %1327 = load ptr, ptr %10, align 8, !tbaa !5
  %1328 = getelementptr inbounds %struct.ImGuiWindow, ptr %1327, i32 0, i32 9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1328, ptr align 4 %39, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #12
  %1329 = load ptr, ptr %10, align 8, !tbaa !5
  %1330 = getelementptr inbounds %struct.ImGuiWindow, ptr %1329, i32 0, i32 39
  %1331 = load i8, ptr %1330, align 1, !tbaa !208, !range !93, !noundef !94
  %1332 = trunc i8 %1331 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #12
  br i1 %1332, label %1333, label %1345

1333:                                             ; preds = %1322
  %1334 = load i32, ptr %7, align 4, !tbaa !9
  %1335 = and i32 %1334, 16777216
  %1336 = icmp ne i32 %1335, 0
  br i1 %1336, label %1345, label %1337

1337:                                             ; preds = %1333
  %1338 = load ptr, ptr %10, align 8, !tbaa !5
  %1339 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(1061) %1338)
  %1340 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %41, i32 0, i32 0
  %1341 = extractvalue { <2 x float>, <2 x float> } %1339, 0
  store <2 x float> %1341, ptr %1340, align 4
  %1342 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %41, i32 0, i32 1
  %1343 = extractvalue { <2 x float>, <2 x float> } %1339, 1
  store <2 x float> %1343, ptr %1342, align 4
  %1344 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %41)
  store <2 x float> %1344, ptr %40, align 4
  br label %1348

1345:                                             ; preds = %1333, %1322
  %1346 = load ptr, ptr %10, align 8, !tbaa !5
  %1347 = getelementptr inbounds %struct.ImGuiWindow, ptr %1346, i32 0, i32 9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %40, ptr align 8 %1347, i64 8, i1 false), !tbaa.struct !152
  br label %1348

1348:                                             ; preds = %1345, %1337
  %1349 = load ptr, ptr %10, align 8, !tbaa !5
  %1350 = getelementptr inbounds %struct.ImGuiWindow, ptr %1349, i32 0, i32 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1350, ptr align 4 %40, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #12
  %1351 = load i8, ptr %14, align 1, !tbaa !97, !range !93, !noundef !94
  %1352 = trunc i8 %1351 to i1
  br i1 %1352, label %1353, label %1374

1353:                                             ; preds = %1348
  %1354 = load ptr, ptr %10, align 8, !tbaa !5
  %1355 = getelementptr inbounds %struct.ImGuiWindow, ptr %1354, i32 0, i32 59
  store i32 -1, ptr %1355, align 8, !tbaa !218
  %1356 = load i32, ptr %7, align 4, !tbaa !9
  %1357 = and i32 %1356, 67108864
  %1358 = icmp ne i32 %1357, 0
  br i1 %1358, label %1359, label %1373

1359:                                             ; preds = %1353
  %1360 = load i32, ptr %7, align 4, !tbaa !9
  %1361 = and i32 %1360, 134217728
  %1362 = icmp ne i32 %1361, 0
  br i1 %1362, label %1373, label %1363

1363:                                             ; preds = %1359
  %1364 = load i8, ptr %20, align 1, !tbaa !97, !range !93, !noundef !94
  %1365 = trunc i8 %1364 to i1
  br i1 %1365, label %1373, label %1366

1366:                                             ; preds = %1363
  %1367 = load ptr, ptr %8, align 8, !tbaa !5
  %1368 = getelementptr inbounds %struct.ImGuiContext, ptr %1367, i32 0, i32 99
  %1369 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %1368)
  %1370 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1369, i32 0, i32 7
  %1371 = load ptr, ptr %10, align 8, !tbaa !5
  %1372 = getelementptr inbounds %struct.ImGuiWindow, ptr %1371, i32 0, i32 7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1372, ptr align 4 %1370, i64 8, i1 false), !tbaa.struct !152
  br label %1373

1373:                                             ; preds = %1366, %1363, %1359, %1353
  br label %1374

1374:                                             ; preds = %1373, %1348
  %1375 = load i32, ptr %7, align 4, !tbaa !9
  %1376 = and i32 %1375, 16777216
  %1377 = icmp ne i32 %1376, 0
  br i1 %1377, label %1378, label %1419

1378:                                             ; preds = %1374
  %1379 = load ptr, ptr %17, align 8, !tbaa !5
  %1380 = icmp ne ptr %1379, null
  br i1 %1380, label %1381, label %1386

1381:                                             ; preds = %1378
  %1382 = load ptr, ptr %17, align 8, !tbaa !5
  %1383 = getelementptr inbounds %struct.ImGuiWindow, ptr %1382, i32 0, i32 36
  %1384 = load i8, ptr %1383, align 2, !tbaa !169, !range !93, !noundef !94
  %1385 = trunc i8 %1384 to i1
  br label %1386

1386:                                             ; preds = %1381, %1378
  %1387 = phi i1 [ false, %1378 ], [ %1385, %1381 ]
  br i1 %1387, label %1388, label %1389

1388:                                             ; preds = %1386
  br label %1391

1389:                                             ; preds = %1386
  call void @__assert_fail(ptr noundef @.str.151, ptr noundef @.str.3, i32 noundef 7362, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

1390:                                             ; No predecessors!
  br label %1391

1391:                                             ; preds = %1390, %1388
  %1392 = load ptr, ptr %17, align 8, !tbaa !5
  %1393 = getelementptr inbounds %struct.ImGuiWindow, ptr %1392, i32 0, i32 69
  %1394 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1393, i32 0, i32 26
  %1395 = getelementptr inbounds %struct.ImVector.2, ptr %1394, i32 0, i32 0
  %1396 = load i32, ptr %1395, align 8, !tbaa !219
  %1397 = trunc i32 %1396 to i16
  %1398 = load ptr, ptr %10, align 8, !tbaa !5
  %1399 = getelementptr inbounds %struct.ImGuiWindow, ptr %1398, i32 0, i32 52
  store i16 %1397, ptr %1399, align 4, !tbaa !129
  %1400 = load ptr, ptr %17, align 8, !tbaa !5
  %1401 = getelementptr inbounds %struct.ImGuiWindow, ptr %1400, i32 0, i32 69
  %1402 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1401, i32 0, i32 26
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %1402, ptr noundef nonnull align 8 dereferenceable(8) %10)
  %1403 = load i32, ptr %7, align 4, !tbaa !9
  %1404 = and i32 %1403, 67108864
  %1405 = icmp ne i32 %1404, 0
  br i1 %1405, label %1418, label %1406

1406:                                             ; preds = %1391
  %1407 = load i8, ptr %20, align 1, !tbaa !97, !range !93, !noundef !94
  %1408 = trunc i8 %1407 to i1
  br i1 %1408, label %1418, label %1409

1409:                                             ; preds = %1406
  %1410 = load i8, ptr %24, align 1, !tbaa !97, !range !93, !noundef !94
  %1411 = trunc i8 %1410 to i1
  br i1 %1411, label %1418, label %1412

1412:                                             ; preds = %1409
  %1413 = load ptr, ptr %17, align 8, !tbaa !5
  %1414 = getelementptr inbounds %struct.ImGuiWindow, ptr %1413, i32 0, i32 69
  %1415 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1414, i32 0, i32 0
  %1416 = load ptr, ptr %10, align 8, !tbaa !5
  %1417 = getelementptr inbounds %struct.ImGuiWindow, ptr %1416, i32 0, i32 7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1417, ptr align 8 %1415, i64 8, i1 false), !tbaa.struct !152
  br label %1418

1418:                                             ; preds = %1412, %1409, %1406, %1391
  br label %1419

1419:                                             ; preds = %1418, %1374
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #12
  %1420 = load ptr, ptr %10, align 8, !tbaa !5
  %1421 = getelementptr inbounds %struct.ImGuiWindow, ptr %1420, i32 0, i32 65
  %1422 = getelementptr inbounds %struct.ImVec2, ptr %1421, i32 0, i32 0
  %1423 = load float, ptr %1422, align 4, !tbaa !220
  %1424 = fcmp une float %1423, 0x47EFFFFFE0000000
  br i1 %1424, label %1425, label %1431

1425:                                             ; preds = %1419
  %1426 = load ptr, ptr %10, align 8, !tbaa !5
  %1427 = getelementptr inbounds %struct.ImGuiWindow, ptr %1426, i32 0, i32 61
  %1428 = load i8, ptr %1427, align 1, !tbaa !168
  %1429 = sext i8 %1428 to i32
  %1430 = icmp eq i32 %1429, 0
  br label %1431

1431:                                             ; preds = %1425, %1419
  %1432 = phi i1 [ false, %1419 ], [ %1430, %1425 ]
  %1433 = zext i1 %1432 to i8
  store i8 %1433, ptr %42, align 1, !tbaa !97
  %1434 = load i8, ptr %42, align 1, !tbaa !97, !range !93, !noundef !94
  %1435 = trunc i8 %1434 to i1
  br i1 %1435, label %1436, label %1446

1436:                                             ; preds = %1431
  %1437 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #12
  %1438 = load ptr, ptr %10, align 8, !tbaa !5
  %1439 = getelementptr inbounds %struct.ImGuiWindow, ptr %1438, i32 0, i32 65
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #12
  %1440 = load ptr, ptr %10, align 8, !tbaa !5
  %1441 = getelementptr inbounds %struct.ImGuiWindow, ptr %1440, i32 0, i32 8
  %1442 = load ptr, ptr %10, align 8, !tbaa !5
  %1443 = getelementptr inbounds %struct.ImGuiWindow, ptr %1442, i32 0, i32 66
  %1444 = call <2 x float> @_ZmlRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1441, ptr noundef nonnull align 4 dereferenceable(8) %1443)
  store <2 x float> %1444, ptr %44, align 4
  %1445 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1439, ptr noundef nonnull align 4 dereferenceable(8) %44)
  store <2 x float> %1445, ptr %43, align 4
  call void @_ZN5ImGui12SetWindowPosEP11ImGuiWindowRK6ImVec2i(ptr noundef %1437, ptr noundef nonnull align 4 dereferenceable(8) %43, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #12
  br label %1488

1446:                                             ; preds = %1431
  %1447 = load i32, ptr %7, align 4, !tbaa !9
  %1448 = and i32 %1447, 268435456
  %1449 = icmp ne i32 %1448, 0
  br i1 %1449, label %1450, label %1455

1450:                                             ; preds = %1446
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #12
  %1451 = load ptr, ptr %10, align 8, !tbaa !5
  %1452 = call <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef %1451)
  store <2 x float> %1452, ptr %45, align 4
  %1453 = load ptr, ptr %10, align 8, !tbaa !5
  %1454 = getelementptr inbounds %struct.ImGuiWindow, ptr %1453, i32 0, i32 7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1454, ptr align 4 %45, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #12
  br label %1487

1455:                                             ; preds = %1446
  %1456 = load i32, ptr %7, align 4, !tbaa !9
  %1457 = and i32 %1456, 67108864
  %1458 = icmp ne i32 %1457, 0
  br i1 %1458, label %1459, label %1470

1459:                                             ; preds = %1455
  %1460 = load i8, ptr %20, align 1, !tbaa !97, !range !93, !noundef !94
  %1461 = trunc i8 %1460 to i1
  br i1 %1461, label %1470, label %1462

1462:                                             ; preds = %1459
  %1463 = load i8, ptr %25, align 1, !tbaa !97, !range !93, !noundef !94
  %1464 = trunc i8 %1463 to i1
  br i1 %1464, label %1465, label %1470

1465:                                             ; preds = %1462
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #12
  %1466 = load ptr, ptr %10, align 8, !tbaa !5
  %1467 = call <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef %1466)
  store <2 x float> %1467, ptr %46, align 4
  %1468 = load ptr, ptr %10, align 8, !tbaa !5
  %1469 = getelementptr inbounds %struct.ImGuiWindow, ptr %1468, i32 0, i32 7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1469, ptr align 4 %46, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #12
  br label %1486

1470:                                             ; preds = %1462, %1459, %1455
  %1471 = load i32, ptr %7, align 4, !tbaa !9
  %1472 = and i32 %1471, 33554432
  %1473 = icmp ne i32 %1472, 0
  br i1 %1473, label %1474, label %1485

1474:                                             ; preds = %1470
  %1475 = load i8, ptr %20, align 1, !tbaa !97, !range !93, !noundef !94
  %1476 = trunc i8 %1475 to i1
  br i1 %1476, label %1485, label %1477

1477:                                             ; preds = %1474
  %1478 = load i8, ptr %24, align 1, !tbaa !97, !range !93, !noundef !94
  %1479 = trunc i8 %1478 to i1
  br i1 %1479, label %1485, label %1480

1480:                                             ; preds = %1477
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #12
  %1481 = load ptr, ptr %10, align 8, !tbaa !5
  %1482 = call <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef %1481)
  store <2 x float> %1482, ptr %47, align 4
  %1483 = load ptr, ptr %10, align 8, !tbaa !5
  %1484 = getelementptr inbounds %struct.ImGuiWindow, ptr %1483, i32 0, i32 7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1484, ptr align 4 %47, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #12
  br label %1485

1485:                                             ; preds = %1480, %1477, %1474, %1470
  br label %1486

1486:                                             ; preds = %1485, %1465
  br label %1487

1487:                                             ; preds = %1486, %1450
  br label %1488

1488:                                             ; preds = %1487, %1436
  call void @llvm.lifetime.start.p0(i64 16, ptr %48) #12
  %1489 = load ptr, ptr %31, align 8, !tbaa !5
  %1490 = call { <2 x float>, <2 x float> } @_ZNK14ImGuiViewportP11GetMainRectEv(ptr noundef nonnull align 8 dereferenceable(208) %1489)
  %1491 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %48, i32 0, i32 0
  %1492 = extractvalue { <2 x float>, <2 x float> } %1490, 0
  store <2 x float> %1492, ptr %1491, align 4
  %1493 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %48, i32 0, i32 1
  %1494 = extractvalue { <2 x float>, <2 x float> } %1490, 1
  store <2 x float> %1494, ptr %1493, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #12
  %1495 = load ptr, ptr %31, align 8, !tbaa !5
  %1496 = call { <2 x float>, <2 x float> } @_ZNK14ImGuiViewportP11GetWorkRectEv(ptr noundef nonnull align 8 dereferenceable(208) %1495)
  %1497 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %49, i32 0, i32 0
  %1498 = extractvalue { <2 x float>, <2 x float> } %1496, 0
  store <2 x float> %1498, ptr %1497, align 4
  %1499 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %49, i32 0, i32 1
  %1500 = extractvalue { <2 x float>, <2 x float> } %1496, 1
  store <2 x float> %1500, ptr %1499, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #12
  %1501 = load ptr, ptr %9, align 8, !tbaa !5
  %1502 = getelementptr inbounds %struct.ImGuiStyle, ptr %1501, i32 0, i32 42
  %1503 = load ptr, ptr %9, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.ImGuiStyle, ptr %1503, i32 0, i32 43
  %1505 = call <2 x float> @_ZL5ImMaxRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1502, ptr noundef nonnull align 4 dereferenceable(8) %1504)
  store <2 x float> %1505, ptr %50, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %51) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #12
  %1506 = getelementptr inbounds %struct.ImRect, ptr %49, i32 0, i32 0
  %1507 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1506, ptr noundef nonnull align 4 dereferenceable(8) %50)
  store <2 x float> %1507, ptr %52, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #12
  %1508 = getelementptr inbounds %struct.ImRect, ptr %49, i32 0, i32 1
  %1509 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1508, ptr noundef nonnull align 4 dereferenceable(8) %50)
  store <2 x float> %1509, ptr %53, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %51, ptr noundef nonnull align 4 dereferenceable(8) %52, ptr noundef nonnull align 4 dereferenceable(8) %53)
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #12
  %1510 = load i8, ptr %20, align 1, !tbaa !97, !range !93, !noundef !94
  %1511 = trunc i8 %1510 to i1
  br i1 %1511, label %1525, label %1512

1512:                                             ; preds = %1488
  %1513 = load i32, ptr %7, align 4, !tbaa !9
  %1514 = and i32 %1513, 16777216
  %1515 = icmp ne i32 %1514, 0
  br i1 %1515, label %1525, label %1516

1516:                                             ; preds = %1512
  %1517 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %48)
  %1518 = fcmp ogt float %1517, 0.000000e+00
  br i1 %1518, label %1519, label %1524

1519:                                             ; preds = %1516
  %1520 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %48)
  %1521 = fcmp ogt float %1520, 0.000000e+00
  br i1 %1521, label %1522, label %1524

1522:                                             ; preds = %1519
  %1523 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZL14ClampWindowPosP11ImGuiWindowRK6ImRect(ptr noundef %1523, ptr noundef nonnull align 4 dereferenceable(16) %51)
  br label %1524

1524:                                             ; preds = %1522, %1519, %1516
  br label %1525

1525:                                             ; preds = %1524, %1512, %1488
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #12
  %1526 = load ptr, ptr %10, align 8, !tbaa !5
  %1527 = getelementptr inbounds %struct.ImGuiWindow, ptr %1526, i32 0, i32 7
  %1528 = call <2 x float> @_ZL7ImTruncRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %1527)
  store <2 x float> %1528, ptr %54, align 4
  %1529 = load ptr, ptr %10, align 8, !tbaa !5
  %1530 = getelementptr inbounds %struct.ImGuiWindow, ptr %1529, i32 0, i32 7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1530, ptr align 4 %54, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #12
  %1531 = load i32, ptr %7, align 4, !tbaa !9
  %1532 = and i32 %1531, 16777216
  %1533 = icmp ne i32 %1532, 0
  br i1 %1533, label %1534, label %1538

1534:                                             ; preds = %1525
  %1535 = load ptr, ptr %9, align 8, !tbaa !5
  %1536 = getelementptr inbounds %struct.ImGuiStyle, ptr %1535, i32 0, i32 9
  %1537 = load float, ptr %1536, align 4, !tbaa !221
  br label %1556

1538:                                             ; preds = %1525
  %1539 = load i32, ptr %7, align 4, !tbaa !9
  %1540 = and i32 %1539, 67108864
  %1541 = icmp ne i32 %1540, 0
  br i1 %1541, label %1542, label %1550

1542:                                             ; preds = %1538
  %1543 = load i32, ptr %7, align 4, !tbaa !9
  %1544 = and i32 %1543, 134217728
  %1545 = icmp ne i32 %1544, 0
  br i1 %1545, label %1550, label %1546

1546:                                             ; preds = %1542
  %1547 = load ptr, ptr %9, align 8, !tbaa !5
  %1548 = getelementptr inbounds %struct.ImGuiStyle, ptr %1547, i32 0, i32 11
  %1549 = load float, ptr %1548, align 4, !tbaa !222
  br label %1554

1550:                                             ; preds = %1542, %1538
  %1551 = load ptr, ptr %9, align 8, !tbaa !5
  %1552 = getelementptr inbounds %struct.ImGuiStyle, ptr %1551, i32 0, i32 3
  %1553 = load float, ptr %1552, align 4, !tbaa !223
  br label %1554

1554:                                             ; preds = %1550, %1546
  %1555 = phi float [ %1549, %1546 ], [ %1553, %1550 ]
  br label %1556

1556:                                             ; preds = %1554, %1534
  %1557 = phi float [ %1537, %1534 ], [ %1555, %1554 ]
  %1558 = load ptr, ptr %10, align 8, !tbaa !5
  %1559 = getelementptr inbounds %struct.ImGuiWindow, ptr %1558, i32 0, i32 14
  store float %1557, ptr %1559, align 8, !tbaa !224
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #12
  store i8 0, ptr %55, align 1, !tbaa !97
  %1560 = load i8, ptr %14, align 1, !tbaa !97, !range !93, !noundef !94
  %1561 = trunc i8 %1560 to i1
  br i1 %1561, label %1562, label %1578

1562:                                             ; preds = %1556
  %1563 = load i32, ptr %7, align 4, !tbaa !9
  %1564 = and i32 %1563, 4096
  %1565 = icmp ne i32 %1564, 0
  br i1 %1565, label %1578, label %1566

1566:                                             ; preds = %1562
  %1567 = load i32, ptr %7, align 4, !tbaa !9
  %1568 = and i32 %1567, 67108864
  %1569 = icmp ne i32 %1568, 0
  br i1 %1569, label %1570, label %1571

1570:                                             ; preds = %1566
  store i8 1, ptr %55, align 1, !tbaa !97
  br label %1577

1571:                                             ; preds = %1566
  %1572 = load i32, ptr %7, align 4, !tbaa !9
  %1573 = and i32 %1572, 50331648
  %1574 = icmp eq i32 %1573, 0
  br i1 %1574, label %1575, label %1576

1575:                                             ; preds = %1571
  store i8 1, ptr %55, align 1, !tbaa !97
  br label %1576

1576:                                             ; preds = %1575, %1571
  br label %1577

1577:                                             ; preds = %1576, %1570
  br label %1578

1578:                                             ; preds = %1577, %1562, %1556
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #12
  store i32 -1, ptr %56, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #12
  store i32 -1, ptr %57, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #12
  call void @llvm.memset.p0.i64(ptr align 16 %58, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #12
  %1579 = load i32, ptr %7, align 4, !tbaa !9
  %1580 = and i32 %1579, 16777216
  %1581 = icmp ne i32 %1580, 0
  br i1 %1581, label %1582, label %1587

1582:                                             ; preds = %1578
  %1583 = load i32, ptr %7, align 4, !tbaa !9
  %1584 = and i32 %1583, 67108864
  %1585 = icmp ne i32 %1584, 0
  br i1 %1585, label %1587, label %1586

1586:                                             ; preds = %1582
  br label %1595

1587:                                             ; preds = %1582, %1578
  %1588 = load ptr, ptr %8, align 8, !tbaa !5
  %1589 = getelementptr inbounds %struct.ImGuiContext, ptr %1588, i32 0, i32 2
  %1590 = getelementptr inbounds %struct.ImGuiIO, ptr %1589, i32 0, i32 26
  %1591 = load i8, ptr %1590, align 1, !tbaa !225, !range !93, !noundef !94
  %1592 = trunc i8 %1591 to i1
  %1593 = zext i1 %1592 to i64
  %1594 = select i1 %1592, i32 2, i32 1
  br label %1595

1595:                                             ; preds = %1587, %1586
  %1596 = phi i32 [ 0, %1586 ], [ %1594, %1587 ]
  store i32 %1596, ptr %59, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #12
  %1597 = load ptr, ptr %8, align 8, !tbaa !5
  %1598 = getelementptr inbounds %struct.ImGuiContext, ptr %1597, i32 0, i32 6
  %1599 = load float, ptr %1598, align 8, !tbaa !195
  %1600 = fmul float %1599, 0x3FF19999A0000000
  %1601 = load ptr, ptr %10, align 8, !tbaa !5
  %1602 = getelementptr inbounds %struct.ImGuiWindow, ptr %1601, i32 0, i32 14
  %1603 = load float, ptr %1602, align 8, !tbaa !224
  %1604 = fadd float %1603, 1.000000e+00
  %1605 = load ptr, ptr %8, align 8, !tbaa !5
  %1606 = getelementptr inbounds %struct.ImGuiContext, ptr %1605, i32 0, i32 6
  %1607 = load float, ptr %1606, align 8, !tbaa !195
  %1608 = call float @llvm.fmuladd.f32(float %1607, float 0x3FC99999A0000000, float %1604)
  %1609 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1600, float noundef %1608)
  %1610 = fptosi float %1609 to i32
  %1611 = sitofp i32 %1610 to float
  store float %1611, ptr %60, align 4, !tbaa !138
  %1612 = load ptr, ptr %10, align 8, !tbaa !5
  %1613 = getelementptr inbounds %struct.ImGuiWindow, ptr %1612, i32 0, i32 39
  %1614 = load i8, ptr %1613, align 1, !tbaa !208, !range !93, !noundef !94
  %1615 = trunc i8 %1614 to i1
  br i1 %1615, label %1635, label %1616

1616:                                             ; preds = %1595
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #12
  %1617 = load ptr, ptr %10, align 8, !tbaa !5
  %1618 = load i32, ptr %59, align 4, !tbaa !9
  %1619 = getelementptr inbounds [4 x i32], ptr %58, i64 0, i64 0
  %1620 = call noundef i32 @_ZN5ImGuiL24UpdateWindowManualResizeEP11ImGuiWindowRK6ImVec2PiS5_iPjRK6ImRect(ptr noundef %1617, ptr noundef nonnull align 4 dereferenceable(8) %38, ptr noundef %56, ptr noundef %57, i32 noundef %1618, ptr noundef %1619, ptr noundef nonnull align 4 dereferenceable(16) %51)
  store i32 %1620, ptr %61, align 4, !tbaa !9
  %1621 = load i32, ptr %61, align 4, !tbaa !9
  %1622 = icmp ne i32 %1621, 0
  br i1 %1622, label %1623, label %1634

1623:                                             ; preds = %1616
  %1624 = load i32, ptr %61, align 4, !tbaa !9
  %1625 = and i32 %1624, 1
  %1626 = icmp ne i32 %1625, 0
  br i1 %1626, label %1627, label %1628

1627:                                             ; preds = %1623
  store i8 1, ptr %33, align 1, !tbaa !97
  br label %1628

1628:                                             ; preds = %1627, %1623
  %1629 = load i32, ptr %61, align 4, !tbaa !9
  %1630 = and i32 %1629, 2
  %1631 = icmp ne i32 %1630, 0
  br i1 %1631, label %1632, label %1633

1632:                                             ; preds = %1628
  store i8 1, ptr %34, align 1, !tbaa !97
  br label %1633

1633:                                             ; preds = %1632, %1628
  br label %1634

1634:                                             ; preds = %1633, %1616
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #12
  br label %1635

1635:                                             ; preds = %1634, %1595
  %1636 = load i32, ptr %56, align 4, !tbaa !9
  %1637 = trunc i32 %1636 to i8
  %1638 = load ptr, ptr %10, align 8, !tbaa !5
  %1639 = getelementptr inbounds %struct.ImGuiWindow, ptr %1638, i32 0, i32 48
  store i8 %1637, ptr %1639, align 2, !tbaa !226
  %1640 = load i32, ptr %57, align 4, !tbaa !9
  %1641 = trunc i32 %1640 to i8
  %1642 = load ptr, ptr %10, align 8, !tbaa !5
  %1643 = getelementptr inbounds %struct.ImGuiWindow, ptr %1642, i32 0, i32 49
  store i8 %1641, ptr %1643, align 1, !tbaa !227
  %1644 = load ptr, ptr %10, align 8, !tbaa !5
  %1645 = getelementptr inbounds %struct.ImGuiWindow, ptr %1644, i32 0, i32 39
  %1646 = load i8, ptr %1645, align 1, !tbaa !208, !range !93, !noundef !94
  %1647 = trunc i8 %1646 to i1
  br i1 %1647, label %1824, label %1648

1648:                                             ; preds = %1635
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #12
  %1649 = load ptr, ptr %10, align 8, !tbaa !5
  %1650 = getelementptr inbounds %struct.ImGuiWindow, ptr %1649, i32 0, i32 9
  %1651 = getelementptr inbounds %struct.ImVec2, ptr %1650, i32 0, i32 0
  %1652 = load float, ptr %1651, align 8, !tbaa !156
  %1653 = load ptr, ptr %10, align 8, !tbaa !5
  %1654 = getelementptr inbounds %struct.ImGuiWindow, ptr %1653, i32 0, i32 9
  %1655 = getelementptr inbounds %struct.ImVec2, ptr %1654, i32 0, i32 1
  %1656 = load float, ptr %1655, align 4, !tbaa !157
  %1657 = load ptr, ptr %10, align 8, !tbaa !5
  %1658 = getelementptr inbounds %struct.ImGuiWindow, ptr %1657, i32 0, i32 19
  %1659 = load float, ptr %1658, align 4, !tbaa !211
  %1660 = load ptr, ptr %10, align 8, !tbaa !5
  %1661 = getelementptr inbounds %struct.ImGuiWindow, ptr %1660, i32 0, i32 21
  %1662 = load float, ptr %1661, align 4, !tbaa !212
  %1663 = fadd float %1659, %1662
  %1664 = fsub float %1656, %1663
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %62, float noundef %1652, float noundef %1664)
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #12
  %1665 = load ptr, ptr %10, align 8, !tbaa !5
  %1666 = getelementptr inbounds %struct.ImGuiWindow, ptr %1665, i32 0, i32 71
  %1667 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %1666)
  store <2 x float> %1667, ptr %64, align 4
  %1668 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %64, ptr noundef nonnull align 4 dereferenceable(8) %36)
  store <2 x float> %1668, ptr %63, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #12
  %1669 = load i8, ptr %11, align 1, !tbaa !97, !range !93, !noundef !94
  %1670 = trunc i8 %1669 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #12
  br i1 %1670, label %1671, label %1672

1671:                                             ; preds = %1648
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %65, float noundef 0.000000e+00, float noundef 0.000000e+00)
  br label %1679

1672:                                             ; preds = %1648
  %1673 = load ptr, ptr %10, align 8, !tbaa !5
  %1674 = getelementptr inbounds %struct.ImGuiWindow, ptr %1673, i32 0, i32 10
  %1675 = load ptr, ptr %10, align 8, !tbaa !5
  %1676 = getelementptr inbounds %struct.ImGuiWindow, ptr %1675, i32 0, i32 13
  %1677 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %1676, float noundef 2.000000e+00)
  store <2 x float> %1677, ptr %66, align 4
  %1678 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1674, ptr noundef nonnull align 4 dereferenceable(8) %66)
  store <2 x float> %1678, ptr %65, align 4
  br label %1679

1679:                                             ; preds = %1672, %1671
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #12
  %1680 = load i8, ptr %33, align 1, !tbaa !97, !range !93, !noundef !94
  %1681 = trunc i8 %1680 to i1
  br i1 %1681, label %1682, label %1685

1682:                                             ; preds = %1679
  %1683 = getelementptr inbounds %struct.ImVec2, ptr %62, i32 0, i32 0
  %1684 = load float, ptr %1683, align 4, !tbaa !213
  br label %1688

1685:                                             ; preds = %1679
  %1686 = getelementptr inbounds %struct.ImVec2, ptr %63, i32 0, i32 0
  %1687 = load float, ptr %1686, align 4, !tbaa !213
  br label %1688

1688:                                             ; preds = %1685, %1682
  %1689 = phi float [ %1684, %1682 ], [ %1687, %1685 ]
  store float %1689, ptr %67, align 4, !tbaa !138
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #12
  %1690 = load i8, ptr %34, align 1, !tbaa !97, !range !93, !noundef !94
  %1691 = trunc i8 %1690 to i1
  br i1 %1691, label %1692, label %1695

1692:                                             ; preds = %1688
  %1693 = getelementptr inbounds %struct.ImVec2, ptr %62, i32 0, i32 1
  %1694 = load float, ptr %1693, align 4, !tbaa !214
  br label %1698

1695:                                             ; preds = %1688
  %1696 = getelementptr inbounds %struct.ImVec2, ptr %63, i32 0, i32 1
  %1697 = load float, ptr %1696, align 4, !tbaa !214
  br label %1698

1698:                                             ; preds = %1695, %1692
  %1699 = phi float [ %1694, %1692 ], [ %1697, %1695 ]
  store float %1699, ptr %68, align 4, !tbaa !138
  %1700 = load i32, ptr %7, align 4, !tbaa !9
  %1701 = and i32 %1700, 16384
  %1702 = icmp ne i32 %1701, 0
  br i1 %1702, label %1715, label %1703

1703:                                             ; preds = %1698
  %1704 = getelementptr inbounds %struct.ImVec2, ptr %65, i32 0, i32 1
  %1705 = load float, ptr %1704, align 4, !tbaa !214
  %1706 = load float, ptr %68, align 4, !tbaa !138
  %1707 = fcmp ogt float %1705, %1706
  br i1 %1707, label %1708, label %1713

1708:                                             ; preds = %1703
  %1709 = load i32, ptr %7, align 4, !tbaa !9
  %1710 = and i32 %1709, 8
  %1711 = icmp ne i32 %1710, 0
  %1712 = xor i1 %1711, true
  br label %1713

1713:                                             ; preds = %1708, %1703
  %1714 = phi i1 [ false, %1703 ], [ %1712, %1708 ]
  br label %1715

1715:                                             ; preds = %1713, %1698
  %1716 = phi i1 [ true, %1698 ], [ %1714, %1713 ]
  %1717 = load ptr, ptr %10, align 8, !tbaa !5
  %1718 = getelementptr inbounds %struct.ImGuiWindow, ptr %1717, i32 0, i32 35
  %1719 = zext i1 %1716 to i8
  store i8 %1719, ptr %1718, align 1, !tbaa !228
  %1720 = load i32, ptr %7, align 4, !tbaa !9
  %1721 = and i32 %1720, 32768
  %1722 = icmp ne i32 %1721, 0
  br i1 %1722, label %1750, label %1723

1723:                                             ; preds = %1715
  %1724 = getelementptr inbounds %struct.ImVec2, ptr %65, i32 0, i32 0
  %1725 = load float, ptr %1724, align 4, !tbaa !213
  %1726 = load float, ptr %67, align 4, !tbaa !138
  %1727 = load ptr, ptr %10, align 8, !tbaa !5
  %1728 = getelementptr inbounds %struct.ImGuiWindow, ptr %1727, i32 0, i32 35
  %1729 = load i8, ptr %1728, align 1, !tbaa !228, !range !93, !noundef !94
  %1730 = trunc i8 %1729 to i1
  br i1 %1730, label %1731, label %1735

1731:                                             ; preds = %1723
  %1732 = load ptr, ptr %9, align 8, !tbaa !5
  %1733 = getelementptr inbounds %struct.ImGuiStyle, ptr %1732, i32 0, i32 22
  %1734 = load float, ptr %1733, align 4, !tbaa !229
  br label %1736

1735:                                             ; preds = %1723
  br label %1736

1736:                                             ; preds = %1735, %1731
  %1737 = phi float [ %1734, %1731 ], [ 0.000000e+00, %1735 ]
  %1738 = fsub float %1726, %1737
  %1739 = fcmp ogt float %1725, %1738
  br i1 %1739, label %1740, label %1748

1740:                                             ; preds = %1736
  %1741 = load i32, ptr %7, align 4, !tbaa !9
  %1742 = and i32 %1741, 8
  %1743 = icmp ne i32 %1742, 0
  br i1 %1743, label %1748, label %1744

1744:                                             ; preds = %1740
  %1745 = load i32, ptr %7, align 4, !tbaa !9
  %1746 = and i32 %1745, 2048
  %1747 = icmp ne i32 %1746, 0
  br label %1748

1748:                                             ; preds = %1744, %1740, %1736
  %1749 = phi i1 [ false, %1740 ], [ false, %1736 ], [ %1747, %1744 ]
  br label %1750

1750:                                             ; preds = %1748, %1715
  %1751 = phi i1 [ true, %1715 ], [ %1749, %1748 ]
  %1752 = load ptr, ptr %10, align 8, !tbaa !5
  %1753 = getelementptr inbounds %struct.ImGuiWindow, ptr %1752, i32 0, i32 34
  %1754 = zext i1 %1751 to i8
  store i8 %1754, ptr %1753, align 8, !tbaa !230
  %1755 = load ptr, ptr %10, align 8, !tbaa !5
  %1756 = getelementptr inbounds %struct.ImGuiWindow, ptr %1755, i32 0, i32 34
  %1757 = load i8, ptr %1756, align 8, !tbaa !230, !range !93, !noundef !94
  %1758 = trunc i8 %1757 to i1
  br i1 %1758, label %1759, label %1783

1759:                                             ; preds = %1750
  %1760 = load ptr, ptr %10, align 8, !tbaa !5
  %1761 = getelementptr inbounds %struct.ImGuiWindow, ptr %1760, i32 0, i32 35
  %1762 = load i8, ptr %1761, align 1, !tbaa !228, !range !93, !noundef !94
  %1763 = trunc i8 %1762 to i1
  br i1 %1763, label %1783, label %1764

1764:                                             ; preds = %1759
  %1765 = getelementptr inbounds %struct.ImVec2, ptr %65, i32 0, i32 1
  %1766 = load float, ptr %1765, align 4, !tbaa !214
  %1767 = load float, ptr %68, align 4, !tbaa !138
  %1768 = load ptr, ptr %9, align 8, !tbaa !5
  %1769 = getelementptr inbounds %struct.ImGuiStyle, ptr %1768, i32 0, i32 22
  %1770 = load float, ptr %1769, align 4, !tbaa !229
  %1771 = fsub float %1767, %1770
  %1772 = fcmp ogt float %1766, %1771
  br i1 %1772, label %1773, label %1778

1773:                                             ; preds = %1764
  %1774 = load i32, ptr %7, align 4, !tbaa !9
  %1775 = and i32 %1774, 8
  %1776 = icmp ne i32 %1775, 0
  %1777 = xor i1 %1776, true
  br label %1778

1778:                                             ; preds = %1773, %1764
  %1779 = phi i1 [ false, %1764 ], [ %1777, %1773 ]
  %1780 = load ptr, ptr %10, align 8, !tbaa !5
  %1781 = getelementptr inbounds %struct.ImGuiWindow, ptr %1780, i32 0, i32 35
  %1782 = zext i1 %1779 to i8
  store i8 %1782, ptr %1781, align 1, !tbaa !228
  br label %1783

1783:                                             ; preds = %1778, %1759, %1750
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #12
  %1784 = load ptr, ptr %10, align 8, !tbaa !5
  %1785 = getelementptr inbounds %struct.ImGuiWindow, ptr %1784, i32 0, i32 35
  %1786 = load i8, ptr %1785, align 1, !tbaa !228, !range !93, !noundef !94
  %1787 = trunc i8 %1786 to i1
  br i1 %1787, label %1788, label %1792

1788:                                             ; preds = %1783
  %1789 = load ptr, ptr %9, align 8, !tbaa !5
  %1790 = getelementptr inbounds %struct.ImGuiStyle, ptr %1789, i32 0, i32 22
  %1791 = load float, ptr %1790, align 4, !tbaa !229
  br label %1793

1792:                                             ; preds = %1783
  br label %1793

1793:                                             ; preds = %1792, %1788
  %1794 = phi float [ %1791, %1788 ], [ 0.000000e+00, %1792 ]
  %1795 = load ptr, ptr %10, align 8, !tbaa !5
  %1796 = getelementptr inbounds %struct.ImGuiWindow, ptr %1795, i32 0, i32 34
  %1797 = load i8, ptr %1796, align 8, !tbaa !230, !range !93, !noundef !94
  %1798 = trunc i8 %1797 to i1
  br i1 %1798, label %1799, label %1803

1799:                                             ; preds = %1793
  %1800 = load ptr, ptr %9, align 8, !tbaa !5
  %1801 = getelementptr inbounds %struct.ImGuiStyle, ptr %1800, i32 0, i32 22
  %1802 = load float, ptr %1801, align 4, !tbaa !229
  br label %1804

1803:                                             ; preds = %1793
  br label %1804

1804:                                             ; preds = %1803, %1799
  %1805 = phi float [ %1802, %1799 ], [ 0.000000e+00, %1803 ]
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %69, float noundef %1794, float noundef %1805)
  %1806 = load ptr, ptr %10, align 8, !tbaa !5
  %1807 = getelementptr inbounds %struct.ImGuiWindow, ptr %1806, i32 0, i32 33
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1807, ptr align 4 %69, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #12
  %1808 = load ptr, ptr %10, align 8, !tbaa !5
  %1809 = getelementptr inbounds %struct.ImGuiWindow, ptr %1808, i32 0, i32 33
  %1810 = getelementptr inbounds %struct.ImVec2, ptr %1809, i32 0, i32 0
  %1811 = load float, ptr %1810, align 8, !tbaa !231
  %1812 = load ptr, ptr %10, align 8, !tbaa !5
  %1813 = getelementptr inbounds %struct.ImGuiWindow, ptr %1812, i32 0, i32 20
  %1814 = load float, ptr %1813, align 8, !tbaa !210
  %1815 = fadd float %1814, %1811
  store float %1815, ptr %1813, align 8, !tbaa !210
  %1816 = load ptr, ptr %10, align 8, !tbaa !5
  %1817 = getelementptr inbounds %struct.ImGuiWindow, ptr %1816, i32 0, i32 33
  %1818 = getelementptr inbounds %struct.ImVec2, ptr %1817, i32 0, i32 1
  %1819 = load float, ptr %1818, align 4, !tbaa !232
  %1820 = load ptr, ptr %10, align 8, !tbaa !5
  %1821 = getelementptr inbounds %struct.ImGuiWindow, ptr %1820, i32 0, i32 21
  %1822 = load float, ptr %1821, align 4, !tbaa !212
  %1823 = fadd float %1822, %1819
  store float %1823, ptr %1821, align 4, !tbaa !212
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #12
  br label %1824

1824:                                             ; preds = %1804, %1635
  call void @llvm.lifetime.start.p0(i64 16, ptr %70) #12
  %1825 = load i32, ptr %7, align 4, !tbaa !9
  %1826 = and i32 %1825, 16777216
  %1827 = icmp ne i32 %1826, 0
  br i1 %1827, label %1828, label %1838

1828:                                             ; preds = %1824
  %1829 = load i32, ptr %7, align 4, !tbaa !9
  %1830 = and i32 %1829, 67108864
  %1831 = icmp ne i32 %1830, 0
  br i1 %1831, label %1838, label %1832

1832:                                             ; preds = %1828
  %1833 = load i8, ptr %24, align 1, !tbaa !97, !range !93, !noundef !94
  %1834 = trunc i8 %1833 to i1
  br i1 %1834, label %1838, label %1835

1835:                                             ; preds = %1832
  %1836 = load ptr, ptr %17, align 8, !tbaa !5
  %1837 = getelementptr inbounds %struct.ImGuiWindow, ptr %1836, i32 0, i32 75
  br label %1839

1838:                                             ; preds = %1832, %1828, %1824
  br label %1839

1839:                                             ; preds = %1838, %1835
  %1840 = phi ptr [ %1837, %1835 ], [ %48, %1838 ]
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %70, ptr align 4 %1840, i64 16, i1 false), !tbaa.struct !171
  call void @llvm.lifetime.start.p0(i64 16, ptr %71) #12
  %1841 = load ptr, ptr %10, align 8, !tbaa !5
  %1842 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(1061) %1841)
  %1843 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %71, i32 0, i32 0
  %1844 = extractvalue { <2 x float>, <2 x float> } %1842, 0
  store <2 x float> %1844, ptr %1843, align 4
  %1845 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %71, i32 0, i32 1
  %1846 = extractvalue { <2 x float>, <2 x float> } %1842, 1
  store <2 x float> %1846, ptr %1845, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %72) #12
  %1847 = load ptr, ptr %10, align 8, !tbaa !5
  %1848 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(1061) %1847)
  %1849 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %72, i32 0, i32 0
  %1850 = extractvalue { <2 x float>, <2 x float> } %1848, 0
  store <2 x float> %1850, ptr %1849, align 4
  %1851 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %72, i32 0, i32 1
  %1852 = extractvalue { <2 x float>, <2 x float> } %1848, 1
  store <2 x float> %1852, ptr %1851, align 4
  %1853 = load ptr, ptr %10, align 8, !tbaa !5
  %1854 = getelementptr inbounds %struct.ImGuiWindow, ptr %1853, i32 0, i32 70
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1854, ptr align 4 %71, i64 16, i1 false), !tbaa.struct !171
  %1855 = load ptr, ptr %10, align 8, !tbaa !5
  %1856 = getelementptr inbounds %struct.ImGuiWindow, ptr %1855, i32 0, i32 70
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1856, ptr noundef nonnull align 4 dereferenceable(16) %70)
  %1857 = load ptr, ptr %10, align 8, !tbaa !5
  %1858 = getelementptr inbounds %struct.ImGuiWindow, ptr %1857, i32 0, i32 7
  %1859 = getelementptr inbounds %struct.ImVec2, ptr %1858, i32 0, i32 0
  %1860 = load float, ptr %1859, align 8, !tbaa !233
  %1861 = load ptr, ptr %10, align 8, !tbaa !5
  %1862 = getelementptr inbounds %struct.ImGuiWindow, ptr %1861, i32 0, i32 18
  %1863 = load float, ptr %1862, align 8, !tbaa !209
  %1864 = fadd float %1860, %1863
  %1865 = load ptr, ptr %10, align 8, !tbaa !5
  %1866 = getelementptr inbounds %struct.ImGuiWindow, ptr %1865, i32 0, i32 71
  %1867 = getelementptr inbounds %struct.ImRect, ptr %1866, i32 0, i32 0
  %1868 = getelementptr inbounds %struct.ImVec2, ptr %1867, i32 0, i32 0
  store float %1864, ptr %1868, align 8, !tbaa !234
  %1869 = load ptr, ptr %10, align 8, !tbaa !5
  %1870 = getelementptr inbounds %struct.ImGuiWindow, ptr %1869, i32 0, i32 7
  %1871 = getelementptr inbounds %struct.ImVec2, ptr %1870, i32 0, i32 1
  %1872 = load float, ptr %1871, align 4, !tbaa !235
  %1873 = load ptr, ptr %10, align 8, !tbaa !5
  %1874 = getelementptr inbounds %struct.ImGuiWindow, ptr %1873, i32 0, i32 19
  %1875 = load float, ptr %1874, align 4, !tbaa !211
  %1876 = fadd float %1872, %1875
  %1877 = load ptr, ptr %10, align 8, !tbaa !5
  %1878 = getelementptr inbounds %struct.ImGuiWindow, ptr %1877, i32 0, i32 71
  %1879 = getelementptr inbounds %struct.ImRect, ptr %1878, i32 0, i32 0
  %1880 = getelementptr inbounds %struct.ImVec2, ptr %1879, i32 0, i32 1
  store float %1876, ptr %1880, align 4, !tbaa !236
  %1881 = load ptr, ptr %10, align 8, !tbaa !5
  %1882 = getelementptr inbounds %struct.ImGuiWindow, ptr %1881, i32 0, i32 7
  %1883 = getelementptr inbounds %struct.ImVec2, ptr %1882, i32 0, i32 0
  %1884 = load float, ptr %1883, align 8, !tbaa !233
  %1885 = load ptr, ptr %10, align 8, !tbaa !5
  %1886 = getelementptr inbounds %struct.ImGuiWindow, ptr %1885, i32 0, i32 8
  %1887 = getelementptr inbounds %struct.ImVec2, ptr %1886, i32 0, i32 0
  %1888 = load float, ptr %1887, align 8, !tbaa !182
  %1889 = fadd float %1884, %1888
  %1890 = load ptr, ptr %10, align 8, !tbaa !5
  %1891 = getelementptr inbounds %struct.ImGuiWindow, ptr %1890, i32 0, i32 20
  %1892 = load float, ptr %1891, align 8, !tbaa !210
  %1893 = fsub float %1889, %1892
  %1894 = load ptr, ptr %10, align 8, !tbaa !5
  %1895 = getelementptr inbounds %struct.ImGuiWindow, ptr %1894, i32 0, i32 71
  %1896 = getelementptr inbounds %struct.ImRect, ptr %1895, i32 0, i32 1
  %1897 = getelementptr inbounds %struct.ImVec2, ptr %1896, i32 0, i32 0
  store float %1893, ptr %1897, align 8, !tbaa !237
  %1898 = load ptr, ptr %10, align 8, !tbaa !5
  %1899 = getelementptr inbounds %struct.ImGuiWindow, ptr %1898, i32 0, i32 7
  %1900 = getelementptr inbounds %struct.ImVec2, ptr %1899, i32 0, i32 1
  %1901 = load float, ptr %1900, align 4, !tbaa !235
  %1902 = load ptr, ptr %10, align 8, !tbaa !5
  %1903 = getelementptr inbounds %struct.ImGuiWindow, ptr %1902, i32 0, i32 8
  %1904 = getelementptr inbounds %struct.ImVec2, ptr %1903, i32 0, i32 1
  %1905 = load float, ptr %1904, align 4, !tbaa !183
  %1906 = fadd float %1901, %1905
  %1907 = load ptr, ptr %10, align 8, !tbaa !5
  %1908 = getelementptr inbounds %struct.ImGuiWindow, ptr %1907, i32 0, i32 21
  %1909 = load float, ptr %1908, align 4, !tbaa !212
  %1910 = fsub float %1906, %1909
  %1911 = load ptr, ptr %10, align 8, !tbaa !5
  %1912 = getelementptr inbounds %struct.ImGuiWindow, ptr %1911, i32 0, i32 71
  %1913 = getelementptr inbounds %struct.ImRect, ptr %1912, i32 0, i32 1
  %1914 = getelementptr inbounds %struct.ImVec2, ptr %1913, i32 0, i32 1
  store float %1910, ptr %1914, align 4, !tbaa !238
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #12
  %1915 = load i32, ptr %7, align 4, !tbaa !9
  %1916 = and i32 %1915, 1024
  %1917 = icmp ne i32 %1916, 0
  br i1 %1917, label %1922, label %1918

1918:                                             ; preds = %1839
  %1919 = load i32, ptr %7, align 4, !tbaa !9
  %1920 = and i32 %1919, 1
  %1921 = icmp ne i32 %1920, 0
  br i1 %1921, label %1926, label %1922

1922:                                             ; preds = %1918, %1839
  %1923 = load ptr, ptr %9, align 8, !tbaa !5
  %1924 = getelementptr inbounds %struct.ImGuiStyle, ptr %1923, i32 0, i32 15
  %1925 = load float, ptr %1924, align 4, !tbaa !239
  br label %1930

1926:                                             ; preds = %1918
  %1927 = load ptr, ptr %10, align 8, !tbaa !5
  %1928 = getelementptr inbounds %struct.ImGuiWindow, ptr %1927, i32 0, i32 15
  %1929 = load float, ptr %1928, align 4, !tbaa !185
  br label %1930

1930:                                             ; preds = %1926, %1922
  %1931 = phi float [ %1925, %1922 ], [ %1929, %1926 ]
  store float %1931, ptr %73, align 4, !tbaa !138
  %1932 = load ptr, ptr %10, align 8, !tbaa !5
  %1933 = getelementptr inbounds %struct.ImGuiWindow, ptr %1932, i32 0, i32 71
  %1934 = getelementptr inbounds %struct.ImRect, ptr %1933, i32 0, i32 0
  %1935 = getelementptr inbounds %struct.ImVec2, ptr %1934, i32 0, i32 0
  %1936 = load float, ptr %1935, align 8, !tbaa !234
  %1937 = fadd float 5.000000e-01, %1936
  %1938 = load ptr, ptr %10, align 8, !tbaa !5
  %1939 = getelementptr inbounds %struct.ImGuiWindow, ptr %1938, i32 0, i32 15
  %1940 = load float, ptr %1939, align 4, !tbaa !185
  %1941 = call float @llvm.fmuladd.f32(float %1940, float 5.000000e-01, float %1937)
  %1942 = call noundef float @_ZL7ImFloorf(float noundef %1941)
  %1943 = load ptr, ptr %10, align 8, !tbaa !5
  %1944 = getelementptr inbounds %struct.ImGuiWindow, ptr %1943, i32 0, i32 72
  %1945 = getelementptr inbounds %struct.ImRect, ptr %1944, i32 0, i32 0
  %1946 = getelementptr inbounds %struct.ImVec2, ptr %1945, i32 0, i32 0
  store float %1942, ptr %1946, align 8, !tbaa !240
  %1947 = load ptr, ptr %10, align 8, !tbaa !5
  %1948 = getelementptr inbounds %struct.ImGuiWindow, ptr %1947, i32 0, i32 71
  %1949 = getelementptr inbounds %struct.ImRect, ptr %1948, i32 0, i32 0
  %1950 = getelementptr inbounds %struct.ImVec2, ptr %1949, i32 0, i32 1
  %1951 = load float, ptr %1950, align 4, !tbaa !236
  %1952 = fadd float 5.000000e-01, %1951
  %1953 = load float, ptr %73, align 4, !tbaa !138
  %1954 = call float @llvm.fmuladd.f32(float %1953, float 5.000000e-01, float %1952)
  %1955 = call noundef float @_ZL7ImFloorf(float noundef %1954)
  %1956 = load ptr, ptr %10, align 8, !tbaa !5
  %1957 = getelementptr inbounds %struct.ImGuiWindow, ptr %1956, i32 0, i32 72
  %1958 = getelementptr inbounds %struct.ImRect, ptr %1957, i32 0, i32 0
  %1959 = getelementptr inbounds %struct.ImVec2, ptr %1958, i32 0, i32 1
  store float %1955, ptr %1959, align 4, !tbaa !241
  %1960 = load ptr, ptr %10, align 8, !tbaa !5
  %1961 = getelementptr inbounds %struct.ImGuiWindow, ptr %1960, i32 0, i32 71
  %1962 = getelementptr inbounds %struct.ImRect, ptr %1961, i32 0, i32 1
  %1963 = getelementptr inbounds %struct.ImVec2, ptr %1962, i32 0, i32 0
  %1964 = load float, ptr %1963, align 8, !tbaa !237
  %1965 = load ptr, ptr %10, align 8, !tbaa !5
  %1966 = getelementptr inbounds %struct.ImGuiWindow, ptr %1965, i32 0, i32 15
  %1967 = load float, ptr %1966, align 4, !tbaa !185
  %1968 = fneg float %1967
  %1969 = call float @llvm.fmuladd.f32(float %1968, float 5.000000e-01, float %1964)
  %1970 = call noundef float @_ZL7ImFloorf(float noundef %1969)
  %1971 = load ptr, ptr %10, align 8, !tbaa !5
  %1972 = getelementptr inbounds %struct.ImGuiWindow, ptr %1971, i32 0, i32 72
  %1973 = getelementptr inbounds %struct.ImRect, ptr %1972, i32 0, i32 1
  %1974 = getelementptr inbounds %struct.ImVec2, ptr %1973, i32 0, i32 0
  store float %1970, ptr %1974, align 8, !tbaa !242
  %1975 = load ptr, ptr %10, align 8, !tbaa !5
  %1976 = getelementptr inbounds %struct.ImGuiWindow, ptr %1975, i32 0, i32 71
  %1977 = getelementptr inbounds %struct.ImRect, ptr %1976, i32 0, i32 1
  %1978 = getelementptr inbounds %struct.ImVec2, ptr %1977, i32 0, i32 1
  %1979 = load float, ptr %1978, align 4, !tbaa !238
  %1980 = load ptr, ptr %10, align 8, !tbaa !5
  %1981 = getelementptr inbounds %struct.ImGuiWindow, ptr %1980, i32 0, i32 15
  %1982 = load float, ptr %1981, align 4, !tbaa !185
  %1983 = fneg float %1982
  %1984 = call float @llvm.fmuladd.f32(float %1983, float 5.000000e-01, float %1979)
  %1985 = call noundef float @_ZL7ImFloorf(float noundef %1984)
  %1986 = load ptr, ptr %10, align 8, !tbaa !5
  %1987 = getelementptr inbounds %struct.ImGuiWindow, ptr %1986, i32 0, i32 72
  %1988 = getelementptr inbounds %struct.ImRect, ptr %1987, i32 0, i32 1
  %1989 = getelementptr inbounds %struct.ImVec2, ptr %1988, i32 0, i32 1
  store float %1985, ptr %1989, align 4, !tbaa !243
  %1990 = load ptr, ptr %10, align 8, !tbaa !5
  %1991 = getelementptr inbounds %struct.ImGuiWindow, ptr %1990, i32 0, i32 72
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1991, ptr noundef nonnull align 4 dereferenceable(16) %70)
  %1992 = load ptr, ptr %10, align 8, !tbaa !5
  %1993 = getelementptr inbounds %struct.ImGuiWindow, ptr %1992, i32 0, i32 8
  %1994 = getelementptr inbounds %struct.ImVec2, ptr %1993, i32 0, i32 0
  %1995 = load float, ptr %1994, align 8, !tbaa !182
  %1996 = fcmp ogt float %1995, 0.000000e+00
  br i1 %1996, label %1997, label %2014

1997:                                             ; preds = %1930
  %1998 = load i32, ptr %7, align 4, !tbaa !9
  %1999 = and i32 %1998, 33554432
  %2000 = icmp ne i32 %1999, 0
  br i1 %2000, label %2014, label %2001

2001:                                             ; preds = %1997
  %2002 = load i32, ptr %7, align 4, !tbaa !9
  %2003 = and i32 %2002, 64
  %2004 = icmp ne i32 %2003, 0
  br i1 %2004, label %2014, label %2005

2005:                                             ; preds = %2001
  %2006 = load ptr, ptr %10, align 8, !tbaa !5
  %2007 = getelementptr inbounds %struct.ImGuiWindow, ptr %2006, i32 0, i32 8
  %2008 = getelementptr inbounds %struct.ImVec2, ptr %2007, i32 0, i32 0
  %2009 = load float, ptr %2008, align 8, !tbaa !182
  %2010 = fmul float %2009, 0x3FE4CCCCC0000000
  %2011 = call noundef float @_ZL7ImTruncf(float noundef %2010)
  %2012 = load ptr, ptr %10, align 8, !tbaa !5
  %2013 = getelementptr inbounds %struct.ImGuiWindow, ptr %2012, i32 0, i32 81
  store float %2011, ptr %2013, align 8, !tbaa !244
  br label %2022

2014:                                             ; preds = %2001, %1997, %1930
  %2015 = load ptr, ptr %8, align 8, !tbaa !5
  %2016 = getelementptr inbounds %struct.ImGuiContext, ptr %2015, i32 0, i32 6
  %2017 = load float, ptr %2016, align 8, !tbaa !195
  %2018 = fmul float %2017, 1.600000e+01
  %2019 = call noundef float @_ZL7ImTruncf(float noundef %2018)
  %2020 = load ptr, ptr %10, align 8, !tbaa !5
  %2021 = getelementptr inbounds %struct.ImGuiWindow, ptr %2020, i32 0, i32 81
  store float %2019, ptr %2021, align 8, !tbaa !244
  br label %2022

2022:                                             ; preds = %2014, %2005
  %2023 = load ptr, ptr %10, align 8, !tbaa !5
  %2024 = getelementptr inbounds %struct.ImGuiWindow, ptr %2023, i32 0, i32 10
  %2025 = getelementptr inbounds %struct.ImVec2, ptr %2024, i32 0, i32 0
  %2026 = load float, ptr %2025, align 8, !tbaa !245
  %2027 = load ptr, ptr %10, align 8, !tbaa !5
  %2028 = getelementptr inbounds %struct.ImGuiWindow, ptr %2027, i32 0, i32 13
  %2029 = getelementptr inbounds %struct.ImVec2, ptr %2028, i32 0, i32 0
  %2030 = load float, ptr %2029, align 8, !tbaa !189
  %2031 = call float @llvm.fmuladd.f32(float %2030, float 2.000000e+00, float %2026)
  %2032 = load ptr, ptr %10, align 8, !tbaa !5
  %2033 = getelementptr inbounds %struct.ImGuiWindow, ptr %2032, i32 0, i32 71
  %2034 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %2033)
  %2035 = fsub float %2031, %2034
  %2036 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %2035)
  %2037 = load ptr, ptr %10, align 8, !tbaa !5
  %2038 = getelementptr inbounds %struct.ImGuiWindow, ptr %2037, i32 0, i32 29
  %2039 = getelementptr inbounds %struct.ImVec2, ptr %2038, i32 0, i32 0
  store float %2036, ptr %2039, align 8, !tbaa !246
  %2040 = load ptr, ptr %10, align 8, !tbaa !5
  %2041 = getelementptr inbounds %struct.ImGuiWindow, ptr %2040, i32 0, i32 10
  %2042 = getelementptr inbounds %struct.ImVec2, ptr %2041, i32 0, i32 1
  %2043 = load float, ptr %2042, align 4, !tbaa !247
  %2044 = load ptr, ptr %10, align 8, !tbaa !5
  %2045 = getelementptr inbounds %struct.ImGuiWindow, ptr %2044, i32 0, i32 13
  %2046 = getelementptr inbounds %struct.ImVec2, ptr %2045, i32 0, i32 1
  %2047 = load float, ptr %2046, align 4, !tbaa !248
  %2048 = call float @llvm.fmuladd.f32(float %2047, float 2.000000e+00, float %2043)
  %2049 = load ptr, ptr %10, align 8, !tbaa !5
  %2050 = getelementptr inbounds %struct.ImGuiWindow, ptr %2049, i32 0, i32 71
  %2051 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %2050)
  %2052 = fsub float %2048, %2051
  %2053 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %2052)
  %2054 = load ptr, ptr %10, align 8, !tbaa !5
  %2055 = getelementptr inbounds %struct.ImGuiWindow, ptr %2054, i32 0, i32 29
  %2056 = getelementptr inbounds %struct.ImVec2, ptr %2055, i32 0, i32 1
  store float %2053, ptr %2056, align 4, !tbaa !249
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #12
  %2057 = load ptr, ptr %10, align 8, !tbaa !5
  %2058 = call <2 x float> @_ZL38CalcNextScrollFromScrollTargetAndClampP11ImGuiWindow(ptr noundef %2057)
  store <2 x float> %2058, ptr %74, align 4
  %2059 = load ptr, ptr %10, align 8, !tbaa !5
  %2060 = getelementptr inbounds %struct.ImGuiWindow, ptr %2059, i32 0, i32 28
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2060, ptr align 4 %74, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #12
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %75, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000)
  %2061 = load ptr, ptr %10, align 8, !tbaa !5
  %2062 = getelementptr inbounds %struct.ImGuiWindow, ptr %2061, i32 0, i32 30
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2062, ptr align 4 %75, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #12
  %2063 = load ptr, ptr %10, align 8, !tbaa !5
  %2064 = getelementptr inbounds %struct.ImGuiWindow, ptr %2063, i32 0, i32 23
  store float 0.000000e+00, ptr %2064, align 4, !tbaa !250
  %2065 = load ptr, ptr %10, align 8, !tbaa !5
  %2066 = getelementptr inbounds %struct.ImGuiWindow, ptr %2065, i32 0, i32 22
  store float 0.000000e+00, ptr %2066, align 8, !tbaa !251
  %2067 = load ptr, ptr %10, align 8, !tbaa !5
  %2068 = getelementptr inbounds %struct.ImGuiWindow, ptr %2067, i32 0, i32 89
  %2069 = load ptr, ptr %2068, align 8, !tbaa !172
  %2070 = getelementptr inbounds %struct.ImDrawList, ptr %2069, i32 0, i32 0
  %2071 = getelementptr inbounds %struct.ImVector.38, ptr %2070, i32 0, i32 0
  %2072 = load i32, ptr %2071, align 8, !tbaa !252
  %2073 = icmp eq i32 %2072, 1
  br i1 %2073, label %2074, label %2083

2074:                                             ; preds = %2022
  %2075 = load ptr, ptr %10, align 8, !tbaa !5
  %2076 = getelementptr inbounds %struct.ImGuiWindow, ptr %2075, i32 0, i32 89
  %2077 = load ptr, ptr %2076, align 8, !tbaa !172
  %2078 = getelementptr inbounds %struct.ImDrawList, ptr %2077, i32 0, i32 0
  %2079 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN8ImVectorI9ImDrawCmdEixEi(ptr noundef nonnull align 8 dereferenceable(16) %2078, i32 noundef 0)
  %2080 = getelementptr inbounds %struct.ImDrawCmd, ptr %2079, i32 0, i32 4
  %2081 = load i32, ptr %2080, align 8, !tbaa !253
  %2082 = icmp eq i32 %2081, 0
  br label %2083

2083:                                             ; preds = %2074, %2022
  %2084 = phi i1 [ false, %2022 ], [ %2082, %2074 ]
  br i1 %2084, label %2085, label %2086

2085:                                             ; preds = %2083
  br label %2088

2086:                                             ; preds = %2083
  call void @__assert_fail(ptr noundef @.str.152, ptr noundef @.str.3, i32 noundef 7535, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

2087:                                             ; No predecessors!
  br label %2088

2088:                                             ; preds = %2087, %2085
  %2089 = load ptr, ptr %10, align 8, !tbaa !5
  %2090 = getelementptr inbounds %struct.ImGuiWindow, ptr %2089, i32 0, i32 89
  %2091 = load ptr, ptr %2090, align 8, !tbaa !172
  %2092 = load ptr, ptr %8, align 8, !tbaa !5
  %2093 = getelementptr inbounds %struct.ImGuiContext, ptr %2092, i32 0, i32 5
  %2094 = load ptr, ptr %2093, align 8, !tbaa !255
  %2095 = getelementptr inbounds %struct.ImFont, ptr %2094, i32 0, i32 6
  %2096 = load ptr, ptr %2095, align 8, !tbaa !256
  %2097 = getelementptr inbounds %struct.ImFontAtlas, ptr %2096, i32 0, i32 2
  %2098 = load i64, ptr %2097, align 8, !tbaa !257
  call void @_ZN10ImDrawList13PushTextureIDEy(ptr noundef nonnull align 8 dereferenceable(216) %2091, i64 noundef %2098)
  %2099 = getelementptr inbounds %struct.ImRect, ptr %70, i32 0, i32 0
  %2100 = getelementptr inbounds %struct.ImRect, ptr %70, i32 0, i32 1
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %2099, ptr noundef nonnull align 4 dereferenceable(8) %2100, i1 noundef zeroext false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #12
  store i8 0, ptr %76, align 1, !tbaa !97
  %2101 = load i32, ptr %7, align 4, !tbaa !9
  %2102 = and i32 %2101, 16777216
  %2103 = icmp ne i32 %2102, 0
  br i1 %2103, label %2104, label %2177

2104:                                             ; preds = %2088
  %2105 = load i32, ptr %7, align 4, !tbaa !9
  %2106 = and i32 %2105, 67108864
  %2107 = icmp ne i32 %2106, 0
  br i1 %2107, label %2177, label %2108

2108:                                             ; preds = %2104
  %2109 = load i8, ptr %24, align 1, !tbaa !97, !range !93, !noundef !94
  %2110 = trunc i8 %2109 to i1
  br i1 %2110, label %2177, label %2111

2111:                                             ; preds = %2108
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #12
  %2112 = load ptr, ptr %17, align 8, !tbaa !5
  %2113 = getelementptr inbounds %struct.ImGuiWindow, ptr %2112, i32 0, i32 69
  %2114 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2113, i32 0, i32 26
  %2115 = getelementptr inbounds %struct.ImVector.2, ptr %2114, i32 0, i32 0
  %2116 = load i32, ptr %2115, align 8, !tbaa !219
  %2117 = icmp sge i32 %2116, 2
  br i1 %2117, label %2118, label %2130

2118:                                             ; preds = %2111
  %2119 = load ptr, ptr %17, align 8, !tbaa !5
  %2120 = getelementptr inbounds %struct.ImGuiWindow, ptr %2119, i32 0, i32 69
  %2121 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2120, i32 0, i32 26
  %2122 = load ptr, ptr %17, align 8, !tbaa !5
  %2123 = getelementptr inbounds %struct.ImGuiWindow, ptr %2122, i32 0, i32 69
  %2124 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2123, i32 0, i32 26
  %2125 = getelementptr inbounds %struct.ImVector.2, ptr %2124, i32 0, i32 0
  %2126 = load i32, ptr %2125, align 8, !tbaa !219
  %2127 = sub nsw i32 %2126, 2
  %2128 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %2121, i32 noundef %2127)
  %2129 = load ptr, ptr %2128, align 8, !tbaa !5
  br label %2131

2130:                                             ; preds = %2111
  br label %2131

2131:                                             ; preds = %2130, %2118
  %2132 = phi ptr [ %2129, %2118 ], [ null, %2130 ]
  store ptr %2132, ptr %77, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #12
  %2133 = load ptr, ptr %77, align 8, !tbaa !5
  %2134 = icmp ne ptr %2133, null
  call void @llvm.lifetime.start.p0(i64 16, ptr %79) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %80) #12
  br i1 %2134, label %2135, label %2149

2135:                                             ; preds = %2131
  %2136 = load ptr, ptr %77, align 8, !tbaa !5
  %2137 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(1061) %2136)
  %2138 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %79, i32 0, i32 0
  %2139 = extractvalue { <2 x float>, <2 x float> } %2137, 0
  store <2 x float> %2139, ptr %2138, align 4
  %2140 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %79, i32 0, i32 1
  %2141 = extractvalue { <2 x float>, <2 x float> } %2137, 1
  store <2 x float> %2141, ptr %2140, align 4
  %2142 = load ptr, ptr %10, align 8, !tbaa !5
  %2143 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(1061) %2142)
  %2144 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %80, i32 0, i32 0
  %2145 = extractvalue { <2 x float>, <2 x float> } %2143, 0
  store <2 x float> %2145, ptr %2144, align 4
  %2146 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %80, i32 0, i32 1
  %2147 = extractvalue { <2 x float>, <2 x float> } %2143, 1
  store <2 x float> %2147, ptr %2146, align 4
  %2148 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %79, ptr noundef nonnull align 4 dereferenceable(16) %80)
  br label %2150

2149:                                             ; preds = %2131
  br label %2150

2150:                                             ; preds = %2149, %2135
  %2151 = phi i1 [ %2148, %2135 ], [ false, %2149 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %80) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %79) #12
  %2152 = zext i1 %2151 to i8
  store i8 %2152, ptr %78, align 1, !tbaa !97
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #12
  %2153 = load ptr, ptr %17, align 8, !tbaa !5
  %2154 = getelementptr inbounds %struct.ImGuiWindow, ptr %2153, i32 0, i32 89
  %2155 = load ptr, ptr %2154, align 8, !tbaa !172
  %2156 = getelementptr inbounds %struct.ImDrawList, ptr %2155, i32 0, i32 2
  %2157 = getelementptr inbounds %struct.ImVector.39, ptr %2156, i32 0, i32 0
  %2158 = load i32, ptr %2157, align 8, !tbaa !261
  %2159 = icmp eq i32 %2158, 0
  %2160 = zext i1 %2159 to i8
  store i8 %2160, ptr %81, align 1, !tbaa !97
  %2161 = load ptr, ptr %10, align 8, !tbaa !5
  %2162 = getelementptr inbounds %struct.ImGuiWindow, ptr %2161, i32 0, i32 89
  %2163 = load ptr, ptr %2162, align 8, !tbaa !172
  %2164 = getelementptr inbounds %struct.ImDrawList, ptr %2163, i32 0, i32 0
  %2165 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN8ImVectorI9ImDrawCmdE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %2164)
  %2166 = getelementptr inbounds %struct.ImDrawCmd, ptr %2165, i32 0, i32 4
  %2167 = load i32, ptr %2166, align 8, !tbaa !253
  %2168 = icmp eq i32 %2167, 0
  br i1 %2168, label %2169, label %2176

2169:                                             ; preds = %2150
  %2170 = load i8, ptr %81, align 1, !tbaa !97, !range !93, !noundef !94
  %2171 = trunc i8 %2170 to i1
  br i1 %2171, label %2176, label %2172

2172:                                             ; preds = %2169
  %2173 = load i8, ptr %78, align 1, !tbaa !97, !range !93, !noundef !94
  %2174 = trunc i8 %2173 to i1
  br i1 %2174, label %2176, label %2175

2175:                                             ; preds = %2172
  store i8 1, ptr %76, align 1, !tbaa !97
  br label %2176

2176:                                             ; preds = %2175, %2172, %2169, %2150
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #12
  br label %2177

2177:                                             ; preds = %2176, %2108, %2104, %2088
  %2178 = load i8, ptr %76, align 1, !tbaa !97, !range !93, !noundef !94
  %2179 = trunc i8 %2178 to i1
  br i1 %2179, label %2180, label %2186

2180:                                             ; preds = %2177
  %2181 = load ptr, ptr %17, align 8, !tbaa !5
  %2182 = getelementptr inbounds %struct.ImGuiWindow, ptr %2181, i32 0, i32 89
  %2183 = load ptr, ptr %2182, align 8, !tbaa !172
  %2184 = load ptr, ptr %10, align 8, !tbaa !5
  %2185 = getelementptr inbounds %struct.ImGuiWindow, ptr %2184, i32 0, i32 89
  store ptr %2183, ptr %2185, align 8, !tbaa !172
  br label %2186

2186:                                             ; preds = %2180, %2177
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #12
  %2187 = load ptr, ptr %8, align 8, !tbaa !5
  %2188 = getelementptr inbounds %struct.ImGuiContext, ptr %2187, i32 0, i32 152
  %2189 = load ptr, ptr %2188, align 8, !tbaa !262
  %2190 = icmp ne ptr %2189, null
  br i1 %2190, label %2191, label %2195

2191:                                             ; preds = %2186
  %2192 = load ptr, ptr %8, align 8, !tbaa !5
  %2193 = getelementptr inbounds %struct.ImGuiContext, ptr %2192, i32 0, i32 152
  %2194 = load ptr, ptr %2193, align 8, !tbaa !262
  br label %2199

2195:                                             ; preds = %2186
  %2196 = load ptr, ptr %8, align 8, !tbaa !5
  %2197 = getelementptr inbounds %struct.ImGuiContext, ptr %2196, i32 0, i32 107
  %2198 = load ptr, ptr %2197, align 8, !tbaa !263
  br label %2199

2199:                                             ; preds = %2195, %2191
  %2200 = phi ptr [ %2194, %2191 ], [ %2198, %2195 ]
  store ptr %2200, ptr %82, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #12
  %2201 = load i8, ptr %55, align 1, !tbaa !97, !range !93, !noundef !94
  %2202 = trunc i8 %2201 to i1
  br i1 %2202, label %2216, label %2203

2203:                                             ; preds = %2199
  %2204 = load ptr, ptr %82, align 8, !tbaa !5
  %2205 = icmp ne ptr %2204, null
  br i1 %2205, label %2206, label %2214

2206:                                             ; preds = %2203
  %2207 = load ptr, ptr %10, align 8, !tbaa !5
  %2208 = getelementptr inbounds %struct.ImGuiWindow, ptr %2207, i32 0, i32 95
  %2209 = load ptr, ptr %2208, align 8, !tbaa !264
  %2210 = load ptr, ptr %82, align 8, !tbaa !5
  %2211 = getelementptr inbounds %struct.ImGuiWindow, ptr %2210, i32 0, i32 95
  %2212 = load ptr, ptr %2211, align 8, !tbaa !264
  %2213 = icmp eq ptr %2209, %2212
  br label %2214

2214:                                             ; preds = %2206, %2203
  %2215 = phi i1 [ false, %2203 ], [ %2213, %2206 ]
  br label %2216

2216:                                             ; preds = %2214, %2199
  %2217 = phi i1 [ true, %2199 ], [ %2215, %2214 ]
  %2218 = zext i1 %2217 to i8
  store i8 %2218, ptr %83, align 1, !tbaa !97
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #12
  store i8 1, ptr %84, align 1, !tbaa !97
  %2219 = load ptr, ptr %10, align 8, !tbaa !5
  %2220 = load i8, ptr %83, align 1, !tbaa !97, !range !93, !noundef !94
  %2221 = trunc i8 %2220 to i1
  %2222 = load i32, ptr %59, align 4, !tbaa !9
  %2223 = getelementptr inbounds [4 x i32], ptr %58, i64 0, i64 0
  %2224 = load float, ptr %60, align 4, !tbaa !138
  call void @_ZN5ImGuiL23RenderWindowDecorationsEP11ImGuiWindowRK6ImRectbbiPKjf(ptr noundef %2219, ptr noundef nonnull align 4 dereferenceable(16) %72, i1 noundef zeroext %2221, i1 noundef zeroext true, i32 noundef %2222, ptr noundef %2223, float noundef %2224)
  %2225 = load i8, ptr %76, align 1, !tbaa !97, !range !93, !noundef !94
  %2226 = trunc i8 %2225 to i1
  br i1 %2226, label %2227, label %2232

2227:                                             ; preds = %2216
  %2228 = load ptr, ptr %10, align 8, !tbaa !5
  %2229 = getelementptr inbounds %struct.ImGuiWindow, ptr %2228, i32 0, i32 90
  %2230 = load ptr, ptr %10, align 8, !tbaa !5
  %2231 = getelementptr inbounds %struct.ImGuiWindow, ptr %2230, i32 0, i32 89
  store ptr %2229, ptr %2231, align 8, !tbaa !172
  br label %2232

2232:                                             ; preds = %2227, %2216
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #12
  %2233 = load i32, ptr %7, align 4, !tbaa !9
  %2234 = and i32 %2233, 8
  %2235 = icmp ne i32 %2234, 0
  br i1 %2235, label %2240, label %2236

2236:                                             ; preds = %2232
  %2237 = load i32, ptr %7, align 4, !tbaa !9
  %2238 = and i32 %2237, 2048
  %2239 = icmp ne i32 %2238, 0
  br label %2240

2240:                                             ; preds = %2236, %2232
  %2241 = phi i1 [ false, %2232 ], [ %2239, %2236 ]
  %2242 = zext i1 %2241 to i8
  store i8 %2242, ptr %85, align 1, !tbaa !97
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #12
  %2243 = load i32, ptr %7, align 4, !tbaa !9
  %2244 = and i32 %2243, 8
  %2245 = icmp ne i32 %2244, 0
  %2246 = xor i1 %2245, true
  %2247 = zext i1 %2246 to i8
  store i8 %2247, ptr %86, align 1, !tbaa !97
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #12
  %2248 = load ptr, ptr %10, align 8, !tbaa !5
  %2249 = getelementptr inbounds %struct.ImGuiWindow, ptr %2248, i32 0, i32 12
  %2250 = getelementptr inbounds %struct.ImVec2, ptr %2249, i32 0, i32 0
  %2251 = load float, ptr %2250, align 8, !tbaa !200
  %2252 = fcmp une float %2251, 0.000000e+00
  br i1 %2252, label %2253, label %2258

2253:                                             ; preds = %2240
  %2254 = load ptr, ptr %10, align 8, !tbaa !5
  %2255 = getelementptr inbounds %struct.ImGuiWindow, ptr %2254, i32 0, i32 12
  %2256 = getelementptr inbounds %struct.ImVec2, ptr %2255, i32 0, i32 0
  %2257 = load float, ptr %2256, align 8, !tbaa !200
  br label %2288

2258:                                             ; preds = %2240
  %2259 = load i8, ptr %85, align 1, !tbaa !97, !range !93, !noundef !94
  %2260 = trunc i8 %2259 to i1
  br i1 %2260, label %2261, label %2266

2261:                                             ; preds = %2258
  %2262 = load ptr, ptr %10, align 8, !tbaa !5
  %2263 = getelementptr inbounds %struct.ImGuiWindow, ptr %2262, i32 0, i32 10
  %2264 = getelementptr inbounds %struct.ImVec2, ptr %2263, i32 0, i32 0
  %2265 = load float, ptr %2264, align 8, !tbaa !245
  br label %2267

2266:                                             ; preds = %2258
  br label %2267

2267:                                             ; preds = %2266, %2261
  %2268 = phi float [ %2265, %2261 ], [ 0.000000e+00, %2266 ]
  %2269 = load ptr, ptr %10, align 8, !tbaa !5
  %2270 = getelementptr inbounds %struct.ImGuiWindow, ptr %2269, i32 0, i32 8
  %2271 = getelementptr inbounds %struct.ImVec2, ptr %2270, i32 0, i32 0
  %2272 = load float, ptr %2271, align 8, !tbaa !182
  %2273 = load ptr, ptr %10, align 8, !tbaa !5
  %2274 = getelementptr inbounds %struct.ImGuiWindow, ptr %2273, i32 0, i32 13
  %2275 = getelementptr inbounds %struct.ImVec2, ptr %2274, i32 0, i32 0
  %2276 = load float, ptr %2275, align 8, !tbaa !189
  %2277 = fneg float %2276
  %2278 = call float @llvm.fmuladd.f32(float %2277, float 2.000000e+00, float %2272)
  %2279 = load ptr, ptr %10, align 8, !tbaa !5
  %2280 = getelementptr inbounds %struct.ImGuiWindow, ptr %2279, i32 0, i32 18
  %2281 = load float, ptr %2280, align 8, !tbaa !209
  %2282 = load ptr, ptr %10, align 8, !tbaa !5
  %2283 = getelementptr inbounds %struct.ImGuiWindow, ptr %2282, i32 0, i32 20
  %2284 = load float, ptr %2283, align 8, !tbaa !210
  %2285 = fadd float %2281, %2284
  %2286 = fsub float %2278, %2285
  %2287 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %2268, float noundef %2286)
  br label %2288

2288:                                             ; preds = %2267, %2253
  %2289 = phi float [ %2257, %2253 ], [ %2287, %2267 ]
  store float %2289, ptr %87, align 4, !tbaa !138
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #12
  %2290 = load ptr, ptr %10, align 8, !tbaa !5
  %2291 = getelementptr inbounds %struct.ImGuiWindow, ptr %2290, i32 0, i32 12
  %2292 = getelementptr inbounds %struct.ImVec2, ptr %2291, i32 0, i32 1
  %2293 = load float, ptr %2292, align 4, !tbaa !201
  %2294 = fcmp une float %2293, 0.000000e+00
  br i1 %2294, label %2295, label %2300

2295:                                             ; preds = %2288
  %2296 = load ptr, ptr %10, align 8, !tbaa !5
  %2297 = getelementptr inbounds %struct.ImGuiWindow, ptr %2296, i32 0, i32 12
  %2298 = getelementptr inbounds %struct.ImVec2, ptr %2297, i32 0, i32 1
  %2299 = load float, ptr %2298, align 4, !tbaa !201
  br label %2330

2300:                                             ; preds = %2288
  %2301 = load i8, ptr %86, align 1, !tbaa !97, !range !93, !noundef !94
  %2302 = trunc i8 %2301 to i1
  br i1 %2302, label %2303, label %2308

2303:                                             ; preds = %2300
  %2304 = load ptr, ptr %10, align 8, !tbaa !5
  %2305 = getelementptr inbounds %struct.ImGuiWindow, ptr %2304, i32 0, i32 10
  %2306 = getelementptr inbounds %struct.ImVec2, ptr %2305, i32 0, i32 1
  %2307 = load float, ptr %2306, align 4, !tbaa !247
  br label %2309

2308:                                             ; preds = %2300
  br label %2309

2309:                                             ; preds = %2308, %2303
  %2310 = phi float [ %2307, %2303 ], [ 0.000000e+00, %2308 ]
  %2311 = load ptr, ptr %10, align 8, !tbaa !5
  %2312 = getelementptr inbounds %struct.ImGuiWindow, ptr %2311, i32 0, i32 8
  %2313 = getelementptr inbounds %struct.ImVec2, ptr %2312, i32 0, i32 1
  %2314 = load float, ptr %2313, align 4, !tbaa !183
  %2315 = load ptr, ptr %10, align 8, !tbaa !5
  %2316 = getelementptr inbounds %struct.ImGuiWindow, ptr %2315, i32 0, i32 13
  %2317 = getelementptr inbounds %struct.ImVec2, ptr %2316, i32 0, i32 1
  %2318 = load float, ptr %2317, align 4, !tbaa !248
  %2319 = fneg float %2318
  %2320 = call float @llvm.fmuladd.f32(float %2319, float 2.000000e+00, float %2314)
  %2321 = load ptr, ptr %10, align 8, !tbaa !5
  %2322 = getelementptr inbounds %struct.ImGuiWindow, ptr %2321, i32 0, i32 19
  %2323 = load float, ptr %2322, align 4, !tbaa !211
  %2324 = load ptr, ptr %10, align 8, !tbaa !5
  %2325 = getelementptr inbounds %struct.ImGuiWindow, ptr %2324, i32 0, i32 21
  %2326 = load float, ptr %2325, align 4, !tbaa !212
  %2327 = fadd float %2323, %2326
  %2328 = fsub float %2320, %2327
  %2329 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %2310, float noundef %2328)
  br label %2330

2330:                                             ; preds = %2309, %2295
  %2331 = phi float [ %2299, %2295 ], [ %2329, %2309 ]
  store float %2331, ptr %88, align 4, !tbaa !138
  %2332 = load ptr, ptr %10, align 8, !tbaa !5
  %2333 = getelementptr inbounds %struct.ImGuiWindow, ptr %2332, i32 0, i32 71
  %2334 = getelementptr inbounds %struct.ImRect, ptr %2333, i32 0, i32 0
  %2335 = getelementptr inbounds %struct.ImVec2, ptr %2334, i32 0, i32 0
  %2336 = load float, ptr %2335, align 8, !tbaa !234
  %2337 = load ptr, ptr %10, align 8, !tbaa !5
  %2338 = getelementptr inbounds %struct.ImGuiWindow, ptr %2337, i32 0, i32 28
  %2339 = getelementptr inbounds %struct.ImVec2, ptr %2338, i32 0, i32 0
  %2340 = load float, ptr %2339, align 8, !tbaa !265
  %2341 = fsub float %2336, %2340
  %2342 = load ptr, ptr %10, align 8, !tbaa !5
  %2343 = getelementptr inbounds %struct.ImGuiWindow, ptr %2342, i32 0, i32 13
  %2344 = getelementptr inbounds %struct.ImVec2, ptr %2343, i32 0, i32 0
  %2345 = load float, ptr %2344, align 8, !tbaa !189
  %2346 = load ptr, ptr %10, align 8, !tbaa !5
  %2347 = getelementptr inbounds %struct.ImGuiWindow, ptr %2346, i32 0, i32 15
  %2348 = load float, ptr %2347, align 4, !tbaa !185
  %2349 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %2345, float noundef %2348)
  %2350 = fadd float %2341, %2349
  %2351 = call noundef float @_ZL7ImTruncf(float noundef %2350)
  %2352 = load ptr, ptr %10, align 8, !tbaa !5
  %2353 = getelementptr inbounds %struct.ImGuiWindow, ptr %2352, i32 0, i32 73
  %2354 = getelementptr inbounds %struct.ImRect, ptr %2353, i32 0, i32 0
  %2355 = getelementptr inbounds %struct.ImVec2, ptr %2354, i32 0, i32 0
  store float %2351, ptr %2355, align 8, !tbaa !266
  %2356 = load ptr, ptr %10, align 8, !tbaa !5
  %2357 = getelementptr inbounds %struct.ImGuiWindow, ptr %2356, i32 0, i32 71
  %2358 = getelementptr inbounds %struct.ImRect, ptr %2357, i32 0, i32 0
  %2359 = getelementptr inbounds %struct.ImVec2, ptr %2358, i32 0, i32 1
  %2360 = load float, ptr %2359, align 4, !tbaa !236
  %2361 = load ptr, ptr %10, align 8, !tbaa !5
  %2362 = getelementptr inbounds %struct.ImGuiWindow, ptr %2361, i32 0, i32 28
  %2363 = getelementptr inbounds %struct.ImVec2, ptr %2362, i32 0, i32 1
  %2364 = load float, ptr %2363, align 4, !tbaa !267
  %2365 = fsub float %2360, %2364
  %2366 = load ptr, ptr %10, align 8, !tbaa !5
  %2367 = getelementptr inbounds %struct.ImGuiWindow, ptr %2366, i32 0, i32 13
  %2368 = getelementptr inbounds %struct.ImVec2, ptr %2367, i32 0, i32 1
  %2369 = load float, ptr %2368, align 4, !tbaa !248
  %2370 = load ptr, ptr %10, align 8, !tbaa !5
  %2371 = getelementptr inbounds %struct.ImGuiWindow, ptr %2370, i32 0, i32 15
  %2372 = load float, ptr %2371, align 4, !tbaa !185
  %2373 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %2369, float noundef %2372)
  %2374 = fadd float %2365, %2373
  %2375 = call noundef float @_ZL7ImTruncf(float noundef %2374)
  %2376 = load ptr, ptr %10, align 8, !tbaa !5
  %2377 = getelementptr inbounds %struct.ImGuiWindow, ptr %2376, i32 0, i32 73
  %2378 = getelementptr inbounds %struct.ImRect, ptr %2377, i32 0, i32 0
  %2379 = getelementptr inbounds %struct.ImVec2, ptr %2378, i32 0, i32 1
  store float %2375, ptr %2379, align 4, !tbaa !268
  %2380 = load ptr, ptr %10, align 8, !tbaa !5
  %2381 = getelementptr inbounds %struct.ImGuiWindow, ptr %2380, i32 0, i32 73
  %2382 = getelementptr inbounds %struct.ImRect, ptr %2381, i32 0, i32 0
  %2383 = getelementptr inbounds %struct.ImVec2, ptr %2382, i32 0, i32 0
  %2384 = load float, ptr %2383, align 8, !tbaa !266
  %2385 = load float, ptr %87, align 4, !tbaa !138
  %2386 = fadd float %2384, %2385
  %2387 = load ptr, ptr %10, align 8, !tbaa !5
  %2388 = getelementptr inbounds %struct.ImGuiWindow, ptr %2387, i32 0, i32 73
  %2389 = getelementptr inbounds %struct.ImRect, ptr %2388, i32 0, i32 1
  %2390 = getelementptr inbounds %struct.ImVec2, ptr %2389, i32 0, i32 0
  store float %2386, ptr %2390, align 8, !tbaa !269
  %2391 = load ptr, ptr %10, align 8, !tbaa !5
  %2392 = getelementptr inbounds %struct.ImGuiWindow, ptr %2391, i32 0, i32 73
  %2393 = getelementptr inbounds %struct.ImRect, ptr %2392, i32 0, i32 0
  %2394 = getelementptr inbounds %struct.ImVec2, ptr %2393, i32 0, i32 1
  %2395 = load float, ptr %2394, align 4, !tbaa !268
  %2396 = load float, ptr %88, align 4, !tbaa !138
  %2397 = fadd float %2395, %2396
  %2398 = load ptr, ptr %10, align 8, !tbaa !5
  %2399 = getelementptr inbounds %struct.ImGuiWindow, ptr %2398, i32 0, i32 73
  %2400 = getelementptr inbounds %struct.ImRect, ptr %2399, i32 0, i32 1
  %2401 = getelementptr inbounds %struct.ImVec2, ptr %2400, i32 0, i32 1
  store float %2397, ptr %2401, align 4, !tbaa !270
  %2402 = load ptr, ptr %10, align 8, !tbaa !5
  %2403 = getelementptr inbounds %struct.ImGuiWindow, ptr %2402, i32 0, i32 73
  %2404 = load ptr, ptr %10, align 8, !tbaa !5
  %2405 = getelementptr inbounds %struct.ImGuiWindow, ptr %2404, i32 0, i32 74
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2405, ptr align 8 %2403, i64 16, i1 false), !tbaa.struct !171
  %2406 = load ptr, ptr %10, align 8, !tbaa !5
  %2407 = getelementptr inbounds %struct.ImGuiWindow, ptr %2406, i32 0, i32 7
  %2408 = getelementptr inbounds %struct.ImVec2, ptr %2407, i32 0, i32 0
  %2409 = load float, ptr %2408, align 8, !tbaa !233
  %2410 = load ptr, ptr %10, align 8, !tbaa !5
  %2411 = getelementptr inbounds %struct.ImGuiWindow, ptr %2410, i32 0, i32 28
  %2412 = getelementptr inbounds %struct.ImVec2, ptr %2411, i32 0, i32 0
  %2413 = load float, ptr %2412, align 8, !tbaa !265
  %2414 = fsub float %2409, %2413
  %2415 = load ptr, ptr %10, align 8, !tbaa !5
  %2416 = getelementptr inbounds %struct.ImGuiWindow, ptr %2415, i32 0, i32 13
  %2417 = getelementptr inbounds %struct.ImVec2, ptr %2416, i32 0, i32 0
  %2418 = load float, ptr %2417, align 8, !tbaa !189
  %2419 = fadd float %2414, %2418
  %2420 = load ptr, ptr %10, align 8, !tbaa !5
  %2421 = getelementptr inbounds %struct.ImGuiWindow, ptr %2420, i32 0, i32 18
  %2422 = load float, ptr %2421, align 8, !tbaa !209
  %2423 = fadd float %2419, %2422
  %2424 = load ptr, ptr %10, align 8, !tbaa !5
  %2425 = getelementptr inbounds %struct.ImGuiWindow, ptr %2424, i32 0, i32 76
  %2426 = getelementptr inbounds %struct.ImRect, ptr %2425, i32 0, i32 0
  %2427 = getelementptr inbounds %struct.ImVec2, ptr %2426, i32 0, i32 0
  store float %2423, ptr %2427, align 8, !tbaa !271
  %2428 = load ptr, ptr %10, align 8, !tbaa !5
  %2429 = getelementptr inbounds %struct.ImGuiWindow, ptr %2428, i32 0, i32 7
  %2430 = getelementptr inbounds %struct.ImVec2, ptr %2429, i32 0, i32 1
  %2431 = load float, ptr %2430, align 4, !tbaa !235
  %2432 = load ptr, ptr %10, align 8, !tbaa !5
  %2433 = getelementptr inbounds %struct.ImGuiWindow, ptr %2432, i32 0, i32 28
  %2434 = getelementptr inbounds %struct.ImVec2, ptr %2433, i32 0, i32 1
  %2435 = load float, ptr %2434, align 4, !tbaa !267
  %2436 = fsub float %2431, %2435
  %2437 = load ptr, ptr %10, align 8, !tbaa !5
  %2438 = getelementptr inbounds %struct.ImGuiWindow, ptr %2437, i32 0, i32 13
  %2439 = getelementptr inbounds %struct.ImVec2, ptr %2438, i32 0, i32 1
  %2440 = load float, ptr %2439, align 4, !tbaa !248
  %2441 = fadd float %2436, %2440
  %2442 = load ptr, ptr %10, align 8, !tbaa !5
  %2443 = getelementptr inbounds %struct.ImGuiWindow, ptr %2442, i32 0, i32 19
  %2444 = load float, ptr %2443, align 4, !tbaa !211
  %2445 = fadd float %2441, %2444
  %2446 = load ptr, ptr %10, align 8, !tbaa !5
  %2447 = getelementptr inbounds %struct.ImGuiWindow, ptr %2446, i32 0, i32 76
  %2448 = getelementptr inbounds %struct.ImRect, ptr %2447, i32 0, i32 0
  %2449 = getelementptr inbounds %struct.ImVec2, ptr %2448, i32 0, i32 1
  store float %2445, ptr %2449, align 4, !tbaa !272
  %2450 = load ptr, ptr %10, align 8, !tbaa !5
  %2451 = getelementptr inbounds %struct.ImGuiWindow, ptr %2450, i32 0, i32 76
  %2452 = getelementptr inbounds %struct.ImRect, ptr %2451, i32 0, i32 0
  %2453 = getelementptr inbounds %struct.ImVec2, ptr %2452, i32 0, i32 0
  %2454 = load float, ptr %2453, align 8, !tbaa !271
  %2455 = load ptr, ptr %10, align 8, !tbaa !5
  %2456 = getelementptr inbounds %struct.ImGuiWindow, ptr %2455, i32 0, i32 12
  %2457 = getelementptr inbounds %struct.ImVec2, ptr %2456, i32 0, i32 0
  %2458 = load float, ptr %2457, align 8, !tbaa !200
  %2459 = fcmp une float %2458, 0.000000e+00
  br i1 %2459, label %2460, label %2465

2460:                                             ; preds = %2330
  %2461 = load ptr, ptr %10, align 8, !tbaa !5
  %2462 = getelementptr inbounds %struct.ImGuiWindow, ptr %2461, i32 0, i32 12
  %2463 = getelementptr inbounds %struct.ImVec2, ptr %2462, i32 0, i32 0
  %2464 = load float, ptr %2463, align 8, !tbaa !200
  br label %2484

2465:                                             ; preds = %2330
  %2466 = load ptr, ptr %10, align 8, !tbaa !5
  %2467 = getelementptr inbounds %struct.ImGuiWindow, ptr %2466, i32 0, i32 8
  %2468 = getelementptr inbounds %struct.ImVec2, ptr %2467, i32 0, i32 0
  %2469 = load float, ptr %2468, align 8, !tbaa !182
  %2470 = load ptr, ptr %10, align 8, !tbaa !5
  %2471 = getelementptr inbounds %struct.ImGuiWindow, ptr %2470, i32 0, i32 13
  %2472 = getelementptr inbounds %struct.ImVec2, ptr %2471, i32 0, i32 0
  %2473 = load float, ptr %2472, align 8, !tbaa !189
  %2474 = fneg float %2473
  %2475 = call float @llvm.fmuladd.f32(float %2474, float 2.000000e+00, float %2469)
  %2476 = load ptr, ptr %10, align 8, !tbaa !5
  %2477 = getelementptr inbounds %struct.ImGuiWindow, ptr %2476, i32 0, i32 18
  %2478 = load float, ptr %2477, align 8, !tbaa !209
  %2479 = load ptr, ptr %10, align 8, !tbaa !5
  %2480 = getelementptr inbounds %struct.ImGuiWindow, ptr %2479, i32 0, i32 20
  %2481 = load float, ptr %2480, align 8, !tbaa !210
  %2482 = fadd float %2478, %2481
  %2483 = fsub float %2475, %2482
  br label %2484

2484:                                             ; preds = %2465, %2460
  %2485 = phi float [ %2464, %2460 ], [ %2483, %2465 ]
  %2486 = fadd float %2454, %2485
  %2487 = load ptr, ptr %10, align 8, !tbaa !5
  %2488 = getelementptr inbounds %struct.ImGuiWindow, ptr %2487, i32 0, i32 76
  %2489 = getelementptr inbounds %struct.ImRect, ptr %2488, i32 0, i32 1
  %2490 = getelementptr inbounds %struct.ImVec2, ptr %2489, i32 0, i32 0
  store float %2486, ptr %2490, align 8, !tbaa !273
  %2491 = load ptr, ptr %10, align 8, !tbaa !5
  %2492 = getelementptr inbounds %struct.ImGuiWindow, ptr %2491, i32 0, i32 76
  %2493 = getelementptr inbounds %struct.ImRect, ptr %2492, i32 0, i32 0
  %2494 = getelementptr inbounds %struct.ImVec2, ptr %2493, i32 0, i32 1
  %2495 = load float, ptr %2494, align 4, !tbaa !272
  %2496 = load ptr, ptr %10, align 8, !tbaa !5
  %2497 = getelementptr inbounds %struct.ImGuiWindow, ptr %2496, i32 0, i32 12
  %2498 = getelementptr inbounds %struct.ImVec2, ptr %2497, i32 0, i32 1
  %2499 = load float, ptr %2498, align 4, !tbaa !201
  %2500 = fcmp une float %2499, 0.000000e+00
  br i1 %2500, label %2501, label %2506

2501:                                             ; preds = %2484
  %2502 = load ptr, ptr %10, align 8, !tbaa !5
  %2503 = getelementptr inbounds %struct.ImGuiWindow, ptr %2502, i32 0, i32 12
  %2504 = getelementptr inbounds %struct.ImVec2, ptr %2503, i32 0, i32 1
  %2505 = load float, ptr %2504, align 4, !tbaa !201
  br label %2525

2506:                                             ; preds = %2484
  %2507 = load ptr, ptr %10, align 8, !tbaa !5
  %2508 = getelementptr inbounds %struct.ImGuiWindow, ptr %2507, i32 0, i32 8
  %2509 = getelementptr inbounds %struct.ImVec2, ptr %2508, i32 0, i32 1
  %2510 = load float, ptr %2509, align 4, !tbaa !183
  %2511 = load ptr, ptr %10, align 8, !tbaa !5
  %2512 = getelementptr inbounds %struct.ImGuiWindow, ptr %2511, i32 0, i32 13
  %2513 = getelementptr inbounds %struct.ImVec2, ptr %2512, i32 0, i32 1
  %2514 = load float, ptr %2513, align 4, !tbaa !248
  %2515 = fneg float %2514
  %2516 = call float @llvm.fmuladd.f32(float %2515, float 2.000000e+00, float %2510)
  %2517 = load ptr, ptr %10, align 8, !tbaa !5
  %2518 = getelementptr inbounds %struct.ImGuiWindow, ptr %2517, i32 0, i32 19
  %2519 = load float, ptr %2518, align 4, !tbaa !211
  %2520 = load ptr, ptr %10, align 8, !tbaa !5
  %2521 = getelementptr inbounds %struct.ImGuiWindow, ptr %2520, i32 0, i32 21
  %2522 = load float, ptr %2521, align 4, !tbaa !212
  %2523 = fadd float %2519, %2522
  %2524 = fsub float %2516, %2523
  br label %2525

2525:                                             ; preds = %2506, %2501
  %2526 = phi float [ %2505, %2501 ], [ %2524, %2506 ]
  %2527 = fadd float %2495, %2526
  %2528 = load ptr, ptr %10, align 8, !tbaa !5
  %2529 = getelementptr inbounds %struct.ImGuiWindow, ptr %2528, i32 0, i32 76
  %2530 = getelementptr inbounds %struct.ImRect, ptr %2529, i32 0, i32 1
  %2531 = getelementptr inbounds %struct.ImVec2, ptr %2530, i32 0, i32 1
  store float %2527, ptr %2531, align 4, !tbaa !274
  %2532 = load ptr, ptr %10, align 8, !tbaa !5
  %2533 = getelementptr inbounds %struct.ImGuiWindow, ptr %2532, i32 0, i32 18
  %2534 = load float, ptr %2533, align 8, !tbaa !209
  %2535 = load ptr, ptr %10, align 8, !tbaa !5
  %2536 = getelementptr inbounds %struct.ImGuiWindow, ptr %2535, i32 0, i32 13
  %2537 = getelementptr inbounds %struct.ImVec2, ptr %2536, i32 0, i32 0
  %2538 = load float, ptr %2537, align 8, !tbaa !189
  %2539 = fadd float %2534, %2538
  %2540 = load ptr, ptr %10, align 8, !tbaa !5
  %2541 = getelementptr inbounds %struct.ImGuiWindow, ptr %2540, i32 0, i32 28
  %2542 = getelementptr inbounds %struct.ImVec2, ptr %2541, i32 0, i32 0
  %2543 = load float, ptr %2542, align 8, !tbaa !265
  %2544 = fsub float %2539, %2543
  %2545 = load ptr, ptr %10, align 8, !tbaa !5
  %2546 = getelementptr inbounds %struct.ImGuiWindow, ptr %2545, i32 0, i32 69
  %2547 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2546, i32 0, i32 11
  %2548 = getelementptr inbounds %struct.ImVec1, ptr %2547, i32 0, i32 0
  store float %2544, ptr %2548, align 4, !tbaa !275
  %2549 = load ptr, ptr %10, align 8, !tbaa !5
  %2550 = getelementptr inbounds %struct.ImGuiWindow, ptr %2549, i32 0, i32 69
  %2551 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2550, i32 0, i32 13
  %2552 = getelementptr inbounds %struct.ImVec1, ptr %2551, i32 0, i32 0
  store float 0.000000e+00, ptr %2552, align 4, !tbaa !276
  %2553 = load ptr, ptr %10, align 8, !tbaa !5
  %2554 = getelementptr inbounds %struct.ImGuiWindow, ptr %2553, i32 0, i32 69
  %2555 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2554, i32 0, i32 12
  %2556 = getelementptr inbounds %struct.ImVec1, ptr %2555, i32 0, i32 0
  store float 0.000000e+00, ptr %2556, align 8, !tbaa !277
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #12
  %2557 = load ptr, ptr %10, align 8, !tbaa !5
  %2558 = getelementptr inbounds %struct.ImGuiWindow, ptr %2557, i32 0, i32 7
  %2559 = getelementptr inbounds %struct.ImVec2, ptr %2558, i32 0, i32 0
  %2560 = load float, ptr %2559, align 8, !tbaa !233
  %2561 = fpext float %2560 to double
  %2562 = load ptr, ptr %10, align 8, !tbaa !5
  %2563 = getelementptr inbounds %struct.ImGuiWindow, ptr %2562, i32 0, i32 13
  %2564 = getelementptr inbounds %struct.ImVec2, ptr %2563, i32 0, i32 0
  %2565 = load float, ptr %2564, align 8, !tbaa !189
  %2566 = fpext float %2565 to double
  %2567 = fadd double %2561, %2566
  %2568 = load ptr, ptr %10, align 8, !tbaa !5
  %2569 = getelementptr inbounds %struct.ImGuiWindow, ptr %2568, i32 0, i32 28
  %2570 = getelementptr inbounds %struct.ImVec2, ptr %2569, i32 0, i32 0
  %2571 = load float, ptr %2570, align 8, !tbaa !265
  %2572 = fpext float %2571 to double
  %2573 = fsub double %2567, %2572
  %2574 = load ptr, ptr %10, align 8, !tbaa !5
  %2575 = getelementptr inbounds %struct.ImGuiWindow, ptr %2574, i32 0, i32 18
  %2576 = load float, ptr %2575, align 8, !tbaa !209
  %2577 = fpext float %2576 to double
  %2578 = fadd double %2573, %2577
  %2579 = load ptr, ptr %10, align 8, !tbaa !5
  %2580 = getelementptr inbounds %struct.ImGuiWindow, ptr %2579, i32 0, i32 69
  %2581 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2580, i32 0, i32 12
  %2582 = getelementptr inbounds %struct.ImVec1, ptr %2581, i32 0, i32 0
  %2583 = load float, ptr %2582, align 8, !tbaa !277
  %2584 = fpext float %2583 to double
  %2585 = fadd double %2578, %2584
  store double %2585, ptr %89, align 8, !tbaa !278
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #12
  %2586 = load ptr, ptr %10, align 8, !tbaa !5
  %2587 = getelementptr inbounds %struct.ImGuiWindow, ptr %2586, i32 0, i32 7
  %2588 = getelementptr inbounds %struct.ImVec2, ptr %2587, i32 0, i32 1
  %2589 = load float, ptr %2588, align 4, !tbaa !235
  %2590 = fpext float %2589 to double
  %2591 = load ptr, ptr %10, align 8, !tbaa !5
  %2592 = getelementptr inbounds %struct.ImGuiWindow, ptr %2591, i32 0, i32 13
  %2593 = getelementptr inbounds %struct.ImVec2, ptr %2592, i32 0, i32 1
  %2594 = load float, ptr %2593, align 4, !tbaa !248
  %2595 = fpext float %2594 to double
  %2596 = fadd double %2590, %2595
  %2597 = load ptr, ptr %10, align 8, !tbaa !5
  %2598 = getelementptr inbounds %struct.ImGuiWindow, ptr %2597, i32 0, i32 28
  %2599 = getelementptr inbounds %struct.ImVec2, ptr %2598, i32 0, i32 1
  %2600 = load float, ptr %2599, align 4, !tbaa !267
  %2601 = fpext float %2600 to double
  %2602 = fsub double %2596, %2601
  %2603 = load ptr, ptr %10, align 8, !tbaa !5
  %2604 = getelementptr inbounds %struct.ImGuiWindow, ptr %2603, i32 0, i32 19
  %2605 = load float, ptr %2604, align 4, !tbaa !211
  %2606 = fpext float %2605 to double
  %2607 = fadd double %2602, %2606
  store double %2607, ptr %90, align 8, !tbaa !278
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #12
  %2608 = load double, ptr %89, align 8, !tbaa !278
  %2609 = fptrunc double %2608 to float
  %2610 = load double, ptr %90, align 8, !tbaa !278
  %2611 = fptrunc double %2610 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %91, float noundef %2609, float noundef %2611)
  %2612 = load ptr, ptr %10, align 8, !tbaa !5
  %2613 = getelementptr inbounds %struct.ImGuiWindow, ptr %2612, i32 0, i32 69
  %2614 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2613, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2614, ptr align 4 %91, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #12
  %2615 = load double, ptr %89, align 8, !tbaa !278
  %2616 = load ptr, ptr %10, align 8, !tbaa !5
  %2617 = getelementptr inbounds %struct.ImGuiWindow, ptr %2616, i32 0, i32 69
  %2618 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2617, i32 0, i32 2
  %2619 = getelementptr inbounds %struct.ImVec2, ptr %2618, i32 0, i32 0
  %2620 = load float, ptr %2619, align 8, !tbaa !279
  %2621 = fpext float %2620 to double
  %2622 = fsub double %2615, %2621
  %2623 = fptrunc double %2622 to float
  %2624 = load double, ptr %90, align 8, !tbaa !278
  %2625 = load ptr, ptr %10, align 8, !tbaa !5
  %2626 = getelementptr inbounds %struct.ImGuiWindow, ptr %2625, i32 0, i32 69
  %2627 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2626, i32 0, i32 2
  %2628 = getelementptr inbounds %struct.ImVec2, ptr %2627, i32 0, i32 1
  %2629 = load float, ptr %2628, align 4, !tbaa !280
  %2630 = fpext float %2629 to double
  %2631 = fsub double %2624, %2630
  %2632 = fptrunc double %2631 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %92, float noundef %2623, float noundef %2632)
  %2633 = load ptr, ptr %10, align 8, !tbaa !5
  %2634 = getelementptr inbounds %struct.ImGuiWindow, ptr %2633, i32 0, i32 69
  %2635 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2634, i32 0, i32 14
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2635, ptr align 4 %92, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #12
  %2636 = load ptr, ptr %10, align 8, !tbaa !5
  %2637 = getelementptr inbounds %struct.ImGuiWindow, ptr %2636, i32 0, i32 69
  %2638 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2637, i32 0, i32 2
  %2639 = load ptr, ptr %10, align 8, !tbaa !5
  %2640 = getelementptr inbounds %struct.ImGuiWindow, ptr %2639, i32 0, i32 69
  %2641 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2640, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2641, ptr align 8 %2638, i64 8, i1 false), !tbaa.struct !152
  %2642 = load ptr, ptr %10, align 8, !tbaa !5
  %2643 = getelementptr inbounds %struct.ImGuiWindow, ptr %2642, i32 0, i32 69
  %2644 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2643, i32 0, i32 0
  %2645 = load ptr, ptr %10, align 8, !tbaa !5
  %2646 = getelementptr inbounds %struct.ImGuiWindow, ptr %2645, i32 0, i32 69
  %2647 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2646, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2647, ptr align 8 %2644, i64 8, i1 false), !tbaa.struct !152
  %2648 = load ptr, ptr %10, align 8, !tbaa !5
  %2649 = getelementptr inbounds %struct.ImGuiWindow, ptr %2648, i32 0, i32 69
  %2650 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2649, i32 0, i32 2
  %2651 = load ptr, ptr %10, align 8, !tbaa !5
  %2652 = getelementptr inbounds %struct.ImGuiWindow, ptr %2651, i32 0, i32 69
  %2653 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2652, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2653, ptr align 8 %2650, i64 8, i1 false), !tbaa.struct !152
  %2654 = load ptr, ptr %10, align 8, !tbaa !5
  %2655 = getelementptr inbounds %struct.ImGuiWindow, ptr %2654, i32 0, i32 69
  %2656 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2655, i32 0, i32 2
  %2657 = load ptr, ptr %10, align 8, !tbaa !5
  %2658 = getelementptr inbounds %struct.ImGuiWindow, ptr %2657, i32 0, i32 69
  %2659 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2658, i32 0, i32 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2659, ptr align 8 %2656, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #12
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %93, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %2660 = load ptr, ptr %10, align 8, !tbaa !5
  %2661 = getelementptr inbounds %struct.ImGuiWindow, ptr %2660, i32 0, i32 69
  %2662 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2661, i32 0, i32 6
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2662, ptr align 4 %93, i64 8, i1 false), !tbaa.struct !152
  %2663 = load ptr, ptr %10, align 8, !tbaa !5
  %2664 = getelementptr inbounds %struct.ImGuiWindow, ptr %2663, i32 0, i32 69
  %2665 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2664, i32 0, i32 5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2665, ptr align 4 %2662, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #12
  %2666 = load ptr, ptr %10, align 8, !tbaa !5
  %2667 = getelementptr inbounds %struct.ImGuiWindow, ptr %2666, i32 0, i32 69
  %2668 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2667, i32 0, i32 8
  store float 0.000000e+00, ptr %2668, align 4, !tbaa !281
  %2669 = load ptr, ptr %10, align 8, !tbaa !5
  %2670 = getelementptr inbounds %struct.ImGuiWindow, ptr %2669, i32 0, i32 69
  %2671 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2670, i32 0, i32 7
  store float 0.000000e+00, ptr %2671, align 8, !tbaa !282
  %2672 = load ptr, ptr %10, align 8, !tbaa !5
  %2673 = getelementptr inbounds %struct.ImGuiWindow, ptr %2672, i32 0, i32 69
  %2674 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2673, i32 0, i32 10
  store i8 0, ptr %2674, align 1, !tbaa !283
  %2675 = load ptr, ptr %10, align 8, !tbaa !5
  %2676 = getelementptr inbounds %struct.ImGuiWindow, ptr %2675, i32 0, i32 69
  %2677 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2676, i32 0, i32 9
  store i8 0, ptr %2677, align 8, !tbaa !284
  %2678 = load ptr, ptr %10, align 8, !tbaa !5
  %2679 = getelementptr inbounds %struct.ImGuiWindow, ptr %2678, i32 0, i32 69
  %2680 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2679, i32 0, i32 15
  store i32 0, ptr %2680, align 8, !tbaa !149
  %2681 = load ptr, ptr %10, align 8, !tbaa !5
  %2682 = getelementptr inbounds %struct.ImGuiWindow, ptr %2681, i32 0, i32 69
  %2683 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2682, i32 0, i32 17
  %2684 = load i16, ptr %2683, align 2, !tbaa !285
  %2685 = load ptr, ptr %10, align 8, !tbaa !5
  %2686 = getelementptr inbounds %struct.ImGuiWindow, ptr %2685, i32 0, i32 69
  %2687 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2686, i32 0, i32 16
  store i16 %2684, ptr %2687, align 4, !tbaa !286
  %2688 = load ptr, ptr %10, align 8, !tbaa !5
  %2689 = getelementptr inbounds %struct.ImGuiWindow, ptr %2688, i32 0, i32 69
  %2690 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2689, i32 0, i32 17
  store i16 0, ptr %2690, align 2, !tbaa !285
  %2691 = load ptr, ptr %10, align 8, !tbaa !5
  %2692 = getelementptr inbounds %struct.ImGuiWindow, ptr %2691, i32 0, i32 69
  %2693 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2692, i32 0, i32 18
  store i8 1, ptr %2693, align 8, !tbaa !287
  %2694 = load ptr, ptr %10, align 8, !tbaa !5
  %2695 = getelementptr inbounds %struct.ImGuiWindow, ptr %2694, i32 0, i32 69
  %2696 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2695, i32 0, i32 19
  store i8 0, ptr %2696, align 1, !tbaa !288
  %2697 = load ptr, ptr %10, align 8, !tbaa !5
  %2698 = getelementptr inbounds %struct.ImGuiWindow, ptr %2697, i32 0, i32 29
  %2699 = getelementptr inbounds %struct.ImVec2, ptr %2698, i32 0, i32 1
  %2700 = load float, ptr %2699, align 4, !tbaa !249
  %2701 = fcmp ogt float %2700, 0.000000e+00
  %2702 = load ptr, ptr %10, align 8, !tbaa !5
  %2703 = getelementptr inbounds %struct.ImGuiWindow, ptr %2702, i32 0, i32 69
  %2704 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2703, i32 0, i32 20
  %2705 = zext i1 %2701 to i8
  store i8 %2705, ptr %2704, align 2, !tbaa !289
  %2706 = load ptr, ptr %10, align 8, !tbaa !5
  %2707 = getelementptr inbounds %struct.ImGuiWindow, ptr %2706, i32 0, i32 69
  %2708 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2707, i32 0, i32 21
  store i8 0, ptr %2708, align 1, !tbaa !290
  %2709 = load ptr, ptr %10, align 8, !tbaa !5
  %2710 = getelementptr inbounds %struct.ImGuiWindow, ptr %2709, i32 0, i32 69
  %2711 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2710, i32 0, i32 23
  %2712 = load ptr, ptr %9, align 8, !tbaa !5
  %2713 = getelementptr inbounds %struct.ImGuiStyle, ptr %2712, i32 0, i32 16
  %2714 = getelementptr inbounds %struct.ImVec2, ptr %2713, i32 0, i32 0
  %2715 = load float, ptr %2714, align 4, !tbaa !190
  %2716 = load i8, ptr %14, align 1, !tbaa !97, !range !93, !noundef !94
  %2717 = trunc i8 %2716 to i1
  call void @_ZN16ImGuiMenuColumns6UpdateEfb(ptr noundef nonnull align 4 dereferenceable(26) %2711, float noundef %2715, i1 noundef zeroext %2717)
  %2718 = load ptr, ptr %10, align 8, !tbaa !5
  %2719 = getelementptr inbounds %struct.ImGuiWindow, ptr %2718, i32 0, i32 69
  %2720 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2719, i32 0, i32 24
  store i32 0, ptr %2720, align 8, !tbaa !291
  %2721 = load ptr, ptr %10, align 8, !tbaa !5
  %2722 = getelementptr inbounds %struct.ImGuiWindow, ptr %2721, i32 0, i32 69
  %2723 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2722, i32 0, i32 25
  store i32 0, ptr %2723, align 4, !tbaa !292
  %2724 = load ptr, ptr %10, align 8, !tbaa !5
  %2725 = getelementptr inbounds %struct.ImGuiWindow, ptr %2724, i32 0, i32 69
  %2726 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2725, i32 0, i32 26
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2726, i32 noundef 0)
  %2727 = load ptr, ptr %10, align 8, !tbaa !5
  %2728 = getelementptr inbounds %struct.ImGuiWindow, ptr %2727, i32 0, i32 83
  %2729 = load ptr, ptr %10, align 8, !tbaa !5
  %2730 = getelementptr inbounds %struct.ImGuiWindow, ptr %2729, i32 0, i32 69
  %2731 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2730, i32 0, i32 27
  store ptr %2728, ptr %2731, align 8, !tbaa !293
  %2732 = load ptr, ptr %10, align 8, !tbaa !5
  %2733 = getelementptr inbounds %struct.ImGuiWindow, ptr %2732, i32 0, i32 69
  %2734 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2733, i32 0, i32 28
  store ptr null, ptr %2734, align 8, !tbaa !294
  %2735 = load ptr, ptr %10, align 8, !tbaa !5
  %2736 = getelementptr inbounds %struct.ImGuiWindow, ptr %2735, i32 0, i32 69
  %2737 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2736, i32 0, i32 30
  store i32 1, ptr %2737, align 4, !tbaa !295
  %2738 = load ptr, ptr %17, align 8, !tbaa !5
  %2739 = icmp ne ptr %2738, null
  br i1 %2739, label %2740, label %2745

2740:                                             ; preds = %2525
  %2741 = load ptr, ptr %17, align 8, !tbaa !5
  %2742 = getelementptr inbounds %struct.ImGuiWindow, ptr %2741, i32 0, i32 69
  %2743 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2742, i32 0, i32 30
  %2744 = load i32, ptr %2743, align 4, !tbaa !295
  br label %2746

2745:                                             ; preds = %2525
  br label %2746

2746:                                             ; preds = %2745, %2740
  %2747 = phi i32 [ %2744, %2740 ], [ 1, %2745 ]
  %2748 = load ptr, ptr %10, align 8, !tbaa !5
  %2749 = getelementptr inbounds %struct.ImGuiWindow, ptr %2748, i32 0, i32 69
  %2750 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2749, i32 0, i32 31
  store i32 %2747, ptr %2750, align 8, !tbaa !296
  %2751 = load ptr, ptr %10, align 8, !tbaa !5
  %2752 = getelementptr inbounds %struct.ImGuiWindow, ptr %2751, i32 0, i32 81
  %2753 = load float, ptr %2752, align 8, !tbaa !244
  %2754 = load ptr, ptr %10, align 8, !tbaa !5
  %2755 = getelementptr inbounds %struct.ImGuiWindow, ptr %2754, i32 0, i32 69
  %2756 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2755, i32 0, i32 35
  store float %2753, ptr %2756, align 8, !tbaa !297
  %2757 = load ptr, ptr %10, align 8, !tbaa !5
  %2758 = getelementptr inbounds %struct.ImGuiWindow, ptr %2757, i32 0, i32 69
  %2759 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2758, i32 0, i32 36
  store float -1.000000e+00, ptr %2759, align 4, !tbaa !298
  %2760 = load ptr, ptr %10, align 8, !tbaa !5
  %2761 = getelementptr inbounds %struct.ImGuiWindow, ptr %2760, i32 0, i32 69
  %2762 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2761, i32 0, i32 37
  call void @_ZN8ImVectorIfE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2762, i32 noundef 0)
  %2763 = load ptr, ptr %10, align 8, !tbaa !5
  %2764 = getelementptr inbounds %struct.ImGuiWindow, ptr %2763, i32 0, i32 69
  %2765 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2764, i32 0, i32 38
  call void @_ZN8ImVectorIfE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2765, i32 noundef 0)
  %2766 = load i32, ptr %7, align 4, !tbaa !9
  %2767 = and i32 %2766, 134217728
  %2768 = icmp ne i32 %2767, 0
  br i1 %2768, label %2769, label %2775

2769:                                             ; preds = %2746
  %2770 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN5ImGui17GetStyleColorVec4Ei(i32 noundef 55)
  %2771 = call noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %2770)
  %2772 = load ptr, ptr %10, align 8, !tbaa !5
  %2773 = getelementptr inbounds %struct.ImGuiWindow, ptr %2772, i32 0, i32 69
  %2774 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2773, i32 0, i32 32
  store i32 %2771, ptr %2774, align 4, !tbaa !299
  br label %2775

2775:                                             ; preds = %2769, %2746
  %2776 = load ptr, ptr %10, align 8, !tbaa !5
  %2777 = getelementptr inbounds %struct.ImGuiWindow, ptr %2776, i32 0, i32 55
  %2778 = load i8, ptr %2777, align 2, !tbaa !215
  %2779 = sext i8 %2778 to i32
  %2780 = icmp sgt i32 %2779, 0
  br i1 %2780, label %2781, label %2786

2781:                                             ; preds = %2775
  %2782 = load ptr, ptr %10, align 8, !tbaa !5
  %2783 = getelementptr inbounds %struct.ImGuiWindow, ptr %2782, i32 0, i32 55
  %2784 = load i8, ptr %2783, align 2, !tbaa !215
  %2785 = add i8 %2784, -1
  store i8 %2785, ptr %2783, align 2, !tbaa !215
  br label %2786

2786:                                             ; preds = %2781, %2775
  %2787 = load ptr, ptr %10, align 8, !tbaa !5
  %2788 = getelementptr inbounds %struct.ImGuiWindow, ptr %2787, i32 0, i32 56
  %2789 = load i8, ptr %2788, align 1, !tbaa !216
  %2790 = sext i8 %2789 to i32
  %2791 = icmp sgt i32 %2790, 0
  br i1 %2791, label %2792, label %2797

2792:                                             ; preds = %2786
  %2793 = load ptr, ptr %10, align 8, !tbaa !5
  %2794 = getelementptr inbounds %struct.ImGuiWindow, ptr %2793, i32 0, i32 56
  %2795 = load i8, ptr %2794, align 1, !tbaa !216
  %2796 = add i8 %2795, -1
  store i8 %2796, ptr %2794, align 1, !tbaa !216
  br label %2797

2797:                                             ; preds = %2792, %2786
  %2798 = load i8, ptr %55, align 1, !tbaa !97, !range !93, !noundef !94
  %2799 = trunc i8 %2798 to i1
  br i1 %2799, label %2800, label %2802

2800:                                             ; preds = %2797
  %2801 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindowi(ptr noundef %2801, i32 noundef 2)
  br label %2802

2802:                                             ; preds = %2800, %2797
  %2803 = load i8, ptr %55, align 1, !tbaa !97, !range !93, !noundef !94
  %2804 = trunc i8 %2803 to i1
  br i1 %2804, label %2805, label %2813

2805:                                             ; preds = %2802
  %2806 = load ptr, ptr %10, align 8, !tbaa !5
  %2807 = load ptr, ptr %8, align 8, !tbaa !5
  %2808 = getelementptr inbounds %struct.ImGuiContext, ptr %2807, i32 0, i32 107
  %2809 = load ptr, ptr %2808, align 8, !tbaa !263
  %2810 = icmp eq ptr %2806, %2809
  br i1 %2810, label %2811, label %2813

2811:                                             ; preds = %2805
  %2812 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZN5ImGui13NavInitWindowEP11ImGuiWindowb(ptr noundef %2812, i1 noundef zeroext false)
  br label %2813

2813:                                             ; preds = %2811, %2805, %2802
  %2814 = load ptr, ptr %8, align 8, !tbaa !5
  %2815 = getelementptr inbounds %struct.ImGuiContext, ptr %2814, i32 0, i32 2
  %2816 = getelementptr inbounds %struct.ImGuiIO, ptr %2815, i32 0, i32 28
  %2817 = load i8, ptr %2816, align 1, !tbaa !300, !range !93, !noundef !94
  %2818 = trunc i8 %2817 to i1
  br i1 %2818, label %2819, label %2841

2819:                                             ; preds = %2813
  %2820 = load ptr, ptr %8, align 8, !tbaa !5
  %2821 = getelementptr inbounds %struct.ImGuiContext, ptr %2820, i32 0, i32 107
  %2822 = load ptr, ptr %2821, align 8, !tbaa !263
  %2823 = icmp ne ptr %2822, null
  br i1 %2823, label %2824, label %2840

2824:                                             ; preds = %2819
  %2825 = load ptr, ptr %8, align 8, !tbaa !5
  %2826 = getelementptr inbounds %struct.ImGuiContext, ptr %2825, i32 0, i32 107
  %2827 = load ptr, ptr %2826, align 8, !tbaa !263
  %2828 = getelementptr inbounds %struct.ImGuiWindow, ptr %2827, i32 0, i32 93
  %2829 = load ptr, ptr %2828, align 8, !tbaa !166
  %2830 = load ptr, ptr %10, align 8, !tbaa !5
  %2831 = icmp eq ptr %2829, %2830
  br i1 %2831, label %2832, label %2840

2832:                                             ; preds = %2824
  %2833 = load ptr, ptr %8, align 8, !tbaa !5
  %2834 = getelementptr inbounds %struct.ImGuiContext, ptr %2833, i32 0, i32 56
  %2835 = load i32, ptr %2834, align 4, !tbaa !205
  %2836 = icmp eq i32 %2835, 0
  br i1 %2836, label %2837, label %2840

2837:                                             ; preds = %2832
  %2838 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEii(i32 noundef 4644, i32 noundef 0)
  br i1 %2838, label %2839, label %2840

2839:                                             ; preds = %2837
  call void @_ZN5ImGui14LogToClipboardEi(i32 noundef 0)
  br label %2840

2840:                                             ; preds = %2839, %2837, %2832, %2824, %2819
  br label %2841

2841:                                             ; preds = %2840, %2813
  %2842 = load i32, ptr %7, align 4, !tbaa !9
  %2843 = and i32 %2842, 1
  %2844 = icmp ne i32 %2843, 0
  br i1 %2844, label %2869, label %2845

2845:                                             ; preds = %2841
  %2846 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %94) #12
  %2847 = getelementptr inbounds %struct.ImRect, ptr %72, i32 0, i32 0
  %2848 = getelementptr inbounds %struct.ImVec2, ptr %2847, i32 0, i32 0
  %2849 = load float, ptr %2848, align 4, !tbaa !301
  %2850 = load ptr, ptr %10, align 8, !tbaa !5
  %2851 = getelementptr inbounds %struct.ImGuiWindow, ptr %2850, i32 0, i32 15
  %2852 = load float, ptr %2851, align 4, !tbaa !185
  %2853 = fadd float %2849, %2852
  %2854 = getelementptr inbounds %struct.ImRect, ptr %72, i32 0, i32 0
  %2855 = getelementptr inbounds %struct.ImVec2, ptr %2854, i32 0, i32 1
  %2856 = load float, ptr %2855, align 4, !tbaa !302
  %2857 = getelementptr inbounds %struct.ImRect, ptr %72, i32 0, i32 1
  %2858 = getelementptr inbounds %struct.ImVec2, ptr %2857, i32 0, i32 0
  %2859 = load float, ptr %2858, align 4, !tbaa !303
  %2860 = load ptr, ptr %10, align 8, !tbaa !5
  %2861 = getelementptr inbounds %struct.ImGuiWindow, ptr %2860, i32 0, i32 15
  %2862 = load float, ptr %2861, align 4, !tbaa !185
  %2863 = fsub float %2859, %2862
  %2864 = getelementptr inbounds %struct.ImRect, ptr %72, i32 0, i32 1
  %2865 = getelementptr inbounds %struct.ImVec2, ptr %2864, i32 0, i32 1
  %2866 = load float, ptr %2865, align 4, !tbaa !304
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %94, float noundef %2853, float noundef %2856, float noundef %2863, float noundef %2866)
  %2867 = load ptr, ptr %5, align 8, !tbaa !5
  %2868 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN5ImGuiL28RenderWindowTitleBarContentsEP11ImGuiWindowRK6ImRectPKcPb(ptr noundef %2846, ptr noundef nonnull align 4 dereferenceable(16) %94, ptr noundef %2867, ptr noundef %2868)
  call void @llvm.lifetime.end.p0(i64 16, ptr %94) #12
  br label %2869

2869:                                             ; preds = %2845, %2841
  %2870 = load ptr, ptr %10, align 8, !tbaa !5
  %2871 = getelementptr inbounds %struct.ImGuiWindow, ptr %2870, i32 0, i32 77
  %2872 = getelementptr inbounds %struct.ImVec2ih, ptr %2871, i32 0, i32 1
  store i16 0, ptr %2872, align 2, !tbaa !305
  %2873 = load ptr, ptr %10, align 8, !tbaa !5
  %2874 = getelementptr inbounds %struct.ImGuiWindow, ptr %2873, i32 0, i32 77
  %2875 = getelementptr inbounds %struct.ImVec2ih, ptr %2874, i32 0, i32 0
  store i16 0, ptr %2875, align 8, !tbaa !306
  %2876 = load i32, ptr %7, align 4, !tbaa !9
  %2877 = and i32 %2876, 33554432
  %2878 = icmp ne i32 %2877, 0
  br i1 %2878, label %2879, label %2883

2879:                                             ; preds = %2869
  %2880 = load ptr, ptr %10, align 8, !tbaa !5
  %2881 = load ptr, ptr %8, align 8, !tbaa !5
  %2882 = getelementptr inbounds %struct.ImGuiContext, ptr %2881, i32 0, i32 236
  store ptr %2880, ptr %2882, align 8, !tbaa !307
  br label %2883

2883:                                             ; preds = %2879, %2869
  %2884 = load ptr, ptr %10, align 8, !tbaa !5
  %2885 = getelementptr inbounds %struct.ImGuiWindow, ptr %2884, i32 0, i32 69
  %2886 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2885, i32 0, i32 33
  store i32 0, ptr %2886, align 8, !tbaa !308
  %2887 = getelementptr inbounds %struct.ImRect, ptr %72, i32 0, i32 0
  %2888 = getelementptr inbounds %struct.ImRect, ptr %72, i32 0, i32 1
  %2889 = call noundef zeroext i1 @_ZN5ImGui19IsMouseHoveringRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %2887, ptr noundef nonnull align 4 dereferenceable(8) %2888, i1 noundef zeroext false)
  %2890 = zext i1 %2889 to i64
  %2891 = select i1 %2889, i32 1, i32 0
  %2892 = load ptr, ptr %10, align 8, !tbaa !5
  %2893 = getelementptr inbounds %struct.ImGuiWindow, ptr %2892, i32 0, i32 69
  %2894 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2893, i32 0, i32 33
  %2895 = load i32, ptr %2894, align 8, !tbaa !308
  %2896 = or i32 %2895, %2891
  store i32 %2896, ptr %2894, align 8, !tbaa !308
  %2897 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZN5ImGuiL24SetLastItemDataForWindowEP11ImGuiWindowRK6ImRect(ptr noundef %2897, ptr noundef nonnull align 4 dereferenceable(16) %72)
  %2898 = load ptr, ptr %8, align 8, !tbaa !5
  %2899 = getelementptr inbounds %struct.ImGuiContext, ptr %2898, i32 0, i32 86
  %2900 = load i32, ptr %2899, align 4, !tbaa !309
  %2901 = icmp ne i32 %2900, 0
  br i1 %2901, label %2902, label %2919

2902:                                             ; preds = %2883
  %2903 = load ptr, ptr %10, align 8, !tbaa !5
  %2904 = getelementptr inbounds %struct.ImGuiWindow, ptr %2903, i32 0, i32 2
  %2905 = load i32, ptr %2904, align 8, !tbaa !99
  %2906 = load ptr, ptr %8, align 8, !tbaa !5
  %2907 = getelementptr inbounds %struct.ImGuiContext, ptr %2906, i32 0, i32 86
  %2908 = load i32, ptr %2907, align 4, !tbaa !309
  %2909 = icmp eq i32 %2905, %2908
  br i1 %2909, label %2918, label %2910

2910:                                             ; preds = %2902
  %2911 = load ptr, ptr %10, align 8, !tbaa !5
  %2912 = getelementptr inbounds %struct.ImGuiWindow, ptr %2911, i32 0, i32 25
  %2913 = load i32, ptr %2912, align 4, !tbaa !310
  %2914 = load ptr, ptr %8, align 8, !tbaa !5
  %2915 = getelementptr inbounds %struct.ImGuiContext, ptr %2914, i32 0, i32 86
  %2916 = load i32, ptr %2915, align 4, !tbaa !309
  %2917 = icmp eq i32 %2913, %2916
  br i1 %2917, label %2918, label %2919

2918:                                             ; preds = %2910, %2902
  call void @_ZN5ImGui34DebugLocateItemResolveWithLastItemEv()
  br label %2919

2919:                                             ; preds = %2918, %2910, %2883
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %72) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #12
  br label %2936

2920:                                             ; preds = %762, %757
  %2921 = load ptr, ptr %10, align 8, !tbaa !5
  %2922 = getelementptr inbounds %struct.ImGuiWindow, ptr %2921, i32 0, i32 42
  %2923 = load i8, ptr %2922, align 8, !tbaa !167, !range !93, !noundef !94
  %2924 = trunc i8 %2923 to i1
  br i1 %2924, label %2925, label %2927

2925:                                             ; preds = %2920
  %2926 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZL29SetWindowActiveForSkipRefreshP11ImGuiWindow(ptr noundef %2926)
  br label %2927

2927:                                             ; preds = %2925, %2920
  %2928 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZL16SetCurrentWindowP11ImGuiWindow(ptr noundef %2928)
  %2929 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %95) #12
  %2930 = load ptr, ptr %10, align 8, !tbaa !5
  %2931 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(1061) %2930)
  %2932 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %95, i32 0, i32 0
  %2933 = extractvalue { <2 x float>, <2 x float> } %2931, 0
  store <2 x float> %2933, ptr %2932, align 4
  %2934 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %95, i32 0, i32 1
  %2935 = extractvalue { <2 x float>, <2 x float> } %2931, 1
  store <2 x float> %2935, ptr %2934, align 4
  call void @_ZN5ImGuiL24SetLastItemDataForWindowEP11ImGuiWindowRK6ImRect(ptr noundef %2929, ptr noundef nonnull align 4 dereferenceable(16) %95)
  call void @llvm.lifetime.end.p0(i64 16, ptr %95) #12
  br label %2936

2936:                                             ; preds = %2927, %2919
  %2937 = load ptr, ptr %10, align 8, !tbaa !5
  %2938 = getelementptr inbounds %struct.ImGuiWindow, ptr %2937, i32 0, i32 42
  %2939 = load i8, ptr %2938, align 8, !tbaa !167, !range !93, !noundef !94
  %2940 = trunc i8 %2939 to i1
  br i1 %2940, label %2948, label %2941

2941:                                             ; preds = %2936
  %2942 = load ptr, ptr %10, align 8, !tbaa !5
  %2943 = getelementptr inbounds %struct.ImGuiWindow, ptr %2942, i32 0, i32 72
  %2944 = getelementptr inbounds %struct.ImRect, ptr %2943, i32 0, i32 0
  %2945 = load ptr, ptr %10, align 8, !tbaa !5
  %2946 = getelementptr inbounds %struct.ImGuiWindow, ptr %2945, i32 0, i32 72
  %2947 = getelementptr inbounds %struct.ImRect, ptr %2946, i32 0, i32 1
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %2944, ptr noundef nonnull align 4 dereferenceable(8) %2947, i1 noundef zeroext true)
  br label %2948

2948:                                             ; preds = %2941, %2936
  %2949 = load ptr, ptr %10, align 8, !tbaa !5
  %2950 = getelementptr inbounds %struct.ImGuiWindow, ptr %2949, i32 0, i32 38
  store i8 0, ptr %2950, align 4, !tbaa !311
  %2951 = load ptr, ptr %10, align 8, !tbaa !5
  %2952 = getelementptr inbounds %struct.ImGuiWindow, ptr %2951, i32 0, i32 50
  %2953 = load i16, ptr %2952, align 8, !tbaa !312
  %2954 = add i16 %2953, 1
  store i16 %2954, ptr %2952, align 8, !tbaa !312
  %2955 = load ptr, ptr %8, align 8, !tbaa !5
  %2956 = getelementptr inbounds %struct.ImGuiContext, ptr %2955, i32 0, i32 89
  call void @_ZN19ImGuiNextWindowData10ClearFlagsEv(ptr noundef nonnull align 8 dereferenceable(120) %2956)
  %2957 = load i8, ptr %13, align 1, !tbaa !97, !range !93, !noundef !94
  %2958 = trunc i8 %2957 to i1
  br i1 %2958, label %2959, label %3180

2959:                                             ; preds = %2948
  %2960 = load ptr, ptr %10, align 8, !tbaa !5
  %2961 = getelementptr inbounds %struct.ImGuiWindow, ptr %2960, i32 0, i32 42
  %2962 = load i8, ptr %2961, align 8, !tbaa !167, !range !93, !noundef !94
  %2963 = trunc i8 %2962 to i1
  br i1 %2963, label %3180, label %2964

2964:                                             ; preds = %2959
  %2965 = load i32, ptr %7, align 4, !tbaa !9
  %2966 = and i32 %2965, 16777216
  %2967 = icmp ne i32 %2966, 0
  br i1 %2967, label %2968, label %3091

2968:                                             ; preds = %2964
  %2969 = load i32, ptr %7, align 4, !tbaa !9
  %2970 = and i32 %2969, 268435456
  %2971 = icmp ne i32 %2970, 0
  br i1 %2971, label %3091, label %2972

2972:                                             ; preds = %2968
  %2973 = load i32, ptr %7, align 4, !tbaa !9
  %2974 = and i32 %2973, 1
  %2975 = icmp ne i32 %2974, 0
  br i1 %2975, label %2976, label %2977

2976:                                             ; preds = %2972
  br label %2979

2977:                                             ; preds = %2972
  call void @__assert_fail(ptr noundef @.str.153, ptr noundef @.str.3, i32 noundef 7717, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

2978:                                             ; No predecessors!
  br label %2979

2979:                                             ; preds = %2978, %2976
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #12
  %2980 = load ptr, ptr %10, align 8, !tbaa !5
  %2981 = getelementptr inbounds %struct.ImGuiWindow, ptr %2980, i32 0, i32 4
  %2982 = load i32, ptr %2981, align 8, !tbaa !126
  %2983 = and i32 %2982, 256
  %2984 = icmp ne i32 %2983, 0
  br i1 %2984, label %2985, label %3007

2985:                                             ; preds = %2979
  %2986 = load ptr, ptr %8, align 8, !tbaa !5
  %2987 = getelementptr inbounds %struct.ImGuiContext, ptr %2986, i32 0, i32 122
  %2988 = load i8, ptr %2987, align 1, !tbaa !313, !range !93, !noundef !94
  %2989 = trunc i8 %2988 to i1
  br i1 %2989, label %2990, label %3005

2990:                                             ; preds = %2985
  %2991 = load ptr, ptr %8, align 8, !tbaa !5
  %2992 = getelementptr inbounds %struct.ImGuiContext, ptr %2991, i32 0, i32 107
  %2993 = load ptr, ptr %2992, align 8, !tbaa !263
  %2994 = icmp ne ptr %2993, null
  br i1 %2994, label %2995, label %3005

2995:                                             ; preds = %2990
  %2996 = load ptr, ptr %8, align 8, !tbaa !5
  %2997 = getelementptr inbounds %struct.ImGuiContext, ptr %2996, i32 0, i32 107
  %2998 = load ptr, ptr %2997, align 8, !tbaa !263
  %2999 = getelementptr inbounds %struct.ImGuiWindow, ptr %2998, i32 0, i32 96
  %3000 = load ptr, ptr %2999, align 8, !tbaa !314
  %3001 = load ptr, ptr %10, align 8, !tbaa !5
  %3002 = getelementptr inbounds %struct.ImGuiWindow, ptr %3001, i32 0, i32 96
  %3003 = load ptr, ptr %3002, align 8, !tbaa !314
  %3004 = icmp eq ptr %3000, %3003
  br label %3005

3005:                                             ; preds = %2995, %2990, %2985
  %3006 = phi i1 [ false, %2990 ], [ false, %2985 ], [ %3004, %2995 ]
  br label %3007

3007:                                             ; preds = %3005, %2979
  %3008 = phi i1 [ false, %2979 ], [ %3006, %3005 ]
  %3009 = zext i1 %3008 to i8
  store i8 %3009, ptr %96, align 1, !tbaa !97
  %3010 = load ptr, ptr %8, align 8, !tbaa !5
  %3011 = getelementptr inbounds %struct.ImGuiContext, ptr %3010, i32 0, i32 251
  %3012 = load i8, ptr %3011, align 8, !tbaa !315, !range !93, !noundef !94
  %3013 = trunc i8 %3012 to i1
  br i1 %3013, label %3061, label %3014

3014:                                             ; preds = %3007
  %3015 = load i8, ptr %96, align 1, !tbaa !97, !range !93, !noundef !94
  %3016 = trunc i8 %3015 to i1
  br i1 %3016, label %3061, label %3017

3017:                                             ; preds = %3014
  %3018 = load ptr, ptr %10, align 8, !tbaa !5
  %3019 = getelementptr inbounds %struct.ImGuiWindow, ptr %3018, i32 0, i32 70
  %3020 = getelementptr inbounds %struct.ImRect, ptr %3019, i32 0, i32 0
  %3021 = getelementptr inbounds %struct.ImVec2, ptr %3020, i32 0, i32 0
  %3022 = load float, ptr %3021, align 8, !tbaa !316
  %3023 = load ptr, ptr %10, align 8, !tbaa !5
  %3024 = getelementptr inbounds %struct.ImGuiWindow, ptr %3023, i32 0, i32 70
  %3025 = getelementptr inbounds %struct.ImRect, ptr %3024, i32 0, i32 1
  %3026 = getelementptr inbounds %struct.ImVec2, ptr %3025, i32 0, i32 0
  %3027 = load float, ptr %3026, align 8, !tbaa !317
  %3028 = fcmp oge float %3022, %3027
  br i1 %3028, label %3041, label %3029

3029:                                             ; preds = %3017
  %3030 = load ptr, ptr %10, align 8, !tbaa !5
  %3031 = getelementptr inbounds %struct.ImGuiWindow, ptr %3030, i32 0, i32 70
  %3032 = getelementptr inbounds %struct.ImRect, ptr %3031, i32 0, i32 0
  %3033 = getelementptr inbounds %struct.ImVec2, ptr %3032, i32 0, i32 1
  %3034 = load float, ptr %3033, align 4, !tbaa !318
  %3035 = load ptr, ptr %10, align 8, !tbaa !5
  %3036 = getelementptr inbounds %struct.ImGuiWindow, ptr %3035, i32 0, i32 70
  %3037 = getelementptr inbounds %struct.ImRect, ptr %3036, i32 0, i32 1
  %3038 = getelementptr inbounds %struct.ImVec2, ptr %3037, i32 0, i32 1
  %3039 = load float, ptr %3038, align 4, !tbaa !319
  %3040 = fcmp oge float %3034, %3039
  br i1 %3040, label %3041, label %3060

3041:                                             ; preds = %3029, %3017
  %3042 = load ptr, ptr %10, align 8, !tbaa !5
  %3043 = getelementptr inbounds %struct.ImGuiWindow, ptr %3042, i32 0, i32 55
  %3044 = load i8, ptr %3043, align 2, !tbaa !215
  %3045 = sext i8 %3044 to i32
  %3046 = icmp sgt i32 %3045, 0
  br i1 %3046, label %3053, label %3047

3047:                                             ; preds = %3041
  %3048 = load ptr, ptr %10, align 8, !tbaa !5
  %3049 = getelementptr inbounds %struct.ImGuiWindow, ptr %3048, i32 0, i32 56
  %3050 = load i8, ptr %3049, align 1, !tbaa !216
  %3051 = sext i8 %3050 to i32
  %3052 = icmp sgt i32 %3051, 0
  br i1 %3052, label %3053, label %3056

3053:                                             ; preds = %3047, %3041
  %3054 = load ptr, ptr %10, align 8, !tbaa !5
  %3055 = getelementptr inbounds %struct.ImGuiWindow, ptr %3054, i32 0, i32 61
  store i8 1, ptr %3055, align 1, !tbaa !168
  br label %3059

3056:                                             ; preds = %3047
  %3057 = load ptr, ptr %10, align 8, !tbaa !5
  %3058 = getelementptr inbounds %struct.ImGuiWindow, ptr %3057, i32 0, i32 60
  store i8 1, ptr %3058, align 4, !tbaa !180
  br label %3059

3059:                                             ; preds = %3056, %3053
  br label %3060

3060:                                             ; preds = %3059, %3029
  br label %3061

3061:                                             ; preds = %3060, %3014, %3007
  %3062 = load ptr, ptr %17, align 8, !tbaa !5
  %3063 = icmp ne ptr %3062, null
  br i1 %3063, label %3064, label %3078

3064:                                             ; preds = %3061
  %3065 = load ptr, ptr %17, align 8, !tbaa !5
  %3066 = getelementptr inbounds %struct.ImGuiWindow, ptr %3065, i32 0, i32 39
  %3067 = load i8, ptr %3066, align 1, !tbaa !208, !range !93, !noundef !94
  %3068 = trunc i8 %3067 to i1
  br i1 %3068, label %3075, label %3069

3069:                                             ; preds = %3064
  %3070 = load ptr, ptr %17, align 8, !tbaa !5
  %3071 = getelementptr inbounds %struct.ImGuiWindow, ptr %3070, i32 0, i32 60
  %3072 = load i8, ptr %3071, align 4, !tbaa !180
  %3073 = sext i8 %3072 to i32
  %3074 = icmp sgt i32 %3073, 0
  br i1 %3074, label %3075, label %3078

3075:                                             ; preds = %3069, %3064
  %3076 = load ptr, ptr %10, align 8, !tbaa !5
  %3077 = getelementptr inbounds %struct.ImGuiWindow, ptr %3076, i32 0, i32 60
  store i8 1, ptr %3077, align 4, !tbaa !180
  br label %3078

3078:                                             ; preds = %3075, %3069, %3061
  %3079 = load ptr, ptr %17, align 8, !tbaa !5
  %3080 = icmp ne ptr %3079, null
  br i1 %3080, label %3081, label %3090

3081:                                             ; preds = %3078
  %3082 = load ptr, ptr %17, align 8, !tbaa !5
  %3083 = getelementptr inbounds %struct.ImGuiWindow, ptr %3082, i32 0, i32 61
  %3084 = load i8, ptr %3083, align 1, !tbaa !168
  %3085 = sext i8 %3084 to i32
  %3086 = icmp sgt i32 %3085, 0
  br i1 %3086, label %3087, label %3090

3087:                                             ; preds = %3081
  %3088 = load ptr, ptr %10, align 8, !tbaa !5
  %3089 = getelementptr inbounds %struct.ImGuiWindow, ptr %3088, i32 0, i32 61
  store i8 1, ptr %3089, align 1, !tbaa !168
  br label %3090

3090:                                             ; preds = %3087, %3081, %3078
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #12
  br label %3091

3091:                                             ; preds = %3090, %2968, %2964
  %3092 = load ptr, ptr %9, align 8, !tbaa !5
  %3093 = getelementptr inbounds %struct.ImGuiStyle, ptr %3092, i32 0, i32 0
  %3094 = load float, ptr %3093, align 4, !tbaa !320
  %3095 = fcmp ole float %3094, 0.000000e+00
  br i1 %3095, label %3096, label %3099

3096:                                             ; preds = %3091
  %3097 = load ptr, ptr %10, align 8, !tbaa !5
  %3098 = getelementptr inbounds %struct.ImGuiWindow, ptr %3097, i32 0, i32 60
  store i8 1, ptr %3098, align 4, !tbaa !180
  br label %3099

3099:                                             ; preds = %3096, %3091
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #12
  %3100 = load ptr, ptr %10, align 8, !tbaa !5
  %3101 = getelementptr inbounds %struct.ImGuiWindow, ptr %3100, i32 0, i32 60
  %3102 = load i8, ptr %3101, align 4, !tbaa !180
  %3103 = sext i8 %3102 to i32
  %3104 = icmp sgt i32 %3103, 0
  br i1 %3104, label %3111, label %3105

3105:                                             ; preds = %3099
  %3106 = load ptr, ptr %10, align 8, !tbaa !5
  %3107 = getelementptr inbounds %struct.ImGuiWindow, ptr %3106, i32 0, i32 61
  %3108 = load i8, ptr %3107, align 1, !tbaa !168
  %3109 = sext i8 %3108 to i32
  %3110 = icmp sgt i32 %3109, 0
  br label %3111

3111:                                             ; preds = %3105, %3099
  %3112 = phi i1 [ true, %3099 ], [ %3110, %3105 ]
  %3113 = zext i1 %3112 to i8
  store i8 %3113, ptr %97, align 1, !tbaa !97
  %3114 = load i8, ptr %97, align 1, !tbaa !97, !range !93, !noundef !94
  %3115 = trunc i8 %3114 to i1
  br i1 %3115, label %3122, label %3116

3116:                                             ; preds = %3111
  %3117 = load ptr, ptr %10, align 8, !tbaa !5
  %3118 = getelementptr inbounds %struct.ImGuiWindow, ptr %3117, i32 0, i32 62
  %3119 = load i8, ptr %3118, align 2, !tbaa !181
  %3120 = sext i8 %3119 to i32
  %3121 = icmp sgt i32 %3120, 0
  br label %3122

3122:                                             ; preds = %3116, %3111
  %3123 = phi i1 [ true, %3111 ], [ %3121, %3116 ]
  %3124 = load ptr, ptr %10, align 8, !tbaa !5
  %3125 = getelementptr inbounds %struct.ImGuiWindow, ptr %3124, i32 0, i32 44
  %3126 = zext i1 %3123 to i8
  store i8 %3126, ptr %3125, align 2, !tbaa !321
  %3127 = load ptr, ptr %10, align 8, !tbaa !5
  %3128 = getelementptr inbounds %struct.ImGuiWindow, ptr %3127, i32 0, i32 63
  %3129 = load i8, ptr %3128, align 1, !tbaa !322
  %3130 = sext i8 %3129 to i32
  %3131 = icmp sgt i32 %3130, 0
  br i1 %3131, label %3132, label %3141

3132:                                             ; preds = %3122
  %3133 = load ptr, ptr %10, align 8, !tbaa !5
  %3134 = getelementptr inbounds %struct.ImGuiWindow, ptr %3133, i32 0, i32 63
  %3135 = load i8, ptr %3134, align 1, !tbaa !322
  %3136 = add i8 %3135, -1
  store i8 %3136, ptr %3134, align 1, !tbaa !322
  %3137 = load ptr, ptr %10, align 8, !tbaa !5
  %3138 = getelementptr inbounds %struct.ImGuiWindow, ptr %3137, i32 0, i32 3
  %3139 = load i32, ptr %3138, align 4, !tbaa !123
  %3140 = or i32 %3139, 197120
  store i32 %3140, ptr %3138, align 4, !tbaa !123
  br label %3141

3141:                                             ; preds = %3132, %3122
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #12
  store i8 0, ptr %98, align 1, !tbaa !97
  %3142 = load ptr, ptr %10, align 8, !tbaa !5
  %3143 = getelementptr inbounds %struct.ImGuiWindow, ptr %3142, i32 0, i32 39
  %3144 = load i8, ptr %3143, align 1, !tbaa !208, !range !93, !noundef !94
  %3145 = trunc i8 %3144 to i1
  br i1 %3145, label %3154, label %3146

3146:                                             ; preds = %3141
  %3147 = load ptr, ptr %10, align 8, !tbaa !5
  %3148 = getelementptr inbounds %struct.ImGuiWindow, ptr %3147, i32 0, i32 36
  %3149 = load i8, ptr %3148, align 2, !tbaa !169, !range !93, !noundef !94
  %3150 = trunc i8 %3149 to i1
  br i1 %3150, label %3151, label %3154

3151:                                             ; preds = %3146
  %3152 = load i8, ptr %97, align 1, !tbaa !97, !range !93, !noundef !94
  %3153 = trunc i8 %3152 to i1
  br i1 %3153, label %3154, label %3174

3154:                                             ; preds = %3151, %3146, %3141
  %3155 = load ptr, ptr %10, align 8, !tbaa !5
  %3156 = getelementptr inbounds %struct.ImGuiWindow, ptr %3155, i32 0, i32 55
  %3157 = load i8, ptr %3156, align 2, !tbaa !215
  %3158 = sext i8 %3157 to i32
  %3159 = icmp sle i32 %3158, 0
  br i1 %3159, label %3160, label %3173

3160:                                             ; preds = %3154
  %3161 = load ptr, ptr %10, align 8, !tbaa !5
  %3162 = getelementptr inbounds %struct.ImGuiWindow, ptr %3161, i32 0, i32 56
  %3163 = load i8, ptr %3162, align 1, !tbaa !216
  %3164 = sext i8 %3163 to i32
  %3165 = icmp sle i32 %3164, 0
  br i1 %3165, label %3166, label %3173

3166:                                             ; preds = %3160
  %3167 = load ptr, ptr %10, align 8, !tbaa !5
  %3168 = getelementptr inbounds %struct.ImGuiWindow, ptr %3167, i32 0, i32 61
  %3169 = load i8, ptr %3168, align 1, !tbaa !168
  %3170 = sext i8 %3169 to i32
  %3171 = icmp sle i32 %3170, 0
  br i1 %3171, label %3172, label %3173

3172:                                             ; preds = %3166
  store i8 1, ptr %98, align 1, !tbaa !97
  br label %3173

3173:                                             ; preds = %3172, %3166, %3160, %3154
  br label %3174

3174:                                             ; preds = %3173, %3151
  %3175 = load i8, ptr %98, align 1, !tbaa !97, !range !93, !noundef !94
  %3176 = trunc i8 %3175 to i1
  %3177 = load ptr, ptr %10, align 8, !tbaa !5
  %3178 = getelementptr inbounds %struct.ImGuiWindow, ptr %3177, i32 0, i32 41
  %3179 = zext i1 %3176 to i8
  store i8 %3179, ptr %3178, align 1, !tbaa !323
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #12
  br label %3187

3180:                                             ; preds = %2959, %2948
  %3181 = load i8, ptr %13, align 1, !tbaa !97, !range !93, !noundef !94
  %3182 = trunc i8 %3181 to i1
  br i1 %3182, label %3183, label %3186

3183:                                             ; preds = %3180
  %3184 = load ptr, ptr %10, align 8, !tbaa !5
  %3185 = getelementptr inbounds %struct.ImGuiWindow, ptr %3184, i32 0, i32 41
  store i8 1, ptr %3185, align 1, !tbaa !323
  br label %3186

3186:                                             ; preds = %3183, %3180
  br label %3187

3187:                                             ; preds = %3186, %3174
  %3188 = load ptr, ptr %10, align 8, !tbaa !5
  %3189 = getelementptr inbounds %struct.ImGuiWindow, ptr %3188, i32 0, i32 45
  %3190 = load i8, ptr %3189, align 1, !tbaa !116, !range !93, !noundef !94
  %3191 = trunc i8 %3190 to i1
  br i1 %3191, label %3241, label %3192

3192:                                             ; preds = %3187
  %3193 = load ptr, ptr %8, align 8, !tbaa !5
  %3194 = getelementptr inbounds %struct.ImGuiContext, ptr %3193, i32 0, i32 2
  %3195 = getelementptr inbounds %struct.ImGuiIO, ptr %3194, i32 0, i32 43
  %3196 = load i8, ptr %3195, align 1, !tbaa !324, !range !93, !noundef !94
  %3197 = trunc i8 %3196 to i1
  br i1 %3197, label %3198, label %3201

3198:                                             ; preds = %3192
  %3199 = load i8, ptr %11, align 1, !tbaa !97, !range !93, !noundef !94
  %3200 = trunc i8 %3199 to i1
  br i1 %3200, label %3217, label %3201

3201:                                             ; preds = %3198, %3192
  %3202 = load ptr, ptr %8, align 8, !tbaa !5
  %3203 = getelementptr inbounds %struct.ImGuiContext, ptr %3202, i32 0, i32 2
  %3204 = getelementptr inbounds %struct.ImGuiIO, ptr %3203, i32 0, i32 44
  %3205 = load i8, ptr %3204, align 4, !tbaa !325, !range !93, !noundef !94
  %3206 = trunc i8 %3205 to i1
  br i1 %3206, label %3207, label %3240

3207:                                             ; preds = %3201
  %3208 = load ptr, ptr %8, align 8, !tbaa !5
  %3209 = getelementptr inbounds %struct.ImGuiContext, ptr %3208, i32 0, i32 280
  %3210 = load i8, ptr %3209, align 8, !tbaa !326
  %3211 = sext i8 %3210 to i32
  %3212 = load ptr, ptr %8, align 8, !tbaa !5
  %3213 = getelementptr inbounds %struct.ImGuiContext, ptr %3212, i32 0, i32 29
  %3214 = getelementptr inbounds %struct.ImVector.3, ptr %3213, i32 0, i32 0
  %3215 = load i32, ptr %3214, align 8, !tbaa !114
  %3216 = icmp eq i32 %3211, %3215
  br i1 %3216, label %3217, label %3240

3217:                                             ; preds = %3207, %3198
  %3218 = load ptr, ptr %10, align 8, !tbaa !5
  %3219 = getelementptr inbounds %struct.ImGuiWindow, ptr %3218, i32 0, i32 55
  %3220 = load i8, ptr %3219, align 2, !tbaa !215
  %3221 = sext i8 %3220 to i32
  %3222 = icmp sgt i32 %3221, 0
  br i1 %3222, label %3223, label %3228

3223:                                             ; preds = %3217
  %3224 = load ptr, ptr %10, align 8, !tbaa !5
  %3225 = getelementptr inbounds %struct.ImGuiWindow, ptr %3224, i32 0, i32 55
  %3226 = load i8, ptr %3225, align 2, !tbaa !215
  %3227 = add i8 %3226, 1
  store i8 %3227, ptr %3225, align 2, !tbaa !215
  br label %3228

3228:                                             ; preds = %3223, %3217
  %3229 = load ptr, ptr %10, align 8, !tbaa !5
  %3230 = getelementptr inbounds %struct.ImGuiWindow, ptr %3229, i32 0, i32 56
  %3231 = load i8, ptr %3230, align 1, !tbaa !216
  %3232 = sext i8 %3231 to i32
  %3233 = icmp sgt i32 %3232, 0
  br i1 %3233, label %3234, label %3239

3234:                                             ; preds = %3228
  %3235 = load ptr, ptr %10, align 8, !tbaa !5
  %3236 = getelementptr inbounds %struct.ImGuiWindow, ptr %3235, i32 0, i32 56
  %3237 = load i8, ptr %3236, align 1, !tbaa !216
  %3238 = add i8 %3237, 1
  store i8 %3238, ptr %3236, align 1, !tbaa !216
  br label %3239

3239:                                             ; preds = %3234, %3228
  store i1 false, ptr %4, align 1
  store i32 1, ptr %99, align 4
  br label %3247

3240:                                             ; preds = %3207, %3201
  br label %3241

3241:                                             ; preds = %3240, %3187
  %3242 = load ptr, ptr %10, align 8, !tbaa !5
  %3243 = getelementptr inbounds %struct.ImGuiWindow, ptr %3242, i32 0, i32 41
  %3244 = load i8, ptr %3243, align 1, !tbaa !323, !range !93, !noundef !94
  %3245 = trunc i8 %3244 to i1
  %3246 = xor i1 %3245, true
  store i1 %3246, ptr %4, align 1
  store i32 1, ptr %99, align 4
  br label %3247

3247:                                             ; preds = %3241, %3239
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #12
  %3248 = load i1, ptr %4, align 1
  ret i1 %3248
}

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16)) #9 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZL15CreateNewWindowPKci(ptr noundef, i32 noundef) #8

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL28SetWindowConditionAllowFlagsP11ImGuiWindowib(ptr noundef, i32 noundef, i1 noundef zeroext) #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL28UpdateWindowInFocusOrderListEP11ImGuiWindowbi(ptr noundef, i1 noundef zeroext, i32 noundef) #8

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui14PushFocusScopeEj(i32 noundef) #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorI14ImGuiPopupDataE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(52)) #11 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui18SetWindowCollapsedEP11ImGuiWindowbi(ptr noundef, i1 noundef zeroext, i32 noundef) #1

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

declare void @_ZN10ImDrawList17_ResetForNewFrameEv(ptr noundef nonnull align 8 dereferenceable(216)) #10

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #13

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL16SetCurrentWindowP11ImGuiWindow(ptr noundef) #8

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5ImGui11GetKeyOwnerE8ImGuiKey(i32 noundef) #8

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef) #9

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZL14ClampWindowPosP11ImGuiWindowRK6ImRect(ptr noundef, ptr noundef nonnull align 4 dereferenceable(16)) #3

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN5ImGuiL24UpdateWindowManualResizeEP11ImGuiWindowRK6ImVec2PiS5_iPjRK6ImRect(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(16)) #9

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

; Function Attrs: mustprogress uwtable
declare hidden <2 x float> @_ZL38CalcNextScrollFromScrollTargetAndClampP11ImGuiWindow(ptr noundef) #9

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL23RenderWindowDecorationsEP11ImGuiWindowRK6ImRectbbiPKjf(ptr noundef, ptr noundef nonnull align 4 dereferenceable(16), i1 noundef zeroext, i1 noundef zeroext, i32 noundef, ptr noundef, float noundef) #9

declare void @_ZN16ImGuiMenuColumns6UpdateEfb(ptr noundef nonnull align 4 dereferenceable(26), float noundef, i1 noundef zeroext) #10

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui14LogToClipboardEi(i32 noundef) #8

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL28RenderWindowTitleBarContentsEP11ImGuiWindowRK6ImRectPKcPb(ptr noundef, ptr noundef nonnull align 4 dereferenceable(16), ptr noundef, ptr noundef) #9

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL29SetWindowActiveForSkipRefreshP11ImGuiWindow(ptr noundef) #8

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !14, i64 4848}
!13 = !{!"_ZTS12ImGuiContext", !14, i64 0, !14, i64 1, !15, i64 8, !21, i64 3024, !22, i64 3096, !6, i64 4264, !17, i64 4272, !17, i64 4276, !17, i64 4280, !17, i64 4284, !24, i64 4288, !27, i64 4824, !10, i64 4832, !10, i64 4836, !10, i64 4840, !10, i64 4844, !14, i64 4848, !14, i64 4849, !14, i64 4850, !14, i64 4851, !6, i64 4856, !7, i64 4864, !28, i64 4880, !28, i64 4896, !18, i64 4912, !10, i64 4916, !29, i64 4920, !29, i64 4936, !29, i64 4952, !30, i64 4968, !31, i64 4984, !10, i64 5000, !17, i64 5004, !10, i64 5008, !6, i64 5016, !6, i64 5024, !6, i64 5032, !6, i64 5040, !6, i64 5048, !6, i64 5056, !16, i64 5064, !10, i64 5072, !10, i64 5076, !17, i64 5080, !16, i64 5084, !16, i64 5092, !10, i64 5100, !10, i64 5104, !10, i64 5108, !10, i64 5112, !10, i64 5116, !17, i64 5120, !17, i64 5124, !14, i64 5128, !14, i64 5129, !14, i64 5130, !10, i64 5132, !10, i64 5136, !17, i64 5140, !14, i64 5144, !14, i64 5145, !14, i64 5146, !14, i64 5147, !14, i64 5148, !14, i64 5149, !14, i64 5150, !10, i64 5151, !16, i64 5152, !6, i64 5160, !33, i64 5168, !10, i64 5172, !34, i64 5176, !35, i64 5188, !10, i64 5196, !17, i64 5200, !27, i64 5208, !27, i64 5216, !27, i64 5224, !36, i64 5232, !7, i64 5252, !37, i64 7104, !10, i64 7448, !14, i64 7452, !10, i64 7456, !10, i64 7460, !10, i64 7464, !10, i64 7468, !39, i64 7472, !41, i64 7528, !43, i64 7608, !14, i64 7728, !10, i64 7732, !44, i64 7736, !45, i64 7752, !46, i64 7768, !47, i64 7784, !48, i64 7800, !49, i64 7816, !50, i64 7832, !50, i64 7848, !51, i64 7864, !52, i64 7880, !14, i64 7896, !14, i64 7897, !14, i64 7898, !14, i64 7899, !10, i64 7900, !6, i64 7904, !10, i64 7912, !53, i64 7916, !10, i64 7920, !10, i64 7924, !10, i64 7928, !10, i64 7932, !47, i64 7936, !10, i64 7952, !17, i64 7956, !10, i64 7960, !10, i64 7964, !33, i64 7968, !40, i64 7976, !7, i64 7984, !14, i64 7985, !14, i64 7986, !14, i64 7987, !54, i64 7992, !14, i64 8048, !14, i64 8049, !14, i64 8050, !10, i64 8052, !10, i64 8056, !10, i64 8060, !23, i64 8064, !23, i64 8068, !23, i64 8072, !42, i64 8076, !42, i64 8092, !10, i64 8108, !10, i64 8112, !10, i64 8116, !54, i64 8120, !54, i64 8176, !54, i64 8232, !54, i64 8288, !10, i64 8344, !10, i64 8348, !10, i64 8352, !10, i64 8356, !14, i64 8360, !14, i64 8361, !10, i64 8364, !10, i64 8368, !6, i64 8376, !6, i64 8384, !6, i64 8392, !17, i64 8400, !17, i64 8404, !14, i64 8408, !55, i64 8412, !16, i64 8416, !16, i64 8424, !17, i64 8432, !14, i64 8436, !14, i64 8437, !14, i64 8438, !10, i64 8440, !10, i64 8444, !10, i64 8448, !56, i64 8456, !42, i64 8520, !42, i64 8536, !10, i64 8552, !10, i64 8556, !17, i64 8560, !10, i64 8564, !10, i64 8568, !10, i64 8572, !10, i64 8576, !57, i64 8584, !7, i64 8600, !10, i64 8616, !58, i64 8624, !6, i64 8640, !10, i64 8648, !10, i64 8652, !59, i64 8656, !60, i64 8672, !62, i64 8712, !63, i64 8728, !6, i64 8744, !64, i64 8752, !66, i64 8792, !67, i64 8808, !68, i64 8824, !6, i64 8928, !10, i64 8936, !69, i64 8944, !70, i64 8960, !10, i64 9000, !10, i64 9004, !17, i64 9008, !17, i64 9012, !10, i64 9016, !10, i64 9020, !10, i64 9024, !17, i64 9028, !16, i64 9032, !72, i64 9040, !74, i64 9160, !75, i64 9184, !10, i64 9304, !35, i64 9308, !10, i64 9316, !10, i64 9320, !10, i64 9324, !10, i64 9328, !10, i64 9332, !17, i64 9336, !17, i64 9340, !10, i64 9344, !25, i64 9348, !77, i64 9364, !42, i64 9412, !14, i64 9428, !19, i64 9430, !17, i64 9432, !17, i64 9436, !17, i64 9440, !14, i64 9444, !14, i64 9445, !17, i64 9448, !17, i64 9452, !17, i64 9456, !19, i64 9460, !19, i64 9462, !6, i64 9464, !73, i64 9472, !78, i64 9488, !79, i64 9504, !81, i64 9608, !81, i64 9624, !14, i64 9640, !17, i64 9644, !82, i64 9648, !83, i64 9664, !84, i64 9680, !85, i64 9696, !86, i64 9712, !10, i64 9728, !7, i64 9736, !14, i64 9816, !10, i64 9820, !6, i64 9824, !6, i64 9832, !82, i64 9840, !6, i64 9856, !6, i64 9864, !17, i64 9872, !14, i64 9876, !10, i64 9880, !10, i64 9884, !10, i64 9888, !6, i64 9896, !6, i64 9904, !16, i64 9912, !14, i64 9920, !10, i64 9924, !87, i64 9928, !6, i64 9952, !10, i64 9960, !10, i64 9964, !82, i64 9968, !88, i64 9984, !10, i64 10008, !10, i64 10012, !7, i64 10016, !7, i64 10017, !14, i64 10018, !10, i64 10020, !7, i64 10024, !14, i64 10025, !7, i64 10026, !10, i64 10028, !17, i64 10032, !25, i64 10036, !89, i64 10052, !90, i64 10080, !92, i64 10120, !7, i64 10180, !10, i64 10420, !10, i64 10424, !17, i64 10428, !10, i64 10432, !10, i64 10436, !10, i64 10440, !73, i64 10448, !7, i64 10464}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"_ZTS7ImGuiIO", !10, i64 0, !10, i64 4, !16, i64 8, !17, i64 16, !17, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !17, i64 56, !14, i64 60, !6, i64 64, !16, i64 72, !14, i64 80, !14, i64 81, !14, i64 82, !14, i64 83, !14, i64 84, !14, i64 85, !14, i64 86, !14, i64 87, !14, i64 88, !14, i64 89, !14, i64 90, !14, i64 91, !14, i64 92, !14, i64 93, !14, i64 94, !14, i64 95, !14, i64 96, !17, i64 100, !17, i64 104, !17, i64 108, !17, i64 112, !17, i64 116, !17, i64 120, !14, i64 124, !14, i64 125, !14, i64 126, !14, i64 127, !14, i64 128, !14, i64 129, !14, i64 130, !14, i64 131, !14, i64 132, !14, i64 133, !14, i64 134, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !14, i64 176, !14, i64 177, !14, i64 178, !14, i64 179, !14, i64 180, !14, i64 181, !14, i64 182, !17, i64 184, !10, i64 188, !10, i64 192, !10, i64 196, !10, i64 200, !16, i64 204, !6, i64 216, !16, i64 224, !7, i64 232, !17, i64 240, !17, i64 244, !18, i64 248, !14, i64 252, !14, i64 253, !14, i64 254, !14, i64 255, !10, i64 256, !7, i64 260, !14, i64 2724, !16, 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 2856, !7, i64 2896, !7, i64 2901, !14, i64 2906, !14, i64 2907, !7, i64 2908, !7, i64 2928, !7, i64 2948, !17, i64 2968, !14, i64 2972, !14, i64 2973, !19, i64 2974, !20, i64 2976, !6, i64 2992, !6, i64 3000, !6, i64 3008}
!16 = !{!"_ZTS6ImVec2", !17, i64 0, !17, i64 4}
!17 = !{!"float", !7, i64 0}
!18 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!19 = !{!"short", !7, i64 0}
!20 = !{!"_ZTS8ImVectorItE", !10, i64 0, !10, i64 4, !6, i64 8}
!21 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !19, i64 56, !6, i64 64}
!22 = !{!"_ZTS10ImGuiStyle", !17, i64 0, !17, i64 4, !16, i64 8, !17, i64 16, !17, i64 20, !17, i64 24, !16, i64 28, !16, i64 36, !23, i64 44, !17, i64 48, !17, i64 52, !17, i64 56, !17, i64 60, !16, i64 64, !17, i64 72, !17, i64 76, !16, i64 80, !16, i64 88, !16, i64 96, !16, i64 104, !17, i64 112, !17, i64 116, !17, i64 120, !17, i64 124, !17, i64 128, !17, i64 132, !17, i64 136, !17, i64 140, !17, i64 144, !17, i64 148, !17, i64 152, !17, i64 156, !17, i64 160, !17, i64 164, !17, i64 168, !16, i64 172, !23, i64 180, !16, i64 184, !16, i64 192, !17, i64 200, !16, i64 204, !16, i64 212, !16, i64 220, !16, i64 228, !17, i64 236, !14, i64 240, !14, i64 241, !14, i64 242, !17, i64 244, !17, i64 248, !7, i64 252, !17, i64 1148, !17, i64 1152, !17, i64 1156, !10, i64 1160, !10, i64 1164}
!23 = !{!"_ZTS8ImGuiDir", !7, i64 0}
!24 = !{!"_ZTS20ImDrawListSharedData", !16, i64 0, !6, i64 8, !6, i64 16, !17, i64 24, !17, i64 28, !17, i64 32, !17, i64 36, !17, i64 40, !10, i64 44, !25, i64 48, !26, i64 64, !7, i64 80, !17, i64 464, !7, i64 468}
!25 = !{!"_ZTS6ImVec4", !17, i64 0, !17, i64 4, !17, i64 8, !17, i64 12}
!26 = !{!"_ZTS8ImVectorI6ImVec2E", !10, i64 0, !10, i64 4, !6, i64 8}
!27 = !{!"double", !7, i64 0}
!28 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !10, i64 0, !10, i64 4, !6, i64 8}
!29 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !10, i64 0, !10, i64 4, !6, i64 8}
!30 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!31 = !{!"_ZTS12ImGuiStorage", !32, i64 0}
!32 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !10, i64 0, !10, i64 4, !6, i64 8}
!33 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!34 = !{!"_ZTS24ImGuiDeactivatedItemData", !10, i64 0, !10, i64 4, !14, i64 8, !14, i64 9}
!35 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!36 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!37 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !38, i64 312, !38, i64 328}
!38 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!39 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !10, i64 4, !10, i64 8, !40, i64 16, !17, i64 24, !10, i64 28, !10, i64 32, !14, i64 36, !7, i64 37, !35, i64 38, !10, i64 48}
!40 = !{!"long long", !7, i64 0}
!41 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !42, i64 12, !42, i64 28, !42, i64 44, !42, i64 60, !10, i64 76}
!42 = !{!"_ZTS6ImRect", !16, i64 0, !16, i64 8}
!43 = !{!"_ZTS19ImGuiNextWindowData", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !16, i64 16, !16, i64 24, !16, i64 32, !16, i64 40, !16, i64 48, !10, i64 56, !10, i64 60, !14, i64 64, !42, i64 68, !6, i64 88, !6, i64 96, !17, i64 104, !16, i64 108, !10, i64 116}
!44 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!48 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !6, i64 8}
!49 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!50 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!51 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!52 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !6, i64 8}
!53 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!54 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !10, i64 8, !10, i64 12, !42, i64 16, !10, i64 32, !17, i64 36, !17, i64 40, !17, i64 44, !40, i64 48}
!55 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!56 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !7, i64 24, !14, i64 57, !14, i64 58}
!57 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!59 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!60 = !{!"_ZTS6ImPoolI10ImGuiTableE", !61, i64 0, !31, i64 16, !10, i64 32, !10, i64 36}
!61 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !6, i64 8}
!62 = !{!"_ZTS8ImVectorIfE", !10, i64 0, !10, i64 4, !6, i64 8}
!63 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !10, i64 0, !10, i64 4, !6, i64 8}
!64 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !65, i64 0, !31, i64 16, !10, i64 32, !10, i64 36}
!65 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !6, i64 8}
!68 = !{!"_ZTS19ImGuiBoxSelectState", !10, i64 0, !14, i64 4, !14, i64 5, !14, i64 6, !14, i64 7, !14, i64 8, !10, i64 9, !16, i64 12, !16, i64 20, !16, i64 28, !6, i64 40, !14, i64 48, !42, i64 52, !42, i64 68, !42, i64 84}
!69 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!70 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !71, i64 0, !31, i64 16, !10, i64 32, !10, i64 36}
!71 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !10, i64 0, !10, i64 4, !6, i64 8}
!72 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !6, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !6, i64 32, !73, i64 40, !73, i64 56, !73, i64 72, !10, i64 88, !16, i64 92, !17, i64 100, !14, i64 104, !14, i64 105, !14, i64 106, !14, i64 107, !10, i64 108, !10, i64 112}
!73 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !6, i64 8}
!74 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !10, i64 0, !73, i64 8}
!75 = !{!"_ZTS6ImFont", !62, i64 0, !17, i64 16, !17, i64 20, !20, i64 24, !76, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !19, i64 80, !19, i64 82, !19, i64 84, !19, i64 86, !17, i64 88, !17, i64 92, !17, i64 96, !17, i64 100, !17, i64 104, !10, i64 108, !14, i64 112, !7, i64 113}
!76 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !6, i64 8}
!77 = !{!"_ZTS21ImGuiComboPreviewData", !42, i64 0, !16, i64 16, !16, i64 24, !16, i64 32, !17, i64 40, !10, i64 44}
!78 = !{!"_ZTS8ImVectorIjE", !10, i64 0, !10, i64 4, !6, i64 8}
!79 = !{!"_ZTS22ImGuiTypingSelectState", !80, i64 0, !7, i64 24, !10, i64 88, !10, i64 92, !17, i64 96, !14, i64 100}
!80 = !{!"_ZTS24ImGuiTypingSelectRequest", !10, i64 0, !10, i64 4, !6, i64 8, !14, i64 16, !14, i64 17, !7, i64 18}
!81 = !{!"_ZTS20ImGuiPlatformImeData", !14, i64 0, !16, i64 4, !17, i64 12}
!82 = !{!"_ZTS15ImGuiTextBuffer", !73, i64 0}
!83 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !6, i64 8}
!84 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !73, i64 0}
!85 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !73, i64 0}
!86 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !6, i64 8}
!87 = !{!"_ZTS23ImGuiErrorRecoveryState", !19, i64 0, !19, i64 2, !19, i64 4, !19, i64 6, !19, i64 8, !19, i64 10, !19, i64 12, !19, i64 14, !19, i64 16, !19, i64 18, !19, i64 20}
!88 = !{!"_ZTS14ImGuiTextIndex", !48, i64 0, !10, i64 16}
!89 = !{!"_ZTS18ImGuiMetricsConfig", !14, i64 0, !14, i64 1, !14, i64 2, !14, i64 3, !14, i64 4, !14, i64 5, !14, i64 6, !14, i64 7, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20}
!90 = !{!"_ZTS16ImGuiIDStackTool", !10, i64 0, !10, i64 4, !10, i64 8, !91, i64 16, !14, i64 32, !17, i64 36}
!91 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !10, i64 0, !10, i64 4, !6, i64 8}
!92 = !{!"_ZTS19ImGuiDebugAllocInfo", !10, i64 0, !10, i64 4, !19, i64 8, !7, i64 12}
!93 = !{i8 0, i8 2}
!94 = !{}
!95 = !{!13, !10, i64 4836}
!96 = !{!13, !10, i64 4832}
!97 = !{!14, !14, i64 0}
!98 = !{!13, !10, i64 5008}
!99 = !{!100, !10, i64 16}
!100 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !6, i64 32, !16, i64 40, !16, i64 48, !16, i64 56, !16, i64 64, !16, i64 72, !16, i64 80, !16, i64 88, !17, i64 96, !17, i64 100, !17, i64 104, !17, i64 108, !17, i64 112, !17, i64 116, !17, i64 120, !17, i64 124, !17, i64 128, !17, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !16, i64 152, !16, i64 160, !16, i64 168, !16, i64 176, !16, i64 184, !16, i64 192, !14, i64 200, !14, i64 201, !14, i64 202, !14, i64 203, !14, i64 204, !14, i64 205, !14, i64 206, !14, i64 207, !14, i64 208, !14, i64 209, !14, i64 210, !14, i64 211, !14, i64 212, !14, i64 213, !7, i64 214, !7, i64 215, !19, i64 216, !19, i64 218, !19, i64 220, !19, i64 222, !19, i64 224, !7, i64 226, !7, i64 227, !14, i64 228, !23, i64 232, !7, i64 236, !7, i64 237, !7, i64 238, !7, i64 239, !10, i64 240, !10, i64 241, !10, i64 242, !16, i64 244, !16, i64 252, !78, i64 264, !101, i64 280, !42, i64 520, !42, i64 536, !42, i64 552, !42, i64 568, !42, i64 584, !42, i64 600, !42, i64 616, !104, i64 632, !104, i64 636, !10, i64 640, !17, i64 644, !17, i64 648, !31, i64 656, !105, i64 672, !17, i64 688, !17, i64 692, !17, i64 696, !10, i64 700, !6, i64 704, !106, i64 712, !6, i64 928, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !7, i64 992, !7, i64 1000, !7, i64 1032, !10, i64 1048, !10, i64 1052, !10, i64 1056, !14, i64 1060}
!101 = !{!"_ZTS19ImGuiWindowTempData", !16, i64 0, !16, i64 8, !16, i64 16, !16, i64 24, !16, i64 32, !16, i64 40, !16, i64 48, !17, i64 56, !17, i64 60, !14, i64 64, !14, i64 65, !102, i64 68, !102, i64 72, !102, i64 76, !16, i64 80, !53, i64 88, !19, i64 92, !19, i64 94, !14, i64 96, !14, i64 97, !14, i64 98, !14, i64 99, !16, i64 100, !103, i64 108, !10, i64 136, !10, i64 140, !29, i64 144, !6, i64 160, !6, i64 168, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !10, i64 192, !10, i64 196, !17, i64 200, !17, i64 204, !62, i64 208, !62, i64 224}
!102 = !{!"_ZTS6ImVec1", !17, i64 0}
!103 = !{!"_ZTS16ImGuiMenuColumns", !10, i64 0, !10, i64 4, !19, i64 8, !19, i64 10, !19, i64 12, !19, i64 14, !19, i64 16, !7, i64 18}
!104 = !{!"_ZTS8ImVec2ih", !19, i64 0, !19, i64 2}
!105 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !10, i64 0, !10, i64 4, !6, i64 8}
!106 = !{!"_ZTS10ImDrawList", !107, i64 0, !20, i64 16, !108, i64 32, !10, i64 48, !10, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !26, i64 80, !109, i64 96, !110, i64 128, !111, i64 152, !112, i64 168, !57, i64 184, !17, i64 200, !6, i64 208}
!107 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !10, i64 0, !10, i64 4, !6, i64 8}
!108 = !{!"_ZTS8ImVectorI10ImDrawVertE", !10, i64 0, !10, i64 4, !6, i64 8}
!109 = !{!"_ZTS15ImDrawCmdHeader", !25, i64 0, !40, i64 16, !10, i64 24}
!110 = !{!"_ZTS18ImDrawListSplitter", !10, i64 0, !10, i64 4, !63, i64 8}
!111 = !{!"_ZTS8ImVectorI6ImVec4E", !10, i64 0, !10, i64 4, !6, i64 8}
!112 = !{!"_ZTS8ImVectorIyE", !10, i64 0, !10, i64 4, !6, i64 8}
!113 = !{!100, !10, i64 640}
!114 = !{!13, !10, i64 4968}
!115 = !{!13, !14, i64 4849}
!116 = !{!100, !14, i64 211}
!117 = !{!13, !10, i64 7848}
!118 = !{!100, !10, i64 148}
!119 = !{!120, !10, i64 0}
!120 = !{!"_ZTS14ImGuiPopupData", !10, i64 0, !6, i64 8, !6, i64 16, !10, i64 24, !10, i64 28, !10, i64 32, !16, i64 36, !16, i64 44}
!121 = !{!120, !6, i64 8}
!122 = !{!100, !14, i64 209}
!123 = !{!100, !10, i64 20}
!124 = !{!13, !10, i64 7608}
!125 = !{!13, !10, i64 7668}
!126 = !{!100, !10, i64 24}
!127 = !{!13, !27, i64 4824}
!128 = !{!100, !17, i64 644}
!129 = !{!100, !19, i64 220}
!130 = !{!13, !10, i64 5000}
!131 = !{!100, !19, i64 222}
!132 = !{!133, !6, i64 0}
!133 = !{!"_ZTS20ImGuiWindowStackData", !6, i64 0, !41, i64 8, !87, i64 88, !14, i64 110}
!134 = !{!100, !6, i64 928}
!135 = !{!100, !10, i64 264}
!136 = !{!13, !6, i64 5016}
!137 = !{i64 0, i64 4, !9, i64 4, i64 4, !9, i64 8, i64 4, !9, i64 12, i64 4, !138, i64 16, i64 4, !138, i64 20, i64 4, !138, i64 24, i64 4, !138, i64 28, i64 4, !138, i64 32, i64 4, !138, i64 36, i64 4, !138, i64 40, i64 4, !138, i64 44, i64 4, !138, i64 48, i64 4, !138, i64 52, i64 4, !138, i64 56, i64 4, !138, i64 60, i64 4, !138, i64 64, i64 4, !138, i64 68, i64 4, !138, i64 72, i64 4, !138, i64 76, i64 4, !9}
!138 = !{!17, !17, i64 0}
!139 = !{!13, !10, i64 7464}
!140 = !{!133, !14, i64 110}
!141 = !{!13, !6, i64 9952}
!142 = !{!13, !10, i64 9316}
!143 = !{!100, !6, i64 936}
!144 = !{!100, !6, i64 976}
!145 = !{!100, !17, i64 692}
!146 = !{!100, !17, i64 688}
!147 = !{!13, !10, i64 7460}
!148 = !{!100, !10, i64 1048}
!149 = !{!100, !53, i64 368}
!150 = !{!120, !10, i64 24}
!151 = !{!13, !10, i64 7612}
!152 = !{i64 0, i64 4, !138, i64 4, i64 4, !138}
!153 = !{!13, !10, i64 7616}
!154 = !{!13, !17, i64 7640}
!155 = !{!13, !17, i64 7644}
!156 = !{!100, !17, i64 56}
!157 = !{!100, !17, i64 60}
!158 = !{!13, !17, i64 7656}
!159 = !{!100, !17, i64 168}
!160 = !{!100, !17, i64 176}
!161 = !{!13, !17, i64 7660}
!162 = !{!100, !17, i64 172}
!163 = !{!100, !17, i64 180}
!164 = !{!13, !14, i64 7672}
!165 = !{!13, !10, i64 7620}
!166 = !{!100, !6, i64 944}
!167 = !{!100, !14, i64 208}
!168 = !{!100, !7, i64 237}
!169 = !{!100, !14, i64 202}
!170 = !{!100, !14, i64 213}
!171 = !{i64 0, i64 4, !138, i64 4, i64 4, !138, i64 8, i64 4, !138, i64 12, i64 4, !138}
!172 = !{!100, !6, i64 704}
!173 = !{!100, !10, i64 456}
!174 = !{!100, !14, i64 1060}
!175 = !{!13, !6, i64 8392}
!176 = !{!100, !6, i64 8}
!177 = !{!100, !10, i64 136}
!178 = !{!179, !179, i64 0}
!179 = !{!"long", !7, i64 0}
!180 = !{!100, !7, i64 236}
!181 = !{!100, !7, i64 238}
!182 = !{!100, !17, i64 48}
!183 = !{!100, !17, i64 52}
!184 = !{!22, !17, i64 52}
!185 = !{!100, !17, i64 100}
!186 = !{!22, !17, i64 60}
!187 = !{!22, !17, i64 20}
!188 = !{!22, !17, i64 12}
!189 = !{!100, !17, i64 88}
!190 = !{!22, !17, i64 80}
!191 = !{!13, !17, i64 7716}
!192 = !{!100, !17, i64 380}
!193 = !{!13, !17, i64 7720}
!194 = !{!100, !17, i64 384}
!195 = !{!13, !17, i64 4272}
!196 = !{!13, !17, i64 3164}
!197 = !{!100, !17, i64 104}
!198 = !{!100, !17, i64 108}
!199 = !{!100, !17, i64 696}
!200 = !{!100, !17, i64 80}
!201 = !{!100, !17, i64 84}
!202 = !{!13, !6, i64 5024}
!203 = !{!13, !10, i64 5108}
!204 = !{!13, !10, i64 5112}
!205 = !{!13, !10, i64 5132}
!206 = !{!19, !19, i64 0}
!207 = !{!100, !14, i64 206}
!208 = !{!100, !14, i64 205}
!209 = !{!100, !17, i64 112}
!210 = !{!100, !17, i64 120}
!211 = !{!100, !17, i64 116}
!212 = !{!100, !17, i64 124}
!213 = !{!16, !17, i64 0}
!214 = !{!16, !17, i64 4}
!215 = !{!100, !7, i64 226}
!216 = !{!100, !7, i64 227}
!217 = !{!100, !14, i64 228}
!218 = !{!100, !23, i64 232}
!219 = !{!100, !10, i64 424}
!220 = !{!100, !17, i64 244}
!221 = !{!22, !17, i64 48}
!222 = !{!22, !17, i64 56}
!223 = !{!22, !17, i64 16}
!224 = !{!100, !17, i64 96}
!225 = !{!13, !14, i64 101}
!226 = !{!100, !7, i64 214}
!227 = !{!100, !7, i64 215}
!228 = !{!100, !14, i64 201}
!229 = !{!22, !17, i64 120}
!230 = !{!100, !14, i64 200}
!231 = !{!100, !17, i64 192}
!232 = !{!100, !17, i64 196}
!233 = !{!100, !17, i64 40}
!234 = !{!100, !17, i64 536}
!235 = !{!100, !17, i64 44}
!236 = !{!100, !17, i64 540}
!237 = !{!100, !17, i64 544}
!238 = !{!100, !17, i64 548}
!239 = !{!22, !17, i64 76}
!240 = !{!100, !17, i64 552}
!241 = !{!100, !17, i64 556}
!242 = !{!100, !17, i64 560}
!243 = !{!100, !17, i64 564}
!244 = !{!100, !17, i64 648}
!245 = !{!100, !17, i64 64}
!246 = !{!100, !17, i64 160}
!247 = !{!100, !17, i64 68}
!248 = !{!100, !17, i64 92}
!249 = !{!100, !17, i64 164}
!250 = !{!100, !17, i64 132}
!251 = !{!100, !17, i64 128}
!252 = !{!106, !10, i64 0}
!253 = !{!254, !10, i64 32}
!254 = !{!"_ZTS9ImDrawCmd", !25, i64 0, !40, i64 16, !10, i64 24, !10, i64 28, !10, i64 32, !6, i64 40, !6, i64 48, !10, i64 56, !10, i64 60}
!255 = !{!13, !6, i64 4264}
!256 = !{!75, !6, i64 64}
!257 = !{!258, !40, i64 8}
!258 = !{!"_ZTS11ImFontAtlas", !10, i64 0, !40, i64 8, !10, i64 16, !10, i64 20, !6, i64 24, !14, i64 32, !14, i64 33, !14, i64 34, !6, i64 40, !6, i64 48, !10, i64 56, !10, i64 60, !16, i64 64, !16, i64 72, !46, i64 80, !259, i64 96, !260, i64 112, !7, i64 128, !6, i64 656, !10, i64 664, !10, i64 668, !10, i64 672}
!259 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !10, i64 0, !10, i64 4, !6, i64 8}
!260 = !{!"_ZTS8ImVectorI12ImFontConfigE", !10, i64 0, !10, i64 4, !6, i64 8}
!261 = !{!106, !10, i64 32}
!262 = !{!13, !6, i64 8376}
!263 = !{!13, !6, i64 7904}
!264 = !{!100, !6, i64 960}
!265 = !{!100, !17, i64 152}
!266 = !{!100, !17, i64 568}
!267 = !{!100, !17, i64 156}
!268 = !{!100, !17, i64 572}
!269 = !{!100, !17, i64 576}
!270 = !{!100, !17, i64 580}
!271 = !{!100, !17, i64 616}
!272 = !{!100, !17, i64 620}
!273 = !{!100, !17, i64 624}
!274 = !{!100, !17, i64 628}
!275 = !{!100, !17, i64 348}
!276 = !{!100, !17, i64 356}
!277 = !{!100, !17, i64 352}
!278 = !{!27, !27, i64 0}
!279 = !{!100, !17, i64 296}
!280 = !{!100, !17, i64 300}
!281 = !{!100, !17, i64 340}
!282 = !{!100, !17, i64 336}
!283 = !{!100, !14, i64 345}
!284 = !{!100, !14, i64 344}
!285 = !{!100, !19, i64 374}
!286 = !{!100, !19, i64 372}
!287 = !{!100, !14, i64 376}
!288 = !{!100, !14, i64 377}
!289 = !{!100, !14, i64 378}
!290 = !{!100, !14, i64 379}
!291 = !{!100, !10, i64 416}
!292 = !{!100, !10, i64 420}
!293 = !{!100, !6, i64 440}
!294 = !{!100, !6, i64 448}
!295 = !{!100, !10, i64 460}
!296 = !{!100, !10, i64 464}
!297 = !{!100, !17, i64 480}
!298 = !{!100, !17, i64 484}
!299 = !{!100, !10, i64 468}
!300 = !{!13, !14, i64 103}
!301 = !{!42, !17, i64 0}
!302 = !{!42, !17, i64 4}
!303 = !{!42, !17, i64 8}
!304 = !{!42, !17, i64 12}
!305 = !{!100, !19, i64 634}
!306 = !{!100, !19, i64 632}
!307 = !{!13, !6, i64 9464}
!308 = !{!100, !10, i64 472}
!309 = !{!13, !10, i64 7468}
!310 = !{!100, !10, i64 140}
!311 = !{!100, !14, i64 204}
!312 = !{!100, !19, i64 216}
!313 = !{!13, !14, i64 7985}
!314 = !{!100, !6, i64 968}
!315 = !{!13, !14, i64 9816}
!316 = !{!100, !17, i64 520}
!317 = !{!100, !17, i64 528}
!318 = !{!100, !17, i64 524}
!319 = !{!100, !17, i64 532}
!320 = !{!22, !17, i64 0}
!321 = !{!100, !14, i64 210}
!322 = !{!100, !7, i64 239}
!323 = !{!100, !14, i64 207}
!324 = !{!13, !14, i64 139}
!325 = !{!13, !14, i64 140}
!326 = !{!13, !7, i64 10024}


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

%struct.ImVec2 = type { float, float }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec4 = type { float, float, float, float }

@GImGui = external dso_local local_unnamed_addr global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [34 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi = external hidden unnamed_addr constant [58 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [43 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: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZL7ImTruncRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN10ImDrawList13PushTextureIDEy(ptr noundef nonnull align 8 dereferenceable(216), i64 noundef) local_unnamed_addr #10

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

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

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

; Function Attrs: nounwind
declare void @llvm.debugtrap() #12

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef %0, ptr noundef %1, i32 noundef %2) local_unnamed_addr #9 {
  %4 = alloca ptr, align 8
  %5 = alloca %struct.ImVec2, align 8
  %6 = alloca %struct.ImRect, align 4
  %7 = alloca %struct.ImVec4, align 4
  %8 = alloca i64, align 8
  %9 = alloca %struct.ImVec2, align 8
  %10 = alloca %struct.ImVec2, align 8
  %11 = alloca %struct.ImRect, align 8
  %12 = alloca %struct.ImVec2, align 8
  %13 = alloca %struct.ImVec2, align 8
  %14 = alloca %struct.ImVec2, align 8
  %15 = alloca %struct.ImRect, align 8
  %16 = alloca %struct.ImVec2, align 8
  %17 = alloca %struct.ImVec2, align 8
  %18 = alloca %struct.ImRect, align 8
  %19 = alloca %struct.ImRect, align 8
  %20 = alloca %struct.ImVec2, align 8
  %21 = alloca %struct.ImRect, align 4
  %22 = alloca %struct.ImVec2, align 8
  %23 = alloca %struct.ImVec2, align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca [4 x i32], align 16
  %27 = alloca %struct.ImVec2, align 4
  %28 = alloca %struct.ImVec2, align 8
  %29 = alloca %struct.ImVec2, align 8
  %30 = alloca %struct.ImVec2, align 8
  %31 = alloca %struct.ImVec2, align 8
  %32 = alloca %struct.ImRect, align 4
  %33 = alloca %struct.ImRect, align 8
  %34 = alloca %struct.ImVec2, align 8
  %35 = alloca %struct.ImRect, align 8
  %36 = alloca %struct.ImRect, align 8
  %37 = alloca %struct.ImVec2, align 8
  %38 = alloca %struct.ImVec2, align 8
  %39 = alloca %struct.ImVec2, align 8
  %40 = alloca %struct.ImRect, align 4
  %41 = alloca %struct.ImRect, align 8
  %42 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %43 = getelementptr inbounds i8, ptr %42, i64 3096
  %.not = icmp eq ptr %0, null
  br i1 %.not, label %.critedge, label %44

44:                                               ; preds = %3
  %45 = load i8, ptr %0, align 1, !tbaa !9
  %.not373 = icmp eq i8 %45, 0
  br i1 %.not373, label %.critedge, label %46

.critedge:                                        ; preds = %3, %44
  tail call void @__assert_fail(ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.3, i32 noundef 7021, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

46:                                               ; preds = %44
  %47 = getelementptr inbounds i8, ptr %42, i64 4848
  %48 = load i8, ptr %47, align 8, !tbaa !10, !range !92, !noundef !93
  %49 = trunc nuw i8 %48 to i1
  br i1 %49, label %51, label %50

50:                                               ; preds = %46
  tail call void @__assert_fail(ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.3, i32 noundef 7022, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

51:                                               ; preds = %46
  %52 = getelementptr inbounds i8, ptr %42, i64 4836
  %53 = load i32, ptr %52, align 4, !tbaa !94
  %54 = getelementptr inbounds i8, ptr %42, i64 4832
  %55 = load i32, ptr %54, align 8, !tbaa !95
  %.not374 = icmp eq i32 %53, %55
  br i1 %.not374, label %56, label %57

56:                                               ; preds = %51
  tail call void @__assert_fail(ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.3, i32 noundef 7023, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

57:                                               ; preds = %51
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #12
  %58 = tail call noundef ptr @_ZN5ImGui16FindWindowByNameEPKc(ptr noundef nonnull %0)
  store ptr %58, ptr %4, align 8, !tbaa !5
  %59 = icmp eq ptr %58, null
  br i1 %59, label %60, label %62

60:                                               ; preds = %57
  %61 = tail call noundef ptr @_ZL15CreateNewWindowPKci(ptr noundef nonnull %0, i32 noundef %2)
  store ptr %61, ptr %4, align 8, !tbaa !5
  br label %62

62:                                               ; preds = %60, %57
  %63 = phi ptr [ %61, %60 ], [ %58, %57 ]
  %64 = getelementptr inbounds i8, ptr %42, i64 5008
  %65 = load i32, ptr %64, align 8, !tbaa !96
  %66 = getelementptr inbounds i8, ptr %63, i64 16
  %67 = load i32, ptr %66, align 8, !tbaa !97
  %68 = icmp eq i32 %65, %67
  br i1 %68, label %69, label %70

69:                                               ; preds = %62
  tail call void @llvm.debugtrap()
  br label %70

70:                                               ; preds = %69, %62
  %71 = and i32 %2, 197120
  %72 = icmp eq i32 %71, 197120
  %73 = or i32 %2, 6
  %spec.select = select i1 %72, i32 %73, i32 %2
  %74 = load i32, ptr %54, align 8, !tbaa !95
  %75 = getelementptr inbounds i8, ptr %63, i64 640
  %76 = load i32, ptr %75, align 8, !tbaa !111
  %.not375 = icmp eq i32 %76, %74
  %77 = getelementptr inbounds i8, ptr %42, i64 4968
  %78 = load i32, ptr %77, align 8, !tbaa !112
  %79 = icmp eq i32 %78, 0
  br i1 %79, label %80, label %83

80:                                               ; preds = %70
  %81 = getelementptr inbounds i8, ptr %42, i64 4849
  %82 = load i8, ptr %81, align 1, !tbaa !113, !range !92, !noundef !93
  br label %83

83:                                               ; preds = %80, %70
  %84 = phi i8 [ 0, %70 ], [ %82, %80 ]
  %85 = getelementptr inbounds i8, ptr %63, i64 211
  store i8 %84, ptr %85, align 1, !tbaa !114
  %86 = add nsw i32 %74, -1
  %87 = icmp slt i32 %76, %86
  %88 = and i32 %spec.select, 67108864
  %.not376 = icmp eq i32 %88, 0
  br i1 %.not376, label %105, label %89

89:                                               ; preds = %83
  %90 = getelementptr inbounds i8, ptr %42, i64 7832
  %91 = getelementptr inbounds i8, ptr %42, i64 7848
  %92 = load i32, ptr %91, align 8, !tbaa !115
  %93 = tail call noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %90, i32 noundef %92)
  %94 = getelementptr inbounds i8, ptr %63, i64 148
  %95 = load i32, ptr %94, align 4, !tbaa !116
  %96 = load i32, ptr %93, align 8, !tbaa !117
  %97 = icmp ne i32 %95, %96
  %98 = getelementptr inbounds i8, ptr %93, i64 8
  %99 = load ptr, ptr %98, align 8, !tbaa !119
  %100 = icmp ne ptr %63, %99
  %101 = or i1 %97, %100
  %102 = or i1 %87, %101
  %103 = getelementptr inbounds i8, ptr %63, i64 209
  %104 = zext i1 %102 to i8
  store i8 %104, ptr %103, align 1, !tbaa !120
  br i1 %102, label %108, label %109

105:                                              ; preds = %83
  %106 = getelementptr inbounds i8, ptr %63, i64 209
  %107 = zext i1 %87 to i8
  store i8 %107, ptr %106, align 1, !tbaa !120
  br i1 %87, label %108, label %109

108:                                              ; preds = %89, %105
  tail call void @_ZL28SetWindowConditionAllowFlagsP11ImGuiWindowib(ptr noundef nonnull %63, i32 noundef 8, i1 noundef zeroext true)
  br label %109

109:                                              ; preds = %89, %108, %105
  %.0333.in497 = phi i1 [ false, %89 ], [ true, %108 ], [ false, %105 ]
  br i1 %.not375, label %131, label %110

110:                                              ; preds = %109
  tail call void @_ZN5ImGuiL28UpdateWindowInFocusOrderListEP11ImGuiWindowbi(ptr noundef nonnull %63, i1 noundef zeroext %59, i32 noundef %spec.select)
  %111 = getelementptr inbounds i8, ptr %63, i64 20
  store i32 %spec.select, ptr %111, align 4, !tbaa !121
  %112 = getelementptr inbounds i8, ptr %42, i64 7608
  %113 = load i32, ptr %112, align 8, !tbaa !122
  %114 = and i32 %113, 512
  %.not377 = icmp eq i32 %114, 0
  br i1 %.not377, label %118, label %115

115:                                              ; preds = %110
  %116 = getelementptr inbounds i8, ptr %42, i64 7668
  %117 = load i32, ptr %116, align 4, !tbaa !123
  br label %118

118:                                              ; preds = %110, %115
  %119 = phi i32 [ %117, %115 ], [ 0, %110 ]
  %120 = getelementptr inbounds i8, ptr %63, i64 24
  store i32 %119, ptr %120, align 8, !tbaa !124
  store i32 %74, ptr %75, align 8, !tbaa !111
  %121 = getelementptr inbounds i8, ptr %42, i64 4824
  %122 = load double, ptr %121, align 8, !tbaa !125
  %123 = fptrunc double %122 to float
  %124 = getelementptr inbounds i8, ptr %63, i64 644
  store float %123, ptr %124, align 4, !tbaa !126
  %125 = getelementptr inbounds i8, ptr %63, i64 220
  store i16 0, ptr %125, align 4, !tbaa !127
  %126 = getelementptr inbounds i8, ptr %42, i64 5000
  %127 = load i32, ptr %126, align 8, !tbaa !128
  %128 = add nsw i32 %127, 1
  store i32 %128, ptr %126, align 8, !tbaa !128
  %129 = trunc i32 %127 to i16
  %130 = getelementptr inbounds i8, ptr %63, i64 222
  store i16 %129, ptr %130, align 2, !tbaa !129
  br label %134

131:                                              ; preds = %109
  %132 = getelementptr inbounds i8, ptr %63, i64 20
  %133 = load i32, ptr %132, align 4, !tbaa !121
  br label %134

134:                                              ; preds = %131, %118
  %.1 = phi i32 [ %spec.select, %118 ], [ %133, %131 ]
  %135 = tail call noundef zeroext i1 @_ZNK8ImVectorI20ImGuiWindowStackDataE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %77)
  br i1 %135, label %139, label %136

136:                                              ; preds = %134
  %137 = tail call noundef nonnull align 8 dereferenceable(111) ptr @_ZN8ImVectorI20ImGuiWindowStackDataE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %77)
  %138 = load ptr, ptr %137, align 8, !tbaa !130
  br label %139

139:                                              ; preds = %134, %136
  %140 = phi ptr [ %138, %136 ], [ null, %134 ]
  br i1 %.not375, label %144, label %141

141:                                              ; preds = %139
  %142 = and i32 %.1, 83886080
  %.not378 = icmp eq i32 %142, 0
  %143 = select i1 %.not378, ptr null, ptr %140
  br label %147

144:                                              ; preds = %139
  %145 = getelementptr inbounds i8, ptr %63, i64 928
  %146 = load ptr, ptr %145, align 8, !tbaa !132
  br label %147

147:                                              ; preds = %144, %141
  %148 = phi ptr [ %143, %141 ], [ %146, %144 ]
  %149 = icmp eq ptr %148, null
  %150 = and i32 %.1, 16777216
  %151 = icmp ne i32 %150, 0
  %.not380 = select i1 %149, i1 %151, i1 false
  br i1 %.not380, label %152, label %153

152:                                              ; preds = %147
  tail call void @__assert_fail(ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.3, i32 noundef 7074, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

153:                                              ; preds = %147
  %154 = getelementptr inbounds i8, ptr %63, i64 264
  %155 = load i32, ptr %154, align 8, !tbaa !133
  %156 = icmp eq i32 %155, 0
  br i1 %156, label %157, label %158

157:                                              ; preds = %153
  tail call void @_ZN8ImVectorIjE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(16) %154, ptr noundef nonnull align 4 dereferenceable(4) %66)
  br label %158

158:                                              ; preds = %157, %153
  %159 = getelementptr inbounds i8, ptr %42, i64 5016
  store ptr %63, ptr %159, align 8, !tbaa !134
  %160 = load i32, ptr %77, align 8, !tbaa !112
  %161 = add nsw i32 %160, 1
  tail call void @_ZN8ImVectorI20ImGuiWindowStackDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %77, i32 noundef %161)
  %162 = tail call noundef nonnull align 8 dereferenceable(111) ptr @_ZN8ImVectorI20ImGuiWindowStackDataE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %77)
  store ptr %63, ptr %162, align 8, !tbaa !130
  %163 = getelementptr inbounds i8, ptr %42, i64 7528
  %164 = getelementptr inbounds i8, ptr %162, i64 8
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %164, ptr noundef nonnull align 8 dereferenceable(80) %163, i64 80, i1 false), !tbaa.struct !135
  %165 = and i32 %.1, 33554432
  %.not394 = icmp eq i32 %165, 0
  br i1 %.not394, label %171, label %166

166:                                              ; preds = %158
  %167 = getelementptr inbounds i8, ptr %42, i64 7464
  %168 = load i32, ptr %167, align 8, !tbaa !138
  %169 = and i32 %168, 1024
  %170 = icmp ne i32 %169, 0
  br label %171

171:                                              ; preds = %166, %158
  %172 = phi i1 [ false, %158 ], [ %170, %166 ]
  %173 = getelementptr inbounds i8, ptr %162, i64 110
  %174 = zext i1 %172 to i8
  store i8 %174, ptr %173, align 2, !tbaa !139
  %175 = getelementptr inbounds i8, ptr %162, i64 88
  tail call void @_ZN5ImGui23ErrorRecoveryStoreStateEP23ImGuiErrorRecoveryState(ptr noundef nonnull %175)
  %176 = getelementptr inbounds i8, ptr %42, i64 9952
  store ptr %175, ptr %176, align 8, !tbaa !140
  %177 = and i32 %.1, 268435456
  %.not381 = icmp eq i32 %177, 0
  br i1 %.not381, label %182, label %178

178:                                              ; preds = %171
  %179 = getelementptr inbounds i8, ptr %42, i64 9316
  %180 = load i32, ptr %179, align 4, !tbaa !141
  %181 = add nsw i32 %180, 1
  store i32 %181, ptr %179, align 4, !tbaa !141
  br label %182

182:                                              ; preds = %178, %171
  br i1 %.not375, label %196, label %183

183:                                              ; preds = %182
  tail call void @_ZN5ImGui30UpdateWindowParentAndRootLinksEP11ImGuiWindowiS1_(ptr noundef nonnull %63, i32 noundef %.1, ptr noundef %148)
  %184 = getelementptr inbounds i8, ptr %63, i64 936
  store ptr %140, ptr %184, align 8, !tbaa !142
  %185 = select i1 %151, ptr %140, ptr null
  %186 = getelementptr inbounds i8, ptr %63, i64 976
  store ptr %185, ptr %186, align 8, !tbaa !143
  br i1 %149, label %193, label %187

187:                                              ; preds = %183
  %188 = getelementptr inbounds i8, ptr %148, i64 692
  %189 = load float, ptr %188, align 4, !tbaa !144
  %190 = getelementptr inbounds i8, ptr %148, i64 688
  %191 = load float, ptr %190, align 8, !tbaa !145
  %192 = fmul float %189, %191
  br label %193

193:                                              ; preds = %183, %187
  %194 = phi float [ %192, %187 ], [ 1.000000e+00, %183 ]
  %195 = getelementptr inbounds i8, ptr %63, i64 692
  store float %194, ptr %195, align 4, !tbaa !144
  br label %196

196:                                              ; preds = %193, %182
  %197 = getelementptr inbounds i8, ptr %63, i64 24
  %198 = load i32, ptr %197, align 8, !tbaa !124
  %199 = and i32 %198, 256
  %.not382 = icmp eq i32 %199, 0
  %200 = getelementptr inbounds i8, ptr %42, i64 7460
  %.in = select i1 %.not382, ptr %66, ptr %200
  %201 = load i32, ptr %.in, align 4, !tbaa !136
  tail call void @_ZN5ImGui14PushFocusScopeEj(i32 noundef %201)
  %202 = load i32, ptr %200, align 4, !tbaa !146
  %203 = getelementptr inbounds i8, ptr %63, i64 1048
  store i32 %202, ptr %203, align 8, !tbaa !147
  %204 = and i32 %.1, 67108864
  %.not383 = icmp eq i32 %204, 0
  br i1 %.not383, label %216, label %205

205:                                              ; preds = %196
  %206 = getelementptr inbounds i8, ptr %42, i64 7832
  %207 = getelementptr inbounds i8, ptr %42, i64 7848
  %208 = load i32, ptr %207, align 8, !tbaa !115
  %209 = tail call noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %206, i32 noundef %208)
  %210 = getelementptr inbounds i8, ptr %209, i64 8
  store ptr %63, ptr %210, align 8, !tbaa !119
  %211 = getelementptr inbounds i8, ptr %140, i64 368
  %212 = load i32, ptr %211, align 8, !tbaa !148
  %213 = getelementptr inbounds i8, ptr %209, i64 24
  store i32 %212, ptr %213, align 8, !tbaa !149
  tail call void @_ZN8ImVectorI14ImGuiPopupDataE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(52) %209)
  %214 = load i32, ptr %209, align 8, !tbaa !117
  %215 = getelementptr inbounds i8, ptr %63, i64 148
  store i32 %214, ptr %215, align 4, !tbaa !116
  br label %216

216:                                              ; preds = %205, %196
  %217 = getelementptr inbounds i8, ptr %42, i64 7608
  %218 = load i32, ptr %217, align 8, !tbaa !122
  %219 = and i32 %218, 1
  %.not384 = icmp eq i32 %219, 0
  br i1 %.not384, label %244, label %220

220:                                              ; preds = %216
  %221 = getelementptr inbounds i8, ptr %63, i64 240
  %222 = load i32, ptr %221, align 8
  %223 = shl i32 %222, 24
  %224 = ashr exact i32 %223, 24
  %225 = getelementptr inbounds i8, ptr %42, i64 7612
  %226 = load i32, ptr %225, align 4, !tbaa !150
  %227 = and i32 %224, %226
  %228 = icmp ne i32 %227, 0
  br i1 %228, label %229, label %241

229:                                              ; preds = %220
  %230 = getelementptr inbounds i8, ptr %42, i64 7632
  %231 = tail call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %230)
  %232 = fcmp ogt float %231, 0x3EE4F8B580000000
  br i1 %232, label %233, label %._crit_edge

._crit_edge:                                      ; preds = %229
  %.pre = load i32, ptr %225, align 4, !tbaa !150
  br label %241

233:                                              ; preds = %229
  %234 = getelementptr inbounds i8, ptr %42, i64 7624
  %235 = getelementptr inbounds i8, ptr %63, i64 244
  %236 = load i64, ptr %234, align 8
  store i64 %236, ptr %235, align 4
  %237 = getelementptr inbounds i8, ptr %63, i64 252
  %238 = load i64, ptr %230, align 8
  store i64 %238, ptr %237, align 4
  %239 = load i32, ptr %221, align 8
  %240 = and i32 %239, -15
  store i32 %240, ptr %221, align 8
  br label %244

241:                                              ; preds = %._crit_edge, %220
  %242 = phi i32 [ %.pre, %._crit_edge ], [ %226, %220 ]
  %243 = getelementptr inbounds i8, ptr %42, i64 7624
  tail call void @_ZN5ImGui12SetWindowPosEP11ImGuiWindowRK6ImVec2i(ptr noundef nonnull %63, ptr noundef nonnull align 4 dereferenceable(8) %243, i32 noundef %242)
  br label %244

244:                                              ; preds = %233, %241, %216
  %.0334.shrunk = phi i1 [ true, %233 ], [ %228, %241 ], [ false, %216 ]
  %245 = load i32, ptr %217, align 8, !tbaa !122
  %246 = and i32 %245, 2
  %.not385 = icmp eq i32 %246, 0
  br i1 %.not385, label %284, label %247

247:                                              ; preds = %244
  %248 = getelementptr inbounds i8, ptr %63, i64 240
  %249 = load i32, ptr %248, align 8
  %250 = shl i32 %249, 16
  %251 = ashr i32 %250, 24
  %252 = getelementptr inbounds i8, ptr %42, i64 7616
  %253 = load i32, ptr %252, align 8, !tbaa !151
  %254 = and i32 %251, %253
  %.not386 = icmp eq i32 %254, 0
  br i1 %.not386, label %.thread, label %255

255:                                              ; preds = %247
  %256 = getelementptr inbounds i8, ptr %42, i64 7640
  %257 = load float, ptr %256, align 8, !tbaa !152
  %258 = fcmp ogt float %257, 0.000000e+00
  %259 = getelementptr inbounds i8, ptr %42, i64 7644
  %260 = load float, ptr %259, align 4, !tbaa !153
  %261 = fcmp ogt float %260, 0.000000e+00
  br label %.thread

.thread:                                          ; preds = %247, %255
  %262 = phi i1 [ %258, %255 ], [ false, %247 ]
  %263 = phi i1 [ %261, %255 ], [ false, %247 ]
  %264 = load i32, ptr %197, align 8, !tbaa !124
  %265 = and i32 %264, 4
  %.not388 = icmp ne i32 %265, 0
  %266 = and i32 %249, 1024
  %267 = icmp eq i32 %266, 0
  %or.cond525 = and i1 %267, %.not388
  br i1 %or.cond525, label %268, label %272

268:                                              ; preds = %.thread
  %269 = getelementptr inbounds i8, ptr %63, i64 56
  %270 = load float, ptr %269, align 8, !tbaa !154
  %271 = getelementptr inbounds i8, ptr %42, i64 7640
  store float %270, ptr %271, align 8, !tbaa !152
  br label %272

272:                                              ; preds = %268, %.thread
  %273 = and i32 %264, 8
  %.not389 = icmp eq i32 %273, 0
  br i1 %.not389, label %282, label %274

274:                                              ; preds = %272
  %275 = load i32, ptr %248, align 8
  %276 = and i32 %275, 1024
  %277 = icmp eq i32 %276, 0
  br i1 %277, label %278, label %282

278:                                              ; preds = %274
  %279 = getelementptr inbounds i8, ptr %63, i64 60
  %280 = load float, ptr %279, align 4, !tbaa !155
  %281 = getelementptr inbounds i8, ptr %42, i64 7644
  store float %280, ptr %281, align 4, !tbaa !153
  br label %282

282:                                              ; preds = %278, %274, %272
  %283 = getelementptr inbounds i8, ptr %42, i64 7640
  tail call void @_ZN5ImGui13SetWindowSizeEP11ImGuiWindowRK6ImVec2i(ptr noundef nonnull %63, ptr noundef nonnull align 4 dereferenceable(8) %283, i32 noundef %253)
  %.pre542 = load i32, ptr %217, align 8, !tbaa !122
  br label %284

284:                                              ; preds = %282, %244
  %285 = phi i32 [ %.pre542, %282 ], [ %245, %244 ]
  %.0336 = phi i1 [ %263, %282 ], [ false, %244 ]
  %.0335 = phi i1 [ %262, %282 ], [ false, %244 ]
  %286 = and i32 %285, 128
  %.not390 = icmp eq i32 %286, 0
  br i1 %.not390, label %301, label %287

287:                                              ; preds = %284
  %288 = getelementptr inbounds i8, ptr %42, i64 7656
  %289 = load float, ptr %288, align 8, !tbaa !156
  %290 = fcmp ult float %289, 0.000000e+00
  br i1 %290, label %294, label %291

291:                                              ; preds = %287
  %292 = getelementptr inbounds i8, ptr %63, i64 168
  store float %289, ptr %292, align 8, !tbaa !157
  %293 = getelementptr inbounds i8, ptr %63, i64 176
  store float 0.000000e+00, ptr %293, align 8, !tbaa !158
  br label %294

294:                                              ; preds = %291, %287
  %295 = getelementptr inbounds i8, ptr %42, i64 7660
  %296 = load float, ptr %295, align 4, !tbaa !159
  %297 = fcmp ult float %296, 0.000000e+00
  br i1 %297, label %301, label %298

298:                                              ; preds = %294
  %299 = getelementptr inbounds i8, ptr %63, i64 172
  store float %296, ptr %299, align 4, !tbaa !160
  %300 = getelementptr inbounds i8, ptr %63, i64 180
  store float 0.000000e+00, ptr %300, align 4, !tbaa !161
  br label %301

301:                                              ; preds = %294, %298, %284
  %302 = and i32 %285, 4
  %.not391 = icmp eq i32 %302, 0
  br i1 %.not391, label %307, label %303

303:                                              ; preds = %301
  %304 = getelementptr inbounds i8, ptr %42, i64 7648
  %305 = getelementptr inbounds i8, ptr %63, i64 80
  %306 = load i64, ptr %304, align 8
  store i64 %306, ptr %305, align 8
  br label %312

307:                                              ; preds = %301
  br i1 %.not375, label %312, label %308

308:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #12
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %5, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %309 = load ptr, ptr %4, align 8, !tbaa !5
  %310 = getelementptr inbounds i8, ptr %309, i64 80
  %311 = load i64, ptr %5, align 8
  store i64 %311, ptr %310, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #12
  br label %312

312:                                              ; preds = %307, %308, %303
  %313 = phi ptr [ %63, %307 ], [ %309, %308 ], [ %63, %303 ]
  %314 = load i32, ptr %217, align 8, !tbaa !122
  %315 = and i32 %314, 8
  %.not392 = icmp eq i32 %315, 0
  br i1 %.not392, label %322, label %316

316:                                              ; preds = %312
  %317 = getelementptr inbounds i8, ptr %42, i64 7672
  %318 = load i8, ptr %317, align 8, !tbaa !162, !range !92, !noundef !93
  %319 = trunc nuw i8 %318 to i1
  %320 = getelementptr inbounds i8, ptr %42, i64 7620
  %321 = load i32, ptr %320, align 4, !tbaa !163
  call void @_ZN5ImGui18SetWindowCollapsedEP11ImGuiWindowbi(ptr noundef nonnull %313, i1 noundef zeroext %319, i32 noundef %321)
  %.pre543 = load i32, ptr %217, align 8, !tbaa !122
  %.pre545.pre = load ptr, ptr %4, align 8, !tbaa !5
  br label %322

322:                                              ; preds = %316, %312
  %.pre545 = phi ptr [ %.pre545.pre, %316 ], [ %313, %312 ]
  %323 = phi i32 [ %.pre543, %316 ], [ %314, %312 ]
  %324 = and i32 %323, 32
  %.not393 = icmp eq i32 %324, 0
  br i1 %.not393, label %326, label %325

325:                                              ; preds = %322
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindowi(ptr noundef %.pre545, i32 noundef 0)
  %.pre544 = load ptr, ptr %4, align 8, !tbaa !5
  br label %326

326:                                              ; preds = %325, %322
  %327 = phi ptr [ %.pre544, %325 ], [ %.pre545, %322 ]
  %328 = getelementptr inbounds i8, ptr %327, i64 209
  %329 = load i8, ptr %328, align 1, !tbaa !120, !range !92, !noundef !93
  %330 = trunc nuw i8 %329 to i1
  br i1 %330, label %331, label %332

331:                                              ; preds = %326
  call void @_ZL28SetWindowConditionAllowFlagsP11ImGuiWindowib(ptr noundef nonnull %327, i32 noundef 8, i1 noundef zeroext false)
  %.pre546 = load ptr, ptr %4, align 8, !tbaa !5
  br label %332

332:                                              ; preds = %331, %326
  %333 = phi ptr [ %.pre546, %331 ], [ %327, %326 ]
  call void @_ZN5ImGui23UpdateWindowSkipRefreshEP11ImGuiWindow(ptr noundef %333)
  %334 = load i8, ptr %173, align 2, !tbaa !139, !range !92, !noundef !93
  %335 = trunc nuw i8 %334 to i1
  %.pre574.pre584 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %335, label %336, label %341

336:                                              ; preds = %332
  %337 = getelementptr inbounds i8, ptr %.pre574.pre584, i64 944
  %338 = load ptr, ptr %337, align 8, !tbaa !164
  %339 = icmp eq ptr %338, %.pre574.pre584
  br i1 %339, label %340, label %341

340:                                              ; preds = %336
  call void @_ZN5ImGui29BeginDisabledOverrideReenableEv()
  %.pre574.pre = load ptr, ptr %4, align 8, !tbaa !5
  br label %341

341:                                              ; preds = %340, %336, %332
  %.pre574 = phi ptr [ %.pre574.pre, %340 ], [ %.pre574.pre584, %336 ], [ %.pre574.pre584, %332 ]
  store ptr null, ptr %159, align 8, !tbaa !134
  %.phi.trans.insert576 = getelementptr inbounds i8, ptr %.pre574, i64 208
  %.pre577 = load i8, ptr %.phi.trans.insert576, align 8, !tbaa !165, !range !92
  br i1 %.not375, label %._crit_edge575, label %342

342:                                              ; preds = %341
  %343 = trunc nuw i8 %.pre577 to i1
  br i1 %343, label %._crit_edge575, label %344

344:                                              ; preds = %342
  %345 = and i32 %.1, 50331648
  %346 = icmp eq i32 %345, 50331648
  %347 = getelementptr inbounds i8, ptr %.pre574, i64 237
  %348 = load i8, ptr %347, align 1, !tbaa !166
  %349 = icmp slt i8 %348, 1
  %350 = getelementptr inbounds i8, ptr %.pre574, i64 202
  store i8 1, ptr %350, align 2, !tbaa !167
  %351 = icmp ne ptr %1, null
  %352 = getelementptr inbounds i8, ptr %.pre574, i64 213
  %353 = zext i1 %351 to i8
  store i8 %353, ptr %352, align 1, !tbaa !168
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #12
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %7, float noundef 0xC7EFFFFFE0000000, float noundef 0xC7EFFFFFE0000000, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000)
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %6, ptr noundef nonnull align 4 dereferenceable(16) %7)
  %354 = load ptr, ptr %4, align 8, !tbaa !5
  %355 = getelementptr inbounds i8, ptr %354, i64 600
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %355, ptr noundef nonnull align 4 dereferenceable(16) %6, i64 16, i1 false), !tbaa.struct !169
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #12
  %356 = getelementptr inbounds i8, ptr %354, i64 264
  call void @_ZN8ImVectorIjE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %356, i32 noundef 1)
  %357 = load ptr, ptr %4, align 8, !tbaa !5
  %358 = getelementptr inbounds i8, ptr %357, i64 704
  %359 = load ptr, ptr %358, align 8, !tbaa !170
  call void @_ZN10ImDrawList17_ResetForNewFrameEv(ptr noundef nonnull align 8 dereferenceable(216) %359)
  %360 = load ptr, ptr %4, align 8, !tbaa !5
  %361 = getelementptr inbounds i8, ptr %360, i64 456
  store i32 -1, ptr %361, align 8, !tbaa !171
  %362 = getelementptr inbounds i8, ptr %360, i64 1060
  %363 = load i8, ptr %362, align 4, !tbaa !172, !range !92, !noundef !93
  %364 = trunc nuw i8 %363 to i1
  br i1 %364, label %365, label %366

365:                                              ; preds = %344
  call void @_ZN5ImGui29GcAwakeTransientWindowBuffersEP11ImGuiWindow(ptr noundef nonnull %360)
  %.pre547.pre = load ptr, ptr %4, align 8, !tbaa !5
  br label %366

366:                                              ; preds = %365, %344
  %.pre547 = phi ptr [ %.pre547.pre, %365 ], [ %360, %344 ]
  %367 = getelementptr inbounds i8, ptr %42, i64 8392
  %368 = load ptr, ptr %367, align 8, !tbaa !173
  %.not395 = icmp eq ptr %368, null
  br i1 %.not395, label %.critedge433, label %369

369:                                              ; preds = %366
  %370 = getelementptr inbounds i8, ptr %.pre547, i64 20
  %371 = load i32, ptr %370, align 4, !tbaa !121
  %372 = and i32 %371, 131072
  %373 = icmp ne i32 %372, 0
  %brmerge = or i1 %59, %373
  br i1 %brmerge, label %.critedge433, label %374

374:                                              ; preds = %369
  %375 = getelementptr inbounds i8, ptr %.pre547, i64 8
  %376 = load ptr, ptr %375, align 8, !tbaa !174
  %377 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %0, ptr noundef nonnull dereferenceable(1) %376) #15
  %.not396 = icmp eq i32 %377, 0
  br i1 %.not396, label %.critedge433, label %378

378:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #12
  %379 = getelementptr inbounds i8, ptr %.pre547, i64 136
  %380 = load i32, ptr %379, align 8, !tbaa !175
  %381 = sext i32 %380 to i64
  store i64 %381, ptr %8, align 8, !tbaa !176
  %382 = call noundef ptr @_Z11ImStrdupcpyPcPmPKc(ptr noundef %376, ptr noundef nonnull %8, ptr noundef nonnull %0)
  %383 = load ptr, ptr %4, align 8, !tbaa !5
  %384 = getelementptr inbounds i8, ptr %383, i64 8
  store ptr %382, ptr %384, align 8, !tbaa !174
  %385 = load i64, ptr %8, align 8, !tbaa !176
  %386 = trunc i64 %385 to i32
  %387 = getelementptr inbounds i8, ptr %383, i64 136
  store i32 %386, ptr %387, align 8, !tbaa !175
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #12
  br label %.critedge433

.critedge433:                                     ; preds = %366, %369, %378, %374
  %388 = phi ptr [ %.pre547, %366 ], [ %.pre547, %369 ], [ %383, %378 ], [ %.pre547, %374 ]
  %389 = getelementptr inbounds i8, ptr %388, i64 64
  %390 = getelementptr inbounds i8, ptr %388, i64 72
  call void @_ZL22CalcWindowContentSizesP11ImGuiWindowP6ImVec2S2_(ptr noundef %388, ptr noundef nonnull %389, ptr noundef nonnull %390)
  %391 = load ptr, ptr %4, align 8, !tbaa !5
  %392 = getelementptr inbounds i8, ptr %391, i64 236
  %393 = load i8, ptr %392, align 4, !tbaa !178
  %394 = icmp sgt i8 %393, 0
  br i1 %394, label %395, label %397

395:                                              ; preds = %.critedge433
  %396 = add nsw i8 %393, -1
  store i8 %396, ptr %392, align 4, !tbaa !178
  br label %397

397:                                              ; preds = %395, %.critedge433
  %398 = getelementptr inbounds i8, ptr %391, i64 237
  %399 = load i8, ptr %398, align 1, !tbaa !166
  %400 = icmp sgt i8 %399, 0
  br i1 %400, label %401, label %403

401:                                              ; preds = %397
  %402 = add nsw i8 %399, -1
  store i8 %402, ptr %398, align 1, !tbaa !166
  br label %403

403:                                              ; preds = %401, %397
  %404 = getelementptr inbounds i8, ptr %391, i64 238
  %405 = load i8, ptr %404, align 2, !tbaa !179
  %406 = icmp sgt i8 %405, 0
  br i1 %406, label %407, label %409

407:                                              ; preds = %403
  %408 = add nsw i8 %405, -1
  store i8 %408, ptr %404, align 2, !tbaa !179
  br label %409

409:                                              ; preds = %407, %403
  %.not541 = xor i1 %59, true
  %410 = select i1 %.0335, i1 %.0336, i1 false
  %or.cond = select i1 %.not541, i1 true, i1 %410
  br i1 %or.cond, label %412, label %411

411:                                              ; preds = %409
  store i8 1, ptr %398, align 1, !tbaa !166
  br label %412

412:                                              ; preds = %411, %409
  %413 = and i32 %.1, 100663296
  %.not397 = icmp ne i32 %413, 0
  %or.cond.not = select i1 %.0333.in497, i1 %.not397, i1 false
  br i1 %or.cond.not, label %414, label %429

414:                                              ; preds = %412
  store i8 1, ptr %398, align 1, !tbaa !166
  %415 = and i32 %.1, 64
  %.not398 = icmp eq i32 %415, 0
  br i1 %.not398, label %429, label %416

416:                                              ; preds = %414
  br i1 %.0335, label %420, label %417

417:                                              ; preds = %416
  %418 = getelementptr inbounds i8, ptr %391, i64 56
  store float 0.000000e+00, ptr %418, align 8, !tbaa !154
  %419 = getelementptr inbounds i8, ptr %391, i64 48
  store float 0.000000e+00, ptr %419, align 8, !tbaa !180
  br label %420

420:                                              ; preds = %417, %416
  br i1 %.0336, label %424, label %421

421:                                              ; preds = %420
  %422 = getelementptr inbounds i8, ptr %391, i64 60
  store float 0.000000e+00, ptr %422, align 4, !tbaa !155
  %423 = getelementptr inbounds i8, ptr %391, i64 52
  store float 0.000000e+00, ptr %423, align 4, !tbaa !181
  br label %424

424:                                              ; preds = %421, %420
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #12
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %425 = load ptr, ptr %4, align 8, !tbaa !5
  %426 = getelementptr inbounds i8, ptr %425, i64 72
  %427 = load i64, ptr %9, align 8
  store i64 %427, ptr %426, align 8
  %428 = getelementptr inbounds i8, ptr %425, i64 64
  store i64 %427, ptr %428, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #12
  br label %429

429:                                              ; preds = %414, %424, %412
  %430 = call noundef ptr @_ZN5ImGui15GetMainViewportEv()
  %431 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN5ImGui17SetWindowViewportEP11ImGuiWindowP14ImGuiViewportP(ptr noundef %431, ptr noundef %430)
  %432 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZL16SetCurrentWindowP11ImGuiWindow(ptr noundef %432)
  br i1 %151, label %440, label %.thread499

.thread499:                                       ; preds = %429
  %433 = and i32 %.1, 134217728
  %.not400 = icmp eq i32 %433, 0
  %or.cond435 = and i1 %.not397, %.not400
  %.in401.v = select i1 %or.cond435, i64 3156, i64 3116
  %.in401 = getelementptr inbounds i8, ptr %42, i64 %.in401.v
  %434 = load float, ptr %.in401, align 4, !tbaa !137
  %435 = load ptr, ptr %4, align 8, !tbaa !5
  %436 = getelementptr inbounds i8, ptr %435, i64 100
  store float %434, ptr %436, align 4, !tbaa !182
  %437 = getelementptr inbounds i8, ptr %42, i64 3104
  %438 = getelementptr inbounds i8, ptr %435, i64 88
  %439 = load i64, ptr %437, align 4
  store i64 %439, ptr %438, align 8
  br label %464

440:                                              ; preds = %429
  %441 = getelementptr inbounds i8, ptr %42, i64 3148
  %442 = load float, ptr %441, align 4, !tbaa !183
  %443 = load ptr, ptr %4, align 8, !tbaa !5
  %444 = getelementptr inbounds i8, ptr %443, i64 100
  store float %442, ptr %444, align 4, !tbaa !182
  %445 = getelementptr inbounds i8, ptr %42, i64 3104
  %446 = getelementptr inbounds i8, ptr %443, i64 88
  %447 = load i64, ptr %445, align 4
  store i64 %447, ptr %446, align 8
  %448 = and i32 %.1, 83886080
  %brmerge437.not = icmp eq i32 %448, 16777216
  br i1 %brmerge437.not, label %449, label %464

449:                                              ; preds = %440
  %450 = getelementptr inbounds i8, ptr %443, i64 24
  %451 = load i32, ptr %450, align 8, !tbaa !124
  %452 = and i32 %451, 2
  %.not402 = icmp eq i32 %452, 0
  %453 = fcmp oeq float %442, 0.000000e+00
  %or.cond598 = select i1 %.not402, i1 %453, i1 false
  br i1 %or.cond598, label %454, label %464

454:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #12
  %455 = and i32 %.1, 1024
  %.not403 = icmp eq i32 %455, 0
  br i1 %.not403, label %459, label %456

456:                                              ; preds = %454
  %457 = getelementptr inbounds i8, ptr %42, i64 3108
  %458 = load float, ptr %457, align 4, !tbaa !184
  br label %459

459:                                              ; preds = %454, %456
  %460 = phi float [ %458, %456 ], [ 0.000000e+00, %454 ]
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef 0.000000e+00, float noundef %460)
  %461 = load ptr, ptr %4, align 8, !tbaa !5
  %462 = getelementptr inbounds i8, ptr %461, i64 88
  %463 = load i64, ptr %10, align 8
  store i64 %463, ptr %462, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #12
  br label %464

464:                                              ; preds = %.thread499, %440, %459, %449
  %.in591.in = phi i64 [ %439, %.thread499 ], [ %447, %440 ], [ %463, %459 ], [ %447, %449 ]
  %brmerge437504 = phi i1 [ true, %.thread499 ], [ true, %440 ], [ false, %459 ], [ false, %449 ]
  %.in591 = trunc i64 %.in591.in to i32
  %465 = bitcast i32 %.in591 to float
  %.not383.not503 = xor i1 %.not383, true
  %466 = getelementptr inbounds i8, ptr %42, i64 3176
  %467 = load float, ptr %466, align 4, !tbaa !185
  %468 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %465, float noundef %467)
  %469 = getelementptr inbounds i8, ptr %42, i64 7716
  %470 = load float, ptr %469, align 4, !tbaa !186
  %471 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %468, float noundef %470)
  %472 = load ptr, ptr %4, align 8, !tbaa !5
  %473 = getelementptr inbounds i8, ptr %472, i64 380
  store float %471, ptr %473, align 4, !tbaa !187
  %474 = getelementptr inbounds i8, ptr %42, i64 7720
  %475 = load float, ptr %474, align 4, !tbaa !188
  %476 = getelementptr inbounds i8, ptr %472, i64 384
  store float %475, ptr %476, align 4, !tbaa !189
  %477 = and i32 %.1, 1
  %.not404 = icmp eq i32 %477, 0
  br i1 %.not404, label %478, label %484

478:                                              ; preds = %464
  %479 = getelementptr inbounds i8, ptr %42, i64 4272
  %480 = load float, ptr %479, align 8, !tbaa !190
  %481 = getelementptr inbounds i8, ptr %42, i64 3164
  %482 = load float, ptr %481, align 4, !tbaa !191
  %483 = call float @llvm.fmuladd.f32(float %482, float 2.000000e+00, float %480)
  br label %484

484:                                              ; preds = %464, %478
  %485 = phi float [ %483, %478 ], [ 0.000000e+00, %464 ]
  %486 = getelementptr inbounds i8, ptr %472, i64 104
  store float %485, ptr %486, align 8, !tbaa !192
  %487 = and i32 %.1, 1024
  %.not405.not = icmp eq i32 %487, 0
  %.phi.trans.insert = getelementptr inbounds i8, ptr %42, i64 4272
  %.pre549 = load float, ptr %.phi.trans.insert, align 8, !tbaa !190
  br i1 %.not405.not, label %._crit_edge548, label %488

488:                                              ; preds = %484
  %489 = fadd float %475, %.pre549
  %490 = getelementptr inbounds i8, ptr %42, i64 3164
  %491 = load float, ptr %490, align 4, !tbaa !191
  %492 = call float @llvm.fmuladd.f32(float %491, float 2.000000e+00, float %489)
  br label %._crit_edge548

._crit_edge548:                                   ; preds = %484, %488
  %493 = phi float [ %492, %488 ], [ 0.000000e+00, %484 ]
  %494 = getelementptr inbounds i8, ptr %472, i64 108
  store float %493, ptr %494, align 4, !tbaa !193
  %495 = getelementptr inbounds i8, ptr %42, i64 4272
  %496 = getelementptr inbounds i8, ptr %472, i64 696
  store float %.pre549, ptr %496, align 8, !tbaa !194
  br i1 %.0335, label %497, label %502

497:                                              ; preds = %._crit_edge548
  %498 = getelementptr inbounds i8, ptr %472, i64 80
  %499 = load float, ptr %498, align 8, !tbaa !195
  %500 = fcmp une float %499, 0.000000e+00
  br i1 %500, label %501, label %502

501:                                              ; preds = %497
  br label %502

502:                                              ; preds = %501, %497, %._crit_edge548
  %.0338 = phi i1 [ true, %501 ], [ %59, %497 ], [ %59, %._crit_edge548 ]
  br i1 %.0336, label %503, label %508

503:                                              ; preds = %502
  %504 = getelementptr inbounds i8, ptr %472, i64 84
  %505 = load float, ptr %504, align 4, !tbaa !196
  %506 = fcmp une float %505, 0.000000e+00
  br i1 %506, label %507, label %508

507:                                              ; preds = %503
  br label %508

508:                                              ; preds = %507, %503, %502
  %.0340 = phi i1 [ true, %507 ], [ %59, %503 ], [ %59, %502 ]
  %509 = and i32 %.1, 33
  %or.cond438 = icmp eq i32 %509, 0
  br i1 %or.cond438, label %510, label %553

510:                                              ; preds = %508
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #12
  %511 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(1061) %472)
  %512 = extractvalue { <2 x float>, <2 x float> } %511, 0
  store <2 x float> %512, ptr %11, align 8
  %513 = getelementptr inbounds i8, ptr %11, i64 8
  %514 = extractvalue { <2 x float>, <2 x float> } %511, 1
  store <2 x float> %514, ptr %513, align 8
  %515 = getelementptr inbounds i8, ptr %42, i64 5024
  %516 = load ptr, ptr %515, align 8, !tbaa !197
  %517 = load ptr, ptr %4, align 8, !tbaa !5
  %518 = icmp eq ptr %516, %517
  br i1 %518, label %519, label %543

519:                                              ; preds = %510
  %520 = getelementptr inbounds i8, ptr %42, i64 5108
  %521 = load i32, ptr %520, align 4, !tbaa !198
  %522 = icmp eq i32 %521, 0
  br i1 %522, label %523, label %543

523:                                              ; preds = %519
  %524 = getelementptr inbounds i8, ptr %42, i64 5112
  %525 = load i32, ptr %524, align 8, !tbaa !199
  %526 = icmp eq i32 %525, 0
  br i1 %526, label %527, label %543

527:                                              ; preds = %523
  %528 = getelementptr inbounds i8, ptr %42, i64 5132
  %529 = load i32, ptr %528, align 4, !tbaa !200
  %530 = icmp eq i32 %529, 0
  br i1 %530, label %531, label %543

531:                                              ; preds = %527
  %532 = call noundef zeroext i1 @_ZN5ImGui19IsMouseHoveringRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %513, i1 noundef zeroext true)
  br i1 %532, label %533, label %543

533:                                              ; preds = %531
  %534 = getelementptr inbounds i8, ptr %42, i64 2834
  %535 = load i16, ptr %534, align 2, !tbaa !201
  %536 = icmp eq i16 %535, 2
  br i1 %536, label %537, label %543

537:                                              ; preds = %533
  %538 = call noundef i32 @_ZN5ImGui11GetKeyOwnerE8ImGuiKey(i32 noundef 655)
  %539 = icmp eq i32 %538, -1
  br i1 %539, label %540, label %543

540:                                              ; preds = %537
  %541 = load ptr, ptr %4, align 8, !tbaa !5
  %542 = getelementptr inbounds i8, ptr %541, i64 206
  store i8 1, ptr %542, align 2, !tbaa !202
  br label %543

543:                                              ; preds = %533, %537, %540, %531, %527, %523, %519, %510
  %544 = load ptr, ptr %4, align 8, !tbaa !5
  %545 = getelementptr inbounds i8, ptr %544, i64 206
  %546 = load i8, ptr %545, align 2, !tbaa !202, !range !92, !noundef !93
  %547 = trunc nuw i8 %546 to i1
  br i1 %547, label %548, label %552

548:                                              ; preds = %543
  %549 = getelementptr inbounds i8, ptr %544, i64 205
  %550 = load i8, ptr %549, align 1, !tbaa !203, !range !92, !noundef !93
  %551 = xor i8 %550, 1
  store i8 %551, ptr %549, align 1, !tbaa !203
  %.not531.not = icmp ne i8 %550, 0
  %spec.select439 = or i1 %.not531.not, %.0340
  call void @_ZN5ImGui20MarkIniSettingsDirtyEP11ImGuiWindow(ptr noundef nonnull %544)
  %.pre550.pre = load ptr, ptr %4, align 8, !tbaa !5
  br label %552

552:                                              ; preds = %548, %543
  %.pre550 = phi ptr [ %.pre550.pre, %548 ], [ %544, %543 ]
  %.2342 = phi i1 [ %spec.select439, %548 ], [ %.0340, %543 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #12
  %.phi.trans.insert551 = getelementptr inbounds i8, ptr %.pre550, i64 104
  %.pre552 = load float, ptr %.phi.trans.insert551, align 8, !tbaa !192
  %.phi.trans.insert553 = getelementptr inbounds i8, ptr %.pre550, i64 108
  %.pre554 = load float, ptr %.phi.trans.insert553, align 4, !tbaa !193
  br label %555

553:                                              ; preds = %508
  %554 = getelementptr inbounds i8, ptr %472, i64 205
  store i8 0, ptr %554, align 1, !tbaa !203
  br label %555

555:                                              ; preds = %553, %552
  %556 = phi float [ %493, %553 ], [ %.pre554, %552 ]
  %557 = phi float [ %485, %553 ], [ %.pre552, %552 ]
  %558 = phi ptr [ %472, %553 ], [ %.pre550, %552 ]
  %.3343 = phi i1 [ %.0340, %553 ], [ %.2342, %552 ]
  %559 = getelementptr inbounds i8, ptr %558, i64 206
  store i8 0, ptr %559, align 2, !tbaa !202
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #12
  %560 = getelementptr inbounds i8, ptr %558, i64 192
  %561 = load i64, ptr %560, align 8
  store i64 %561, ptr %12, align 8
  %562 = getelementptr inbounds i8, ptr %558, i64 112
  store float 0.000000e+00, ptr %562, align 8, !tbaa !204
  %563 = getelementptr inbounds i8, ptr %558, i64 120
  %564 = fadd float %557, %556
  %565 = getelementptr inbounds i8, ptr %558, i64 116
  store float %564, ptr %565, align 4, !tbaa !205
  store <2 x float> zeroinitializer, ptr %563, align 8, !tbaa !137
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #12
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %13, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %566 = load ptr, ptr %4, align 8, !tbaa !5
  %567 = getelementptr inbounds i8, ptr %566, i64 192
  %568 = load i64, ptr %13, align 8
  store i64 %568, ptr %567, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #12
  %569 = getelementptr inbounds i8, ptr %566, i64 72
  %570 = call <2 x float> @_ZL21CalcWindowAutoFitSizeP11ImGuiWindowRK6ImVec2(ptr noundef %566, ptr noundef nonnull align 4 dereferenceable(8) %569)
  store <2 x float> %570, ptr %14, align 8
  %571 = and i32 %.1, 64
  %.not407 = icmp ne i32 %571, 0
  %572 = extractelement <2 x float> %570, i64 0
  %573 = extractelement <2 x float> %570, i64 1
  %.pre555 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %.not407, label %574, label %584

574:                                              ; preds = %555
  %575 = getelementptr inbounds i8, ptr %.pre555, i64 205
  %576 = load i8, ptr %575, align 1, !tbaa !203, !range !92, !noundef !93
  %577 = trunc nuw i8 %576 to i1
  br i1 %577, label %584, label %578

578:                                              ; preds = %574
  br i1 %.0335, label %581, label %579

579:                                              ; preds = %578
  %580 = getelementptr inbounds i8, ptr %.pre555, i64 56
  store float %572, ptr %580, align 8, !tbaa !154
  br label %581

581:                                              ; preds = %579, %578
  %.1339 = phi i1 [ %.0338, %578 ], [ true, %579 ]
  br i1 %.0336, label %633, label %582

582:                                              ; preds = %581
  %583 = getelementptr inbounds i8, ptr %.pre555, i64 60
  store float %573, ptr %583, align 4, !tbaa !155
  br label %633

584:                                              ; preds = %574, %555
  %585 = getelementptr inbounds i8, ptr %.pre555, i64 226
  %586 = load i8, ptr %585, align 2, !tbaa !206
  %587 = icmp sgt i8 %586, 0
  br i1 %587, label %592, label %588

588:                                              ; preds = %584
  %589 = getelementptr inbounds i8, ptr %.pre555, i64 227
  %590 = load i8, ptr %589, align 1, !tbaa !207
  %591 = icmp sgt i8 %590, 0
  br i1 %591, label %.thread506, label %633

592:                                              ; preds = %584
  br i1 %.0335, label %.thread506, label %593

593:                                              ; preds = %592
  %594 = getelementptr inbounds i8, ptr %.pre555, i64 228
  %595 = load i8, ptr %594, align 4, !tbaa !208, !range !92, !noundef !93
  %596 = trunc nuw i8 %595 to i1
  br i1 %596, label %597, label %601

597:                                              ; preds = %593
  %598 = getelementptr inbounds i8, ptr %.pre555, i64 56
  %599 = load float, ptr %598, align 8, !tbaa !154
  %600 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %599, float noundef %572)
  %.pre556 = load ptr, ptr %4, align 8, !tbaa !5
  br label %601

601:                                              ; preds = %593, %597
  %602 = phi ptr [ %.pre556, %597 ], [ %.pre555, %593 ]
  %603 = phi float [ %600, %597 ], [ %572, %593 ]
  %604 = getelementptr inbounds i8, ptr %602, i64 56
  store float %603, ptr %604, align 8, !tbaa !154
  br label %.thread506

.thread506:                                       ; preds = %588, %601, %592
  %605 = phi ptr [ %.pre555, %592 ], [ %602, %601 ], [ %.pre555, %588 ]
  %.2 = phi i1 [ %.0338, %592 ], [ true, %601 ], [ %.0338, %588 ]
  br i1 %.0336, label %627, label %606

606:                                              ; preds = %.thread506
  %607 = getelementptr inbounds i8, ptr %605, i64 227
  %608 = load i8, ptr %607, align 1, !tbaa !207
  %609 = icmp sgt i8 %608, 0
  br i1 %609, label %610, label %627

610:                                              ; preds = %606
  %611 = getelementptr inbounds i8, ptr %605, i64 228
  %612 = load i8, ptr %611, align 4, !tbaa !208, !range !92, !noundef !93
  %613 = trunc nuw i8 %612 to i1
  br i1 %613, label %614, label %620

614:                                              ; preds = %610
  %615 = getelementptr inbounds i8, ptr %605, i64 60
  %616 = load float, ptr %615, align 4, !tbaa !155
  %617 = getelementptr inbounds i8, ptr %14, i64 4
  %618 = load float, ptr %617, align 4, !tbaa !209
  %619 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %616, float noundef %618)
  %.pre557 = load ptr, ptr %4, align 8, !tbaa !5
  br label %623

620:                                              ; preds = %610
  %621 = getelementptr inbounds i8, ptr %14, i64 4
  %622 = load float, ptr %621, align 4, !tbaa !209
  br label %623

623:                                              ; preds = %620, %614
  %624 = phi ptr [ %.pre557, %614 ], [ %605, %620 ]
  %625 = phi float [ %619, %614 ], [ %622, %620 ]
  %626 = getelementptr inbounds i8, ptr %624, i64 60
  store float %625, ptr %626, align 4, !tbaa !155
  br label %627

627:                                              ; preds = %623, %606, %.thread506
  %628 = phi ptr [ %605, %.thread506 ], [ %624, %623 ], [ %605, %606 ]
  %.4344 = phi i1 [ %.3343, %.thread506 ], [ true, %623 ], [ %.3343, %606 ]
  %629 = getelementptr inbounds i8, ptr %628, i64 205
  %630 = load i8, ptr %629, align 1, !tbaa !203, !range !92, !noundef !93
  %631 = trunc nuw i8 %630 to i1
  br i1 %631, label %633, label %632

632:                                              ; preds = %627
  call void @_ZN5ImGui20MarkIniSettingsDirtyEP11ImGuiWindow(ptr noundef nonnull %628)
  %.pre558 = load ptr, ptr %4, align 8, !tbaa !5
  br label %633

633:                                              ; preds = %588, %632, %627, %581, %582
  %634 = phi ptr [ %628, %627 ], [ %.pre558, %632 ], [ %.pre555, %588 ], [ %.pre555, %581 ], [ %.pre555, %582 ]
  %.5345 = phi i1 [ %.4344, %627 ], [ %.4344, %632 ], [ %.3343, %588 ], [ %.3343, %581 ], [ true, %582 ]
  %.3 = phi i1 [ %.2, %627 ], [ %.2, %632 ], [ %.0338, %588 ], [ %.1339, %581 ], [ %.1339, %582 ]
  %635 = getelementptr inbounds i8, ptr %634, i64 56
  %636 = call <2 x float> @_ZL29CalcWindowSizeAfterConstraintP11ImGuiWindowRK6ImVec2(ptr noundef %634, ptr noundef nonnull align 4 dereferenceable(8) %635)
  %637 = load ptr, ptr %4, align 8, !tbaa !5
  %638 = getelementptr inbounds i8, ptr %637, i64 56
  store <2 x float> %636, ptr %638, align 8
  %639 = getelementptr inbounds i8, ptr %637, i64 205
  %640 = load i8, ptr %639, align 1, !tbaa !203, !range !92, !noundef !93
  %641 = trunc nuw i8 %640 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #12
  %.not440 = xor i1 %641, true
  %brmerge441 = select i1 %.not440, i1 true, i1 %151
  br i1 %brmerge441, label %648, label %642

642:                                              ; preds = %633
  %643 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(1061) %637)
  %644 = extractvalue { <2 x float>, <2 x float> } %643, 0
  store <2 x float> %644, ptr %15, align 8
  %645 = getelementptr inbounds i8, ptr %15, i64 8
  %646 = extractvalue { <2 x float>, <2 x float> } %643, 1
  store <2 x float> %646, ptr %645, align 8
  %647 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %15)
  %.pre559 = load ptr, ptr %4, align 8, !tbaa !5
  br label %648

648:                                              ; preds = %633, %642
  %649 = phi ptr [ %.pre559, %642 ], [ %637, %633 ]
  %.sroa.044.0 = phi <2 x float> [ %647, %642 ], [ %636, %633 ]
  %650 = getelementptr inbounds i8, ptr %649, i64 48
  store <2 x float> %.sroa.044.0, ptr %650, align 8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #12
  br i1 %.0333.in497, label %651, label %661

651:                                              ; preds = %648
  %652 = getelementptr inbounds i8, ptr %649, i64 232
  store i32 -1, ptr %652, align 8, !tbaa !210
  %653 = and i32 %.1, 201326592
  %or.cond443.not532 = icmp ne i32 %653, 67108864
  %brmerge444 = or i1 %or.cond443.not532, %.0334.shrunk
  br i1 %brmerge444, label %661, label %654

654:                                              ; preds = %651
  %655 = getelementptr inbounds i8, ptr %42, i64 7848
  %656 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %655)
  %657 = getelementptr inbounds i8, ptr %656, i64 36
  %658 = load ptr, ptr %4, align 8, !tbaa !5
  %659 = getelementptr inbounds i8, ptr %658, i64 40
  %660 = load i64, ptr %657, align 4
  store i64 %660, ptr %659, align 8
  br label %661

661:                                              ; preds = %651, %654, %648
  %662 = phi ptr [ %649, %651 ], [ %658, %654 ], [ %649, %648 ]
  br i1 %151, label %663, label %677

663:                                              ; preds = %661
  br i1 %149, label %.critedge2, label %664

664:                                              ; preds = %663
  %665 = getelementptr inbounds i8, ptr %148, i64 202
  %666 = load i8, ptr %665, align 2, !tbaa !167, !range !92, !noundef !93
  %667 = trunc nuw i8 %666 to i1
  br i1 %667, label %668, label %.critedge2

.critedge2:                                       ; preds = %663, %664
  call void @__assert_fail(ptr noundef nonnull @.str.151, ptr noundef nonnull @.str.3, i32 noundef 7362, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

668:                                              ; preds = %664
  %669 = getelementptr inbounds i8, ptr %148, i64 424
  %670 = load i32, ptr %669, align 8, !tbaa !211
  %671 = trunc i32 %670 to i16
  %672 = getelementptr inbounds i8, ptr %662, i64 220
  store i16 %671, ptr %672, align 4, !tbaa !127
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %669, ptr noundef nonnull align 8 dereferenceable(8) %4)
  %brmerge446 = or i1 %.0334.shrunk, %.not383.not503
  %brmerge447 = select i1 %brmerge446, i1 true, i1 %346
  %.pre560 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %brmerge447, label %677, label %673

673:                                              ; preds = %668
  %674 = getelementptr inbounds i8, ptr %148, i64 280
  %675 = getelementptr inbounds i8, ptr %.pre560, i64 40
  %676 = load i64, ptr %674, align 8
  store i64 %676, ptr %675, align 8
  br label %677

677:                                              ; preds = %668, %673, %661
  %678 = phi ptr [ %.pre560, %668 ], [ %.pre560, %673 ], [ %662, %661 ]
  %679 = getelementptr inbounds i8, ptr %678, i64 244
  %680 = load float, ptr %679, align 4, !tbaa !212
  %681 = fcmp une float %680, 0x47EFFFFFE0000000
  br i1 %681, label %682, label %.critedge449

682:                                              ; preds = %677
  %683 = getelementptr inbounds i8, ptr %678, i64 237
  %684 = load i8, ptr %683, align 1, !tbaa !166
  %685 = icmp eq i8 %684, 0
  br i1 %685, label %686, label %.critedge449

686:                                              ; preds = %682
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  %687 = getelementptr inbounds i8, ptr %678, i64 48
  %688 = getelementptr inbounds i8, ptr %678, i64 252
  %689 = call <2 x float> @_ZmlRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %687, ptr noundef nonnull align 4 dereferenceable(8) %688)
  store <2 x float> %689, ptr %17, align 8
  %690 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %679, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %690, ptr %16, align 8
  call void @_ZN5ImGui12SetWindowPosEP11ImGuiWindowRK6ImVec2i(ptr noundef nonnull %678, ptr noundef nonnull align 4 dereferenceable(8) %16, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  br label %705

.critedge449:                                     ; preds = %677, %682
  br i1 %.not381, label %695, label %691

691:                                              ; preds = %.critedge449
  %692 = call <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef nonnull %678)
  %693 = load ptr, ptr %4, align 8, !tbaa !5
  %694 = getelementptr inbounds i8, ptr %693, i64 40
  store <2 x float> %692, ptr %694, align 8
  br label %705

695:                                              ; preds = %.critedge449
  %brmerge450 = or i1 %.not383, %.0334.shrunk
  %brmerge452 = select i1 %brmerge450, i1 true, i1 %349
  br i1 %brmerge452, label %700, label %696

696:                                              ; preds = %695
  %697 = call <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef nonnull %678)
  %698 = load ptr, ptr %4, align 8, !tbaa !5
  %699 = getelementptr inbounds i8, ptr %698, i64 40
  store <2 x float> %697, ptr %699, align 8
  br label %705

700:                                              ; preds = %695
  %brmerge453 = or i1 %.not394, %.0334.shrunk
  %brmerge454 = select i1 %brmerge453, i1 true, i1 %346
  br i1 %brmerge454, label %705, label %701

701:                                              ; preds = %700
  %702 = call <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef nonnull %678)
  %703 = load ptr, ptr %4, align 8, !tbaa !5
  %704 = getelementptr inbounds i8, ptr %703, i64 40
  store <2 x float> %702, ptr %704, align 8
  br label %705

705:                                              ; preds = %700, %691, %701, %696, %686
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #12
  %706 = call { <2 x float>, <2 x float> } @_ZNK14ImGuiViewportP11GetMainRectEv(ptr noundef nonnull align 8 dereferenceable(208) %430)
  %707 = extractvalue { <2 x float>, <2 x float> } %706, 0
  store <2 x float> %707, ptr %18, align 8
  %708 = getelementptr inbounds i8, ptr %18, i64 8
  %709 = extractvalue { <2 x float>, <2 x float> } %706, 1
  store <2 x float> %709, ptr %708, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #12
  %710 = call { <2 x float>, <2 x float> } @_ZNK14ImGuiViewportP11GetWorkRectEv(ptr noundef nonnull align 8 dereferenceable(208) %430)
  %711 = extractvalue { <2 x float>, <2 x float> } %710, 0
  store <2 x float> %711, ptr %19, align 8
  %712 = getelementptr inbounds i8, ptr %19, i64 8
  %713 = extractvalue { <2 x float>, <2 x float> } %710, 1
  store <2 x float> %713, ptr %712, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #12
  %714 = getelementptr inbounds i8, ptr %42, i64 3316
  %715 = getelementptr inbounds i8, ptr %42, i64 3324
  %716 = call <2 x float> @_ZL5ImMaxRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %714, ptr noundef nonnull align 4 dereferenceable(8) %715)
  store <2 x float> %716, ptr %20, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #12
  %717 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %19, ptr noundef nonnull align 4 dereferenceable(8) %20)
  store <2 x float> %717, ptr %22, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  %718 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %712, ptr noundef nonnull align 4 dereferenceable(8) %20)
  store <2 x float> %718, ptr %23, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %21, ptr noundef nonnull align 4 dereferenceable(8) %22, ptr noundef nonnull align 4 dereferenceable(8) %23)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #12
  %brmerge455 = select i1 %.0334.shrunk, i1 true, i1 %151
  br i1 %brmerge455, label %727, label %719

719:                                              ; preds = %705
  %720 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %18)
  %721 = fcmp ogt float %720, 0.000000e+00
  br i1 %721, label %722, label %727

722:                                              ; preds = %719
  %723 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %18)
  %724 = fcmp ogt float %723, 0.000000e+00
  br i1 %724, label %725, label %727

725:                                              ; preds = %722
  %726 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZL14ClampWindowPosP11ImGuiWindowRK6ImRect(ptr noundef %726, ptr noundef nonnull align 4 dereferenceable(16) %21)
  br label %727

727:                                              ; preds = %705, %719, %722, %725
  %728 = load ptr, ptr %4, align 8, !tbaa !5
  %729 = getelementptr inbounds i8, ptr %728, i64 40
  %730 = call <2 x float> @_ZL7ImTruncRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %729)
  %731 = load ptr, ptr %4, align 8, !tbaa !5
  %732 = getelementptr inbounds i8, ptr %731, i64 40
  store <2 x float> %730, ptr %732, align 8
  %733 = and i32 %.1, 201326592
  %or.cond457.not.not = icmp eq i32 %733, 67108864
  %. = select i1 %or.cond457.not.not, i64 3152, i64 3112
  %.sink = select i1 %151, i64 3144, i64 %.
  %734 = getelementptr inbounds i8, ptr %42, i64 %.sink
  %735 = load float, ptr %734, align 4, !tbaa !137
  %736 = getelementptr inbounds i8, ptr %731, i64 96
  store float %735, ptr %736, align 8, !tbaa !213
  %737 = and i32 %.1, 4096
  %.not411 = icmp eq i32 %737, 0
  %or.cond458.not = select i1 %.0333.in497, i1 %.not411, i1 false
  %brmerge495.not = and i1 %.not383, %or.cond458.not
  %738 = icmp eq i32 %345, 0
  %spec.select526 = select i1 %brmerge495.not, i1 %738, i1 %or.cond458.not
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #12
  store i32 -1, ptr %24, align 4, !tbaa !136
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #12
  store i32 -1, ptr %25, align 4, !tbaa !136
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %26, i8 0, i64 16, i1 false)
  br i1 %brmerge437504, label %739, label %744

739:                                              ; preds = %727
  %740 = getelementptr inbounds i8, ptr %42, i64 101
  %741 = load i8, ptr %740, align 1, !tbaa !214, !range !92, !noundef !93
  %742 = trunc nuw i8 %741 to i1
  %743 = select i1 %742, i32 2, i32 1
  br label %744

744:                                              ; preds = %727, %739
  %745 = phi i32 [ %743, %739 ], [ 0, %727 ]
  %746 = load float, ptr %495, align 8, !tbaa !190
  %747 = fmul float %746, 0x3FF19999A0000000
  %748 = fadd float %735, 1.000000e+00
  %749 = call float @llvm.fmuladd.f32(float %746, float 0x3FC99999A0000000, float %748)
  %750 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %747, float noundef %749)
  %751 = fptosi float %750 to i32
  %752 = sitofp i32 %751 to float
  %753 = load ptr, ptr %4, align 8, !tbaa !5
  %754 = getelementptr inbounds i8, ptr %753, i64 205
  %755 = load i8, ptr %754, align 1, !tbaa !203, !range !92, !noundef !93
  %756 = trunc nuw i8 %755 to i1
  br i1 %756, label %762, label %757

757:                                              ; preds = %744
  %758 = call noundef i32 @_ZN5ImGuiL24UpdateWindowManualResizeEP11ImGuiWindowRK6ImVec2PiS5_iPjRK6ImRect(ptr noundef nonnull %753, ptr noundef nonnull align 4 dereferenceable(8) %14, ptr noundef nonnull %24, ptr noundef nonnull %25, i32 noundef %745, ptr noundef nonnull %26, ptr noundef nonnull align 4 dereferenceable(16) %21)
  %.not412 = icmp eq i32 %758, 0
  br i1 %.not412, label %762, label %759

759:                                              ; preds = %757
  %760 = and i32 %758, 1
  %.not413 = icmp ne i32 %760, 0
  %spec.select463 = or i1 %.not413, %.3
  %761 = and i32 %758, 2
  %.not414 = icmp ne i32 %761, 0
  %spec.select496 = or i1 %.not414, %.5345
  br label %762

762:                                              ; preds = %759, %757, %744
  %.7 = phi i1 [ %.5345, %744 ], [ %.5345, %757 ], [ %spec.select496, %759 ]
  %.6 = phi i1 [ %.3, %744 ], [ %.3, %757 ], [ %spec.select463, %759 ]
  %763 = load i32, ptr %24, align 4, !tbaa !136
  %764 = trunc i32 %763 to i8
  %765 = load ptr, ptr %4, align 8, !tbaa !5
  %766 = getelementptr inbounds i8, ptr %765, i64 214
  store i8 %764, ptr %766, align 2, !tbaa !215
  %767 = load i32, ptr %25, align 4, !tbaa !136
  %768 = trunc i32 %767 to i8
  %769 = getelementptr inbounds i8, ptr %765, i64 215
  store i8 %768, ptr %769, align 1, !tbaa !216
  %770 = getelementptr inbounds i8, ptr %765, i64 205
  %771 = load i8, ptr %770, align 1, !tbaa !203, !range !92, !noundef !93
  %772 = trunc nuw i8 %771 to i1
  br i1 %772, label %877, label %773

773:                                              ; preds = %762
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #12
  %774 = getelementptr inbounds i8, ptr %765, i64 56
  %775 = load float, ptr %774, align 8, !tbaa !154
  %776 = getelementptr inbounds i8, ptr %765, i64 60
  %777 = load float, ptr %776, align 4, !tbaa !155
  %778 = getelementptr inbounds i8, ptr %765, i64 116
  %779 = load float, ptr %778, align 4, !tbaa !205
  %780 = getelementptr inbounds i8, ptr %765, i64 124
  %781 = load float, ptr %780, align 4, !tbaa !217
  %782 = fadd float %779, %781
  %783 = fsub float %777, %782
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %27, float noundef %775, float noundef %783)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #12
  %784 = load ptr, ptr %4, align 8, !tbaa !5
  %785 = getelementptr inbounds i8, ptr %784, i64 536
  %786 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %785)
  store <2 x float> %786, ptr %28, align 8
  %787 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(8) %12)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #12
  br i1 %59, label %788, label %789

788:                                              ; preds = %773
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %29, float noundef 0.000000e+00, float noundef 0.000000e+00)
  br label %795

789:                                              ; preds = %773
  %790 = load ptr, ptr %4, align 8, !tbaa !5
  %791 = getelementptr inbounds i8, ptr %790, i64 64
  %792 = getelementptr inbounds i8, ptr %790, i64 88
  %793 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %792, float noundef 2.000000e+00)
  store <2 x float> %793, ptr %30, align 8
  %794 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %791, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %794, ptr %29, align 8
  br label %795

795:                                              ; preds = %789, %788
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  %796 = load float, ptr %27, align 4
  %.sroa.029.0.vec.extract = extractelement <2 x float> %787, i64 0
  %797 = select i1 %.6, float %796, float %.sroa.029.0.vec.extract
  %798 = getelementptr inbounds i8, ptr %27, i64 4
  %799 = load float, ptr %798, align 4
  %.sroa.029.4.vec.extract = extractelement <2 x float> %787, i64 1
  %800 = select i1 %.7, float %799, float %.sroa.029.4.vec.extract
  %801 = and i32 %.1, 16384
  %.not415 = icmp eq i32 %801, 0
  br i1 %.not415, label %802, label %.thread507

802:                                              ; preds = %795
  %803 = getelementptr inbounds i8, ptr %29, i64 4
  %804 = load float, ptr %803, align 4, !tbaa !209
  %805 = fcmp ogt float %804, %800
  %806 = and i32 %.1, 8
  %.not416 = icmp eq i32 %806, 0
  %807 = select i1 %805, i1 %.not416, i1 false
  %808 = load ptr, ptr %4, align 8, !tbaa !5
  %809 = getelementptr inbounds i8, ptr %808, i64 201
  %810 = zext i1 %807 to i8
  store i8 %810, ptr %809, align 1, !tbaa !218
  %811 = and i32 %.1, 32768
  %.not417 = icmp eq i32 %811, 0
  br i1 %.not417, label %817, label %.thread512

.thread507:                                       ; preds = %795
  %812 = load ptr, ptr %4, align 8, !tbaa !5
  %813 = getelementptr inbounds i8, ptr %812, i64 201
  store i8 1, ptr %813, align 1, !tbaa !218
  %814 = and i32 %.1, 32768
  %.not417508 = icmp eq i32 %814, 0
  br i1 %.not417508, label %.thread509, label %.thread512.thread

.thread512.thread:                                ; preds = %.thread507
  %815 = getelementptr inbounds i8, ptr %812, i64 200
  store i8 1, ptr %815, align 8, !tbaa !219
  br label %.thread597

.thread509:                                       ; preds = %.thread507
  %816 = load float, ptr %29, align 8, !tbaa !220
  %.pre590 = and i32 %.1, 8
  br label %819

817:                                              ; preds = %802
  %818 = load float, ptr %29, align 8, !tbaa !220
  br i1 %807, label %819, label %825

819:                                              ; preds = %.thread509, %817
  %.pre588.pre-phi = phi i32 [ %.pre590, %.thread509 ], [ 0, %817 ]
  %820 = phi float [ %816, %.thread509 ], [ %818, %817 ]
  %821 = phi ptr [ %812, %.thread509 ], [ %808, %817 ]
  %822 = phi ptr [ %813, %.thread509 ], [ %809, %817 ]
  %823 = getelementptr inbounds i8, ptr %42, i64 3216
  %824 = load float, ptr %823, align 4, !tbaa !221
  br label %825

825:                                              ; preds = %817, %819
  %.pre-phi = phi i32 [ %806, %817 ], [ %.pre588.pre-phi, %819 ]
  %826 = phi i8 [ 0, %817 ], [ 1, %819 ]
  %827 = phi float [ %818, %817 ], [ %820, %819 ]
  %828 = phi i1 [ false, %817 ], [ true, %819 ]
  %829 = phi ptr [ %808, %817 ], [ %821, %819 ]
  %830 = phi ptr [ %809, %817 ], [ %822, %819 ]
  %831 = phi float [ 0.000000e+00, %817 ], [ %824, %819 ]
  %832 = fsub float %797, %831
  %833 = fcmp ogt float %827, %832
  %.not418 = icmp eq i32 %.pre-phi, 0
  %or.cond464 = select i1 %833, i1 %.not418, i1 false
  br i1 %or.cond464, label %836, label %.thread513

.thread513:                                       ; preds = %825
  %834 = getelementptr inbounds i8, ptr %829, i64 200
  store i8 0, ptr %834, align 8, !tbaa !219
  br label %851

.thread512:                                       ; preds = %802
  %835 = getelementptr inbounds i8, ptr %808, i64 200
  store i8 1, ptr %835, align 8, !tbaa !219
  br i1 %807, label %.thread597, label %840

836:                                              ; preds = %825
  %837 = and i32 %.1, 2048
  %.not533 = icmp eq i32 %837, 0
  %838 = getelementptr inbounds i8, ptr %829, i64 200
  %.lobit = lshr exact i32 %837, 11
  %839 = trunc nuw nsw i32 %.lobit to i8
  store i8 %839, ptr %838, align 8, !tbaa !219
  %brmerge528 = or i1 %.not533, %828
  %not..not533 = xor i1 %.not533, true
  br i1 %brmerge528, label %851, label %._crit_edge561

._crit_edge561:                                   ; preds = %836
  %.phi.trans.insert562 = getelementptr inbounds i8, ptr %29, i64 4
  %.pre563 = load float, ptr %.phi.trans.insert562, align 4, !tbaa !209
  br label %840

840:                                              ; preds = %._crit_edge561, %.thread512
  %.pre-phi589 = phi i32 [ 0, %._crit_edge561 ], [ %806, %.thread512 ]
  %841 = phi float [ %.pre563, %._crit_edge561 ], [ %804, %.thread512 ]
  %842 = phi ptr [ %830, %._crit_edge561 ], [ %809, %.thread512 ]
  %843 = getelementptr inbounds i8, ptr %42, i64 3216
  %844 = load float, ptr %843, align 4, !tbaa !221
  %845 = fsub float %800, %844
  %846 = fcmp ogt float %841, %845
  %.not419 = icmp eq i32 %.pre-phi589, 0
  %847 = select i1 %846, i1 %.not419, i1 false
  %848 = zext i1 %847 to i8
  store i8 %848, ptr %842, align 1, !tbaa !218
  br label %851

.thread597:                                       ; preds = %.thread512.thread, %.thread512
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #12
  %849 = getelementptr inbounds i8, ptr %42, i64 3216
  %850 = load float, ptr %849, align 4, !tbaa !221
  br label %859

851:                                              ; preds = %836, %.thread513, %840
  %852 = phi i8 [ %848, %840 ], [ %826, %836 ], [ %826, %.thread513 ]
  %853 = phi i1 [ true, %840 ], [ %not..not533, %836 ], [ false, %.thread513 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #12
  %854 = trunc nuw i8 %852 to i1
  br i1 %854, label %855, label %858

855:                                              ; preds = %851
  %856 = getelementptr inbounds i8, ptr %42, i64 3216
  %857 = load float, ptr %856, align 4, !tbaa !221
  br i1 %853, label %859, label %863

858:                                              ; preds = %851
  br i1 %853, label %859, label %863

859:                                              ; preds = %.thread597, %855, %858
  %860 = phi float [ %857, %855 ], [ 0.000000e+00, %858 ], [ %850, %.thread597 ]
  %861 = getelementptr inbounds i8, ptr %42, i64 3216
  %862 = load float, ptr %861, align 4, !tbaa !221
  br label %863

863:                                              ; preds = %855, %858, %859
  %864 = phi float [ %860, %859 ], [ 0.000000e+00, %858 ], [ %857, %855 ]
  %865 = phi float [ %862, %859 ], [ 0.000000e+00, %858 ], [ 0.000000e+00, %855 ]
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %31, float noundef %864, float noundef %865)
  %866 = load ptr, ptr %4, align 8, !tbaa !5
  %867 = getelementptr inbounds i8, ptr %866, i64 192
  %868 = load i64, ptr %31, align 8
  store i64 %868, ptr %867, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #12
  %869 = getelementptr inbounds i8, ptr %866, i64 120
  %870 = lshr i64 %868, 32
  %871 = insertelement <2 x i64> poison, i64 %868, i64 0
  %872 = insertelement <2 x i64> %871, i64 %870, i64 1
  %873 = trunc <2 x i64> %872 to <2 x i32>
  %874 = bitcast <2 x i32> %873 to <2 x float>
  %875 = load <2 x float>, ptr %869, align 8, !tbaa !137
  %876 = fadd <2 x float> %875, %874
  store <2 x float> %876, ptr %869, align 8, !tbaa !137
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #12
  br label %877

877:                                              ; preds = %863, %762
  %878 = phi ptr [ %866, %863 ], [ %765, %762 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #12
  %879 = getelementptr inbounds i8, ptr %148, i64 600
  %880 = select i1 %brmerge437504, i1 true, i1 %346
  %881 = select i1 %880, ptr %18, ptr %879
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %32, ptr noundef nonnull align 4 dereferenceable(16) %881, i64 16, i1 false), !tbaa.struct !169
  %882 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(1061) %878)
  %883 = extractvalue { <2 x float>, <2 x float> } %882, 0
  %884 = extractvalue { <2 x float>, <2 x float> } %882, 1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #12
  %885 = load ptr, ptr %4, align 8, !tbaa !5
  %886 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(1061) %885)
  %887 = extractvalue { <2 x float>, <2 x float> } %886, 0
  store <2 x float> %887, ptr %33, align 8
  %888 = getelementptr inbounds i8, ptr %33, i64 8
  %889 = extractvalue { <2 x float>, <2 x float> } %886, 1
  store <2 x float> %889, ptr %888, align 8
  %890 = load ptr, ptr %4, align 8, !tbaa !5
  %891 = getelementptr inbounds i8, ptr %890, i64 520
  store <2 x float> %883, ptr %891, align 8
  %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %890, i64 528
  store <2 x float> %884, ptr %.sroa.4.0..sroa_idx, align 8
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %891, ptr noundef nonnull align 4 dereferenceable(16) %32)
  %892 = load ptr, ptr %4, align 8
  %893 = getelementptr inbounds i8, ptr %892, i64 40
  %894 = getelementptr inbounds i8, ptr %892, i64 112
  %895 = getelementptr inbounds i8, ptr %892, i64 536
  %896 = getelementptr inbounds i8, ptr %892, i64 48
  %897 = load <2 x float>, ptr %893, align 8, !tbaa !137
  %898 = load <2 x float>, ptr %896, align 8, !tbaa !137
  %899 = fadd <2 x float> %897, %898
  %900 = load <4 x float>, ptr %894, align 8, !tbaa !137
  %901 = shufflevector <2 x float> %897, <2 x float> %899, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  %902 = fadd <4 x float> %901, %900
  %903 = fsub <4 x float> %901, %900
  %904 = shufflevector <4 x float> %902, <4 x float> %903, <4 x i32> <i32 0, i32 1, i32 6, i32 7>
  store <4 x float> %904, ptr %895, align 8, !tbaa !137
  %905 = and i32 %.1, 1025
  %brmerge469.not = icmp eq i32 %905, 1
  %906 = getelementptr inbounds i8, ptr %42, i64 3172
  %907 = getelementptr inbounds i8, ptr %892, i64 100
  %.in420 = select i1 %brmerge469.not, ptr %907, ptr %906
  %908 = load float, ptr %.in420, align 4, !tbaa !137
  %909 = extractelement <4 x float> %902, i64 0
  %910 = fadd float %909, 5.000000e-01
  %911 = load float, ptr %907, align 4, !tbaa !182
  %912 = call float @llvm.fmuladd.f32(float %911, float 5.000000e-01, float %910)
  %913 = call noundef float @_ZL7ImFloorf(float noundef %912)
  %914 = load ptr, ptr %4, align 8, !tbaa !5
  %915 = getelementptr inbounds i8, ptr %914, i64 552
  store float %913, ptr %915, align 8, !tbaa !222
  %916 = getelementptr inbounds i8, ptr %914, i64 540
  %917 = load float, ptr %916, align 4, !tbaa !223
  %918 = fadd float %917, 5.000000e-01
  %919 = call float @llvm.fmuladd.f32(float %908, float 5.000000e-01, float %918)
  %920 = call noundef float @_ZL7ImFloorf(float noundef %919)
  %921 = load ptr, ptr %4, align 8, !tbaa !5
  %922 = getelementptr inbounds i8, ptr %921, i64 556
  store float %920, ptr %922, align 4, !tbaa !224
  %923 = getelementptr inbounds i8, ptr %921, i64 544
  %924 = load float, ptr %923, align 8, !tbaa !225
  %925 = getelementptr inbounds i8, ptr %921, i64 100
  %926 = load float, ptr %925, align 4, !tbaa !182
  %927 = fneg float %926
  %928 = call float @llvm.fmuladd.f32(float %927, float 5.000000e-01, float %924)
  %929 = call noundef float @_ZL7ImFloorf(float noundef %928)
  %930 = load ptr, ptr %4, align 8, !tbaa !5
  %931 = getelementptr inbounds i8, ptr %930, i64 560
  store float %929, ptr %931, align 8, !tbaa !226
  %932 = getelementptr inbounds i8, ptr %930, i64 548
  %933 = load float, ptr %932, align 4, !tbaa !227
  %934 = getelementptr inbounds i8, ptr %930, i64 100
  %935 = load float, ptr %934, align 4, !tbaa !182
  %936 = fneg float %935
  %937 = call float @llvm.fmuladd.f32(float %936, float 5.000000e-01, float %933)
  %938 = call noundef float @_ZL7ImFloorf(float noundef %937)
  %939 = load ptr, ptr %4, align 8, !tbaa !5
  %940 = getelementptr inbounds i8, ptr %939, i64 564
  store float %938, ptr %940, align 4, !tbaa !228
  %941 = getelementptr inbounds i8, ptr %939, i64 552
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %941, ptr noundef nonnull align 4 dereferenceable(16) %32)
  %942 = load ptr, ptr %4, align 8, !tbaa !5
  %943 = getelementptr inbounds i8, ptr %942, i64 48
  %944 = load float, ptr %943, align 8, !tbaa !180
  %945 = fcmp ule float %944, 0.000000e+00
  %.not394.not = xor i1 %.not394, true
  %brmerge471 = or i1 %945, %.not394.not
  %brmerge472 = or i1 %.not407, %brmerge471
  br i1 %brmerge472, label %948, label %946

946:                                              ; preds = %877
  %947 = fmul float %944, 0x3FE4CCCCC0000000
  br label %951

948:                                              ; preds = %877
  %949 = load float, ptr %495, align 8, !tbaa !190
  %950 = fmul float %949, 1.600000e+01
  br label %951

951:                                              ; preds = %948, %946
  %.sink604 = phi float [ %950, %948 ], [ %947, %946 ]
  %952 = call noundef float @_ZL7ImTruncf(float noundef %.sink604)
  %.sink601 = load ptr, ptr %4, align 8, !tbaa !5
  %953 = getelementptr inbounds i8, ptr %.sink601, i64 648
  store float %952, ptr %953, align 8, !tbaa !229
  %954 = getelementptr inbounds i8, ptr %.sink601, i64 64
  %955 = load float, ptr %954, align 8, !tbaa !230
  %956 = getelementptr inbounds i8, ptr %.sink601, i64 88
  %957 = load float, ptr %956, align 8, !tbaa !231
  %958 = call float @llvm.fmuladd.f32(float %957, float 2.000000e+00, float %955)
  %959 = getelementptr inbounds i8, ptr %.sink601, i64 536
  %960 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %959)
  %961 = fsub float %958, %960
  %962 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %961)
  %963 = load ptr, ptr %4, align 8, !tbaa !5
  %964 = getelementptr inbounds i8, ptr %963, i64 160
  store float %962, ptr %964, align 8, !tbaa !232
  %965 = getelementptr inbounds i8, ptr %963, i64 68
  %966 = load float, ptr %965, align 4, !tbaa !233
  %967 = getelementptr inbounds i8, ptr %963, i64 92
  %968 = load float, ptr %967, align 4, !tbaa !234
  %969 = call float @llvm.fmuladd.f32(float %968, float 2.000000e+00, float %966)
  %970 = getelementptr inbounds i8, ptr %963, i64 536
  %971 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %970)
  %972 = fsub float %969, %971
  %973 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %972)
  %974 = load ptr, ptr %4, align 8, !tbaa !5
  %975 = getelementptr inbounds i8, ptr %974, i64 164
  store float %973, ptr %975, align 4, !tbaa !235
  %976 = call <2 x float> @_ZL38CalcNextScrollFromScrollTargetAndClampP11ImGuiWindow(ptr noundef %974)
  %977 = load ptr, ptr %4, align 8, !tbaa !5
  %978 = getelementptr inbounds i8, ptr %977, i64 152
  store <2 x float> %976, ptr %978, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #12
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %34, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000)
  %979 = load ptr, ptr %4, align 8, !tbaa !5
  %980 = getelementptr inbounds i8, ptr %979, i64 168
  %981 = load i64, ptr %34, align 8
  store i64 %981, ptr %980, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #12
  %982 = getelementptr inbounds i8, ptr %979, i64 128
  store <2 x float> zeroinitializer, ptr %982, align 8, !tbaa !137
  %983 = getelementptr inbounds i8, ptr %979, i64 704
  %984 = load ptr, ptr %983, align 8, !tbaa !170
  %985 = load i32, ptr %984, align 8, !tbaa !236
  %986 = icmp eq i32 %985, 1
  br i1 %986, label %987, label %.critedge4

987:                                              ; preds = %951
  %988 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN8ImVectorI9ImDrawCmdEixEi(ptr noundef nonnull align 8 dereferenceable(16) %984, i32 noundef 0)
  %989 = getelementptr inbounds i8, ptr %988, i64 32
  %990 = load i32, ptr %989, align 8, !tbaa !237
  %991 = icmp eq i32 %990, 0
  br i1 %991, label %992, label %.critedge4

.critedge4:                                       ; preds = %951, %987
  call void @__assert_fail(ptr noundef nonnull @.str.152, ptr noundef nonnull @.str.3, i32 noundef 7535, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

992:                                              ; preds = %987
  %993 = load ptr, ptr %4, align 8, !tbaa !5
  %994 = getelementptr inbounds i8, ptr %993, i64 704
  %995 = load ptr, ptr %994, align 8, !tbaa !170
  %996 = getelementptr inbounds i8, ptr %42, i64 4264
  %997 = load ptr, ptr %996, align 8, !tbaa !239
  %998 = getelementptr inbounds i8, ptr %997, i64 64
  %999 = load ptr, ptr %998, align 8, !tbaa !240
  %1000 = getelementptr inbounds i8, ptr %999, i64 8
  %1001 = load i64, ptr %1000, align 8, !tbaa !241
  call void @_ZN10ImDrawList13PushTextureIDEy(ptr noundef nonnull align 8 dereferenceable(216) %995, i64 noundef %1001)
  %1002 = getelementptr inbounds i8, ptr %32, i64 8
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %32, ptr noundef nonnull align 4 dereferenceable(8) %1002, i1 noundef zeroext false)
  br i1 %880, label %.thread517, label %1003

1003:                                             ; preds = %992
  %1004 = getelementptr inbounds i8, ptr %148, i64 424
  %1005 = load i32, ptr %1004, align 8, !tbaa !211
  %1006 = icmp sgt i32 %1005, 1
  br i1 %1006, label %1007, label %.thread514

.thread514:                                       ; preds = %1003
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #12
  br label %1022

1007:                                             ; preds = %1003
  %1008 = add nsw i32 %1005, -2
  %1009 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1004, i32 noundef %1008)
  %1010 = load ptr, ptr %1009, align 8, !tbaa !5
  %.not421 = icmp eq ptr %1010, null
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #12
  br i1 %.not421, label %1022, label %1011

1011:                                             ; preds = %1007
  %1012 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(1061) %1010)
  %1013 = extractvalue { <2 x float>, <2 x float> } %1012, 0
  store <2 x float> %1013, ptr %35, align 8
  %1014 = getelementptr inbounds i8, ptr %35, i64 8
  %1015 = extractvalue { <2 x float>, <2 x float> } %1012, 1
  store <2 x float> %1015, ptr %1014, align 8
  %1016 = load ptr, ptr %4, align 8, !tbaa !5
  %1017 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(1061) %1016)
  %1018 = extractvalue { <2 x float>, <2 x float> } %1017, 0
  store <2 x float> %1018, ptr %36, align 8
  %1019 = getelementptr inbounds i8, ptr %36, i64 8
  %1020 = extractvalue { <2 x float>, <2 x float> } %1017, 1
  store <2 x float> %1020, ptr %1019, align 8
  %1021 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %35, ptr noundef nonnull align 4 dereferenceable(16) %36)
  br label %1022

1022:                                             ; preds = %.thread514, %1007, %1011
  %1023 = phi i1 [ %1021, %1011 ], [ false, %1007 ], [ false, %.thread514 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #12
  %1024 = getelementptr inbounds i8, ptr %148, i64 704
  %1025 = load ptr, ptr %1024, align 8, !tbaa !170
  %1026 = getelementptr inbounds i8, ptr %1025, i64 32
  %1027 = load i32, ptr %1026, align 8, !tbaa !245
  %1028 = load ptr, ptr %4, align 8, !tbaa !5
  %1029 = getelementptr inbounds i8, ptr %1028, i64 704
  %1030 = load ptr, ptr %1029, align 8, !tbaa !170
  %1031 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN8ImVectorI9ImDrawCmdE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %1030)
  %1032 = getelementptr inbounds i8, ptr %1031, i64 32
  %1033 = load i32, ptr %1032, align 8, !tbaa !237
  %1034 = icmp ne i32 %1033, 0
  %1035 = icmp eq i32 %1027, 0
  %or.cond477.not536.not539 = select i1 %1034, i1 true, i1 %1035
  %or.cond530.not = or i1 %1023, %or.cond477.not536.not539
  br i1 %or.cond530.not, label %.thread517, label %1036

1036:                                             ; preds = %1022
  %1037 = load ptr, ptr %1024, align 8, !tbaa !170
  %1038 = load ptr, ptr %4, align 8, !tbaa !5
  %1039 = getelementptr inbounds i8, ptr %1038, i64 704
  store ptr %1037, ptr %1039, align 8, !tbaa !170
  br label %.thread517

.thread517:                                       ; preds = %1022, %992, %1036
  %.1349519 = phi i1 [ true, %1036 ], [ false, %992 ], [ false, %1022 ]
  %1040 = getelementptr inbounds i8, ptr %42, i64 8376
  %1041 = load ptr, ptr %1040, align 8, !tbaa !246
  %.not422 = icmp eq ptr %1041, null
  br i1 %.not422, label %1042, label %1045

1042:                                             ; preds = %.thread517
  %1043 = getelementptr inbounds i8, ptr %42, i64 7904
  %1044 = load ptr, ptr %1043, align 8, !tbaa !247
  br label %1045

1045:                                             ; preds = %.thread517, %1042
  %1046 = phi ptr [ %1044, %1042 ], [ %1041, %.thread517 ]
  br i1 %spec.select526, label %._crit_edge564, label %1047

._crit_edge564:                                   ; preds = %1045
  %.pre565 = load ptr, ptr %4, align 8, !tbaa !5
  br label %1054

1047:                                             ; preds = %1045
  %.not423 = icmp eq ptr %1046, null
  %.pre566 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %.not423, label %1054, label %1048

1048:                                             ; preds = %1047
  %1049 = getelementptr inbounds i8, ptr %.pre566, i64 960
  %1050 = load ptr, ptr %1049, align 8, !tbaa !248
  %1051 = getelementptr inbounds i8, ptr %1046, i64 960
  %1052 = load ptr, ptr %1051, align 8, !tbaa !248
  %1053 = icmp eq ptr %1050, %1052
  br label %1054

1054:                                             ; preds = %._crit_edge564, %1047, %1048
  %1055 = phi ptr [ %.pre565, %._crit_edge564 ], [ %.pre566, %1047 ], [ %.pre566, %1048 ]
  %1056 = phi i1 [ true, %._crit_edge564 ], [ false, %1047 ], [ %1053, %1048 ]
  call void @_ZN5ImGuiL23RenderWindowDecorationsEP11ImGuiWindowRK6ImRectbbiPKjf(ptr noundef %1055, ptr noundef nonnull align 4 dereferenceable(16) %33, i1 noundef zeroext %1056, i1 noundef zeroext true, i32 noundef %745, ptr noundef nonnull %26, float noundef %752)
  %.pre567 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %.1349519, label %1057, label %1060

1057:                                             ; preds = %1054
  %1058 = getelementptr inbounds i8, ptr %.pre567, i64 712
  %1059 = getelementptr inbounds i8, ptr %.pre567, i64 704
  store ptr %1058, ptr %1059, align 8, !tbaa !170
  br label %1060

1060:                                             ; preds = %1057, %1054
  %1061 = and i32 %.1, 8
  %.not424 = icmp eq i32 %1061, 0
  %1062 = getelementptr inbounds i8, ptr %.pre567, i64 80
  %1063 = load float, ptr %1062, align 8, !tbaa !195
  %1064 = fcmp une float %1063, 0.000000e+00
  br i1 %1064, label %1086, label %1065

1065:                                             ; preds = %1060
  %1066 = and i32 %.1, 2056
  %1067 = icmp eq i32 %1066, 2048
  br i1 %1067, label %1068, label %1071

1068:                                             ; preds = %1065
  %1069 = getelementptr inbounds i8, ptr %.pre567, i64 64
  %1070 = load float, ptr %1069, align 8, !tbaa !230
  br label %1071

1071:                                             ; preds = %1065, %1068
  %1072 = phi float [ %1070, %1068 ], [ 0.000000e+00, %1065 ]
  %1073 = getelementptr inbounds i8, ptr %.pre567, i64 48
  %1074 = load float, ptr %1073, align 8, !tbaa !180
  %1075 = getelementptr inbounds i8, ptr %.pre567, i64 88
  %1076 = load float, ptr %1075, align 8, !tbaa !231
  %1077 = fneg float %1076
  %1078 = call float @llvm.fmuladd.f32(float %1077, float 2.000000e+00, float %1074)
  %1079 = getelementptr inbounds i8, ptr %.pre567, i64 112
  %1080 = load float, ptr %1079, align 8, !tbaa !204
  %1081 = getelementptr inbounds i8, ptr %.pre567, i64 120
  %1082 = load float, ptr %1081, align 8, !tbaa !249
  %1083 = fadd float %1080, %1082
  %1084 = fsub float %1078, %1083
  %1085 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1072, float noundef %1084)
  %.pre568 = load ptr, ptr %4, align 8, !tbaa !5
  br label %1086

1086:                                             ; preds = %1060, %1071
  %1087 = phi ptr [ %.pre568, %1071 ], [ %.pre567, %1060 ]
  %1088 = phi float [ %1085, %1071 ], [ %1063, %1060 ]
  %1089 = getelementptr inbounds i8, ptr %1087, i64 84
  %1090 = load float, ptr %1089, align 4, !tbaa !196
  %1091 = fcmp une float %1090, 0.000000e+00
  br i1 %1091, label %1111, label %1092

1092:                                             ; preds = %1086
  br i1 %.not424, label %1093, label %1096

1093:                                             ; preds = %1092
  %1094 = getelementptr inbounds i8, ptr %1087, i64 68
  %1095 = load float, ptr %1094, align 4, !tbaa !233
  br label %1096

1096:                                             ; preds = %1092, %1093
  %1097 = phi float [ %1095, %1093 ], [ 0.000000e+00, %1092 ]
  %1098 = getelementptr inbounds i8, ptr %1087, i64 52
  %1099 = load float, ptr %1098, align 4, !tbaa !181
  %1100 = getelementptr inbounds i8, ptr %1087, i64 92
  %1101 = load float, ptr %1100, align 4, !tbaa !234
  %1102 = fneg float %1101
  %1103 = call float @llvm.fmuladd.f32(float %1102, float 2.000000e+00, float %1099)
  %1104 = getelementptr inbounds i8, ptr %1087, i64 116
  %1105 = load float, ptr %1104, align 4, !tbaa !205
  %1106 = getelementptr inbounds i8, ptr %1087, i64 124
  %1107 = load float, ptr %1106, align 4, !tbaa !217
  %1108 = fadd float %1105, %1107
  %1109 = fsub float %1103, %1108
  %1110 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1097, float noundef %1109)
  %.pre569 = load ptr, ptr %4, align 8, !tbaa !5
  br label %1111

1111:                                             ; preds = %1086, %1096
  %1112 = phi ptr [ %.pre569, %1096 ], [ %1087, %1086 ]
  %1113 = phi float [ %1110, %1096 ], [ %1090, %1086 ]
  %1114 = getelementptr inbounds i8, ptr %1112, i64 536
  %1115 = load float, ptr %1114, align 8, !tbaa !250
  %1116 = getelementptr inbounds i8, ptr %1112, i64 152
  %1117 = load float, ptr %1116, align 8, !tbaa !251
  %1118 = fsub float %1115, %1117
  %1119 = getelementptr inbounds i8, ptr %1112, i64 88
  %1120 = load float, ptr %1119, align 8, !tbaa !231
  %1121 = getelementptr inbounds i8, ptr %1112, i64 100
  %1122 = load float, ptr %1121, align 4, !tbaa !182
  %1123 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1120, float noundef %1122)
  %1124 = fadd float %1118, %1123
  %1125 = call noundef float @_ZL7ImTruncf(float noundef %1124)
  %1126 = load ptr, ptr %4, align 8, !tbaa !5
  %1127 = getelementptr inbounds i8, ptr %1126, i64 568
  store float %1125, ptr %1127, align 8, !tbaa !252
  %1128 = getelementptr inbounds i8, ptr %1126, i64 540
  %1129 = load float, ptr %1128, align 4, !tbaa !223
  %1130 = getelementptr inbounds i8, ptr %1126, i64 156
  %1131 = load float, ptr %1130, align 4, !tbaa !253
  %1132 = fsub float %1129, %1131
  %1133 = getelementptr inbounds i8, ptr %1126, i64 92
  %1134 = load float, ptr %1133, align 4, !tbaa !234
  %1135 = getelementptr inbounds i8, ptr %1126, i64 100
  %1136 = load float, ptr %1135, align 4, !tbaa !182
  %1137 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1134, float noundef %1136)
  %1138 = fadd float %1132, %1137
  %1139 = call noundef float @_ZL7ImTruncf(float noundef %1138)
  %1140 = load ptr, ptr %4, align 8, !tbaa !5
  %1141 = getelementptr inbounds i8, ptr %1140, i64 572
  store float %1139, ptr %1141, align 4, !tbaa !254
  %1142 = getelementptr inbounds i8, ptr %1140, i64 568
  %1143 = load float, ptr %1142, align 8, !tbaa !252
  %1144 = getelementptr inbounds i8, ptr %1140, i64 576
  %1145 = insertelement <2 x float> poison, float %1088, i64 0
  %1146 = insertelement <2 x float> %1145, float %1113, i64 1
  %1147 = insertelement <2 x float> poison, float %1143, i64 0
  %1148 = insertelement <2 x float> %1147, float %1139, i64 1
  %1149 = fadd <2 x float> %1146, %1148
  store <2 x float> %1149, ptr %1144, align 8, !tbaa !137
  %1150 = getelementptr inbounds i8, ptr %1140, i64 584
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1150, ptr noundef nonnull align 8 dereferenceable(16) %1142, i64 16, i1 false), !tbaa.struct !169
  %1151 = getelementptr inbounds i8, ptr %1140, i64 40
  %1152 = getelementptr inbounds i8, ptr %1140, i64 152
  %1153 = getelementptr inbounds i8, ptr %1140, i64 88
  %1154 = getelementptr inbounds i8, ptr %1140, i64 112
  %1155 = getelementptr inbounds i8, ptr %1140, i64 616
  %1156 = load <2 x float>, ptr %1151, align 8, !tbaa !137
  %1157 = load <2 x float>, ptr %1152, align 8, !tbaa !137
  %1158 = fsub <2 x float> %1156, %1157
  %1159 = load <2 x float>, ptr %1153, align 8, !tbaa !137
  %1160 = fadd <2 x float> %1158, %1159
  %1161 = load <2 x float>, ptr %1154, align 8, !tbaa !137
  %1162 = fadd <2 x float> %1160, %1161
  store <2 x float> %1162, ptr %1155, align 8, !tbaa !137
  %1163 = getelementptr inbounds i8, ptr %1140, i64 80
  %1164 = load float, ptr %1163, align 8, !tbaa !195
  %1165 = fcmp une float %1164, 0.000000e+00
  br i1 %1165, label %1177, label %1166

1166:                                             ; preds = %1111
  %1167 = getelementptr inbounds i8, ptr %1140, i64 48
  %1168 = load float, ptr %1167, align 8, !tbaa !180
  %1169 = extractelement <2 x float> %1159, i64 0
  %1170 = fneg float %1169
  %1171 = call float @llvm.fmuladd.f32(float %1170, float 2.000000e+00, float %1168)
  %1172 = getelementptr inbounds i8, ptr %1140, i64 120
  %1173 = load float, ptr %1172, align 8, !tbaa !249
  %1174 = extractelement <2 x float> %1161, i64 0
  %1175 = fadd float %1174, %1173
  %1176 = fsub float %1171, %1175
  br label %1177

1177:                                             ; preds = %1111, %1166
  %1178 = phi float [ %1176, %1166 ], [ %1164, %1111 ]
  %1179 = extractelement <2 x float> %1162, i64 0
  %1180 = fadd float %1179, %1178
  %1181 = getelementptr inbounds i8, ptr %1140, i64 624
  store float %1180, ptr %1181, align 8, !tbaa !255
  %1182 = getelementptr inbounds i8, ptr %1140, i64 84
  %1183 = load float, ptr %1182, align 4, !tbaa !196
  %1184 = fcmp une float %1183, 0.000000e+00
  br i1 %1184, label %1196, label %1185

1185:                                             ; preds = %1177
  %1186 = getelementptr inbounds i8, ptr %1140, i64 52
  %1187 = load float, ptr %1186, align 4, !tbaa !181
  %1188 = extractelement <2 x float> %1159, i64 1
  %1189 = fneg float %1188
  %1190 = call float @llvm.fmuladd.f32(float %1189, float 2.000000e+00, float %1187)
  %1191 = getelementptr inbounds i8, ptr %1140, i64 124
  %1192 = load float, ptr %1191, align 4, !tbaa !217
  %1193 = extractelement <2 x float> %1161, i64 1
  %1194 = fadd float %1193, %1192
  %1195 = fsub float %1190, %1194
  br label %1196

1196:                                             ; preds = %1177, %1185
  %1197 = phi float [ %1195, %1185 ], [ %1183, %1177 ]
  %1198 = extractelement <2 x float> %1162, i64 1
  %1199 = fadd float %1198, %1197
  %1200 = getelementptr inbounds i8, ptr %1140, i64 628
  store float %1199, ptr %1200, align 4, !tbaa !256
  %1201 = extractelement <2 x float> %1159, i64 0
  %1202 = extractelement <2 x float> %1161, i64 0
  %1203 = fadd <2 x float> %1159, %1161
  %1204 = extractelement <2 x float> %1157, i64 0
  %1205 = fsub <2 x float> %1203, %1157
  %1206 = extractelement <2 x float> %1205, i64 0
  %1207 = getelementptr inbounds i8, ptr %1140, i64 348
  store float %1206, ptr %1207, align 4, !tbaa !257
  %1208 = getelementptr inbounds i8, ptr %1140, i64 352
  store <2 x float> zeroinitializer, ptr %1208, align 8, !tbaa !137
  %1209 = extractelement <2 x float> %1156, i64 0
  %1210 = fpext float %1209 to double
  %1211 = fpext float %1201 to double
  %1212 = fadd double %1210, %1211
  %1213 = fpext float %1204 to double
  %1214 = fsub double %1212, %1213
  %1215 = fpext float %1202 to double
  %1216 = fadd double %1214, %1215
  %1217 = fadd double %1216, 0.000000e+00
  %1218 = extractelement <2 x float> %1156, i64 1
  %1219 = fpext float %1218 to double
  %1220 = extractelement <2 x float> %1159, i64 1
  %1221 = fpext float %1220 to double
  %1222 = fadd double %1219, %1221
  %1223 = extractelement <2 x float> %1157, i64 1
  %1224 = fpext float %1223 to double
  %1225 = fsub double %1222, %1224
  %1226 = extractelement <2 x float> %1161, i64 1
  %1227 = fpext float %1226 to double
  %1228 = fadd double %1225, %1227
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #12
  %1229 = fptrunc double %1217 to float
  %1230 = fptrunc double %1228 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %37, float noundef %1229, float noundef %1230)
  %1231 = load ptr, ptr %4, align 8, !tbaa !5
  %1232 = getelementptr inbounds i8, ptr %1231, i64 296
  %1233 = load i64, ptr %37, align 8
  store i64 %1233, ptr %1232, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #12
  %1234 = trunc i64 %1233 to i32
  %1235 = bitcast i32 %1234 to float
  %1236 = fpext float %1235 to double
  %1237 = fsub double %1217, %1236
  %1238 = fptrunc double %1237 to float
  %1239 = lshr i64 %1233, 32
  %1240 = trunc nuw i64 %1239 to i32
  %1241 = bitcast i32 %1240 to float
  %1242 = fpext float %1241 to double
  %1243 = fsub double %1228, %1242
  %1244 = fptrunc double %1243 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %38, float noundef %1238, float noundef %1244)
  %1245 = load ptr, ptr %4, align 8, !tbaa !5
  %1246 = getelementptr inbounds i8, ptr %1245, i64 360
  %1247 = load i64, ptr %38, align 8
  store i64 %1247, ptr %1246, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #12
  %1248 = getelementptr inbounds i8, ptr %1245, i64 280
  %1249 = getelementptr inbounds i8, ptr %1245, i64 296
  %1250 = load i64, ptr %1249, align 8
  store i64 %1250, ptr %1248, align 8
  %1251 = getelementptr inbounds i8, ptr %1245, i64 288
  store i64 %1250, ptr %1251, align 8
  %1252 = getelementptr inbounds i8, ptr %1245, i64 304
  store i64 %1250, ptr %1252, align 8
  %1253 = getelementptr inbounds i8, ptr %1245, i64 312
  store i64 %1250, ptr %1253, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #12
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %1254 = load ptr, ptr %4, align 8, !tbaa !5
  %1255 = getelementptr inbounds i8, ptr %1254, i64 328
  %1256 = load i64, ptr %39, align 8
  store i64 %1256, ptr %1255, align 8
  %1257 = getelementptr inbounds i8, ptr %1254, i64 320
  store i64 %1256, ptr %1257, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  %1258 = getelementptr inbounds i8, ptr %1254, i64 336
  %1259 = getelementptr inbounds i8, ptr %1254, i64 368
  store i32 0, ptr %1259, align 8, !tbaa !148
  %1260 = getelementptr inbounds i8, ptr %1254, i64 374
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(10) %1258, i8 0, i64 10, i1 false)
  %1261 = load i16, ptr %1260, align 2, !tbaa !258
  %1262 = getelementptr inbounds i8, ptr %1254, i64 372
  store i16 %1261, ptr %1262, align 4, !tbaa !259
  store i16 0, ptr %1260, align 2, !tbaa !258
  %1263 = getelementptr inbounds i8, ptr %1254, i64 376
  store i8 1, ptr %1263, align 8, !tbaa !260
  %1264 = getelementptr inbounds i8, ptr %1254, i64 377
  store i8 0, ptr %1264, align 1, !tbaa !261
  %1265 = getelementptr inbounds i8, ptr %1254, i64 164
  %1266 = load float, ptr %1265, align 4, !tbaa !235
  %1267 = fcmp ogt float %1266, 0.000000e+00
  %1268 = getelementptr inbounds i8, ptr %1254, i64 378
  %1269 = zext i1 %1267 to i8
  store i8 %1269, ptr %1268, align 2, !tbaa !262
  %1270 = getelementptr inbounds i8, ptr %1254, i64 379
  store i8 0, ptr %1270, align 1, !tbaa !263
  %1271 = getelementptr inbounds i8, ptr %1254, i64 388
  %1272 = load float, ptr %466, align 4, !tbaa !185
  call void @_ZN16ImGuiMenuColumns6UpdateEfb(ptr noundef nonnull align 4 dereferenceable(26) %1271, float noundef %1272, i1 noundef zeroext %.0333.in497)
  %1273 = load ptr, ptr %4, align 8, !tbaa !5
  %1274 = getelementptr inbounds i8, ptr %1273, i64 416
  store i32 0, ptr %1274, align 8, !tbaa !264
  %1275 = getelementptr inbounds i8, ptr %1273, i64 420
  store i32 0, ptr %1275, align 4, !tbaa !265
  %1276 = getelementptr inbounds i8, ptr %1273, i64 424
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1276, i32 noundef 0)
  %1277 = load ptr, ptr %4, align 8, !tbaa !5
  %1278 = getelementptr inbounds i8, ptr %1277, i64 656
  %1279 = getelementptr inbounds i8, ptr %1277, i64 440
  store ptr %1278, ptr %1279, align 8, !tbaa !266
  %1280 = getelementptr inbounds i8, ptr %1277, i64 448
  store ptr null, ptr %1280, align 8, !tbaa !267
  %1281 = getelementptr inbounds i8, ptr %1277, i64 460
  store i32 1, ptr %1281, align 4, !tbaa !268
  br i1 %149, label %1285, label %1282

1282:                                             ; preds = %1196
  %1283 = getelementptr inbounds i8, ptr %148, i64 460
  %1284 = load i32, ptr %1283, align 4, !tbaa !268
  br label %1285

1285:                                             ; preds = %1196, %1282
  %1286 = phi i32 [ %1284, %1282 ], [ 1, %1196 ]
  %1287 = getelementptr inbounds i8, ptr %1277, i64 464
  store i32 %1286, ptr %1287, align 8, !tbaa !269
  %1288 = getelementptr inbounds i8, ptr %1277, i64 648
  %1289 = load float, ptr %1288, align 8, !tbaa !229
  %1290 = getelementptr inbounds i8, ptr %1277, i64 480
  store float %1289, ptr %1290, align 8, !tbaa !270
  %1291 = getelementptr inbounds i8, ptr %1277, i64 484
  store float -1.000000e+00, ptr %1291, align 4, !tbaa !271
  %1292 = getelementptr inbounds i8, ptr %1277, i64 488
  call void @_ZN8ImVectorIfE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1292, i32 noundef 0)
  %1293 = load ptr, ptr %4, align 8, !tbaa !5
  %1294 = getelementptr inbounds i8, ptr %1293, i64 504
  call void @_ZN8ImVectorIfE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1294, i32 noundef 0)
  %1295 = and i32 %.1, 134217728
  %.not425 = icmp eq i32 %1295, 0
  br i1 %.not425, label %._crit_edge570, label %1296

._crit_edge570:                                   ; preds = %1285
  %.pre571 = load ptr, ptr %4, align 8, !tbaa !5
  br label %1301

1296:                                             ; preds = %1285
  %1297 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN5ImGui17GetStyleColorVec4Ei(i32 noundef 55)
  %1298 = call noundef i32 @_ZN5ImGui23ColorConvertFloat4ToU32ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %1297)
  %1299 = load ptr, ptr %4, align 8, !tbaa !5
  %1300 = getelementptr inbounds i8, ptr %1299, i64 468
  store i32 %1298, ptr %1300, align 4, !tbaa !272
  br label %1301

1301:                                             ; preds = %._crit_edge570, %1296
  %1302 = phi ptr [ %.pre571, %._crit_edge570 ], [ %1299, %1296 ]
  %1303 = getelementptr inbounds i8, ptr %1302, i64 226
  %1304 = load i8, ptr %1303, align 2, !tbaa !206
  %1305 = icmp sgt i8 %1304, 0
  br i1 %1305, label %1306, label %1308

1306:                                             ; preds = %1301
  %1307 = add nsw i8 %1304, -1
  store i8 %1307, ptr %1303, align 2, !tbaa !206
  br label %1308

1308:                                             ; preds = %1306, %1301
  %1309 = getelementptr inbounds i8, ptr %1302, i64 227
  %1310 = load i8, ptr %1309, align 1, !tbaa !207
  %1311 = icmp sgt i8 %1310, 0
  br i1 %1311, label %1312, label %1314

1312:                                             ; preds = %1308
  %1313 = add nsw i8 %1310, -1
  store i8 %1313, ptr %1309, align 1, !tbaa !207
  br label %1314

1314:                                             ; preds = %1312, %1308
  br i1 %spec.select526, label %1315, label %.critedge480

1315:                                             ; preds = %1314
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindowi(ptr noundef nonnull %1302, i32 noundef 2)
  %1316 = load ptr, ptr %4, align 8, !tbaa !5
  %1317 = getelementptr inbounds i8, ptr %42, i64 7904
  %1318 = load ptr, ptr %1317, align 8, !tbaa !247
  %1319 = icmp eq ptr %1316, %1318
  br i1 %1319, label %1320, label %.critedge480

1320:                                             ; preds = %1315
  call void @_ZN5ImGui13NavInitWindowEP11ImGuiWindowb(ptr noundef %1316, i1 noundef zeroext false)
  br label %.critedge480

.critedge480:                                     ; preds = %1314, %1320, %1315
  %1321 = getelementptr inbounds i8, ptr %42, i64 103
  %1322 = load i8, ptr %1321, align 1, !tbaa !273, !range !92, !noundef !93
  %1323 = trunc nuw i8 %1322 to i1
  br i1 %1323, label %1324, label %1339

1324:                                             ; preds = %.critedge480
  %1325 = getelementptr inbounds i8, ptr %42, i64 7904
  %1326 = load ptr, ptr %1325, align 8, !tbaa !247
  %.not426 = icmp eq ptr %1326, null
  br i1 %.not426, label %1339, label %1327

1327:                                             ; preds = %1324
  %1328 = getelementptr inbounds i8, ptr %1326, i64 944
  %1329 = load ptr, ptr %1328, align 8, !tbaa !164
  %1330 = load ptr, ptr %4, align 8, !tbaa !5
  %1331 = icmp eq ptr %1329, %1330
  br i1 %1331, label %1332, label %1339

1332:                                             ; preds = %1327
  %1333 = getelementptr inbounds i8, ptr %42, i64 5132
  %1334 = load i32, ptr %1333, align 4, !tbaa !200
  %1335 = icmp eq i32 %1334, 0
  br i1 %1335, label %1336, label %1339

1336:                                             ; preds = %1332
  %1337 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEii(i32 noundef 4644, i32 noundef 0)
  br i1 %1337, label %1338, label %1339

1338:                                             ; preds = %1336
  call void @_ZN5ImGui14LogToClipboardEi(i32 noundef 0)
  br label %1339

1339:                                             ; preds = %1324, %1327, %1332, %1336, %1338, %.critedge480
  %.pre573 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %.not404, label %1340, label %1351

1340:                                             ; preds = %1339
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #12
  %1341 = load float, ptr %33, align 8, !tbaa !274
  %1342 = getelementptr inbounds i8, ptr %.pre573, i64 100
  %1343 = load float, ptr %1342, align 4, !tbaa !182
  %1344 = fadd float %1341, %1343
  %1345 = getelementptr inbounds i8, ptr %33, i64 4
  %1346 = load float, ptr %1345, align 4, !tbaa !275
  %1347 = load float, ptr %888, align 8, !tbaa !276
  %1348 = fsub float %1347, %1343
  %1349 = getelementptr inbounds i8, ptr %33, i64 12
  %1350 = load float, ptr %1349, align 4, !tbaa !277
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %40, float noundef %1344, float noundef %1346, float noundef %1348, float noundef %1350)
  call void @_ZN5ImGuiL28RenderWindowTitleBarContentsEP11ImGuiWindowRK6ImRectPKcPb(ptr noundef %.pre573, ptr noundef nonnull align 4 dereferenceable(16) %40, ptr noundef nonnull %0, ptr noundef %1)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #12
  %.pre572 = load ptr, ptr %4, align 8, !tbaa !5
  br label %1351

1351:                                             ; preds = %1340, %1339
  %1352 = phi ptr [ %.pre572, %1340 ], [ %.pre573, %1339 ]
  %1353 = getelementptr inbounds i8, ptr %1352, i64 634
  store i16 0, ptr %1353, align 2, !tbaa !278
  %1354 = getelementptr inbounds i8, ptr %1352, i64 632
  store i16 0, ptr %1354, align 8, !tbaa !279
  br i1 %.not394, label %1357, label %1355

1355:                                             ; preds = %1351
  %1356 = getelementptr inbounds i8, ptr %42, i64 9464
  store ptr %1352, ptr %1356, align 8, !tbaa !280
  br label %1357

1357:                                             ; preds = %1355, %1351
  %1358 = getelementptr inbounds i8, ptr %1352, i64 472
  store i32 0, ptr %1358, align 8, !tbaa !281
  %1359 = call noundef zeroext i1 @_ZN5ImGui19IsMouseHoveringRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %888, i1 noundef zeroext false)
  %1360 = zext i1 %1359 to i32
  %1361 = load ptr, ptr %4, align 8, !tbaa !5
  %1362 = getelementptr inbounds i8, ptr %1361, i64 472
  %1363 = load i32, ptr %1362, align 8, !tbaa !281
  %1364 = or i32 %1363, %1360
  store i32 %1364, ptr %1362, align 8, !tbaa !281
  call void @_ZN5ImGuiL24SetLastItemDataForWindowEP11ImGuiWindowRK6ImRect(ptr noundef %1361, ptr noundef nonnull align 4 dereferenceable(16) %33)
  %1365 = getelementptr inbounds i8, ptr %42, i64 7468
  %1366 = load i32, ptr %1365, align 4, !tbaa !282
  %.not427 = icmp eq i32 %1366, 0
  br i1 %.not427, label %1377, label %1367

1367:                                             ; preds = %1357
  %1368 = load ptr, ptr %4, align 8, !tbaa !5
  %1369 = getelementptr inbounds i8, ptr %1368, i64 16
  %1370 = load i32, ptr %1369, align 8, !tbaa !97
  %1371 = icmp eq i32 %1370, %1366
  br i1 %1371, label %1376, label %1372

1372:                                             ; preds = %1367
  %1373 = getelementptr inbounds i8, ptr %1368, i64 140
  %1374 = load i32, ptr %1373, align 4, !tbaa !283
  %1375 = icmp eq i32 %1374, %1366
  br i1 %1375, label %1376, label %1377

1376:                                             ; preds = %1372, %1367
  call void @_ZN5ImGui34DebugLocateItemResolveWithLastItemEv()
  br label %1377

1377:                                             ; preds = %1376, %1372, %1357
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #12
  br label %1387

._crit_edge575:                                   ; preds = %341, %342
  %1378 = trunc nuw i8 %.pre577 to i1
  br i1 %1378, label %1379, label %1380

1379:                                             ; preds = %._crit_edge575
  call void @_ZL29SetWindowActiveForSkipRefreshP11ImGuiWindow(ptr noundef nonnull %.pre574)
  %.pre578 = load ptr, ptr %4, align 8, !tbaa !5
  br label %1380

1380:                                             ; preds = %1379, %._crit_edge575
  %1381 = phi ptr [ %.pre578, %1379 ], [ %.pre574, %._crit_edge575 ]
  call void @_ZL16SetCurrentWindowP11ImGuiWindow(ptr noundef %1381)
  %1382 = load ptr, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #12
  %1383 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(1061) %1382)
  %1384 = extractvalue { <2 x float>, <2 x float> } %1383, 0
  store <2 x float> %1384, ptr %41, align 8
  %1385 = getelementptr inbounds i8, ptr %41, i64 8
  %1386 = extractvalue { <2 x float>, <2 x float> } %1383, 1
  store <2 x float> %1386, ptr %1385, align 8
  call void @_ZN5ImGuiL24SetLastItemDataForWindowEP11ImGuiWindowRK6ImRect(ptr noundef nonnull %1382, ptr noundef nonnull align 4 dereferenceable(16) %41)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #12
  br label %1387

1387:                                             ; preds = %1380, %1377
  %1388 = load ptr, ptr %4, align 8, !tbaa !5
  %1389 = getelementptr inbounds i8, ptr %1388, i64 208
  %1390 = load i8, ptr %1389, align 8, !tbaa !165, !range !92, !noundef !93
  %1391 = trunc nuw i8 %1390 to i1
  br i1 %1391, label %1395, label %1392

1392:                                             ; preds = %1387
  %1393 = getelementptr inbounds i8, ptr %1388, i64 552
  %1394 = getelementptr inbounds i8, ptr %1388, i64 560
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %1393, ptr noundef nonnull align 4 dereferenceable(8) %1394, i1 noundef zeroext true)
  %.pre579 = load ptr, ptr %4, align 8, !tbaa !5
  br label %1395

1395:                                             ; preds = %1392, %1387
  %1396 = phi ptr [ %.pre579, %1392 ], [ %1388, %1387 ]
  %1397 = getelementptr inbounds i8, ptr %1396, i64 204
  store i8 0, ptr %1397, align 4, !tbaa !284
  %1398 = getelementptr inbounds i8, ptr %1396, i64 216
  %1399 = load i16, ptr %1398, align 8, !tbaa !285
  %1400 = add i16 %1399, 1
  store i16 %1400, ptr %1398, align 8, !tbaa !285
  call void @_ZN19ImGuiNextWindowData10ClearFlagsEv(ptr noundef nonnull align 8 dereferenceable(120) %217)
  %.pre582 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %.not375, label %.critedge490, label %1401

1401:                                             ; preds = %1395
  %1402 = getelementptr inbounds i8, ptr %.pre582, i64 208
  %1403 = load i8, ptr %1402, align 8, !tbaa !165, !range !92, !noundef !93
  %1404 = trunc nuw i8 %1403 to i1
  br i1 %1404, label %.critedge490.sink.split, label %1405

1405:                                             ; preds = %1401
  %1406 = and i32 %.1, 285212672
  %brmerge482.not = icmp eq i32 %1406, 16777216
  br i1 %brmerge482.not, label %1407, label %.critedge485

1407:                                             ; preds = %1405
  %1408 = and i32 %.1, 1
  %.not428 = icmp eq i32 %1408, 0
  br i1 %.not428, label %1409, label %1410

1409:                                             ; preds = %1407
  call void @__assert_fail(ptr noundef nonnull @.str.153, ptr noundef nonnull @.str.3, i32 noundef 7717, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

1410:                                             ; preds = %1407
  %1411 = getelementptr inbounds i8, ptr %.pre582, i64 24
  %1412 = load i32, ptr %1411, align 8, !tbaa !124
  %1413 = and i32 %1412, 256
  %.not429 = icmp eq i32 %1413, 0
  br i1 %.not429, label %1427, label %1414

1414:                                             ; preds = %1410
  %1415 = getelementptr inbounds i8, ptr %42, i64 7985
  %1416 = load i8, ptr %1415, align 1, !tbaa !286, !range !92, !noundef !93
  %1417 = trunc nuw i8 %1416 to i1
  br i1 %1417, label %1418, label %1427

1418:                                             ; preds = %1414
  %1419 = getelementptr inbounds i8, ptr %42, i64 7904
  %1420 = load ptr, ptr %1419, align 8, !tbaa !247
  %.not430 = icmp eq ptr %1420, null
  br i1 %.not430, label %1427, label %1421

1421:                                             ; preds = %1418
  %1422 = getelementptr inbounds i8, ptr %1420, i64 968
  %1423 = load ptr, ptr %1422, align 8, !tbaa !287
  %1424 = getelementptr inbounds i8, ptr %.pre582, i64 968
  %1425 = load ptr, ptr %1424, align 8, !tbaa !287
  %1426 = icmp eq ptr %1423, %1425
  br label %1427

1427:                                             ; preds = %1414, %1418, %1421, %1410
  %1428 = phi i1 [ false, %1410 ], [ false, %1418 ], [ false, %1414 ], [ %1426, %1421 ]
  %1429 = getelementptr inbounds i8, ptr %42, i64 9816
  %1430 = load i8, ptr %1429, align 8, !tbaa !288, !range !92, !noundef !93
  %1431 = trunc nuw i8 %1430 to i1
  %brmerge483 = select i1 %1431, i1 true, i1 %1428
  br i1 %brmerge483, label %1456, label %1432

1432:                                             ; preds = %1427
  %1433 = getelementptr inbounds i8, ptr %.pre582, i64 520
  %1434 = load float, ptr %1433, align 8, !tbaa !289
  %1435 = getelementptr inbounds i8, ptr %.pre582, i64 528
  %1436 = load float, ptr %1435, align 8, !tbaa !290
  %1437 = fcmp ult float %1434, %1436
  br i1 %1437, label %1438, label %1444

1438:                                             ; preds = %1432
  %1439 = getelementptr inbounds i8, ptr %.pre582, i64 524
  %1440 = load float, ptr %1439, align 4, !tbaa !291
  %1441 = getelementptr inbounds i8, ptr %.pre582, i64 532
  %1442 = load float, ptr %1441, align 4, !tbaa !292
  %1443 = fcmp ult float %1440, %1442
  br i1 %1443, label %1456, label %1444

1444:                                             ; preds = %1438, %1432
  %1445 = getelementptr inbounds i8, ptr %.pre582, i64 226
  %1446 = load i8, ptr %1445, align 2, !tbaa !206
  %1447 = icmp sgt i8 %1446, 0
  br i1 %1447, label %1452, label %1448

1448:                                             ; preds = %1444
  %1449 = getelementptr inbounds i8, ptr %.pre582, i64 227
  %1450 = load i8, ptr %1449, align 1, !tbaa !207
  %1451 = icmp sgt i8 %1450, 0
  br i1 %1451, label %1452, label %1454

1452:                                             ; preds = %1448, %1444
  %1453 = getelementptr inbounds i8, ptr %.pre582, i64 237
  store i8 1, ptr %1453, align 1, !tbaa !166
  br label %1456

1454:                                             ; preds = %1448
  %1455 = getelementptr inbounds i8, ptr %.pre582, i64 236
  store i8 1, ptr %1455, align 4, !tbaa !178
  br label %1456

1456:                                             ; preds = %1427, %1438, %1454, %1452
  br i1 %149, label %.critedge485, label %1457

1457:                                             ; preds = %1456
  %1458 = getelementptr inbounds i8, ptr %148, i64 205
  %1459 = load i8, ptr %1458, align 1, !tbaa !203, !range !92, !noundef !93
  %1460 = trunc nuw i8 %1459 to i1
  br i1 %1460, label %1465, label %1461

1461:                                             ; preds = %1457
  %1462 = getelementptr inbounds i8, ptr %148, i64 236
  %1463 = load i8, ptr %1462, align 4, !tbaa !178
  %1464 = icmp sgt i8 %1463, 0
  br i1 %1464, label %1465, label %1467

1465:                                             ; preds = %1461, %1457
  %1466 = getelementptr inbounds i8, ptr %.pre582, i64 236
  store i8 1, ptr %1466, align 4, !tbaa !178
  br label %1467

1467:                                             ; preds = %1461, %1465
  %1468 = getelementptr inbounds i8, ptr %148, i64 237
  %1469 = load i8, ptr %1468, align 1, !tbaa !166
  %1470 = icmp sgt i8 %1469, 0
  br i1 %1470, label %1471, label %.critedge485

1471:                                             ; preds = %1467
  %1472 = getelementptr inbounds i8, ptr %.pre582, i64 237
  store i8 1, ptr %1472, align 1, !tbaa !166
  br label %.critedge485

.critedge485:                                     ; preds = %1467, %1471, %1456, %1405
  %1473 = load float, ptr %43, align 4, !tbaa !293
  %1474 = fcmp ugt float %1473, 0.000000e+00
  %.phi.trans.insert580 = getelementptr inbounds i8, ptr %.pre582, i64 236
  br i1 %1474, label %1475, label %.thread596

.thread596:                                       ; preds = %.critedge485
  store i8 1, ptr %.phi.trans.insert580, align 4, !tbaa !178
  br label %.thread520

1475:                                             ; preds = %.critedge485
  %.pre581 = load i8, ptr %.phi.trans.insert580, align 4, !tbaa !178
  %1476 = icmp sgt i8 %.pre581, 0
  br i1 %1476, label %.thread520, label %1477

1477:                                             ; preds = %1475
  %1478 = getelementptr inbounds i8, ptr %.pre582, i64 237
  %1479 = load i8, ptr %1478, align 1, !tbaa !166
  %1480 = icmp sgt i8 %1479, 0
  br i1 %1480, label %.thread520, label %1481

1481:                                             ; preds = %1477
  %1482 = getelementptr inbounds i8, ptr %.pre582, i64 238
  %1483 = load i8, ptr %1482, align 2, !tbaa !179
  %1484 = icmp sgt i8 %1483, 0
  %1485 = zext i1 %1484 to i8
  br label %.thread520

.thread520:                                       ; preds = %.thread596, %1475, %1481, %1477
  %.not540 = phi i1 [ false, %1477 ], [ true, %1481 ], [ false, %1475 ], [ false, %.thread596 ]
  %1486 = phi i8 [ 1, %1477 ], [ %1485, %1481 ], [ 1, %1475 ], [ 1, %.thread596 ]
  %1487 = getelementptr inbounds i8, ptr %.pre582, i64 210
  store i8 %1486, ptr %1487, align 2, !tbaa !294
  %1488 = getelementptr inbounds i8, ptr %.pre582, i64 239
  %1489 = load i8, ptr %1488, align 1, !tbaa !295
  %1490 = icmp sgt i8 %1489, 0
  br i1 %1490, label %1491, label %1496

1491:                                             ; preds = %.thread520
  %1492 = add nsw i8 %1489, -1
  store i8 %1492, ptr %1488, align 1, !tbaa !295
  %1493 = getelementptr inbounds i8, ptr %.pre582, i64 20
  %1494 = load i32, ptr %1493, align 4, !tbaa !121
  %1495 = or i32 %1494, 197120
  store i32 %1495, ptr %1493, align 4, !tbaa !121
  br label %1496

1496:                                             ; preds = %1491, %.thread520
  %1497 = getelementptr inbounds i8, ptr %.pre582, i64 205
  %1498 = load i8, ptr %1497, align 1, !tbaa !203, !range !92, !noundef !93
  %1499 = trunc nuw i8 %1498 to i1
  br i1 %1499, label %1504, label %1500

1500:                                             ; preds = %1496
  %1501 = getelementptr inbounds i8, ptr %.pre582, i64 202
  %1502 = load i8, ptr %1501, align 2, !tbaa !167, !range !92, !noundef !93
  %1503 = trunc nuw i8 %1502 to i1
  %brmerge487.not = and i1 %.not540, %1503
  br i1 %brmerge487.not, label %.critedge490.sink.split, label %1504

1504:                                             ; preds = %1500, %1496
  %1505 = getelementptr inbounds i8, ptr %.pre582, i64 226
  %1506 = load i8, ptr %1505, align 2, !tbaa !206
  %1507 = icmp slt i8 %1506, 1
  br i1 %1507, label %1508, label %.critedge490.sink.split

1508:                                             ; preds = %1504
  %1509 = getelementptr inbounds i8, ptr %.pre582, i64 227
  %1510 = load i8, ptr %1509, align 1, !tbaa !207
  %1511 = icmp slt i8 %1510, 1
  br i1 %1511, label %1512, label %.critedge490.sink.split

1512:                                             ; preds = %1508
  %1513 = getelementptr inbounds i8, ptr %.pre582, i64 237
  %1514 = load i8, ptr %1513, align 1, !tbaa !166
  %1515 = icmp slt i8 %1514, 1
  %spec.select488 = zext i1 %1515 to i8
  br label %.critedge490.sink.split

.critedge490.sink.split:                          ; preds = %1401, %1508, %1504, %1500, %1512
  %.sink602 = phi i8 [ 0, %1508 ], [ 0, %1504 ], [ 0, %1500 ], [ %spec.select488, %1512 ], [ 1, %1401 ]
  %1516 = getelementptr inbounds i8, ptr %.pre582, i64 207
  store i8 %.sink602, ptr %1516, align 1, !tbaa !296
  br label %.critedge490

.critedge490:                                     ; preds = %.critedge490.sink.split, %1395
  %1517 = getelementptr inbounds i8, ptr %.pre582, i64 211
  %1518 = load i8, ptr %1517, align 1, !tbaa !114, !range !92, !noundef !93
  %1519 = trunc nuw i8 %1518 to i1
  br i1 %1519, label %1546, label %1520

1520:                                             ; preds = %.critedge490
  %1521 = getelementptr inbounds i8, ptr %42, i64 139
  %1522 = load i8, ptr %1521, align 1, !tbaa !297, !range !92, !noundef !93
  %1523 = trunc nuw i8 %1522 to i1
  %brmerge493.demorgan = and i1 %59, %1523
  br i1 %brmerge493.demorgan, label %1534, label %1524

1524:                                             ; preds = %1520
  %1525 = getelementptr inbounds i8, ptr %42, i64 140
  %1526 = load i8, ptr %1525, align 4, !tbaa !298, !range !92, !noundef !93
  %1527 = trunc nuw i8 %1526 to i1
  br i1 %1527, label %1528, label %1546

1528:                                             ; preds = %1524
  %1529 = getelementptr inbounds i8, ptr %42, i64 10024
  %1530 = load i8, ptr %1529, align 8, !tbaa !299
  %1531 = sext i8 %1530 to i32
  %1532 = load i32, ptr %77, align 8, !tbaa !112
  %1533 = icmp eq i32 %1532, %1531
  br i1 %1533, label %1534, label %1546

1534:                                             ; preds = %1520, %1528
  %1535 = getelementptr inbounds i8, ptr %.pre582, i64 226
  %1536 = load i8, ptr %1535, align 2, !tbaa !206
  %1537 = icmp sgt i8 %1536, 0
  br i1 %1537, label %1538, label %1540

1538:                                             ; preds = %1534
  %1539 = add nuw i8 %1536, 1
  store i8 %1539, ptr %1535, align 2, !tbaa !206
  br label %1540

1540:                                             ; preds = %1538, %1534
  %1541 = getelementptr inbounds i8, ptr %.pre582, i64 227
  %1542 = load i8, ptr %1541, align 1, !tbaa !207
  %1543 = icmp sgt i8 %1542, 0
  br i1 %1543, label %1544, label %1551

1544:                                             ; preds = %1540
  %1545 = add nuw i8 %1542, 1
  store i8 %1545, ptr %1541, align 1, !tbaa !207
  br label %1551

1546:                                             ; preds = %1524, %1528, %.critedge490
  %1547 = getelementptr inbounds i8, ptr %.pre582, i64 207
  %1548 = load i8, ptr %1547, align 1, !tbaa !296, !range !92, !noundef !93
  %1549 = trunc nuw i8 %1548 to i1
  %1550 = xor i1 %1549, true
  br label %1551

1551:                                             ; preds = %1540, %1544, %1546
  %.0331 = phi i1 [ %1550, %1546 ], [ false, %1544 ], [ false, %1540 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #12
  ret i1 %.0331
}

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #9 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZL15CreateNewWindowPKci(ptr noundef, i32 noundef) local_unnamed_addr #8

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL28SetWindowConditionAllowFlagsP11ImGuiWindowib(ptr noundef, i32 noundef, i1 noundef zeroext) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL28UpdateWindowInFocusOrderListEP11ImGuiWindowbi(ptr noundef, i1 noundef zeroext, i32 noundef) local_unnamed_addr #8

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui18SetWindowCollapsedEP11ImGuiWindowbi(ptr noundef, i1 noundef zeroext, i32 noundef) local_unnamed_addr #1

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

declare void @_ZN10ImDrawList17_ResetForNewFrameEv(ptr noundef nonnull align 8 dereferenceable(216)) local_unnamed_addr #10

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #13

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5ImGui11GetKeyOwnerE8ImGuiKey(i32 noundef) local_unnamed_addr #8

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef) local_unnamed_addr #9

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZL14ClampWindowPosP11ImGuiWindowRK6ImRect(ptr noundef, ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN5ImGuiL24UpdateWindowManualResizeEP11ImGuiWindowRK6ImVec2PiS5_iPjRK6ImRect(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #9

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

; Function Attrs: mustprogress uwtable
declare hidden <2 x float> @_ZL38CalcNextScrollFromScrollTargetAndClampP11ImGuiWindow(ptr noundef) local_unnamed_addr #9

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL23RenderWindowDecorationsEP11ImGuiWindowRK6ImRectbbiPKjf(ptr noundef, ptr noundef nonnull align 4 dereferenceable(16), i1 noundef zeroext, i1 noundef zeroext, i32 noundef, ptr noundef, float noundef) local_unnamed_addr #9

declare void @_ZN16ImGuiMenuColumns6UpdateEfb(ptr noundef nonnull align 4 dereferenceable(26), float noundef, i1 noundef zeroext) local_unnamed_addr #10

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL28RenderWindowTitleBarContentsEP11ImGuiWindowRK6ImRectPKcPb(ptr noundef, ptr noundef nonnull align 4 dereferenceable(16), ptr noundef, ptr noundef) local_unnamed_addr #9

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !12, i64 4848}
!11 = !{!"_ZTS12ImGuiContext", !12, i64 0, !12, i64 1, !13, i64 8, !20, i64 3024, !21, i64 3096, !6, i64 4264, !16, i64 4272, !16, i64 4276, !16, i64 4280, !16, i64 4284, !23, i64 4288, !26, i64 4824, !14, i64 4832, !14, i64 4836, !14, i64 4840, !14, i64 4844, !12, i64 4848, !12, i64 4849, !12, i64 4850, !12, i64 4851, !6, i64 4856, !7, i64 4864, !27, i64 4880, !27, i64 4896, !17, i64 4912, !14, i64 4916, !28, i64 4920, !28, i64 4936, !28, i64 4952, !29, i64 4968, !30, i64 4984, !14, i64 5000, !16, i64 5004, !14, i64 5008, !6, i64 5016, !6, i64 5024, !6, i64 5032, !6, i64 5040, !6, i64 5048, !6, i64 5056, !15, i64 5064, !14, i64 5072, !14, i64 5076, !16, i64 5080, !15, i64 5084, !15, i64 5092, !14, i64 5100, !14, i64 5104, !14, i64 5108, !14, i64 5112, !14, i64 5116, !16, i64 5120, !16, i64 5124, !12, i64 5128, !12, i64 5129, !12, i64 5130, !14, i64 5132, !14, i64 5136, !16, i64 5140, !12, i64 5144, !12, i64 5145, !12, i64 5146, !12, i64 5147, !12, i64 5148, !12, i64 5149, !12, i64 5150, !14, i64 5151, !15, i64 5152, !6, i64 5160, !32, i64 5168, !14, i64 5172, !33, i64 5176, !34, i64 5188, !14, i64 5196, !16, i64 5200, !26, i64 5208, !26, i64 5216, !26, i64 5224, !35, i64 5232, !7, i64 5252, !36, i64 7104, !14, i64 7448, !12, i64 7452, !14, i64 7456, !14, i64 7460, !14, i64 7464, !14, i64 7468, !38, i64 7472, !40, i64 7528, !42, i64 7608, !12, i64 7728, !14, i64 7732, !43, i64 7736, !44, i64 7752, !45, i64 7768, !46, i64 7784, !47, i64 7800, !48, i64 7816, !49, i64 7832, !49, i64 7848, !50, i64 7864, !51, i64 7880, !12, i64 7896, !12, i64 7897, !12, i64 7898, !12, i64 7899, !14, i64 7900, !6, i64 7904, !14, i64 7912, !52, i64 7916, !14, i64 7920, !14, i64 7924, !14, i64 7928, !14, i64 7932, !46, i64 7936, !14, i64 7952, !16, i64 7956, !14, i64 7960, !14, i64 7964, !32, i64 7968, !39, i64 7976, !7, i64 7984, !12, i64 7985, !12, i64 7986, !12, i64 7987, !53, i64 7992, !12, i64 8048, !12, i64 8049, !12, i64 8050, !14, i64 8052, !14, i64 8056, !14, i64 8060, !22, i64 8064, !22, i64 8068, !22, i64 8072, !41, i64 8076, !41, i64 8092, !14, i64 8108, !14, i64 8112, !14, i64 8116, !53, i64 8120, !53, i64 8176, !53, i64 8232, !53, i64 8288, !14, i64 8344, !14, i64 8348, !14, i64 8352, !14, i64 8356, !12, i64 8360, !12, i64 8361, !14, i64 8364, !14, i64 8368, !6, i64 8376, !6, i64 8384, !6, i64 8392, !16, i64 8400, !16, i64 8404, !12, i64 8408, !54, i64 8412, !15, i64 8416, !15, i64 8424, !16, i64 8432, !12, i64 8436, !12, i64 8437, !12, i64 8438, !14, i64 8440, !14, i64 8444, !14, i64 8448, !55, i64 8456, !41, i64 8520, !41, i64 8536, !14, i64 8552, !14, i64 8556, !16, i64 8560, !14, i64 8564, !14, i64 8568, !14, i64 8572, !14, i64 8576, !56, i64 8584, !7, i64 8600, !14, i64 8616, !57, i64 8624, !6, i64 8640, !14, i64 8648, !14, i64 8652, !58, i64 8656, !59, i64 8672, !61, i64 8712, !62, i64 8728, !6, i64 8744, !63, i64 8752, !65, i64 8792, !66, i64 8808, !67, i64 8824, !6, i64 8928, !14, i64 8936, !68, i64 8944, !69, i64 8960, !14, i64 9000, !14, i64 9004, !16, i64 9008, !16, i64 9012, !14, i64 9016, !14, i64 9020, !14, i64 9024, !16, i64 9028, !15, i64 9032, !71, i64 9040, !73, i64 9160, !74, i64 9184, !14, i64 9304, !34, i64 9308, !14, i64 9316, !14, i64 9320, !14, i64 9324, !14, i64 9328, !14, i64 9332, !16, i64 9336, !16, i64 9340, !14, i64 9344, !24, i64 9348, !76, i64 9364, !41, i64 9412, !12, i64 9428, !18, i64 9430, !16, i64 9432, !16, i64 9436, !16, i64 9440, !12, i64 9444, !12, i64 9445, !16, i64 9448, !16, i64 9452, !16, i64 9456, !18, i64 9460, !18, i64 9462, !6, i64 9464, !72, i64 9472, !77, i64 9488, !78, i64 9504, !80, i64 9608, !80, i64 9624, !12, i64 9640, !16, i64 9644, !81, i64 9648, !82, i64 9664, !83, i64 9680, !84, i64 9696, !85, i64 9712, !14, i64 9728, !7, i64 9736, !12, i64 9816, !14, i64 9820, !6, i64 9824, !6, i64 9832, !81, i64 9840, !6, i64 9856, !6, i64 9864, !16, i64 9872, !12, i64 9876, !14, i64 9880, !14, i64 9884, !14, i64 9888, !6, i64 9896, !6, i64 9904, !15, i64 9912, !12, i64 9920, !14, i64 9924, !86, i64 9928, !6, i64 9952, !14, i64 9960, !14, i64 9964, !81, i64 9968, !87, i64 9984, !14, i64 10008, !14, i64 10012, !7, i64 10016, !7, i64 10017, !12, i64 10018, !14, i64 10020, !7, i64 10024, !12, i64 10025, !7, i64 10026, !14, i64 10028, !16, i64 10032, !24, i64 10036, !88, i64 10052, !89, i64 10080, !91, i64 10120, !7, i64 10180, !14, i64 10420, !14, i64 10424, !16, i64 10428, !14, i64 10432, !14, i64 10436, !14, i64 10440, !72, i64 10448, !7, i64 10464}
!12 = !{!"bool", !7, i64 0}
!13 = !{!"_ZTS7ImGuiIO", !14, i64 0, !14, i64 4, !15, i64 8, !16, i64 16, !16, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !16, i64 56, !12, i64 60, !6, i64 64, !15, i64 72, !12, i64 80, !12, i64 81, !12, i64 82, !12, i64 83, !12, i64 84, !12, i64 85, !12, i64 86, !12, i64 87, !12, i64 88, !12, i64 89, !12, i64 90, !12, i64 91, !12, i64 92, !12, i64 93, !12, i64 94, !12, i64 95, !12, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !12, i64 124, !12, i64 125, !12, i64 126, !12, i64 127, !12, i64 128, !12, i64 129, !12, i64 130, !12, i64 131, !12, i64 132, !12, i64 133, !12, i64 134, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 177, !12, i64 178, !12, i64 179, !12, i64 180, !12, i64 181, !12, i64 182, !16, i64 184, !14, i64 188, !14, i64 192, !14, i64 196, !14, i64 200, !15, i64 204, !6, i64 216, !15, i64 224, !7, i64 232, !16, i64 240, !16, i64 244, !17, i64 248, !12, i64 252, !12, i64 253, !12, i64 254, !12, i64 255, !14, i64 256, !7, i64 260, !12, i64 2724, !15, 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 2856, !7, i64 2896, !7, i64 2901, !12, i64 2906, !12, i64 2907, !7, i64 2908, !7, i64 2928, !7, i64 2948, !16, i64 2968, !12, i64 2972, !12, i64 2973, !18, i64 2974, !19, i64 2976, !6, i64 2992, !6, i64 3000, !6, i64 3008}
!14 = !{!"int", !7, i64 0}
!15 = !{!"_ZTS6ImVec2", !16, i64 0, !16, i64 4}
!16 = !{!"float", !7, i64 0}
!17 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!18 = !{!"short", !7, i64 0}
!19 = !{!"_ZTS8ImVectorItE", !14, i64 0, !14, i64 4, !6, i64 8}
!20 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !18, i64 56, !6, i64 64}
!21 = !{!"_ZTS10ImGuiStyle", !16, i64 0, !16, i64 4, !15, i64 8, !16, i64 16, !16, i64 20, !16, i64 24, !15, i64 28, !15, i64 36, !22, i64 44, !16, i64 48, !16, i64 52, !16, i64 56, !16, i64 60, !15, i64 64, !16, i64 72, !16, i64 76, !15, i64 80, !15, i64 88, !15, i64 96, !15, i64 104, !16, i64 112, !16, i64 116, !16, i64 120, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !16, i64 144, !16, i64 148, !16, i64 152, !16, i64 156, !16, i64 160, !16, i64 164, !16, i64 168, !15, i64 172, !22, i64 180, !15, i64 184, !15, i64 192, !16, i64 200, !15, i64 204, !15, i64 212, !15, i64 220, !15, i64 228, !16, i64 236, !12, i64 240, !12, i64 241, !12, i64 242, !16, i64 244, !16, i64 248, !7, i64 252, !16, i64 1148, !16, i64 1152, !16, i64 1156, !14, i64 1160, !14, i64 1164}
!22 = !{!"_ZTS8ImGuiDir", !7, i64 0}
!23 = !{!"_ZTS20ImDrawListSharedData", !15, i64 0, !6, i64 8, !6, i64 16, !16, i64 24, !16, i64 28, !16, i64 32, !16, i64 36, !16, i64 40, !14, i64 44, !24, i64 48, !25, i64 64, !7, i64 80, !16, i64 464, !7, i64 468}
!24 = !{!"_ZTS6ImVec4", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12}
!25 = !{!"_ZTS8ImVectorI6ImVec2E", !14, i64 0, !14, i64 4, !6, i64 8}
!26 = !{!"double", !7, i64 0}
!27 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !14, i64 0, !14, i64 4, !6, i64 8}
!28 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !14, i64 0, !14, i64 4, !6, i64 8}
!29 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !14, i64 0, !14, i64 4, !6, i64 8}
!30 = !{!"_ZTS12ImGuiStorage", !31, i64 0}
!31 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !14, i64 0, !14, i64 4, !6, i64 8}
!32 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!33 = !{!"_ZTS24ImGuiDeactivatedItemData", !14, i64 0, !14, i64 4, !12, i64 8, !12, i64 9}
!34 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!35 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!36 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !37, i64 312, !37, i64 328}
!37 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !14, i64 0, !14, i64 4, !6, i64 8}
!38 = !{!"_ZTS17ImGuiNextItemData", !14, i64 0, !14, i64 4, !14, i64 8, !39, i64 16, !16, i64 24, !14, i64 28, !14, i64 32, !12, i64 36, !7, i64 37, !34, i64 38, !14, i64 48}
!39 = !{!"long long", !7, i64 0}
!40 = !{!"_ZTS17ImGuiLastItemData", !14, i64 0, !14, i64 4, !14, i64 8, !41, i64 12, !41, i64 28, !41, i64 44, !41, i64 60, !14, i64 76}
!41 = !{!"_ZTS6ImRect", !15, i64 0, !15, i64 8}
!42 = !{!"_ZTS19ImGuiNextWindowData", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !15, i64 16, !15, i64 24, !15, i64 32, !15, i64 40, !15, i64 48, !14, i64 56, !14, i64 60, !12, i64 64, !41, i64 68, !6, i64 88, !6, i64 96, !16, i64 104, !15, i64 108, !14, i64 116}
!43 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !14, i64 0, !14, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !14, i64 0, !14, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorIP6ImFontE", !14, i64 0, !14, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !14, i64 0, !14, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorIiE", !14, i64 0, !14, i64 4, !6, i64 8}
!48 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !14, i64 0, !14, i64 4, !6, i64 8}
!49 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !14, i64 0, !14, i64 4, !6, i64 8}
!50 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !14, i64 0, !14, i64 4, !6, i64 8}
!51 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !14, i64 0, !14, i64 4, !6, i64 8}
!52 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!53 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !14, i64 8, !14, i64 12, !41, i64 16, !14, i64 32, !16, i64 36, !16, i64 40, !16, i64 44, !39, i64 48}
!54 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!55 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !14, i64 8, !14, i64 12, !14, i64 16, !14, i64 20, !7, i64 24, !12, i64 57, !12, i64 58}
!56 = !{!"_ZTS8ImVectorIhE", !14, i64 0, !14, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !14, i64 0, !14, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !14, i64 0, !14, i64 4, !6, i64 8}
!59 = !{!"_ZTS6ImPoolI10ImGuiTableE", !60, i64 0, !30, i64 16, !14, i64 32, !14, i64 36}
!60 = !{!"_ZTS8ImVectorI10ImGuiTableE", !14, i64 0, !14, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorIfE", !14, i64 0, !14, i64 4, !6, i64 8}
!62 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !14, i64 0, !14, i64 4, !6, i64 8}
!63 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !64, i64 0, !30, i64 16, !14, i64 32, !14, i64 36}
!64 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !14, i64 0, !14, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !14, i64 0, !14, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !14, i64 0, !14, i64 4, !6, i64 8}
!67 = !{!"_ZTS19ImGuiBoxSelectState", !14, i64 0, !12, i64 4, !12, i64 5, !12, i64 6, !12, i64 7, !12, i64 8, !14, i64 9, !15, i64 12, !15, i64 20, !15, i64 28, !6, i64 40, !12, i64 48, !41, i64 52, !41, i64 68, !41, i64 84}
!68 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !14, i64 0, !14, i64 4, !6, i64 8}
!69 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !70, i64 0, !30, i64 16, !14, i64 32, !14, i64 36}
!70 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !14, i64 0, !14, i64 4, !6, i64 8}
!71 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !6, i64 8, !14, i64 16, !14, i64 20, !14, i64 24, !6, i64 32, !72, i64 40, !72, i64 56, !72, i64 72, !14, i64 88, !15, i64 92, !16, i64 100, !12, i64 104, !12, i64 105, !12, i64 106, !12, i64 107, !14, i64 108, !14, i64 112}
!72 = !{!"_ZTS8ImVectorIcE", !14, i64 0, !14, i64 4, !6, i64 8}
!73 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !14, i64 0, !72, i64 8}
!74 = !{!"_ZTS6ImFont", !61, i64 0, !16, i64 16, !16, i64 20, !19, i64 24, !75, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !18, i64 80, !18, i64 82, !18, i64 84, !18, i64 86, !16, i64 88, !16, i64 92, !16, i64 96, !16, i64 100, !16, i64 104, !14, i64 108, !12, i64 112, !7, i64 113}
!75 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !14, i64 0, !14, i64 4, !6, i64 8}
!76 = !{!"_ZTS21ImGuiComboPreviewData", !41, i64 0, !15, i64 16, !15, i64 24, !15, i64 32, !16, i64 40, !14, i64 44}
!77 = !{!"_ZTS8ImVectorIjE", !14, i64 0, !14, i64 4, !6, i64 8}
!78 = !{!"_ZTS22ImGuiTypingSelectState", !79, i64 0, !7, i64 24, !14, i64 88, !14, i64 92, !16, i64 96, !12, i64 100}
!79 = !{!"_ZTS24ImGuiTypingSelectRequest", !14, i64 0, !14, i64 4, !6, i64 8, !12, i64 16, !12, i64 17, !7, i64 18}
!80 = !{!"_ZTS20ImGuiPlatformImeData", !12, i64 0, !15, i64 4, !16, i64 12}
!81 = !{!"_ZTS15ImGuiTextBuffer", !72, i64 0}
!82 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !14, i64 0, !14, i64 4, !6, i64 8}
!83 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !72, i64 0}
!84 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !72, i64 0}
!85 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !14, i64 0, !14, i64 4, !6, i64 8}
!86 = !{!"_ZTS23ImGuiErrorRecoveryState", !18, i64 0, !18, i64 2, !18, i64 4, !18, i64 6, !18, i64 8, !18, i64 10, !18, i64 12, !18, i64 14, !18, i64 16, !18, i64 18, !18, i64 20}
!87 = !{!"_ZTS14ImGuiTextIndex", !47, i64 0, !14, i64 16}
!88 = !{!"_ZTS18ImGuiMetricsConfig", !12, i64 0, !12, i64 1, !12, i64 2, !12, i64 3, !12, i64 4, !12, i64 5, !12, i64 6, !12, i64 7, !14, i64 8, !14, i64 12, !14, i64 16, !14, i64 20}
!89 = !{!"_ZTS16ImGuiIDStackTool", !14, i64 0, !14, i64 4, !14, i64 8, !90, i64 16, !12, i64 32, !16, i64 36}
!90 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !14, i64 0, !14, i64 4, !6, i64 8}
!91 = !{!"_ZTS19ImGuiDebugAllocInfo", !14, i64 0, !14, i64 4, !18, i64 8, !7, i64 12}
!92 = !{i8 0, i8 2}
!93 = !{}
!94 = !{!11, !14, i64 4836}
!95 = !{!11, !14, i64 4832}
!96 = !{!11, !14, i64 5008}
!97 = !{!98, !14, i64 16}
!98 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !14, i64 16, !14, i64 20, !14, i64 24, !6, i64 32, !15, i64 40, !15, i64 48, !15, i64 56, !15, i64 64, !15, i64 72, !15, i64 80, !15, i64 88, !16, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !16, i64 124, !16, i64 128, !16, i64 132, !14, i64 136, !14, i64 140, !14, i64 144, !14, i64 148, !15, i64 152, !15, i64 160, !15, i64 168, !15, i64 176, !15, i64 184, !15, i64 192, !12, i64 200, !12, i64 201, !12, i64 202, !12, i64 203, !12, i64 204, !12, i64 205, !12, i64 206, !12, i64 207, !12, i64 208, !12, i64 209, !12, i64 210, !12, i64 211, !12, i64 212, !12, i64 213, !7, i64 214, !7, i64 215, !18, i64 216, !18, i64 218, !18, i64 220, !18, i64 222, !18, i64 224, !7, i64 226, !7, i64 227, !12, i64 228, !22, i64 232, !7, i64 236, !7, i64 237, !7, i64 238, !7, i64 239, !14, i64 240, !14, i64 241, !14, i64 242, !15, i64 244, !15, i64 252, !77, i64 264, !99, i64 280, !41, i64 520, !41, i64 536, !41, i64 552, !41, i64 568, !41, i64 584, !41, i64 600, !41, i64 616, !102, i64 632, !102, i64 636, !14, i64 640, !16, i64 644, !16, i64 648, !30, i64 656, !103, i64 672, !16, i64 688, !16, i64 692, !16, i64 696, !14, i64 700, !6, i64 704, !104, i64 712, !6, i64 928, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !7, i64 992, !7, i64 1000, !7, i64 1032, !14, i64 1048, !14, i64 1052, !14, i64 1056, !12, i64 1060}
!99 = !{!"_ZTS19ImGuiWindowTempData", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !15, i64 32, !15, i64 40, !15, i64 48, !16, i64 56, !16, i64 60, !12, i64 64, !12, i64 65, !100, i64 68, !100, i64 72, !100, i64 76, !15, i64 80, !52, i64 88, !18, i64 92, !18, i64 94, !12, i64 96, !12, i64 97, !12, i64 98, !12, i64 99, !15, i64 100, !101, i64 108, !14, i64 136, !14, i64 140, !28, i64 144, !6, i64 160, !6, i64 168, !14, i64 176, !14, i64 180, !14, i64 184, !14, i64 188, !14, i64 192, !14, i64 196, !16, i64 200, !16, i64 204, !61, i64 208, !61, i64 224}
!100 = !{!"_ZTS6ImVec1", !16, i64 0}
!101 = !{!"_ZTS16ImGuiMenuColumns", !14, i64 0, !14, i64 4, !18, i64 8, !18, i64 10, !18, i64 12, !18, i64 14, !18, i64 16, !7, i64 18}
!102 = !{!"_ZTS8ImVec2ih", !18, i64 0, !18, i64 2}
!103 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !14, i64 0, !14, i64 4, !6, i64 8}
!104 = !{!"_ZTS10ImDrawList", !105, i64 0, !19, i64 16, !106, i64 32, !14, i64 48, !14, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !25, i64 80, !107, i64 96, !108, i64 128, !109, i64 152, !110, i64 168, !56, i64 184, !16, i64 200, !6, i64 208}
!105 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !14, i64 0, !14, i64 4, !6, i64 8}
!106 = !{!"_ZTS8ImVectorI10ImDrawVertE", !14, i64 0, !14, i64 4, !6, i64 8}
!107 = !{!"_ZTS15ImDrawCmdHeader", !24, i64 0, !39, i64 16, !14, i64 24}
!108 = !{!"_ZTS18ImDrawListSplitter", !14, i64 0, !14, i64 4, !62, i64 8}
!109 = !{!"_ZTS8ImVectorI6ImVec4E", !14, i64 0, !14, i64 4, !6, i64 8}
!110 = !{!"_ZTS8ImVectorIyE", !14, i64 0, !14, i64 4, !6, i64 8}
!111 = !{!98, !14, i64 640}
!112 = !{!11, !14, i64 4968}
!113 = !{!11, !12, i64 4849}
!114 = !{!98, !12, i64 211}
!115 = !{!11, !14, i64 7848}
!116 = !{!98, !14, i64 148}
!117 = !{!118, !14, i64 0}
!118 = !{!"_ZTS14ImGuiPopupData", !14, i64 0, !6, i64 8, !6, i64 16, !14, i64 24, !14, i64 28, !14, i64 32, !15, i64 36, !15, i64 44}
!119 = !{!118, !6, i64 8}
!120 = !{!98, !12, i64 209}
!121 = !{!98, !14, i64 20}
!122 = !{!11, !14, i64 7608}
!123 = !{!11, !14, i64 7668}
!124 = !{!98, !14, i64 24}
!125 = !{!11, !26, i64 4824}
!126 = !{!98, !16, i64 644}
!127 = !{!98, !18, i64 220}
!128 = !{!11, !14, i64 5000}
!129 = !{!98, !18, i64 222}
!130 = !{!131, !6, i64 0}
!131 = !{!"_ZTS20ImGuiWindowStackData", !6, i64 0, !40, i64 8, !86, i64 88, !12, i64 110}
!132 = !{!98, !6, i64 928}
!133 = !{!98, !14, i64 264}
!134 = !{!11, !6, i64 5016}
!135 = !{i64 0, i64 4, !136, i64 4, i64 4, !136, i64 8, i64 4, !136, i64 12, i64 4, !137, i64 16, i64 4, !137, i64 20, i64 4, !137, i64 24, i64 4, !137, i64 28, i64 4, !137, i64 32, i64 4, !137, i64 36, i64 4, !137, i64 40, i64 4, !137, i64 44, i64 4, !137, i64 48, i64 4, !137, i64 52, i64 4, !137, i64 56, i64 4, !137, i64 60, i64 4, !137, i64 64, i64 4, !137, i64 68, i64 4, !137, i64 72, i64 4, !137, i64 76, i64 4, !136}
!136 = !{!14, !14, i64 0}
!137 = !{!16, !16, i64 0}
!138 = !{!11, !14, i64 7464}
!139 = !{!131, !12, i64 110}
!140 = !{!11, !6, i64 9952}
!141 = !{!11, !14, i64 9316}
!142 = !{!98, !6, i64 936}
!143 = !{!98, !6, i64 976}
!144 = !{!98, !16, i64 692}
!145 = !{!98, !16, i64 688}
!146 = !{!11, !14, i64 7460}
!147 = !{!98, !14, i64 1048}
!148 = !{!98, !52, i64 368}
!149 = !{!118, !14, i64 24}
!150 = !{!11, !14, i64 7612}
!151 = !{!11, !14, i64 7616}
!152 = !{!11, !16, i64 7640}
!153 = !{!11, !16, i64 7644}
!154 = !{!98, !16, i64 56}
!155 = !{!98, !16, i64 60}
!156 = !{!11, !16, i64 7656}
!157 = !{!98, !16, i64 168}
!158 = !{!98, !16, i64 176}
!159 = !{!11, !16, i64 7660}
!160 = !{!98, !16, i64 172}
!161 = !{!98, !16, i64 180}
!162 = !{!11, !12, i64 7672}
!163 = !{!11, !14, i64 7620}
!164 = !{!98, !6, i64 944}
!165 = !{!98, !12, i64 208}
!166 = !{!98, !7, i64 237}
!167 = !{!98, !12, i64 202}
!168 = !{!98, !12, i64 213}
!169 = !{i64 0, i64 4, !137, i64 4, i64 4, !137, i64 8, i64 4, !137, i64 12, i64 4, !137}
!170 = !{!98, !6, i64 704}
!171 = !{!98, !14, i64 456}
!172 = !{!98, !12, i64 1060}
!173 = !{!11, !6, i64 8392}
!174 = !{!98, !6, i64 8}
!175 = !{!98, !14, i64 136}
!176 = !{!177, !177, i64 0}
!177 = !{!"long", !7, i64 0}
!178 = !{!98, !7, i64 236}
!179 = !{!98, !7, i64 238}
!180 = !{!98, !16, i64 48}
!181 = !{!98, !16, i64 52}
!182 = !{!98, !16, i64 100}
!183 = !{!21, !16, i64 52}
!184 = !{!21, !16, i64 12}
!185 = !{!21, !16, i64 80}
!186 = !{!11, !16, i64 7716}
!187 = !{!98, !16, i64 380}
!188 = !{!11, !16, i64 7720}
!189 = !{!98, !16, i64 384}
!190 = !{!11, !16, i64 4272}
!191 = !{!11, !16, i64 3164}
!192 = !{!98, !16, i64 104}
!193 = !{!98, !16, i64 108}
!194 = !{!98, !16, i64 696}
!195 = !{!98, !16, i64 80}
!196 = !{!98, !16, i64 84}
!197 = !{!11, !6, i64 5024}
!198 = !{!11, !14, i64 5108}
!199 = !{!11, !14, i64 5112}
!200 = !{!11, !14, i64 5132}
!201 = !{!18, !18, i64 0}
!202 = !{!98, !12, i64 206}
!203 = !{!98, !12, i64 205}
!204 = !{!98, !16, i64 112}
!205 = !{!98, !16, i64 116}
!206 = !{!98, !7, i64 226}
!207 = !{!98, !7, i64 227}
!208 = !{!98, !12, i64 228}
!209 = !{!15, !16, i64 4}
!210 = !{!98, !22, i64 232}
!211 = !{!98, !14, i64 424}
!212 = !{!98, !16, i64 244}
!213 = !{!98, !16, i64 96}
!214 = !{!11, !12, i64 101}
!215 = !{!98, !7, i64 214}
!216 = !{!98, !7, i64 215}
!217 = !{!98, !16, i64 124}
!218 = !{!98, !12, i64 201}
!219 = !{!98, !12, i64 200}
!220 = !{!15, !16, i64 0}
!221 = !{!21, !16, i64 120}
!222 = !{!98, !16, i64 552}
!223 = !{!98, !16, i64 540}
!224 = !{!98, !16, i64 556}
!225 = !{!98, !16, i64 544}
!226 = !{!98, !16, i64 560}
!227 = !{!98, !16, i64 548}
!228 = !{!98, !16, i64 564}
!229 = !{!98, !16, i64 648}
!230 = !{!98, !16, i64 64}
!231 = !{!98, !16, i64 88}
!232 = !{!98, !16, i64 160}
!233 = !{!98, !16, i64 68}
!234 = !{!98, !16, i64 92}
!235 = !{!98, !16, i64 164}
!236 = !{!104, !14, i64 0}
!237 = !{!238, !14, i64 32}
!238 = !{!"_ZTS9ImDrawCmd", !24, i64 0, !39, i64 16, !14, i64 24, !14, i64 28, !14, i64 32, !6, i64 40, !6, i64 48, !14, i64 56, !14, i64 60}
!239 = !{!11, !6, i64 4264}
!240 = !{!74, !6, i64 64}
!241 = !{!242, !39, i64 8}
!242 = !{!"_ZTS11ImFontAtlas", !14, i64 0, !39, i64 8, !14, i64 16, !14, i64 20, !6, i64 24, !12, i64 32, !12, i64 33, !12, i64 34, !6, i64 40, !6, i64 48, !14, i64 56, !14, i64 60, !15, i64 64, !15, i64 72, !45, i64 80, !243, i64 96, !244, i64 112, !7, i64 128, !6, i64 656, !14, i64 664, !14, i64 668, !14, i64 672}
!243 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !14, i64 0, !14, i64 4, !6, i64 8}
!244 = !{!"_ZTS8ImVectorI12ImFontConfigE", !14, i64 0, !14, i64 4, !6, i64 8}
!245 = !{!104, !14, i64 32}
!246 = !{!11, !6, i64 8376}
!247 = !{!11, !6, i64 7904}
!248 = !{!98, !6, i64 960}
!249 = !{!98, !16, i64 120}
!250 = !{!98, !16, i64 536}
!251 = !{!98, !16, i64 152}
!252 = !{!98, !16, i64 568}
!253 = !{!98, !16, i64 156}
!254 = !{!98, !16, i64 572}
!255 = !{!98, !16, i64 624}
!256 = !{!98, !16, i64 628}
!257 = !{!98, !16, i64 348}
!258 = !{!98, !18, i64 374}
!259 = !{!98, !18, i64 372}
!260 = !{!98, !12, i64 376}
!261 = !{!98, !12, i64 377}
!262 = !{!98, !12, i64 378}
!263 = !{!98, !12, i64 379}
!264 = !{!98, !14, i64 416}
!265 = !{!98, !14, i64 420}
!266 = !{!98, !6, i64 440}
!267 = !{!98, !6, i64 448}
!268 = !{!98, !14, i64 460}
!269 = !{!98, !14, i64 464}
!270 = !{!98, !16, i64 480}
!271 = !{!98, !16, i64 484}
!272 = !{!98, !14, i64 468}
!273 = !{!11, !12, i64 103}
!274 = !{!41, !16, i64 0}
!275 = !{!41, !16, i64 4}
!276 = !{!41, !16, i64 8}
!277 = !{!41, !16, i64 12}
!278 = !{!98, !18, i64 634}
!279 = !{!98, !18, i64 632}
!280 = !{!11, !6, i64 9464}
!281 = !{!98, !14, i64 472}
!282 = !{!11, !14, i64 7468}
!283 = !{!98, !14, i64 140}
!284 = !{!98, !12, i64 204}
!285 = !{!98, !18, i64 216}
!286 = !{!11, !12, i64 7985}
!287 = !{!98, !6, i64 968}
!288 = !{!11, !12, i64 9816}
!289 = !{!98, !16, i64 520}
!290 = !{!98, !16, i64 528}
!291 = !{!98, !16, i64 524}
!292 = !{!98, !16, i64 532}
!293 = !{!21, !16, i64 0}
!294 = !{!98, !12, i64 210}
!295 = !{!98, !7, i64 239}
!296 = !{!98, !12, i64 207}
!297 = !{!11, !12, i64 139}
!298 = !{!11, !12, i64 140}
!299 = !{!11, !7, i64 10024}


; Effective O3 passes: AggressiveInstCombinePass,BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,MemCpyOptPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass