; LLVM IR from JawherBenjeddou/GraphicsRenderer :: Graphics/vendor/ImGui (imgui_widgets)

; 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.ImGuiNextItemData = type <{ i32, i32, float, i32, i32, i8, [3 x i8] }>
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }
%struct.ImGuiTabItem = type <{ i32, i32, ptr, i32, i32, float, float, float, float, i32, i16, i16, i8, [7 x i8] }>
%struct.ImGuiTabBar = type { %struct.ImVector.45, i32, i32, i32, i32, i32, i32, i32, %struct.ImRect, float, float, float, float, float, float, float, float, float, float, i32, i16, i8, i8, i8, i8, i16, i16, float, %struct.ImVec2, %struct.ImVec2, %struct.ImGuiTextBuffer }
%struct.ImVector.45 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.31 }
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImGuiContext = type { i8, i8, %struct.ImGuiIO, %struct.ImGuiPlatformIO, %struct.ImGuiStyle, i32, i32, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i32, i8, i8, i8, i8, i8, ptr, %struct.ImVector.13, %struct.ImVector.13, i32, i32, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.14, %struct.ImGuiStorage, i32, %struct.ImVec2, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, ptr, i32, float, [140 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, %struct.ImVector.16, %struct.ImVector.17, %struct.ImVector.18, %struct.ImVector, %struct.ImVector.19, %struct.ImVector.20, %struct.ImVector.21, %struct.ImVector.21, i32, %struct.ImVector.22, float, ptr, ptr, ptr, i32, %struct.ImGuiPlatformMonitor, i32, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, %struct.ImGuiNavItemData, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, ptr, ptr, ptr, float, float, i8, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, i32, i32, i32, %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.23, [16 x i8], i32, %struct.ImVector.24, ptr, i32, %struct.ImVector.25, %struct.ImPool, %struct.ImVector.1, %struct.ImVector.10, ptr, %struct.ImPool.27, %struct.ImVector.29, %struct.ImVector.30, i32, i32, float, float, i32, i32, i32, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, float, float, i8, i8, float, float, float, float, i16, i16, %struct.ImVector.31, %struct.ImVector, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i32, i8, [3 x i8], %struct.ImGuiDockContext, ptr, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.35, %struct.ImChunkStream, %struct.ImChunkStream.36, %struct.ImVector.37, i32, [9 x ptr], i8, i32, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i8, i8, i8, i8, i8, i32, %struct.ImGuiMetricsConfig, %struct.ImGuiStackTool, ptr, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.31 }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, float, float, float, float, float, float, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, [652 x i32], [652 x i8], [16 x float], ptr, %struct.ImVec2, [5 x i8], float, float, i32, i32, i8, i8, i8, i8, i32, [652 x %struct.ImGuiKeyData], i8, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x i8], [5 x i8], i8, [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], float, i8, i8, i8, i8, i16, %struct.ImVector.5 }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiPlatformIO = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVector.11, %struct.ImVector.12 }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, i8, float, float, [55 x %struct.ImVec4], float, float, float, i32, i32 }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, %struct.ImVector.9, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.2 }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [140 x i16], %struct.ImVector.15, %struct.ImVector.15 }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect }
%struct.ImGuiNextWindowData = type { i32, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, %struct.ImRect, ptr, ptr, float, i32, i32, %struct.ImGuiWindowClass, %struct.ImVec2 }
%struct.ImGuiWindowClass = type <{ i32, i32, i32, i32, i32, i32, i8, i8, [2 x i8] }>
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImGuiPlatformMonitor = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, ptr }
%struct.ImGuiNavItemData = type { ptr, i32, i32, %struct.ImRect, i32, float, float, float }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.26, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImPool.27 = type { %struct.ImVector.28, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, i32, i32, i32, [4 x i8], %struct.ImVector.5, %struct.ImVector.31, %struct.ImVector.31, i8, [3 x i8], i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ImStb::STB_TexteditState" = type { i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, float, %"struct.ImStb::StbUndoState" }
%"struct.ImStb::StbUndoState" = type { [99 x %"struct.ImStb::StbUndoRecord"], [999 x i16], i16, i16, i32, i32 }
%"struct.ImStb::StbUndoRecord" = type { i32, i32, i32, i32 }
%struct.ImGuiInputTextDeactivatedState = type { i32, %struct.ImVector.31 }
%struct.ImFont = type <{ %struct.ImVector.1, float, float, %struct.ImVector.5, %struct.ImVector.32, ptr, ptr, ptr, i16, i16, i16, i16, float, float, i8, [3 x i8], float, float, float, i32, [2 x i8], [2 x i8] }>
%struct.ImVector.32 = type { i32, i32, ptr }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImGuiDockContext = type <{ %struct.ImGuiStorage, %struct.ImVector.33, %struct.ImVector.34, i8, [7 x i8] }>
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImVector.35 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.31 }
%struct.ImChunkStream.36 = type { %struct.ImVector.31 }
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.19, i32, [4 x i8] }>
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiStackTool = type { i32, i32, i32, %struct.ImVector.38, i8, float }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImGuiWindow = type { ptr, ptr, i32, i32, i32, %struct.ImGuiWindowClass, ptr, i32, %struct.ImVec2, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, i16, i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, i32, float, float, %struct.ImGuiStorage, %struct.ImVector.3, float, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], [2 x %struct.ImVec2], i32, i32, i32, i8, i8, i16, %struct.ImGuiWindowDockStyle, ptr, ptr, i32, i32, %struct.ImRect }
%struct.ImGuiWindowTempData = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, %struct.ImVec2, i32, i16, i16, i8, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.0, ptr, ptr, i32, i32, i32, float, float, %struct.ImVector.1, %struct.ImVector.1 }
%struct.ImVec1 = type { float }
%struct.ImGuiMenuColumns = type <{ i32, i32, i16, i16, i16, i16, i16, [4 x i16], [2 x i8] }>
%struct.ImVec2ih = type { i16, i16 }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.4, %struct.ImVector.5, %struct.ImVector.6, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.10 }
%struct.ImGuiWindowDockStyle = type { [6 x i32] }
%struct.ImGuiDockNode = type <{ i32, i32, i32, i32, i32, i32, ptr, [2 x ptr], %struct.ImVector.0, ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i32, %struct.ImGuiWindowClass, i32, [4 x i8], ptr, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i16, i8, [5 x i8] }>

@GImGui = external global ptr, align 8
@.str.4 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [47 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui9TabItemExEP11ImGuiTabBarPKcPbiP11ImGuiWindow = external hidden unnamed_addr constant [93 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.189 = external hidden unnamed_addr constant [72 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: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #1

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

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

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

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

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

declare noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, ptr noundef, i32 noundef) #4

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

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

; 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> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #3

declare noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef, float noundef) #4

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

declare noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef) #4

declare void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef, ptr noundef) #4

declare void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) #4

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

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

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

declare noundef zeroext i1 @_ZN5ImGui15IsMouseDraggingEif(i32 noundef, float noundef) #4

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

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

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

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

declare void @_ZN5ImGui11PopClipRectEv() #4

declare noundef i32 @_ZN5ImGui13GetIDWithSeedEPKcS1_j(ptr noundef, ptr noundef, i32 noundef) #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui17TabBarFindTabByIDEP11ImGuiTabBarj(ptr noundef, i32 noundef) #10

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui14TabBarCloseTabEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef, ptr noundef) #10

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui30TabBarQueueReorderFromMousePosEP11ImGuiTabBarP12ImGuiTabItem6ImVec2(ptr noundef, ptr noundef, <2 x float>) #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN5ImGui17TabBarGetTabOrderEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef, ptr noundef) #11

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

72:                                               ; preds = %5
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #12
  %73 = load ptr, ptr %12, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.ImGuiContext, ptr %73, i32 0, i32 77
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %13, ptr align 8 %74, i64 24, i1 false), !tbaa.struct !23
  %75 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN5ImGuiL12TabBarLayoutEP11ImGuiTabBar(ptr noundef %75)
  %76 = load ptr, ptr %12, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.ImGuiContext, ptr %76, i32 0, i32 77
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %77, ptr align 4 %13, i64 21, i1 false), !tbaa.struct !23
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #12
  br label %78

78:                                               ; preds = %72, %5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #12
  %79 = load ptr, ptr %12, align 8, !tbaa !5
  %80 = getelementptr inbounds %struct.ImGuiContext, ptr %79, i32 0, i32 33
  %81 = load ptr, ptr %80, align 8, !tbaa !26
  store ptr %81, ptr %14, align 8, !tbaa !5
  %82 = load ptr, ptr %14, align 8, !tbaa !5
  %83 = getelementptr inbounds %struct.ImGuiWindow, ptr %82, i32 0, i32 43
  %84 = load i8, ptr %83, align 8, !tbaa !94, !range !21, !noundef !22
  %85 = trunc i8 %84 to i1
  br i1 %85, label %86, label %87

86:                                               ; preds = %78
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1014

87:                                               ; preds = %78
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #12
  %88 = load ptr, ptr %12, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct.ImGuiContext, ptr %88, i32 0, i32 4
  store ptr %89, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #12
  %90 = load ptr, ptr %7, align 8, !tbaa !5
  %91 = load ptr, ptr %8, align 8, !tbaa !5
  %92 = load ptr, ptr %11, align 8, !tbaa !5
  %93 = call noundef i32 @_ZN5ImGuiL15TabBarCalcTabIDEP11ImGuiTabBarPKcP11ImGuiWindow(ptr noundef %90, ptr noundef %91, ptr noundef %92)
  store i32 %93, ptr %17, align 4, !tbaa !9
  %94 = load ptr, ptr %12, align 8, !tbaa !5
  %95 = load ptr, ptr %9, align 8, !tbaa !5
  %96 = icmp ne ptr %95, null
  br i1 %96, label %97, label %104

97:                                               ; preds = %87
  %98 = load ptr, ptr %9, align 8, !tbaa !5
  %99 = load i8, ptr %98, align 1, !tbaa !25, !range !21, !noundef !22
  %100 = trunc i8 %99 to i1
  br i1 %100, label %104, label %101

101:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #12
  call void @_ZN6ImRectC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %18)
  %102 = load i32, ptr %17, align 4, !tbaa !9
  %103 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %18, i32 noundef %102, ptr noundef null, i32 noundef 8)
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #12
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1013

104:                                              ; preds = %97, %87
  %105 = load ptr, ptr %9, align 8, !tbaa !5
  %106 = icmp ne ptr %105, null
  br i1 %106, label %107, label %112

107:                                              ; preds = %104
  %108 = load i32, ptr %10, align 4, !tbaa !9
  %109 = and i32 %108, 2097152
  %110 = icmp ne i32 %109, 0
  %111 = xor i1 %110, true
  br label %112

112:                                              ; preds = %107, %104
  %113 = phi i1 [ true, %104 ], [ %111, %107 ]
  br i1 %113, label %114, label %115

114:                                              ; preds = %112
  br label %117

115:                                              ; preds = %112
  call void @__assert_fail(ptr noundef @.str.184, ptr noundef @.str.4, i32 noundef 8353, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui9TabItemExEP11ImGuiTabBarPKcPbiP11ImGuiWindow) #13
  unreachable

116:                                              ; No predecessors!
  br label %117

117:                                              ; preds = %116, %114
  %118 = load i32, ptr %10, align 4, !tbaa !9
  %119 = and i32 %118, 192
  %120 = icmp ne i32 %119, 192
  br i1 %120, label %121, label %122

121:                                              ; preds = %117
  br label %124

122:                                              ; preds = %117
  call void @__assert_fail(ptr noundef @.str.185, ptr noundef @.str.4, i32 noundef 8354, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui9TabItemExEP11ImGuiTabBarPKcPbiP11ImGuiWindow) #13
  unreachable

123:                                              ; No predecessors!
  br label %124

124:                                              ; preds = %123, %121
  %125 = load i32, ptr %10, align 4, !tbaa !9
  %126 = and i32 %125, 1048576
  %127 = icmp ne i32 %126, 0
  br i1 %127, label %128, label %129

128:                                              ; preds = %124
  store ptr null, ptr %9, align 8, !tbaa !5
  br label %136

129:                                              ; preds = %124
  %130 = load ptr, ptr %9, align 8, !tbaa !5
  %131 = icmp eq ptr %130, null
  br i1 %131, label %132, label %135

132:                                              ; preds = %129
  %133 = load i32, ptr %10, align 4, !tbaa !9
  %134 = or i32 %133, 1048576
  store i32 %134, ptr %10, align 4, !tbaa !9
  br label %135

135:                                              ; preds = %132, %129
  br label %136

136:                                              ; preds = %135, %128
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #12
  %137 = load ptr, ptr %7, align 8, !tbaa !5
  %138 = load i32, ptr %17, align 4, !tbaa !9
  %139 = call noundef ptr @_ZN5ImGui17TabBarFindTabByIDEP11ImGuiTabBarj(ptr noundef %137, i32 noundef %138)
  store ptr %139, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #12
  store i8 0, ptr %20, align 1, !tbaa !25
  %140 = load ptr, ptr %19, align 8, !tbaa !5
  %141 = icmp eq ptr %140, null
  br i1 %141, label %142, label %153

142:                                              ; preds = %136
  %143 = load ptr, ptr %7, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.ImGuiTabBar, ptr %143, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 56, ptr %21) #12
  call void @_ZN12ImGuiTabItemC2Ev(ptr noundef nonnull align 8 dereferenceable(49) %21)
  call void @_ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %144, ptr noundef nonnull align 8 dereferenceable(49) %21)
  call void @llvm.lifetime.end.p0(i64 56, ptr %21) #12
  %145 = load ptr, ptr %7, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.ImGuiTabBar, ptr %145, i32 0, i32 0
  %147 = call noundef nonnull align 8 dereferenceable(49) ptr @_ZN8ImVectorI12ImGuiTabItemE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %146)
  store ptr %147, ptr %19, align 8, !tbaa !5
  %148 = load i32, ptr %17, align 4, !tbaa !9
  %149 = load ptr, ptr %19, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.ImGuiTabItem, ptr %149, i32 0, i32 0
  store i32 %148, ptr %150, align 8, !tbaa !109
  store i8 1, ptr %20, align 1, !tbaa !25
  %151 = load ptr, ptr %7, align 8, !tbaa !5
  %152 = getelementptr inbounds %struct.ImGuiTabBar, ptr %151, i32 0, i32 24
  store i8 1, ptr %152, align 1, !tbaa !111
  br label %153

153:                                              ; preds = %142, %136
  %154 = load ptr, ptr %7, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.ImGuiTabBar, ptr %154, i32 0, i32 0
  %156 = load ptr, ptr %19, align 8, !tbaa !5
  %157 = call noundef i32 @_ZNK8ImVectorI12ImGuiTabItemE14index_from_ptrEPKS0_(ptr noundef nonnull align 8 dereferenceable(16) %155, ptr noundef %156)
  %158 = trunc i32 %157 to i16
  %159 = load ptr, ptr %7, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.ImGuiTabBar, ptr %159, i32 0, i32 26
  store i16 %158, ptr %160, align 8, !tbaa !112
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #12
  %161 = load ptr, ptr %8, align 8, !tbaa !5
  %162 = load ptr, ptr %9, align 8, !tbaa !5
  %163 = icmp ne ptr %162, null
  br i1 %163, label %168, label %164

164:                                              ; preds = %153
  %165 = load i32, ptr %10, align 4, !tbaa !9
  %166 = and i32 %165, 1
  %167 = icmp ne i32 %166, 0
  br label %168

168:                                              ; preds = %164, %153
  %169 = phi i1 [ true, %153 ], [ %167, %164 ]
  %170 = call <2 x float> @_ZN5ImGui15TabItemCalcSizeEPKcb(ptr noundef %161, i1 noundef zeroext %169)
  store <2 x float> %170, ptr %22, align 4
  %171 = load ptr, ptr %19, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.ImGuiTabItem, ptr %171, i32 0, i32 8
  store float -1.000000e+00, ptr %172, align 4, !tbaa !113
  %173 = load ptr, ptr %12, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.ImGuiContext, ptr %173, i32 0, i32 77
  %175 = getelementptr inbounds %struct.ImGuiNextItemData, ptr %174, i32 0, i32 0
  %176 = load i32, ptr %175, align 8, !tbaa !114
  %177 = and i32 %176, 1
  %178 = icmp ne i32 %177, 0
  br i1 %178, label %179, label %187

179:                                              ; preds = %168
  %180 = load ptr, ptr %12, align 8, !tbaa !5
  %181 = getelementptr inbounds %struct.ImGuiContext, ptr %180, i32 0, i32 77
  %182 = getelementptr inbounds %struct.ImGuiNextItemData, ptr %181, i32 0, i32 2
  %183 = load float, ptr %182, align 8, !tbaa !115
  %184 = load ptr, ptr %19, align 8, !tbaa !5
  %185 = getelementptr inbounds %struct.ImGuiTabItem, ptr %184, i32 0, i32 8
  store float %183, ptr %185, align 4, !tbaa !113
  %186 = getelementptr inbounds %struct.ImVec2, ptr %22, i32 0, i32 0
  store float %183, ptr %186, align 4, !tbaa !116
  br label %187

187:                                              ; preds = %179, %168
  %188 = load i8, ptr %20, align 1, !tbaa !25, !range !21, !noundef !22
  %189 = trunc i8 %188 to i1
  br i1 %189, label %190, label %196

190:                                              ; preds = %187
  %191 = getelementptr inbounds %struct.ImVec2, ptr %22, i32 0, i32 0
  %192 = load float, ptr %191, align 4, !tbaa !116
  %193 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %192)
  %194 = load ptr, ptr %19, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.ImGuiTabItem, ptr %194, i32 0, i32 6
  store float %193, ptr %195, align 4, !tbaa !117
  br label %196

196:                                              ; preds = %190, %187
  %197 = getelementptr inbounds %struct.ImVec2, ptr %22, i32 0, i32 0
  %198 = load float, ptr %197, align 4, !tbaa !116
  %199 = load ptr, ptr %19, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.ImGuiTabItem, ptr %199, i32 0, i32 7
  store float %198, ptr %200, align 8, !tbaa !118
  %201 = load ptr, ptr %7, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.ImGuiTabBar, ptr %201, i32 0, i32 25
  %203 = load i16, ptr %202, align 2, !tbaa !119
  %204 = add i16 %203, 1
  store i16 %204, ptr %202, align 2, !tbaa !119
  %205 = load ptr, ptr %19, align 8, !tbaa !5
  %206 = getelementptr inbounds %struct.ImGuiTabItem, ptr %205, i32 0, i32 10
  store i16 %203, ptr %206, align 4, !tbaa !120
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #12
  %207 = load ptr, ptr %7, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.ImGuiTabBar, ptr %207, i32 0, i32 7
  %209 = load i32, ptr %208, align 8, !tbaa !121
  %210 = add nsw i32 %209, 1
  %211 = load ptr, ptr %12, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.ImGuiContext, ptr %211, i32 0, i32 12
  %213 = load i32, ptr %212, align 8, !tbaa !122
  %214 = icmp slt i32 %210, %213
  %215 = zext i1 %214 to i8
  store i8 %215, ptr %23, align 1, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #12
  %216 = load ptr, ptr %7, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.ImGuiTabBar, ptr %216, i32 0, i32 1
  %218 = load i32, ptr %217, align 8, !tbaa !123
  %219 = and i32 %218, 2097152
  %220 = icmp ne i32 %219, 0
  %221 = zext i1 %220 to i8
  store i8 %221, ptr %24, align 1, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #12
  %222 = load ptr, ptr %19, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.ImGuiTabItem, ptr %222, i32 0, i32 3
  %224 = load i32, ptr %223, align 8, !tbaa !124
  %225 = add nsw i32 %224, 1
  %226 = load ptr, ptr %12, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.ImGuiContext, ptr %226, i32 0, i32 12
  %228 = load i32, ptr %227, align 8, !tbaa !122
  %229 = icmp slt i32 %225, %228
  %230 = zext i1 %229 to i8
  store i8 %230, ptr %25, align 1, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #12
  %231 = load i32, ptr %10, align 4, !tbaa !9
  %232 = and i32 %231, 1
  %233 = icmp ne i32 %232, 0
  br i1 %233, label %234, label %241

234:                                              ; preds = %196
  %235 = load ptr, ptr %19, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.ImGuiTabItem, ptr %235, i32 0, i32 1
  %237 = load i32, ptr %236, align 4, !tbaa !125
  %238 = and i32 %237, 1
  %239 = icmp ne i32 %238, 0
  %240 = xor i1 %239, true
  br label %241

241:                                              ; preds = %234, %196
  %242 = phi i1 [ false, %196 ], [ %240, %234 ]
  %243 = zext i1 %242 to i8
  store i8 %243, ptr %26, align 1, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #12
  %244 = load i32, ptr %10, align 4, !tbaa !9
  %245 = and i32 %244, 2097152
  %246 = icmp ne i32 %245, 0
  %247 = zext i1 %246 to i8
  store i8 %247, ptr %27, align 1, !tbaa !25
  %248 = load ptr, ptr %12, align 8, !tbaa !5
  %249 = getelementptr inbounds %struct.ImGuiContext, ptr %248, i32 0, i32 12
  %250 = load i32, ptr %249, align 8, !tbaa !122
  %251 = load ptr, ptr %19, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.ImGuiTabItem, ptr %251, i32 0, i32 3
  store i32 %250, ptr %252, align 8, !tbaa !124
  %253 = load i32, ptr %10, align 4, !tbaa !9
  %254 = load ptr, ptr %19, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct.ImGuiTabItem, ptr %254, i32 0, i32 1
  store i32 %253, ptr %255, align 4, !tbaa !125
  %256 = load ptr, ptr %11, align 8, !tbaa !5
  %257 = load ptr, ptr %19, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct.ImGuiTabItem, ptr %257, i32 0, i32 2
  store ptr %256, ptr %258, align 8, !tbaa !126
  %259 = load ptr, ptr %11, align 8, !tbaa !5
  %260 = icmp ne ptr %259, null
  br i1 %260, label %261, label %273

261:                                              ; preds = %241
  %262 = load ptr, ptr %7, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.ImGuiTabBar, ptr %262, i32 0, i32 1
  %264 = load i32, ptr %263, align 8, !tbaa !123
  %265 = and i32 %264, 1048576
  %266 = icmp ne i32 %265, 0
  br i1 %266, label %267, label %268

267:                                              ; preds = %261
  br label %270

268:                                              ; preds = %261
  call void @__assert_fail(ptr noundef @.str.186, ptr noundef @.str.4, i32 noundef 8397, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui9TabItemExEP11ImGuiTabBarPKcPbiP11ImGuiWindow) #13
  unreachable

269:                                              ; No predecessors!
  br label %270

270:                                              ; preds = %269, %267
  %271 = load ptr, ptr %19, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.ImGuiTabItem, ptr %271, i32 0, i32 9
  store i32 -1, ptr %272, align 8, !tbaa !127
  br label %287

273:                                              ; preds = %241
  %274 = load ptr, ptr %7, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.ImGuiTabBar, ptr %274, i32 0, i32 30
  %276 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %275)
  %277 = load ptr, ptr %19, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.ImGuiTabItem, ptr %277, i32 0, i32 9
  store i32 %276, ptr %278, align 8, !tbaa !127
  %279 = load ptr, ptr %7, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.ImGuiTabBar, ptr %279, i32 0, i32 30
  %281 = load ptr, ptr %8, align 8, !tbaa !5
  %282 = load ptr, ptr %8, align 8, !tbaa !5
  %283 = load ptr, ptr %8, align 8, !tbaa !5
  %284 = call i64 @strlen(ptr noundef %283) #14
  %285 = getelementptr inbounds i8, ptr %282, i64 %284
  %286 = getelementptr inbounds i8, ptr %285, i64 1
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %280, ptr noundef %281, ptr noundef %286)
  br label %287

287:                                              ; preds = %273, %270
  %288 = load i8, ptr %27, align 1, !tbaa !25, !range !21, !noundef !22
  %289 = trunc i8 %288 to i1
  br i1 %289, label %330, label %290

290:                                              ; preds = %287
  %291 = load i8, ptr %25, align 1, !tbaa !25, !range !21, !noundef !22
  %292 = trunc i8 %291 to i1
  br i1 %292, label %293, label %316

293:                                              ; preds = %290
  %294 = load ptr, ptr %7, align 8, !tbaa !5
  %295 = getelementptr inbounds %struct.ImGuiTabBar, ptr %294, i32 0, i32 1
  %296 = load i32, ptr %295, align 8, !tbaa !123
  %297 = and i32 %296, 2
  %298 = icmp ne i32 %297, 0
  br i1 %298, label %299, label %316

299:                                              ; preds = %293
  %300 = load ptr, ptr %7, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.ImGuiTabBar, ptr %300, i32 0, i32 4
  %302 = load i32, ptr %301, align 4, !tbaa !128
  %303 = icmp eq i32 %302, 0
  br i1 %303, label %304, label %316

304:                                              ; preds = %299
  %305 = load i8, ptr %23, align 1, !tbaa !25, !range !21, !noundef !22
  %306 = trunc i8 %305 to i1
  br i1 %306, label %307, label %312

307:                                              ; preds = %304
  %308 = load ptr, ptr %7, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.ImGuiTabBar, ptr %308, i32 0, i32 3
  %310 = load i32, ptr %309, align 8, !tbaa !129
  %311 = icmp eq i32 %310, 0
  br i1 %311, label %312, label %315

312:                                              ; preds = %307, %304
  %313 = load ptr, ptr %7, align 8, !tbaa !5
  %314 = load ptr, ptr %19, align 8, !tbaa !5
  call void @_ZN5ImGui16TabBarQueueFocusEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef %313, ptr noundef %314)
  br label %315

315:                                              ; preds = %312, %307
  br label %316

316:                                              ; preds = %315, %299, %293, %290
  %317 = load i32, ptr %10, align 4, !tbaa !9
  %318 = and i32 %317, 2
  %319 = icmp ne i32 %318, 0
  br i1 %319, label %320, label %329

320:                                              ; preds = %316
  %321 = load ptr, ptr %7, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.ImGuiTabBar, ptr %321, i32 0, i32 3
  %323 = load i32, ptr %322, align 8, !tbaa !129
  %324 = load i32, ptr %17, align 4, !tbaa !9
  %325 = icmp ne i32 %323, %324
  br i1 %325, label %326, label %329

326:                                              ; preds = %320
  %327 = load ptr, ptr %7, align 8, !tbaa !5
  %328 = load ptr, ptr %19, align 8, !tbaa !5
  call void @_ZN5ImGui16TabBarQueueFocusEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef %327, ptr noundef %328)
  br label %329

329:                                              ; preds = %326, %320, %316
  br label %330

330:                                              ; preds = %329, %287
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #12
  %331 = load ptr, ptr %7, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.ImGuiTabBar, ptr %331, i32 0, i32 5
  %333 = load i32, ptr %332, align 8, !tbaa !130
  %334 = load i32, ptr %17, align 4, !tbaa !9
  %335 = icmp eq i32 %333, %334
  %336 = zext i1 %335 to i8
  store i8 %336, ptr %28, align 1, !tbaa !25
  %337 = load i8, ptr %28, align 1, !tbaa !25, !range !21, !noundef !22
  %338 = trunc i8 %337 to i1
  br i1 %338, label %339, label %342

339:                                              ; preds = %330
  %340 = load ptr, ptr %7, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.ImGuiTabBar, ptr %340, i32 0, i32 23
  store i8 1, ptr %341, align 4, !tbaa !131
  br label %342

342:                                              ; preds = %339, %330
  %343 = load i8, ptr %28, align 1, !tbaa !25, !range !21, !noundef !22
  %344 = trunc i8 %343 to i1
  br i1 %344, label %370, label %345

345:                                              ; preds = %342
  %346 = load ptr, ptr %7, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.ImGuiTabBar, ptr %346, i32 0, i32 3
  %348 = load i32, ptr %347, align 8, !tbaa !129
  %349 = icmp eq i32 %348, 0
  br i1 %349, label %350, label %370

350:                                              ; preds = %345
  %351 = load i8, ptr %23, align 1, !tbaa !25, !range !21, !noundef !22
  %352 = trunc i8 %351 to i1
  br i1 %352, label %353, label %370

353:                                              ; preds = %350
  %354 = load ptr, ptr %11, align 8, !tbaa !5
  %355 = icmp eq ptr %354, null
  br i1 %355, label %356, label %370

356:                                              ; preds = %353
  %357 = load ptr, ptr %7, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.ImGuiTabBar, ptr %357, i32 0, i32 0
  %359 = getelementptr inbounds %struct.ImVector.45, ptr %358, i32 0, i32 0
  %360 = load i32, ptr %359, align 8, !tbaa !132
  %361 = icmp eq i32 %360, 1
  br i1 %361, label %362, label %369

362:                                              ; preds = %356
  %363 = load ptr, ptr %7, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.ImGuiTabBar, ptr %363, i32 0, i32 1
  %365 = load i32, ptr %364, align 8, !tbaa !123
  %366 = and i32 %365, 2
  %367 = icmp ne i32 %366, 0
  br i1 %367, label %369, label %368

368:                                              ; preds = %362
  store i8 1, ptr %28, align 1, !tbaa !25
  br label %369

369:                                              ; preds = %368, %362, %356
  br label %370

370:                                              ; preds = %369, %353, %350, %345, %342
  %371 = load i8, ptr %25, align 1, !tbaa !25, !range !21, !noundef !22
  %372 = trunc i8 %371 to i1
  br i1 %372, label %373, label %388

373:                                              ; preds = %370
  %374 = load i8, ptr %23, align 1, !tbaa !25, !range !21, !noundef !22
  %375 = trunc i8 %374 to i1
  br i1 %375, label %376, label %379

376:                                              ; preds = %373
  %377 = load i8, ptr %20, align 1, !tbaa !25, !range !21, !noundef !22
  %378 = trunc i8 %377 to i1
  br i1 %378, label %379, label %388

379:                                              ; preds = %376, %373
  call void @llvm.lifetime.start.p0(i64 16, ptr %29) #12
  call void @_ZN6ImRectC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %29)
  %380 = load i32, ptr %17, align 4, !tbaa !9
  %381 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %29, i32 noundef %380, ptr noundef null, i32 noundef 8)
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #12
  %382 = load i8, ptr %27, align 1, !tbaa !25, !range !21, !noundef !22
  %383 = trunc i8 %382 to i1
  br i1 %383, label %384, label %385

384:                                              ; preds = %379
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1012

385:                                              ; preds = %379
  %386 = load i8, ptr %28, align 1, !tbaa !25, !range !21, !noundef !22
  %387 = trunc i8 %386 to i1
  store i1 %387, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1012

388:                                              ; preds = %376, %370
  %389 = load ptr, ptr %7, align 8, !tbaa !5
  %390 = getelementptr inbounds %struct.ImGuiTabBar, ptr %389, i32 0, i32 3
  %391 = load i32, ptr %390, align 8, !tbaa !129
  %392 = load i32, ptr %17, align 4, !tbaa !9
  %393 = icmp eq i32 %391, %392
  br i1 %393, label %394, label %400

394:                                              ; preds = %388
  %395 = load ptr, ptr %12, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.ImGuiContext, ptr %395, i32 0, i32 12
  %397 = load i32, ptr %396, align 8, !tbaa !122
  %398 = load ptr, ptr %19, align 8, !tbaa !5
  %399 = getelementptr inbounds %struct.ImGuiTabItem, ptr %398, i32 0, i32 4
  store i32 %397, ptr %399, align 4, !tbaa !133
  br label %400

400:                                              ; preds = %394, %388
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #12
  %401 = load ptr, ptr %14, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.ImGuiWindow, ptr %401, i32 0, i32 69
  %403 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %402, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %30, ptr align 8 %403, i64 8, i1 false), !tbaa.struct !134
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #12
  %404 = load ptr, ptr %19, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.ImGuiTabItem, ptr %404, i32 0, i32 1
  %406 = load i32, ptr %405, align 4, !tbaa !125
  %407 = and i32 %406, 192
  %408 = icmp eq i32 %407, 0
  %409 = zext i1 %408 to i8
  store i8 %409, ptr %31, align 1, !tbaa !25
  %410 = load ptr, ptr %19, align 8, !tbaa !5
  %411 = getelementptr inbounds %struct.ImGuiTabItem, ptr %410, i32 0, i32 6
  %412 = load float, ptr %411, align 4, !tbaa !117
  %413 = getelementptr inbounds %struct.ImVec2, ptr %22, i32 0, i32 0
  store float %412, ptr %413, align 4, !tbaa !116
  %414 = load i8, ptr %31, align 1, !tbaa !25, !range !21, !noundef !22
  %415 = trunc i8 %414 to i1
  br i1 %415, label %416, label %433

416:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #12
  %417 = load ptr, ptr %7, align 8, !tbaa !5
  %418 = getelementptr inbounds %struct.ImGuiTabBar, ptr %417, i32 0, i32 8
  %419 = getelementptr inbounds %struct.ImRect, ptr %418, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #12
  %420 = load ptr, ptr %19, align 8, !tbaa !5
  %421 = getelementptr inbounds %struct.ImGuiTabItem, ptr %420, i32 0, i32 5
  %422 = load float, ptr %421, align 8, !tbaa !135
  %423 = load ptr, ptr %7, align 8, !tbaa !5
  %424 = getelementptr inbounds %struct.ImGuiTabBar, ptr %423, i32 0, i32 13
  %425 = load float, ptr %424, align 4, !tbaa !136
  %426 = fsub float %422, %425
  %427 = fptosi float %426 to i32
  %428 = sitofp i32 %427 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef %428, float noundef 0.000000e+00)
  %429 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %419, ptr noundef nonnull align 4 dereferenceable(8) %33)
  store <2 x float> %429, ptr %32, align 4
  %430 = load ptr, ptr %14, align 8, !tbaa !5
  %431 = getelementptr inbounds %struct.ImGuiWindow, ptr %430, i32 0, i32 69
  %432 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %431, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %432, ptr align 4 %32, i64 8, i1 false), !tbaa.struct !134
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #12
  br label %444

433:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #12
  %434 = load ptr, ptr %7, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.ImGuiTabBar, ptr %434, i32 0, i32 8
  %436 = getelementptr inbounds %struct.ImRect, ptr %435, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #12
  %437 = load ptr, ptr %19, align 8, !tbaa !5
  %438 = getelementptr inbounds %struct.ImGuiTabItem, ptr %437, i32 0, i32 5
  %439 = load float, ptr %438, align 8, !tbaa !135
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %35, float noundef %439, float noundef 0.000000e+00)
  %440 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %436, ptr noundef nonnull align 4 dereferenceable(8) %35)
  store <2 x float> %440, ptr %34, align 4
  %441 = load ptr, ptr %14, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.ImGuiWindow, ptr %441, i32 0, i32 69
  %443 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %442, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %443, ptr align 4 %34, i64 8, i1 false), !tbaa.struct !134
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #12
  br label %444

444:                                              ; preds = %433, %416
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #12
  %445 = load ptr, ptr %14, align 8, !tbaa !5
  %446 = getelementptr inbounds %struct.ImGuiWindow, ptr %445, i32 0, i32 69
  %447 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %446, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %36, ptr align 8 %447, i64 8, i1 false), !tbaa.struct !134
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #12
  %448 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %36, ptr noundef nonnull align 4 dereferenceable(8) %22)
  store <2 x float> %448, ptr %38, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %37, ptr noundef nonnull align 4 dereferenceable(8) %36, ptr noundef nonnull align 4 dereferenceable(8) %38)
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #12
  %449 = load i8, ptr %31, align 1, !tbaa !25, !range !21, !noundef !22
  %450 = trunc i8 %449 to i1
  br i1 %450, label %451, label %469

451:                                              ; preds = %444
  %452 = getelementptr inbounds %struct.ImRect, ptr %37, i32 0, i32 0
  %453 = getelementptr inbounds %struct.ImVec2, ptr %452, i32 0, i32 0
  %454 = load float, ptr %453, align 4, !tbaa !137
  %455 = load ptr, ptr %7, align 8, !tbaa !5
  %456 = getelementptr inbounds %struct.ImGuiTabBar, ptr %455, i32 0, i32 17
  %457 = load float, ptr %456, align 4, !tbaa !138
  %458 = fcmp olt float %454, %457
  br i1 %458, label %467, label %459

459:                                              ; preds = %451
  %460 = getelementptr inbounds %struct.ImRect, ptr %37, i32 0, i32 1
  %461 = getelementptr inbounds %struct.ImVec2, ptr %460, i32 0, i32 0
  %462 = load float, ptr %461, align 4, !tbaa !139
  %463 = load ptr, ptr %7, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.ImGuiTabBar, ptr %463, i32 0, i32 18
  %465 = load float, ptr %464, align 8, !tbaa !140
  %466 = fcmp ogt float %462, %465
  br label %467

467:                                              ; preds = %459, %451
  %468 = phi i1 [ true, %451 ], [ %466, %459 ]
  br label %469

469:                                              ; preds = %467, %444
  %470 = phi i1 [ false, %444 ], [ %468, %467 ]
  %471 = zext i1 %470 to i8
  store i8 %471, ptr %39, align 1, !tbaa !25
  %472 = load i8, ptr %39, align 1, !tbaa !25, !range !21, !noundef !22
  %473 = trunc i8 %472 to i1
  br i1 %473, label %474, label %492

474:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #12
  %475 = getelementptr inbounds %struct.ImRect, ptr %37, i32 0, i32 0
  %476 = getelementptr inbounds %struct.ImVec2, ptr %475, i32 0, i32 0
  %477 = load float, ptr %476, align 4, !tbaa !137
  %478 = load ptr, ptr %7, align 8, !tbaa !5
  %479 = getelementptr inbounds %struct.ImGuiTabBar, ptr %478, i32 0, i32 17
  %480 = load float, ptr %479, align 4, !tbaa !138
  %481 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %477, float noundef %480)
  %482 = getelementptr inbounds %struct.ImRect, ptr %37, i32 0, i32 0
  %483 = getelementptr inbounds %struct.ImVec2, ptr %482, i32 0, i32 1
  %484 = load float, ptr %483, align 4, !tbaa !141
  %485 = fsub float %484, 1.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %40, float noundef %481, float noundef %485)
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #12
  %486 = load ptr, ptr %7, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.ImGuiTabBar, ptr %486, i32 0, i32 18
  %488 = load float, ptr %487, align 8, !tbaa !140
  %489 = getelementptr inbounds %struct.ImRect, ptr %37, i32 0, i32 1
  %490 = getelementptr inbounds %struct.ImVec2, ptr %489, i32 0, i32 1
  %491 = load float, ptr %490, align 4, !tbaa !142
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef %488, float noundef %491)
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(8) %41, i1 noundef zeroext true)
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #12
  br label %492

492:                                              ; preds = %474, %469
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #12
  %493 = load ptr, ptr %14, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.ImGuiWindow, ptr %493, i32 0, i32 69
  %495 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %494, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %42, ptr align 8 %495, i64 8, i1 false), !tbaa.struct !134
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #12
  %496 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %37)
  store <2 x float> %496, ptr %43, align 4
  %497 = load ptr, ptr %16, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.ImGuiStyle, ptr %497, i32 0, i32 12
  %499 = getelementptr inbounds %struct.ImVec2, ptr %498, i32 0, i32 1
  %500 = load float, ptr %499, align 4, !tbaa !143
  call void @_ZN5ImGui8ItemSizeERK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %43, float noundef %500)
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #12
  %501 = load ptr, ptr %14, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.ImGuiWindow, ptr %501, i32 0, i32 69
  %503 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %502, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %503, ptr align 4 %42, i64 8, i1 false), !tbaa.struct !134
  %504 = load i32, ptr %17, align 4, !tbaa !9
  %505 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %37, i32 noundef %504, ptr noundef null, i32 noundef 0)
  br i1 %505, label %516, label %506

506:                                              ; preds = %492
  %507 = load i8, ptr %39, align 1, !tbaa !25, !range !21, !noundef !22
  %508 = trunc i8 %507 to i1
  br i1 %508, label %509, label %510

509:                                              ; preds = %506
  call void @_ZN5ImGui11PopClipRectEv()
  br label %510

510:                                              ; preds = %509, %506
  %511 = load ptr, ptr %14, align 8, !tbaa !5
  %512 = getelementptr inbounds %struct.ImGuiWindow, ptr %511, i32 0, i32 69
  %513 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %512, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %513, ptr align 4 %30, i64 8, i1 false), !tbaa.struct !134
  %514 = load i8, ptr %28, align 1, !tbaa !25, !range !21, !noundef !22
  %515 = trunc i8 %514 to i1
  store i1 %515, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1011

516:                                              ; preds = %492
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #12
  %517 = load i8, ptr %27, align 1, !tbaa !25, !range !21, !noundef !22
  %518 = trunc i8 %517 to i1
  %519 = zext i1 %518 to i64
  %520 = select i1 %518, i32 32, i32 16
  %521 = or i32 %520, 4096
  store i32 %521, ptr %44, align 4, !tbaa !9
  %522 = load ptr, ptr %12, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.ImGuiContext, ptr %522, i32 0, i32 150
  %524 = load i8, ptr %523, align 8, !tbaa !144, !range !21, !noundef !22
  %525 = trunc i8 %524 to i1
  br i1 %525, label %526, label %533

526:                                              ; preds = %516
  %527 = load ptr, ptr %12, align 8, !tbaa !5
  %528 = getelementptr inbounds %struct.ImGuiContext, ptr %527, i32 0, i32 156
  %529 = call noundef zeroext i1 @_ZNK12ImGuiPayload10IsDataTypeEPKc(ptr noundef nonnull align 8 dereferenceable(59) %528, ptr noundef @.str.187)
  br i1 %529, label %533, label %530

530:                                              ; preds = %526
  %531 = load i32, ptr %44, align 4, !tbaa !9
  %532 = or i32 %531, 512
  store i32 %532, ptr %44, align 4, !tbaa !9
  br label %533

533:                                              ; preds = %530, %526, %516
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #12
  %534 = load i32, ptr %17, align 4, !tbaa !9
  %535 = load i32, ptr %44, align 4, !tbaa !9
  %536 = call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %37, i32 noundef %534, ptr noundef %45, ptr noundef %46, i32 noundef %535)
  %537 = zext i1 %536 to i8
  store i8 %537, ptr %47, align 1, !tbaa !25
  %538 = load i8, ptr %47, align 1, !tbaa !25, !range !21, !noundef !22
  %539 = trunc i8 %538 to i1
  br i1 %539, label %540, label %546

540:                                              ; preds = %533
  %541 = load i8, ptr %27, align 1, !tbaa !25, !range !21, !noundef !22
  %542 = trunc i8 %541 to i1
  br i1 %542, label %546, label %543

543:                                              ; preds = %540
  %544 = load ptr, ptr %7, align 8, !tbaa !5
  %545 = load ptr, ptr %19, align 8, !tbaa !5
  call void @_ZN5ImGui16TabBarQueueFocusEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef %544, ptr noundef %545)
  br label %546

546:                                              ; preds = %543, %540, %533
  %547 = load i8, ptr %46, align 1, !tbaa !25, !range !21, !noundef !22
  %548 = trunc i8 %547 to i1
  br i1 %548, label %549, label %567

549:                                              ; preds = %546
  %550 = load ptr, ptr %11, align 8, !tbaa !5
  %551 = icmp ne ptr %550, null
  br i1 %551, label %552, label %567

552:                                              ; preds = %549
  %553 = load ptr, ptr %12, align 8, !tbaa !5
  %554 = getelementptr inbounds %struct.ImGuiContext, ptr %553, i32 0, i32 50
  %555 = load i32, ptr %554, align 8, !tbaa !145
  %556 = load i32, ptr %17, align 4, !tbaa !9
  %557 = icmp eq i32 %555, %556
  br i1 %557, label %558, label %567

558:                                              ; preds = %552
  %559 = load ptr, ptr %12, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.ImGuiContext, ptr %559, i32 0, i32 53
  %561 = load i8, ptr %560, align 4, !tbaa !146, !range !21, !noundef !22
  %562 = trunc i8 %561 to i1
  br i1 %562, label %563, label %567

563:                                              ; preds = %558
  %564 = load ptr, ptr %11, align 8, !tbaa !5
  %565 = load ptr, ptr %12, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.ImGuiContext, ptr %565, i32 0, i32 60
  store ptr %564, ptr %566, align 8, !tbaa !147
  br label %567

567:                                              ; preds = %563, %558, %552, %549, %546
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #12
  %568 = load ptr, ptr %11, align 8, !tbaa !5
  %569 = icmp ne ptr %568, null
  br i1 %569, label %570, label %574

570:                                              ; preds = %567
  %571 = load ptr, ptr %11, align 8, !tbaa !5
  %572 = getelementptr inbounds %struct.ImGuiWindow, ptr %571, i32 0, i32 108
  %573 = load ptr, ptr %572, align 8, !tbaa !148
  br label %575

574:                                              ; preds = %567
  br label %575

575:                                              ; preds = %574, %570
  %576 = phi ptr [ %573, %570 ], [ null, %574 ]
  store ptr %576, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #12
  %577 = load ptr, ptr %48, align 8, !tbaa !5
  %578 = icmp ne ptr %577, null
  br i1 %578, label %579, label %588

579:                                              ; preds = %575
  %580 = load ptr, ptr %48, align 8, !tbaa !5
  %581 = call noundef zeroext i1 @_ZNK13ImGuiDockNode14IsFloatingNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %580)
  br i1 %581, label %582, label %588

582:                                              ; preds = %579
  %583 = load ptr, ptr %48, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.ImGuiDockNode, ptr %583, i32 0, i32 8
  %585 = getelementptr inbounds %struct.ImVector.0, ptr %584, i32 0, i32 0
  %586 = load i32, ptr %585, align 8, !tbaa !149
  %587 = icmp eq i32 %586, 1
  br label %588

588:                                              ; preds = %582, %579, %575
  %589 = phi i1 [ false, %579 ], [ false, %575 ], [ %587, %582 ]
  %590 = zext i1 %589 to i8
  store i8 %590, ptr %49, align 1, !tbaa !25
  %591 = load i8, ptr %46, align 1, !tbaa !25, !range !21, !noundef !22
  %592 = trunc i8 %591 to i1
  br i1 %592, label %593, label %600

593:                                              ; preds = %588
  %594 = load i8, ptr %49, align 1, !tbaa !25, !range !21, !noundef !22
  %595 = trunc i8 %594 to i1
  br i1 %595, label %596, label %600

596:                                              ; preds = %593
  %597 = call noundef zeroext i1 @_ZN5ImGui15IsMouseDraggingEif(i32 noundef 0, float noundef 0.000000e+00)
  br i1 %597, label %598, label %600

598:                                              ; preds = %596
  %599 = load ptr, ptr %11, align 8, !tbaa !5
  call void @_ZN5ImGui22StartMouseMovingWindowEP11ImGuiWindow(ptr noundef %599)
  br label %820

600:                                              ; preds = %596, %593, %588
  %601 = load i8, ptr %46, align 1, !tbaa !25, !range !21, !noundef !22
  %602 = trunc i8 %601 to i1
  br i1 %602, label %603, label %819

603:                                              ; preds = %600
  %604 = load i8, ptr %25, align 1, !tbaa !25, !range !21, !noundef !22
  %605 = trunc i8 %604 to i1
  br i1 %605, label %819, label %606

606:                                              ; preds = %603
  %607 = call noundef zeroext i1 @_ZN5ImGui15IsMouseDraggingEif(i32 noundef 0, float noundef -1.000000e+00)
  br i1 %607, label %608, label %819

608:                                              ; preds = %606
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #12
  store i32 0, ptr %50, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #12
  store float 0.000000e+00, ptr %51, align 4, !tbaa !24
  %609 = load ptr, ptr %12, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.ImGuiContext, ptr %609, i32 0, i32 150
  %611 = load i8, ptr %610, align 8, !tbaa !144, !range !21, !noundef !22
  %612 = trunc i8 %611 to i1
  br i1 %612, label %690, label %613

613:                                              ; preds = %608
  %614 = load ptr, ptr %7, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.ImGuiTabBar, ptr %614, i32 0, i32 1
  %616 = load i32, ptr %615, align 8, !tbaa !123
  %617 = and i32 %616, 1
  %618 = icmp ne i32 %617, 0
  br i1 %618, label %622, label %619

619:                                              ; preds = %613
  %620 = load ptr, ptr %11, align 8, !tbaa !5
  %621 = icmp ne ptr %620, null
  br i1 %621, label %622, label %690

622:                                              ; preds = %619, %613
  %623 = load ptr, ptr %12, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.ImGuiContext, ptr %623, i32 0, i32 2
  %625 = getelementptr inbounds %struct.ImGuiIO, ptr %624, i32 0, i32 62
  %626 = getelementptr inbounds %struct.ImVec2, ptr %625, i32 0, i32 0
  %627 = load float, ptr %626, align 8, !tbaa !153
  %628 = fcmp olt float %627, 0.000000e+00
  br i1 %628, label %629, label %655

629:                                              ; preds = %622
  %630 = load ptr, ptr %12, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.ImGuiContext, ptr %630, i32 0, i32 2
  %632 = getelementptr inbounds %struct.ImGuiIO, ptr %631, i32 0, i32 67
  %633 = getelementptr inbounds %struct.ImVec2, ptr %632, i32 0, i32 0
  %634 = load float, ptr %633, align 8, !tbaa !154
  %635 = getelementptr inbounds %struct.ImRect, ptr %37, i32 0, i32 0
  %636 = getelementptr inbounds %struct.ImVec2, ptr %635, i32 0, i32 0
  %637 = load float, ptr %636, align 4, !tbaa !137
  %638 = fcmp olt float %634, %637
  br i1 %638, label %639, label %655

639:                                              ; preds = %629
  store i32 -1, ptr %50, align 4, !tbaa !9
  %640 = getelementptr inbounds %struct.ImRect, ptr %37, i32 0, i32 0
  %641 = getelementptr inbounds %struct.ImVec2, ptr %640, i32 0, i32 0
  %642 = load float, ptr %641, align 4, !tbaa !137
  %643 = load ptr, ptr %12, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.ImGuiContext, ptr %643, i32 0, i32 2
  %645 = getelementptr inbounds %struct.ImGuiIO, ptr %644, i32 0, i32 67
  %646 = getelementptr inbounds %struct.ImVec2, ptr %645, i32 0, i32 0
  %647 = load float, ptr %646, align 8, !tbaa !154
  %648 = fsub float %642, %647
  store float %648, ptr %51, align 4, !tbaa !24
  %649 = load ptr, ptr %7, align 8, !tbaa !5
  %650 = load ptr, ptr %19, align 8, !tbaa !5
  %651 = load ptr, ptr %12, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.ImGuiContext, ptr %651, i32 0, i32 2
  %653 = getelementptr inbounds %struct.ImGuiIO, ptr %652, i32 0, i32 67
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %52, ptr align 8 %653, i64 8, i1 false), !tbaa.struct !134
  %654 = load <2 x float>, ptr %52, align 4
  call void @_ZN5ImGui30TabBarQueueReorderFromMousePosEP11ImGuiTabBarP12ImGuiTabItem6ImVec2(ptr noundef %649, ptr noundef %650, <2 x float> %654)
  br label %689

655:                                              ; preds = %629, %622
  %656 = load ptr, ptr %12, align 8, !tbaa !5
  %657 = getelementptr inbounds %struct.ImGuiContext, ptr %656, i32 0, i32 2
  %658 = getelementptr inbounds %struct.ImGuiIO, ptr %657, i32 0, i32 62
  %659 = getelementptr inbounds %struct.ImVec2, ptr %658, i32 0, i32 0
  %660 = load float, ptr %659, align 8, !tbaa !153
  %661 = fcmp ogt float %660, 0.000000e+00
  br i1 %661, label %662, label %688

662:                                              ; preds = %655
  %663 = load ptr, ptr %12, align 8, !tbaa !5
  %664 = getelementptr inbounds %struct.ImGuiContext, ptr %663, i32 0, i32 2
  %665 = getelementptr inbounds %struct.ImGuiIO, ptr %664, i32 0, i32 67
  %666 = getelementptr inbounds %struct.ImVec2, ptr %665, i32 0, i32 0
  %667 = load float, ptr %666, align 8, !tbaa !154
  %668 = getelementptr inbounds %struct.ImRect, ptr %37, i32 0, i32 1
  %669 = getelementptr inbounds %struct.ImVec2, ptr %668, i32 0, i32 0
  %670 = load float, ptr %669, align 4, !tbaa !139
  %671 = fcmp ogt float %667, %670
  br i1 %671, label %672, label %688

672:                                              ; preds = %662
  store i32 1, ptr %50, align 4, !tbaa !9
  %673 = load ptr, ptr %12, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.ImGuiContext, ptr %673, i32 0, i32 2
  %675 = getelementptr inbounds %struct.ImGuiIO, ptr %674, i32 0, i32 67
  %676 = getelementptr inbounds %struct.ImVec2, ptr %675, i32 0, i32 0
  %677 = load float, ptr %676, align 8, !tbaa !154
  %678 = getelementptr inbounds %struct.ImRect, ptr %37, i32 0, i32 1
  %679 = getelementptr inbounds %struct.ImVec2, ptr %678, i32 0, i32 0
  %680 = load float, ptr %679, align 4, !tbaa !139
  %681 = fsub float %677, %680
  store float %681, ptr %51, align 4, !tbaa !24
  %682 = load ptr, ptr %7, align 8, !tbaa !5
  %683 = load ptr, ptr %19, align 8, !tbaa !5
  %684 = load ptr, ptr %12, align 8, !tbaa !5
  %685 = getelementptr inbounds %struct.ImGuiContext, ptr %684, i32 0, i32 2
  %686 = getelementptr inbounds %struct.ImGuiIO, ptr %685, i32 0, i32 67
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %53, ptr align 8 %686, i64 8, i1 false), !tbaa.struct !134
  %687 = load <2 x float>, ptr %53, align 4
  call void @_ZN5ImGui30TabBarQueueReorderFromMousePosEP11ImGuiTabBarP12ImGuiTabItem6ImVec2(ptr noundef %682, ptr noundef %683, <2 x float> %687)
  br label %688

688:                                              ; preds = %672, %662, %655
  br label %689

689:                                              ; preds = %688, %639
  br label %690

690:                                              ; preds = %689, %619, %608
  %691 = load ptr, ptr %11, align 8, !tbaa !5
  %692 = icmp ne ptr %691, null
  br i1 %692, label %693, label %818

693:                                              ; preds = %690
  %694 = load ptr, ptr %11, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.ImGuiWindow, ptr %694, i32 0, i32 3
  %696 = load i32, ptr %695, align 4, !tbaa !155
  %697 = and i32 %696, 4
  %698 = icmp ne i32 %697, 0
  br i1 %698, label %818, label %699

699:                                              ; preds = %693
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #12
  %700 = load ptr, ptr %12, align 8, !tbaa !5
  %701 = getelementptr inbounds %struct.ImGuiContext, ptr %700, i32 0, i32 150
  %702 = load i8, ptr %701, align 8, !tbaa !144, !range !21, !noundef !22
  %703 = trunc i8 %702 to i1
  br i1 %703, label %704, label %711

704:                                              ; preds = %699
  %705 = load ptr, ptr %12, align 8, !tbaa !5
  %706 = getelementptr inbounds %struct.ImGuiContext, ptr %705, i32 0, i32 156
  %707 = getelementptr inbounds %struct.ImGuiPayload, ptr %706, i32 0, i32 2
  %708 = load i32, ptr %707, align 4, !tbaa !156
  %709 = load i32, ptr %17, align 4, !tbaa !9
  %710 = icmp eq i32 %708, %709
  br label %711

711:                                              ; preds = %704, %699
  %712 = phi i1 [ false, %699 ], [ %710, %704 ]
  %713 = zext i1 %712 to i8
  store i8 %713, ptr %54, align 1, !tbaa !25
  %714 = load i8, ptr %54, align 1, !tbaa !25, !range !21, !noundef !22
  %715 = trunc i8 %714 to i1
  br i1 %715, label %789, label %716

716:                                              ; preds = %711
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #12
  %717 = load ptr, ptr %12, align 8, !tbaa !5
  %718 = getelementptr inbounds %struct.ImGuiContext, ptr %717, i32 0, i32 8
  %719 = load float, ptr %718, align 8, !tbaa !157
  store float %719, ptr %55, align 4, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #12
  %720 = load float, ptr %55, align 4, !tbaa !24
  %721 = fmul float %720, 0x40019999A0000000
  store float %721, ptr %56, align 4, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #12
  %722 = load float, ptr %55, align 4, !tbaa !24
  %723 = load ptr, ptr %12, align 8, !tbaa !5
  %724 = getelementptr inbounds %struct.ImGuiContext, ptr %723, i32 0, i32 2
  %725 = getelementptr inbounds %struct.ImGuiIO, ptr %724, i32 0, i32 93
  %726 = getelementptr inbounds [5 x %struct.ImVec2], ptr %725, i64 0, i64 0
  %727 = getelementptr inbounds %struct.ImVec2, ptr %726, i32 0, i32 0
  %728 = load float, ptr %727, align 8, !tbaa !116
  %729 = call float @llvm.fabs.f32(float %728)
  %730 = load float, ptr %55, align 4, !tbaa !24
  %731 = fneg float %730
  %732 = call float @llvm.fmuladd.f32(float %731, float 2.000000e+00, float %729)
  %733 = fmul float %732, 0x3FC99999A0000000
  %734 = load float, ptr %55, align 4, !tbaa !24
  %735 = fmul float %734, 4.000000e+00
  %736 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %733, float noundef 0.000000e+00, float noundef %735)
  %737 = call float @llvm.fmuladd.f32(float %722, float 1.500000e+00, float %736)
  store float %737, ptr %57, align 4, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #12
  %738 = getelementptr inbounds %struct.ImRect, ptr %37, i32 0, i32 0
  %739 = getelementptr inbounds %struct.ImVec2, ptr %738, i32 0, i32 1
  %740 = load float, ptr %739, align 4, !tbaa !141
  %741 = load ptr, ptr %12, align 8, !tbaa !5
  %742 = getelementptr inbounds %struct.ImGuiContext, ptr %741, i32 0, i32 2
  %743 = getelementptr inbounds %struct.ImGuiIO, ptr %742, i32 0, i32 67
  %744 = getelementptr inbounds %struct.ImVec2, ptr %743, i32 0, i32 1
  %745 = load float, ptr %744, align 4, !tbaa !158
  %746 = fsub float %740, %745
  %747 = load ptr, ptr %12, align 8, !tbaa !5
  %748 = getelementptr inbounds %struct.ImGuiContext, ptr %747, i32 0, i32 2
  %749 = getelementptr inbounds %struct.ImGuiIO, ptr %748, i32 0, i32 67
  %750 = getelementptr inbounds %struct.ImVec2, ptr %749, i32 0, i32 1
  %751 = load float, ptr %750, align 4, !tbaa !158
  %752 = getelementptr inbounds %struct.ImRect, ptr %37, i32 0, i32 1
  %753 = getelementptr inbounds %struct.ImVec2, ptr %752, i32 0, i32 1
  %754 = load float, ptr %753, align 4, !tbaa !142
  %755 = fsub float %751, %754
  %756 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %746, float noundef %755)
  store float %756, ptr %58, align 4, !tbaa !24
  %757 = load float, ptr %58, align 4, !tbaa !24
  %758 = load float, ptr %57, align 4, !tbaa !24
  %759 = fcmp oge float %757, %758
  br i1 %759, label %760, label %761

760:                                              ; preds = %716
  store i8 1, ptr %54, align 1, !tbaa !25
  br label %761

761:                                              ; preds = %760, %716
  %762 = load float, ptr %51, align 4, !tbaa !24
  %763 = load float, ptr %56, align 4, !tbaa !24
  %764 = fcmp ogt float %762, %763
  br i1 %764, label %765, label %788

765:                                              ; preds = %761
  %766 = load i32, ptr %50, align 4, !tbaa !9
  %767 = icmp slt i32 %766, 0
  br i1 %767, label %768, label %773

768:                                              ; preds = %765
  %769 = load ptr, ptr %7, align 8, !tbaa !5
  %770 = load ptr, ptr %19, align 8, !tbaa !5
  %771 = call noundef i32 @_ZN5ImGui17TabBarGetTabOrderEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef %769, ptr noundef %770)
  %772 = icmp eq i32 %771, 0
  br i1 %772, label %786, label %773

773:                                              ; preds = %768, %765
  %774 = load i32, ptr %50, align 4, !tbaa !9
  %775 = icmp sgt i32 %774, 0
  br i1 %775, label %776, label %787

776:                                              ; preds = %773
  %777 = load ptr, ptr %7, align 8, !tbaa !5
  %778 = load ptr, ptr %19, align 8, !tbaa !5
  %779 = call noundef i32 @_ZN5ImGui17TabBarGetTabOrderEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef %777, ptr noundef %778)
  %780 = load ptr, ptr %7, align 8, !tbaa !5
  %781 = getelementptr inbounds %struct.ImGuiTabBar, ptr %780, i32 0, i32 0
  %782 = getelementptr inbounds %struct.ImVector.45, ptr %781, i32 0, i32 0
  %783 = load i32, ptr %782, align 8, !tbaa !132
  %784 = sub nsw i32 %783, 1
  %785 = icmp eq i32 %779, %784
  br i1 %785, label %786, label %787

786:                                              ; preds = %776, %768
  store i8 1, ptr %54, align 1, !tbaa !25
  br label %787

787:                                              ; preds = %786, %776, %773
  br label %788

788:                                              ; preds = %787, %761
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %55) #12
  br label %789

789:                                              ; preds = %788, %711
  %790 = load i8, ptr %54, align 1, !tbaa !25, !range !21, !noundef !22
  %791 = trunc i8 %790 to i1
  br i1 %791, label %792, label %817

792:                                              ; preds = %789
  %793 = load ptr, ptr %12, align 8, !tbaa !5
  %794 = load ptr, ptr %11, align 8, !tbaa !5
  call void @_ZN5ImGui28DockContextQueueUndockWindowEP12ImGuiContextP11ImGuiWindow(ptr noundef %793, ptr noundef %794)
  %795 = load ptr, ptr %11, align 8, !tbaa !5
  %796 = load ptr, ptr %12, align 8, !tbaa !5
  %797 = getelementptr inbounds %struct.ImGuiContext, ptr %796, i32 0, i32 36
  store ptr %795, ptr %797, align 8, !tbaa !159
  %798 = load ptr, ptr %12, align 8, !tbaa !5
  %799 = getelementptr inbounds %struct.ImGuiContext, ptr %798, i32 0, i32 36
  %800 = load ptr, ptr %799, align 8, !tbaa !159
  %801 = getelementptr inbounds %struct.ImGuiWindow, ptr %800, i32 0, i32 26
  %802 = load i32, ptr %801, align 4, !tbaa !160
  %803 = load ptr, ptr %12, align 8, !tbaa !5
  %804 = getelementptr inbounds %struct.ImGuiContext, ptr %803, i32 0, i32 36
  %805 = load ptr, ptr %804, align 8, !tbaa !159
  call void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef %802, ptr noundef %805)
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #12
  %806 = load ptr, ptr %12, align 8, !tbaa !5
  %807 = getelementptr inbounds %struct.ImGuiContext, ptr %806, i32 0, i32 36
  %808 = load ptr, ptr %807, align 8, !tbaa !159
  %809 = getelementptr inbounds %struct.ImGuiWindow, ptr %808, i32 0, i32 10
  %810 = getelementptr inbounds %struct.ImRect, ptr %37, i32 0, i32 0
  %811 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %809, ptr noundef nonnull align 4 dereferenceable(8) %810)
  store <2 x float> %811, ptr %59, align 4
  %812 = load ptr, ptr %12, align 8, !tbaa !5
  %813 = getelementptr inbounds %struct.ImGuiContext, ptr %812, i32 0, i32 59
  %814 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZmIR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %813, ptr noundef nonnull align 4 dereferenceable(8) %59)
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #12
  %815 = load ptr, ptr %12, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.ImGuiContext, ptr %815, i32 0, i32 55
  store i8 1, ptr %816, align 2, !tbaa !161
  call void @_ZN5ImGui31SetActiveIdUsingAllKeyboardKeysEv()
  br label %817

817:                                              ; preds = %792, %789
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #12
  br label %818

818:                                              ; preds = %817, %693, %690
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #12
  br label %819

819:                                              ; preds = %818, %606, %603, %600
  br label %820

820:                                              ; preds = %819, %598
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #12
  %821 = load ptr, ptr %14, align 8, !tbaa !5
  %822 = getelementptr inbounds %struct.ImGuiWindow, ptr %821, i32 0, i32 88
  %823 = load ptr, ptr %822, align 8, !tbaa !162
  store ptr %823, ptr %60, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #12
  %824 = load i8, ptr %46, align 1, !tbaa !25, !range !21, !noundef !22
  %825 = trunc i8 %824 to i1
  br i1 %825, label %829, label %826

826:                                              ; preds = %820
  %827 = load i8, ptr %45, align 1, !tbaa !25, !range !21, !noundef !22
  %828 = trunc i8 %827 to i1
  br i1 %828, label %829, label %830

829:                                              ; preds = %826, %820
  br label %845

830:                                              ; preds = %826
  %831 = load i8, ptr %28, align 1, !tbaa !25, !range !21, !noundef !22
  %832 = trunc i8 %831 to i1
  br i1 %832, label %833, label %838

833:                                              ; preds = %830
  %834 = load i8, ptr %24, align 1, !tbaa !25, !range !21, !noundef !22
  %835 = trunc i8 %834 to i1
  %836 = zext i1 %835 to i64
  %837 = select i1 %835, i32 35, i32 37
  br label %843

838:                                              ; preds = %830
  %839 = load i8, ptr %24, align 1, !tbaa !25, !range !21, !noundef !22
  %840 = trunc i8 %839 to i1
  %841 = zext i1 %840 to i64
  %842 = select i1 %840, i32 33, i32 36
  br label %843

843:                                              ; preds = %838, %833
  %844 = phi i32 [ %837, %833 ], [ %842, %838 ]
  br label %845

845:                                              ; preds = %843, %829
  %846 = phi i32 [ 34, %829 ], [ %844, %843 ]
  %847 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %846, float noundef 1.000000e+00)
  store i32 %847, ptr %61, align 4, !tbaa !9
  %848 = load ptr, ptr %60, align 8, !tbaa !5
  %849 = load i32, ptr %10, align 4, !tbaa !9
  %850 = load i32, ptr %61, align 4, !tbaa !9
  call void @_ZN5ImGui17TabItemBackgroundEP10ImDrawListRK6ImRectij(ptr noundef %848, ptr noundef nonnull align 4 dereferenceable(16) %37, i32 noundef %849, i32 noundef %850)
  %851 = load i32, ptr %17, align 4, !tbaa !9
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %37, i32 noundef %851, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #12
  %852 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 32)
  %853 = zext i1 %852 to i8
  store i8 %853, ptr %62, align 1, !tbaa !25
  %854 = load i8, ptr %62, align 1, !tbaa !25, !range !21, !noundef !22
  %855 = trunc i8 %854 to i1
  br i1 %855, label %856, label %866

856:                                              ; preds = %845
  %857 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 1, i1 noundef zeroext false)
  br i1 %857, label %860, label %858

858:                                              ; preds = %856
  %859 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 1)
  br i1 %859, label %860, label %866

860:                                              ; preds = %858, %856
  %861 = load i8, ptr %27, align 1, !tbaa !25, !range !21, !noundef !22
  %862 = trunc i8 %861 to i1
  br i1 %862, label %866, label %863

863:                                              ; preds = %860
  %864 = load ptr, ptr %7, align 8, !tbaa !5
  %865 = load ptr, ptr %19, align 8, !tbaa !5
  call void @_ZN5ImGui16TabBarQueueFocusEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef %864, ptr noundef %865)
  br label %866

866:                                              ; preds = %863, %860, %858, %845
  %867 = load ptr, ptr %7, align 8, !tbaa !5
  %868 = getelementptr inbounds %struct.ImGuiTabBar, ptr %867, i32 0, i32 1
  %869 = load i32, ptr %868, align 8, !tbaa !123
  %870 = and i32 %869, 8
  %871 = icmp ne i32 %870, 0
  br i1 %871, label %872, label %875

872:                                              ; preds = %866
  %873 = load i32, ptr %10, align 4, !tbaa !9
  %874 = or i32 %873, 4
  store i32 %874, ptr %10, align 4, !tbaa !9
  br label %875

875:                                              ; preds = %872, %866
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #12
  %876 = load ptr, ptr %9, align 8, !tbaa !5
  %877 = icmp ne ptr %876, null
  br i1 %877, label %878, label %890

878:                                              ; preds = %875
  %879 = load ptr, ptr %11, align 8, !tbaa !5
  %880 = icmp ne ptr %879, null
  br i1 %880, label %881, label %885

881:                                              ; preds = %878
  %882 = load ptr, ptr %11, align 8, !tbaa !5
  %883 = getelementptr inbounds %struct.ImGuiWindow, ptr %882, i32 0, i32 2
  %884 = load i32, ptr %883, align 8, !tbaa !163
  br label %887

885:                                              ; preds = %878
  %886 = load i32, ptr %17, align 4, !tbaa !9
  br label %887

887:                                              ; preds = %885, %881
  %888 = phi i32 [ %884, %881 ], [ %886, %885 ]
  %889 = call noundef i32 @_ZN5ImGui13GetIDWithSeedEPKcS1_j(ptr noundef @.str.150, ptr noundef null, i32 noundef %888)
  br label %891

890:                                              ; preds = %875
  br label %891

891:                                              ; preds = %890, %887
  %892 = phi i32 [ %889, %887 ], [ 0, %890 ]
  store i32 %892, ptr %63, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #12
  %893 = load ptr, ptr %60, align 8, !tbaa !5
  %894 = load i8, ptr %26, align 1, !tbaa !25, !range !21, !noundef !22
  %895 = trunc i8 %894 to i1
  br i1 %895, label %896, label %899

896:                                              ; preds = %891
  %897 = load i32, ptr %10, align 4, !tbaa !9
  %898 = and i32 %897, -2
  br label %901

899:                                              ; preds = %891
  %900 = load i32, ptr %10, align 4, !tbaa !9
  br label %901

901:                                              ; preds = %899, %896
  %902 = phi i32 [ %898, %896 ], [ %900, %899 ]
  %903 = load ptr, ptr %7, align 8, !tbaa !5
  %904 = getelementptr inbounds %struct.ImGuiTabBar, ptr %903, i32 0, i32 28
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %66, ptr align 8 %904, i64 8, i1 false), !tbaa.struct !134
  %905 = load ptr, ptr %8, align 8, !tbaa !5
  %906 = load i32, ptr %17, align 4, !tbaa !9
  %907 = load i32, ptr %63, align 4, !tbaa !9
  %908 = load i8, ptr %28, align 1, !tbaa !25, !range !21, !noundef !22
  %909 = trunc i8 %908 to i1
  %910 = load <2 x float>, ptr %66, align 4
  call void @_ZN5ImGui26TabItemLabelAndCloseButtonEP10ImDrawListRK6ImRecti6ImVec2PKcjjbPbS8_(ptr noundef %893, ptr noundef nonnull align 4 dereferenceable(16) %37, i32 noundef %902, <2 x float> %910, ptr noundef %905, i32 noundef %906, i32 noundef %907, i1 noundef zeroext %909, ptr noundef %64, ptr noundef %65)
  %911 = load i8, ptr %64, align 1, !tbaa !25, !range !21, !noundef !22
  %912 = trunc i8 %911 to i1
  br i1 %912, label %913, label %920

913:                                              ; preds = %901
  %914 = load ptr, ptr %9, align 8, !tbaa !5
  %915 = icmp ne ptr %914, null
  br i1 %915, label %916, label %920

916:                                              ; preds = %913
  %917 = load ptr, ptr %9, align 8, !tbaa !5
  store i8 0, ptr %917, align 1, !tbaa !25
  %918 = load ptr, ptr %7, align 8, !tbaa !5
  %919 = load ptr, ptr %19, align 8, !tbaa !5
  call void @_ZN5ImGui14TabBarCloseTabEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef %918, ptr noundef %919)
  br label %920

920:                                              ; preds = %916, %913, %901
  %921 = load ptr, ptr %11, align 8, !tbaa !5
  %922 = icmp ne ptr %921, null
  br i1 %922, label %923, label %938

923:                                              ; preds = %920
  %924 = load i8, ptr %45, align 1, !tbaa !25, !range !21, !noundef !22
  %925 = trunc i8 %924 to i1
  br i1 %925, label %932, label %926

926:                                              ; preds = %923
  %927 = load ptr, ptr %12, align 8, !tbaa !5
  %928 = getelementptr inbounds %struct.ImGuiContext, ptr %927, i32 0, i32 44
  %929 = load i32, ptr %928, align 4, !tbaa !164
  %930 = load i32, ptr %63, align 4, !tbaa !9
  %931 = icmp eq i32 %929, %930
  br i1 %931, label %932, label %938

932:                                              ; preds = %926, %923
  %933 = load ptr, ptr %12, align 8, !tbaa !5
  %934 = getelementptr inbounds %struct.ImGuiContext, ptr %933, i32 0, i32 78
  %935 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %934, i32 0, i32 2
  %936 = load i32, ptr %935, align 8, !tbaa !165
  %937 = or i32 %936, 128
  store i32 %937, ptr %935, align 8, !tbaa !165
  br label %938

938:                                              ; preds = %932, %926, %920
  %939 = load i8, ptr %39, align 1, !tbaa !25, !range !21, !noundef !22
  %940 = trunc i8 %939 to i1
  br i1 %940, label %941, label %942

941:                                              ; preds = %938
  call void @_ZN5ImGui11PopClipRectEv()
  br label %942

942:                                              ; preds = %941, %938
  %943 = load ptr, ptr %14, align 8, !tbaa !5
  %944 = getelementptr inbounds %struct.ImGuiWindow, ptr %943, i32 0, i32 69
  %945 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %944, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %945, ptr align 4 %30, i64 8, i1 false), !tbaa.struct !134
  %946 = load i8, ptr %65, align 1, !tbaa !25, !range !21, !noundef !22
  %947 = trunc i8 %946 to i1
  br i1 %947, label %948, label %979

948:                                              ; preds = %942
  %949 = load ptr, ptr %12, align 8, !tbaa !5
  %950 = getelementptr inbounds %struct.ImGuiContext, ptr %949, i32 0, i32 44
  %951 = load i32, ptr %950, align 4, !tbaa !164
  %952 = load i32, ptr %17, align 4, !tbaa !9
  %953 = icmp eq i32 %951, %952
  br i1 %953, label %954, label %979

954:                                              ; preds = %948
  %955 = load i8, ptr %46, align 1, !tbaa !25, !range !21, !noundef !22
  %956 = trunc i8 %955 to i1
  br i1 %956, label %979, label %957

957:                                              ; preds = %954
  %958 = load ptr, ptr %7, align 8, !tbaa !5
  %959 = getelementptr inbounds %struct.ImGuiTabBar, ptr %958, i32 0, i32 1
  %960 = load i32, ptr %959, align 8, !tbaa !123
  %961 = and i32 %960, 32
  %962 = icmp ne i32 %961, 0
  br i1 %962, label %978, label %963

963:                                              ; preds = %957
  %964 = load ptr, ptr %19, align 8, !tbaa !5
  %965 = getelementptr inbounds %struct.ImGuiTabItem, ptr %964, i32 0, i32 1
  %966 = load i32, ptr %965, align 4, !tbaa !125
  %967 = and i32 %966, 16
  %968 = icmp ne i32 %967, 0
  br i1 %968, label %978, label %969

969:                                              ; preds = %963
  %970 = load ptr, ptr %8, align 8, !tbaa !5
  %971 = call noundef ptr @_ZN5ImGui19FindRenderedTextEndEPKcS1_(ptr noundef %970, ptr noundef null)
  %972 = load ptr, ptr %8, align 8, !tbaa !5
  %973 = ptrtoint ptr %971 to i64
  %974 = ptrtoint ptr %972 to i64
  %975 = sub i64 %973, %974
  %976 = trunc i64 %975 to i32
  %977 = load ptr, ptr %8, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef @.str.188, i32 noundef %976, ptr noundef %977)
  br label %978

978:                                              ; preds = %969, %963, %957
  br label %979

979:                                              ; preds = %978, %954, %948, %942
  %980 = load i8, ptr %27, align 1, !tbaa !25, !range !21, !noundef !22
  %981 = trunc i8 %980 to i1
  br i1 %981, label %982, label %996

982:                                              ; preds = %979
  %983 = load ptr, ptr %7, align 8, !tbaa !5
  %984 = getelementptr inbounds %struct.ImGuiTabBar, ptr %983, i32 0, i32 3
  %985 = load i32, ptr %984, align 8, !tbaa !129
  %986 = load ptr, ptr %19, align 8, !tbaa !5
  %987 = getelementptr inbounds %struct.ImGuiTabItem, ptr %986, i32 0, i32 0
  %988 = load i32, ptr %987, align 8, !tbaa !109
  %989 = icmp eq i32 %985, %988
  br i1 %989, label %990, label %993

990:                                              ; preds = %982
  %991 = load i8, ptr %27, align 1, !tbaa !25, !range !21, !noundef !22
  %992 = trunc i8 %991 to i1
  br label %993

993:                                              ; preds = %990, %982
  %994 = phi i1 [ false, %982 ], [ %992, %990 ]
  %995 = xor i1 %994, true
  br label %996

996:                                              ; preds = %993, %979
  %997 = phi i1 [ true, %979 ], [ %995, %993 ]
  br i1 %997, label %998, label %999

998:                                              ; preds = %996
  br label %1001

999:                                              ; preds = %996
  call void @__assert_fail(ptr noundef @.str.189, ptr noundef @.str.4, i32 noundef 8602, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui9TabItemExEP11ImGuiTabBarPKcPbiP11ImGuiWindow) #13
  unreachable

1000:                                             ; No predecessors!
  br label %1001

1001:                                             ; preds = %1000, %998
  %1002 = load i8, ptr %27, align 1, !tbaa !25, !range !21, !noundef !22
  %1003 = trunc i8 %1002 to i1
  br i1 %1003, label %1004, label %1007

1004:                                             ; preds = %1001
  %1005 = load i8, ptr %47, align 1, !tbaa !25, !range !21, !noundef !22
  %1006 = trunc i8 %1005 to i1
  store i1 %1006, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1010

1007:                                             ; preds = %1001
  %1008 = load i8, ptr %28, align 1, !tbaa !25, !range !21, !noundef !22
  %1009 = trunc i8 %1008 to i1
  store i1 %1009, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1010

1010:                                             ; preds = %1007, %1004
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #12
  br label %1011

1011:                                             ; preds = %1010, %510
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #12
  br label %1012

1012:                                             ; preds = %1011, %385, %384
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #12
  br label %1013

1013:                                             ; preds = %1012, %101
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #12
  br label %1014

1014:                                             ; preds = %1013, %86
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #12
  %1015 = load i1, ptr %6, align 1
  ret i1 %1015
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui15TabItemCalcSizeEPKcb(ptr noundef, i1 noundef zeroext) #8

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK12ImGuiPayload10IsDataTypeEPKc(ptr noundef nonnull align 8 dereferenceable(59), ptr noundef) #2 align 2

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

declare void @_ZN5ImGui22StartMouseMovingWindowEP11ImGuiWindow(ptr noundef) #4

declare void @_ZN5ImGui28DockContextQueueUndockWindowEP12ImGuiContextP11ImGuiWindow(ptr noundef, ptr noundef) #4

declare void @_ZN5ImGui31SetActiveIdUsingAllKeyboardKeysEv() #4

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

declare noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef, i1 noundef zeroext) #4

declare noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef) #4

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

declare void @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef, ...) #4

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

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

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


; 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.ImGuiNextItemData = type <{ i32, i32, float, i32, i32, i8, [3 x i8] }>
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }
%struct.ImGuiTabItem = type <{ i32, i32, ptr, i32, i32, float, float, float, float, i32, i16, i16, i8, [7 x i8] }>

@GImGui = external local_unnamed_addr global ptr, align 8
@.str.4 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [47 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui9TabItemExEP11ImGuiTabBarPKcPbiP11ImGuiWindow = external hidden unnamed_addr constant [93 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.189 = external hidden unnamed_addr constant [72 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 nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #1

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

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

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

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

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

declare noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #4

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

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

; 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> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #3

declare noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef, float noundef) local_unnamed_addr #4

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

declare noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef) local_unnamed_addr #4

declare void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef, ptr noundef) local_unnamed_addr #4

declare void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) local_unnamed_addr #4

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

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

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

declare noundef zeroext i1 @_ZN5ImGui15IsMouseDraggingEif(i32 noundef, float noundef) local_unnamed_addr #4

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

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

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

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

declare void @_ZN5ImGui11PopClipRectEv() local_unnamed_addr #4

declare noundef i32 @_ZN5ImGui13GetIDWithSeedEPKcS1_j(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui17TabBarFindTabByIDEP11ImGuiTabBarj(ptr noundef, i32 noundef) local_unnamed_addr #10

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui14TabBarCloseTabEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef, ptr noundef) local_unnamed_addr #10

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui16TabBarQueueFocusEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui30TabBarQueueReorderFromMousePosEP11ImGuiTabBarP12ImGuiTabItem6ImVec2(ptr noundef, ptr noundef, <2 x float>) local_unnamed_addr #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN5ImGui17TabBarGetTabOrderEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef, ptr noundef) local_unnamed_addr #11

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN5ImGui9TabItemExEP11ImGuiTabBarPKcPbiP11ImGuiWindow(ptr noundef %0, ptr noundef %1, ptr noundef %2, i32 noundef %3, ptr noundef %4) local_unnamed_addr #8 {
  %6 = alloca %struct.ImGuiNextItemData, align 4
  %7 = alloca %struct.ImRect, align 4
  %8 = alloca %struct.ImGuiTabItem, align 8
  %9 = alloca %struct.ImVec2, align 8
  %10 = alloca %struct.ImRect, align 4
  %11 = alloca %struct.ImVec2, align 4
  %12 = alloca %struct.ImVec2, align 4
  %13 = alloca %struct.ImVec2, align 8
  %14 = alloca %struct.ImRect, align 4
  %15 = alloca %struct.ImVec2, align 8
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca %struct.ImVec2, align 4
  %18 = alloca %struct.ImVec2, align 8
  %19 = alloca i8, align 1
  %20 = alloca i8, align 1
  %21 = alloca %struct.ImVec2, align 8
  %22 = alloca i8, align 1
  %23 = alloca i8, align 1
  %24 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %25 = getelementptr inbounds i8, ptr %0, i64 107
  %26 = load i8, ptr %25, align 1, !tbaa !9, !range !20, !noundef !21
  %27 = trunc nuw i8 %26 to i1
  br i1 %27, label %28, label %30

28:                                               ; preds = %5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6)
  %29 = getelementptr inbounds i8, ptr %24, i64 18592
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %29, i64 24, i1 false), !tbaa.struct !22
  tail call void @_ZN5ImGuiL12TabBarLayoutEP11ImGuiTabBar(ptr noundef nonnull %0)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(21) %29, ptr noundef nonnull align 4 dereferenceable(21) %6, i64 21, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6)
  br label %30

30:                                               ; preds = %28, %5
  %31 = getelementptr inbounds i8, ptr %24, i64 16408
  %32 = load ptr, ptr %31, align 8, !tbaa !26
  %33 = getelementptr inbounds i8, ptr %32, i64 240
  %34 = load i8, ptr %33, align 8, !tbaa !94, !range !20, !noundef !21
  %35 = trunc nuw i8 %34 to i1
  br i1 %35, label %433, label %36

36:                                               ; preds = %30
  %37 = tail call noundef i32 @_ZN5ImGuiL15TabBarCalcTabIDEP11ImGuiTabBarPKcP11ImGuiWindow(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %4)
  %.not = icmp eq ptr %2, null
  br i1 %.not, label %.thread, label %38

38:                                               ; preds = %36
  %39 = load i8, ptr %2, align 1, !tbaa !25, !range !20, !noundef !21
  %40 = trunc nuw i8 %39 to i1
  br i1 %40, label %43, label %41

41:                                               ; preds = %38
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #12
  call void @_ZN6ImRectC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %7)
  %42 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %7, i32 noundef %37, ptr noundef null, i32 noundef 8)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #12
  br label %433

43:                                               ; preds = %38
  %44 = and i32 %3, 2097152
  %.not286 = icmp eq i32 %44, 0
  br i1 %.not286, label %.thread, label %45

45:                                               ; preds = %43
  tail call void @__assert_fail(ptr noundef nonnull @.str.184, ptr noundef nonnull @.str.4, i32 noundef 8353, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui9TabItemExEP11ImGuiTabBarPKcPbiP11ImGuiWindow) #13
  unreachable

.thread:                                          ; preds = %36, %43
  %46 = and i32 %3, 192
  %.not287 = icmp eq i32 %46, 192
  br i1 %.not287, label %47, label %48

47:                                               ; preds = %.thread
  tail call void @__assert_fail(ptr noundef nonnull @.str.185, ptr noundef nonnull @.str.4, i32 noundef 8354, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui9TabItemExEP11ImGuiTabBarPKcPbiP11ImGuiWindow) #13
  unreachable

48:                                               ; preds = %.thread
  %49 = and i32 %3, 1048576
  %.not288 = icmp eq i32 %49, 0
  %50 = or disjoint i32 %3, 1048576
  %51 = and i1 %.not, %.not288
  %.0261 = select i1 %51, i32 %50, i32 %3
  %.0260 = select i1 %.not288, ptr %2, ptr null
  %52 = tail call noundef ptr @_ZN5ImGui17TabBarFindTabByIDEP11ImGuiTabBarj(ptr noundef nonnull %0, i32 noundef %37)
  %53 = icmp eq ptr %52, null
  br i1 %53, label %54, label %57

54:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %8) #12
  call void @_ZN12ImGuiTabItemC2Ev(ptr noundef nonnull align 8 dereferenceable(49) %8)
  call void @_ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(49) %8)
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) #12
  %55 = call noundef nonnull align 8 dereferenceable(49) ptr @_ZN8ImVectorI12ImGuiTabItemE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  store i32 %37, ptr %55, align 8, !tbaa !109
  %56 = getelementptr inbounds i8, ptr %0, i64 109
  store i8 1, ptr %56, align 1, !tbaa !111
  br label %57

57:                                               ; preds = %54, %48
  %.0263 = phi ptr [ %55, %54 ], [ %52, %48 ]
  %58 = call noundef i32 @_ZNK8ImVectorI12ImGuiTabItemE14index_from_ptrEPKS0_(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull %.0263)
  %59 = trunc i32 %58 to i16
  %60 = getelementptr inbounds i8, ptr %0, i64 112
  store i16 %59, ptr %60, align 8, !tbaa !112
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #12
  %61 = icmp ne ptr %.0260, null
  %62 = and i32 %.0261, 1
  %63 = icmp ne i32 %62, 0
  %64 = select i1 %61, i1 true, i1 %63
  %65 = call <2 x float> @_ZN5ImGui15TabItemCalcSizeEPKcb(ptr noundef %1, i1 noundef zeroext %64)
  store <2 x float> %65, ptr %9, align 8
  %66 = getelementptr inbounds i8, ptr %.0263, i64 36
  store float -1.000000e+00, ptr %66, align 4, !tbaa !113
  %67 = getelementptr inbounds i8, ptr %24, i64 18592
  %68 = load i32, ptr %67, align 8, !tbaa !114
  %69 = and i32 %68, 1
  %.not289 = icmp eq i32 %69, 0
  %70 = extractelement <2 x float> %65, i64 0
  br i1 %.not289, label %74, label %71

71:                                               ; preds = %57
  %72 = getelementptr inbounds i8, ptr %24, i64 18600
  %73 = load float, ptr %72, align 8, !tbaa !115
  store float %73, ptr %66, align 4, !tbaa !113
  store float %73, ptr %9, align 8, !tbaa !116
  br label %74

74:                                               ; preds = %71, %57
  %75 = phi float [ %73, %71 ], [ %70, %57 ]
  br i1 %53, label %76, label %79

76:                                               ; preds = %74
  %77 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %75)
  %78 = getelementptr inbounds i8, ptr %.0263, i64 28
  store float %77, ptr %78, align 4, !tbaa !117
  %.pre = load float, ptr %9, align 8, !tbaa !116
  br label %79

79:                                               ; preds = %76, %74
  %80 = phi float [ %.pre, %76 ], [ %75, %74 ]
  %81 = getelementptr inbounds i8, ptr %.0263, i64 32
  store float %80, ptr %81, align 8, !tbaa !118
  %82 = getelementptr inbounds i8, ptr %0, i64 110
  %83 = load i16, ptr %82, align 2, !tbaa !119
  %84 = add i16 %83, 1
  store i16 %84, ptr %82, align 2, !tbaa !119
  %85 = getelementptr inbounds i8, ptr %.0263, i64 44
  store i16 %83, ptr %85, align 4, !tbaa !120
  %86 = getelementptr inbounds i8, ptr %0, i64 40
  %87 = load i32, ptr %86, align 8, !tbaa !121
  %88 = add nsw i32 %87, 1
  %89 = getelementptr inbounds i8, ptr %24, i64 16240
  %90 = load i32, ptr %89, align 8, !tbaa !122
  %91 = icmp slt i32 %88, %90
  %92 = getelementptr inbounds i8, ptr %0, i64 16
  %93 = load i32, ptr %92, align 8, !tbaa !123
  %94 = and i32 %93, 2097152
  %.not290 = icmp eq i32 %94, 0
  %95 = getelementptr inbounds i8, ptr %.0263, i64 16
  %96 = load i32, ptr %95, align 8, !tbaa !124
  %97 = add nsw i32 %96, 1
  %98 = icmp slt i32 %97, %90
  br i1 %63, label %99, label %103

99:                                               ; preds = %79
  %100 = getelementptr inbounds i8, ptr %.0263, i64 4
  %101 = load i32, ptr %100, align 4, !tbaa !125
  %102 = and i32 %101, 1
  %.not291 = icmp eq i32 %102, 0
  br label %103

103:                                              ; preds = %99, %79
  %104 = phi i1 [ false, %79 ], [ %.not291, %99 ]
  %105 = and i32 %.0261, 2097152
  %.not292 = icmp eq i32 %105, 0
  store i32 %90, ptr %95, align 8, !tbaa !124
  %106 = getelementptr inbounds i8, ptr %.0263, i64 4
  store i32 %.0261, ptr %106, align 4, !tbaa !125
  %107 = getelementptr inbounds i8, ptr %.0263, i64 8
  store ptr %4, ptr %107, align 8, !tbaa !126
  %108 = icmp ne ptr %4, null
  br i1 %108, label %109, label %114

109:                                              ; preds = %103
  %110 = and i32 %93, 1048576
  %.not293 = icmp eq i32 %110, 0
  br i1 %.not293, label %111, label %112

111:                                              ; preds = %109
  call void @__assert_fail(ptr noundef nonnull @.str.186, ptr noundef nonnull @.str.4, i32 noundef 8397, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui9TabItemExEP11ImGuiTabBarPKcPbiP11ImGuiWindow) #13
  unreachable

112:                                              ; preds = %109
  %113 = getelementptr inbounds i8, ptr %.0263, i64 40
  store i32 -1, ptr %113, align 8, !tbaa !127
  br label %121

114:                                              ; preds = %103
  %115 = getelementptr inbounds i8, ptr %0, i64 136
  %116 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %115)
  %117 = getelementptr inbounds i8, ptr %.0263, i64 40
  store i32 %116, ptr %117, align 8, !tbaa !127
  %118 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #14
  %119 = getelementptr inbounds i8, ptr %1, i64 %118
  %120 = getelementptr inbounds i8, ptr %119, i64 1
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %115, ptr noundef %1, ptr noundef nonnull %120)
  br label %121

121:                                              ; preds = %114, %112
  br i1 %.not292, label %122, label %142

122:                                              ; preds = %121
  br i1 %98, label %123, label %136

123:                                              ; preds = %122
  %124 = load i32, ptr %92, align 8, !tbaa !123
  %125 = and i32 %124, 2
  %.not294 = icmp eq i32 %125, 0
  br i1 %.not294, label %136, label %126

126:                                              ; preds = %123
  %127 = getelementptr inbounds i8, ptr %0, i64 28
  %128 = load i32, ptr %127, align 4, !tbaa !128
  %129 = icmp eq i32 %128, 0
  br i1 %129, label %130, label %136

130:                                              ; preds = %126
  br i1 %91, label %131, label %135

131:                                              ; preds = %130
  %132 = getelementptr inbounds i8, ptr %0, i64 24
  %133 = load i32, ptr %132, align 8, !tbaa !129
  %134 = icmp eq i32 %133, 0
  br i1 %134, label %135, label %136

135:                                              ; preds = %131, %130
  call void @_ZN5ImGui16TabBarQueueFocusEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef nonnull %0, ptr noundef nonnull %.0263)
  br label %136

136:                                              ; preds = %131, %135, %126, %123, %122
  %137 = and i32 %.0261, 2
  %.not295 = icmp eq i32 %137, 0
  br i1 %.not295, label %142, label %138

138:                                              ; preds = %136
  %139 = getelementptr inbounds i8, ptr %0, i64 24
  %140 = load i32, ptr %139, align 8, !tbaa !129
  %.not296 = icmp eq i32 %140, %37
  br i1 %.not296, label %142, label %141

141:                                              ; preds = %138
  call void @_ZN5ImGui16TabBarQueueFocusEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef nonnull %0, ptr noundef nonnull %.0263)
  br label %142

142:                                              ; preds = %136, %138, %141, %121
  %143 = getelementptr inbounds i8, ptr %0, i64 32
  %144 = load i32, ptr %143, align 8, !tbaa !130
  %145 = icmp eq i32 %144, %37
  br i1 %145, label %146, label %.critedge306

146:                                              ; preds = %142
  %147 = getelementptr inbounds i8, ptr %0, i64 108
  store i8 1, ptr %147, align 4, !tbaa !131
  br label %158

.critedge306:                                     ; preds = %142
  %148 = getelementptr inbounds i8, ptr %0, i64 24
  %149 = load i32, ptr %148, align 8, !tbaa !129
  %150 = icmp eq i32 %149, 0
  %151 = icmp eq ptr %4, null
  %or.cond = and i1 %151, %91
  %or.cond307 = select i1 %150, i1 %or.cond, i1 false
  br i1 %or.cond307, label %152, label %158

152:                                              ; preds = %.critedge306
  %153 = load i32, ptr %0, align 8, !tbaa !132
  %154 = icmp eq i32 %153, 1
  br i1 %154, label %155, label %158

155:                                              ; preds = %152
  %156 = load i32, ptr %92, align 8, !tbaa !123
  %157 = and i32 %156, 2
  %.not297 = icmp eq i32 %157, 0
  br label %158

158:                                              ; preds = %155, %146, %152, %.critedge306
  %.0265.shrunk = phi i1 [ true, %146 ], [ false, %152 ], [ false, %.critedge306 ], [ %.not297, %155 ]
  %.not309 = xor i1 %91, true
  %brmerge = or i1 %53, %.not309
  %or.cond323 = select i1 %98, i1 %brmerge, i1 false
  br i1 %or.cond323, label %159, label %161

159:                                              ; preds = %158
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #12
  call void @_ZN6ImRectC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %160 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %10, i32 noundef %37, ptr noundef null, i32 noundef 8)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #12
  %.0265.shrunk. = select i1 %.not292, i1 %.0265.shrunk, i1 false
  br label %432

161:                                              ; preds = %158
  %162 = getelementptr inbounds i8, ptr %0, i64 24
  %163 = load i32, ptr %162, align 8, !tbaa !129
  %164 = icmp eq i32 %163, %37
  br i1 %164, label %165, label %168

165:                                              ; preds = %161
  %166 = load i32, ptr %89, align 8, !tbaa !122
  %167 = getelementptr inbounds i8, ptr %.0263, i64 20
  store i32 %166, ptr %167, align 4, !tbaa !133
  br label %168

168:                                              ; preds = %165, %161
  %169 = getelementptr inbounds i8, ptr %32, i64 312
  %170 = load i64, ptr %169, align 8
  %171 = load i32, ptr %106, align 4, !tbaa !125
  %172 = and i32 %171, 192
  %173 = icmp eq i32 %172, 0
  %174 = getelementptr inbounds i8, ptr %.0263, i64 28
  %175 = load float, ptr %174, align 4, !tbaa !117
  store float %175, ptr %9, align 8, !tbaa !116
  %176 = getelementptr inbounds i8, ptr %0, i64 44
  %177 = getelementptr inbounds i8, ptr %.0263, i64 24
  br i1 %173, label %178, label %186

178:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #12
  %179 = load float, ptr %177, align 8, !tbaa !134
  %180 = getelementptr inbounds i8, ptr %0, i64 76
  %181 = load float, ptr %180, align 4, !tbaa !135
  %182 = fsub float %179, %181
  %183 = fptosi float %182 to i32
  %184 = sitofp i32 %183 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef %184, float noundef 0.000000e+00)
  %185 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %176, ptr noundef nonnull align 4 dereferenceable(8) %11)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  br label %189

186:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #12
  %187 = load float, ptr %177, align 8, !tbaa !134
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %12, float noundef %187, float noundef 0.000000e+00)
  %188 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %176, ptr noundef nonnull align 4 dereferenceable(8) %12)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #12
  br label %189

189:                                              ; preds = %186, %178
  %.sink = phi <2 x float> [ %185, %178 ], [ %188, %186 ]
  store <2 x float> %.sink, ptr %169, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #12
  store <2 x float> %.sink, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #12
  %190 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %13, ptr noundef nonnull align 4 dereferenceable(8) %9)
  store <2 x float> %190, ptr %15, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %14, ptr noundef nonnull align 4 dereferenceable(8) %13, ptr noundef nonnull align 4 dereferenceable(8) %15)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  br i1 %173, label %191, label %.thread328

191:                                              ; preds = %189
  %192 = load float, ptr %14, align 4, !tbaa !136
  %193 = getelementptr inbounds i8, ptr %0, i64 92
  %194 = load float, ptr %193, align 4, !tbaa !137
  %195 = fcmp olt float %192, %194
  br i1 %195, label %.thread327, label %196

196:                                              ; preds = %191
  %197 = getelementptr inbounds i8, ptr %14, i64 8
  %198 = load float, ptr %197, align 4, !tbaa !138
  %199 = getelementptr inbounds i8, ptr %0, i64 96
  %200 = load float, ptr %199, align 8, !tbaa !139
  %201 = fcmp ogt float %198, %200
  br i1 %201, label %.thread327, label %.thread328

.thread327:                                       ; preds = %191, %196
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  %202 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %192, float noundef %194)
  %203 = getelementptr inbounds i8, ptr %14, i64 4
  %204 = load float, ptr %203, align 4, !tbaa !140
  %205 = fadd float %204, -1.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %16, float noundef %202, float noundef %205)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  %206 = getelementptr inbounds i8, ptr %0, i64 96
  %207 = load float, ptr %206, align 8, !tbaa !139
  %208 = getelementptr inbounds i8, ptr %14, i64 12
  %209 = load float, ptr %208, align 4, !tbaa !141
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef %207, float noundef %209)
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %16, ptr noundef nonnull align 4 dereferenceable(8) %17, i1 noundef zeroext true)
  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 %.thread328

.thread328:                                       ; preds = %189, %.thread327, %196
  %210 = phi i1 [ true, %.thread327 ], [ false, %196 ], [ false, %189 ]
  %211 = getelementptr inbounds i8, ptr %32, i64 336
  %212 = load i64, ptr %211, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  %213 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %14)
  store <2 x float> %213, ptr %18, align 8
  %214 = getelementptr inbounds i8, ptr %24, i64 14616
  %215 = load float, ptr %214, align 4, !tbaa !142
  call void @_ZN5ImGui8ItemSizeERK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef %215)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  store i64 %212, ptr %211, align 8
  %216 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %14, i32 noundef %37, ptr noundef null, i32 noundef 0)
  br i1 %216, label %220, label %217

217:                                              ; preds = %.thread328
  br i1 %210, label %218, label %219

218:                                              ; preds = %217
  call void @_ZN5ImGui11PopClipRectEv()
  br label %219

219:                                              ; preds = %218, %217
  store i64 %170, ptr %169, align 8
  br label %431

220:                                              ; preds = %.thread328
  %221 = select i1 %.not292, i32 4112, i32 4128
  %222 = getelementptr inbounds i8, ptr %24, i64 19528
  %223 = load i8, ptr %222, align 8, !tbaa !143, !range !20, !noundef !21
  %224 = trunc nuw i8 %223 to i1
  br i1 %224, label %225, label %229

225:                                              ; preds = %220
  %226 = getelementptr inbounds i8, ptr %24, i64 19544
  %227 = call noundef zeroext i1 @_ZNK12ImGuiPayload10IsDataTypeEPKc(ptr noundef nonnull align 8 dereferenceable(59) %226, ptr noundef nonnull @.str.187)
  %228 = or disjoint i32 %221, 512
  %spec.select310 = select i1 %227, i32 %221, i32 %228
  br label %229

229:                                              ; preds = %225, %220
  %.0266 = phi i32 [ %221, %220 ], [ %spec.select310, %225 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #12
  %230 = call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %14, i32 noundef %37, ptr noundef nonnull %19, ptr noundef nonnull %20, i32 noundef %.0266)
  %231 = select i1 %230, i1 %.not292, i1 false
  br i1 %231, label %232, label %233

232:                                              ; preds = %229
  call void @_ZN5ImGui16TabBarQueueFocusEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef nonnull %0, ptr noundef nonnull %.0263)
  br label %233

233:                                              ; preds = %229, %232
  %234 = load i8, ptr %20, align 1, !tbaa !25, !range !20, !noundef !21
  %235 = trunc nuw i8 %234 to i1
  %or.cond3 = and i1 %108, %235
  br i1 %or.cond3, label %236, label %246

236:                                              ; preds = %233
  %237 = getelementptr inbounds i8, ptr %24, i64 16504
  %238 = load i32, ptr %237, align 8, !tbaa !144
  %239 = icmp eq i32 %238, %37
  br i1 %239, label %240, label %.thread329

240:                                              ; preds = %236
  %241 = getelementptr inbounds i8, ptr %24, i64 16516
  %242 = load i8, ptr %241, align 4, !tbaa !145, !range !20, !noundef !21
  %243 = trunc nuw i8 %242 to i1
  br i1 %243, label %244, label %.thread329

244:                                              ; preds = %240
  %245 = getelementptr inbounds i8, ptr %24, i64 16536
  store ptr %4, ptr %245, align 8, !tbaa !146
  br label %.thread329

246:                                              ; preds = %233
  br i1 %108, label %.thread329, label %.thread333

.thread329:                                       ; preds = %236, %240, %244, %246
  %247 = getelementptr inbounds i8, ptr %4, i64 1096
  %248 = load ptr, ptr %247, align 8, !tbaa !147
  %.not298 = icmp eq ptr %248, null
  br i1 %.not298, label %.thread333, label %249

249:                                              ; preds = %.thread329
  %250 = call noundef zeroext i1 @_ZNK13ImGuiDockNode14IsFloatingNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %248)
  %.pre347 = load i8, ptr %20, align 1, !tbaa !25, !range !20
  br i1 %250, label %251, label %.thread333

251:                                              ; preds = %249
  %252 = getelementptr inbounds i8, ptr %248, i64 48
  %253 = load i32, ptr %252, align 8, !tbaa !148
  %254 = icmp eq i32 %253, 1
  %255 = trunc nuw i8 %.pre347 to i1
  %brmerge315.not = select i1 %255, i1 %254, i1 false
  br i1 %brmerge315.not, label %256, label %.thread333

256:                                              ; preds = %251
  %257 = call noundef zeroext i1 @_ZN5ImGui15IsMouseDraggingEif(i32 noundef 0, float noundef 0.000000e+00)
  br i1 %257, label %258, label %..thread333_crit_edge

..thread333_crit_edge:                            ; preds = %256
  %.pre346 = load i8, ptr %20, align 1, !tbaa !25, !range !20
  br label %.thread333

258:                                              ; preds = %256
  call void @_ZN5ImGui22StartMouseMovingWindowEP11ImGuiWindow(ptr noundef nonnull %4)
  br label %.thread337

.thread333:                                       ; preds = %..thread333_crit_edge, %246, %.thread329, %249, %251
  %259 = phi i8 [ %.pre346, %..thread333_crit_edge ], [ %234, %246 ], [ %234, %.thread329 ], [ %.pre347, %249 ], [ %.pre347, %251 ]
  %260 = trunc nuw i8 %259 to i1
  %.not316 = xor i1 %260, true
  %brmerge317 = select i1 %.not316, i1 true, i1 %98
  br i1 %brmerge317, label %.thread337, label %261

261:                                              ; preds = %.thread333
  %262 = call noundef zeroext i1 @_ZN5ImGui15IsMouseDraggingEif(i32 noundef 0, float noundef -1.000000e+00)
  br i1 %262, label %263, label %.thread337

263:                                              ; preds = %261
  %264 = load i8, ptr %222, align 8, !tbaa !143, !range !20, !noundef !21
  %265 = trunc nuw i8 %264 to i1
  br i1 %265, label %291, label %266

266:                                              ; preds = %263
  %267 = load i32, ptr %92, align 8, !tbaa !123
  %268 = and i32 %267, 1
  %269 = icmp ne i32 %268, 0
  %or.cond5 = or i1 %108, %269
  br i1 %or.cond5, label %270, label %.thread337

270:                                              ; preds = %266
  %271 = getelementptr inbounds i8, ptr %24, i64 248
  %272 = load float, ptr %271, align 8, !tbaa !152
  %273 = fcmp olt float %272, 0.000000e+00
  br i1 %273, label %274, label %281

274:                                              ; preds = %270
  %275 = getelementptr inbounds i8, ptr %24, i64 3592
  %276 = load float, ptr %275, align 8, !tbaa !153
  %277 = load float, ptr %14, align 4, !tbaa !136
  %278 = fcmp olt float %276, %277
  br i1 %278, label %279, label %281

279:                                              ; preds = %274
  %280 = fsub float %277, %276
  br label %.sink.split

281:                                              ; preds = %274, %270
  %282 = fcmp ogt float %272, 0.000000e+00
  br i1 %282, label %283, label %291

283:                                              ; preds = %281
  %284 = getelementptr inbounds i8, ptr %24, i64 3592
  %285 = load float, ptr %284, align 8, !tbaa !153
  %286 = getelementptr inbounds i8, ptr %14, i64 8
  %287 = load float, ptr %286, align 4, !tbaa !138
  %288 = fcmp ogt float %285, %287
  br i1 %288, label %289, label %291

289:                                              ; preds = %283
  %290 = fsub float %285, %287
  br label %.sink.split

.sink.split:                                      ; preds = %289, %279
  %.sink350 = phi ptr [ %275, %279 ], [ %284, %289 ]
  %.0271.ph = phi float [ %280, %279 ], [ %290, %289 ]
  %.ph = phi i1 [ true, %279 ], [ false, %289 ]
  %.ph349 = phi i1 [ false, %279 ], [ true, %289 ]
  %.sroa.022.0.copyload = load <2 x float>, ptr %.sink350, align 8
  call void @_ZN5ImGui30TabBarQueueReorderFromMousePosEP11ImGuiTabBarP12ImGuiTabItem6ImVec2(ptr noundef nonnull %0, ptr noundef nonnull %.0263, <2 x float> %.sroa.022.0.copyload)
  br label %291

291:                                              ; preds = %.sink.split, %283, %281, %263
  %.0271 = phi float [ 0.000000e+00, %263 ], [ 0.000000e+00, %283 ], [ 0.000000e+00, %281 ], [ %.0271.ph, %.sink.split ]
  %292 = phi i1 [ false, %263 ], [ false, %283 ], [ false, %281 ], [ %.ph, %.sink.split ]
  %293 = phi i1 [ false, %263 ], [ false, %283 ], [ false, %281 ], [ %.ph349, %.sink.split ]
  br i1 %108, label %294, label %.thread337

294:                                              ; preds = %291
  %295 = getelementptr inbounds i8, ptr %4, i64 20
  %296 = load i32, ptr %295, align 4, !tbaa !154
  %297 = and i32 %296, 4
  %.not299 = icmp eq i32 %297, 0
  br i1 %.not299, label %298, label %.thread337

298:                                              ; preds = %294
  %299 = load i8, ptr %222, align 8, !tbaa !143, !range !20, !noundef !21
  %300 = trunc nuw i8 %299 to i1
  br i1 %300, label %301, label %.thread339

301:                                              ; preds = %298
  %302 = getelementptr inbounds i8, ptr %24, i64 19556
  %303 = load i32, ptr %302, align 4, !tbaa !155
  %304 = icmp eq i32 %303, %37
  br i1 %304, label %.thread341, label %.thread339

.thread339:                                       ; preds = %298, %301
  %305 = getelementptr inbounds i8, ptr %24, i64 15696
  %306 = load float, ptr %305, align 8, !tbaa !156
  %307 = fmul float %306, 0x40019999A0000000
  %308 = getelementptr inbounds i8, ptr %24, i64 14248
  %309 = load float, ptr %308, align 8, !tbaa !116
  %310 = call float @llvm.fabs.f32(float %309)
  %311 = fneg float %306
  %312 = call float @llvm.fmuladd.f32(float %311, float 2.000000e+00, float %310)
  %313 = fmul float %312, 0x3FC99999A0000000
  %314 = fmul float %306, 4.000000e+00
  %315 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %313, float noundef 0.000000e+00, float noundef %314)
  %316 = call float @llvm.fmuladd.f32(float %306, float 1.500000e+00, float %315)
  %317 = getelementptr inbounds i8, ptr %14, i64 4
  %318 = load float, ptr %317, align 4, !tbaa !140
  %319 = getelementptr inbounds i8, ptr %24, i64 3596
  %320 = load float, ptr %319, align 4, !tbaa !157
  %321 = fsub float %318, %320
  %322 = getelementptr inbounds i8, ptr %14, i64 12
  %323 = load float, ptr %322, align 4, !tbaa !141
  %324 = fsub float %320, %323
  %325 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %321, float noundef %324)
  %326 = fcmp oge float %325, %316
  %327 = fcmp ogt float %.0271, %307
  br i1 %327, label %328, label %338

328:                                              ; preds = %.thread339
  br i1 %292, label %329, label %332

329:                                              ; preds = %328
  %330 = call noundef i32 @_ZN5ImGui17TabBarGetTabOrderEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef nonnull %0, ptr noundef nonnull %.0263)
  %331 = icmp eq i32 %330, 0
  br i1 %331, label %.thread341, label %332

332:                                              ; preds = %329, %328
  br i1 %293, label %333, label %338

333:                                              ; preds = %332
  %334 = call noundef i32 @_ZN5ImGui17TabBarGetTabOrderEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef nonnull %0, ptr noundef nonnull %.0263)
  %335 = load i32, ptr %0, align 8, !tbaa !132
  %336 = add nsw i32 %335, -1
  %337 = icmp eq i32 %334, %336
  %brmerge345 = or i1 %326, %337
  br i1 %brmerge345, label %.thread341, label %.thread337

338:                                              ; preds = %.thread339, %332
  br i1 %326, label %.thread341, label %.thread337

.thread341:                                       ; preds = %333, %329, %301, %338
  call void @_ZN5ImGui28DockContextQueueUndockWindowEP12ImGuiContextP11ImGuiWindow(ptr noundef nonnull %24, ptr noundef nonnull %4)
  %339 = getelementptr inbounds i8, ptr %24, i64 16432
  store ptr %4, ptr %339, align 8, !tbaa !158
  %340 = getelementptr inbounds i8, ptr %4, i64 172
  %341 = load i32, ptr %340, align 4, !tbaa !159
  call void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef %341, ptr noundef nonnull %4)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %342 = load ptr, ptr %339, align 8, !tbaa !158
  %343 = getelementptr inbounds i8, ptr %342, i64 80
  %344 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %343, ptr noundef nonnull align 4 dereferenceable(8) %14)
  store <2 x float> %344, ptr %21, align 8
  %345 = getelementptr inbounds i8, ptr %24, i64 16524
  %346 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZmIR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %345, ptr noundef nonnull align 4 dereferenceable(8) %21)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  %347 = getelementptr inbounds i8, ptr %24, i64 16518
  store i8 1, ptr %347, align 2, !tbaa !160
  call void @_ZN5ImGui31SetActiveIdUsingAllKeyboardKeysEv()
  br label %.thread337

.thread337:                                       ; preds = %333, %266, %291, %294, %.thread341, %338, %.thread333, %261, %258
  %348 = getelementptr inbounds i8, ptr %32, i64 728
  %349 = load ptr, ptr %348, align 8, !tbaa !161
  %350 = load i8, ptr %20, align 1, !tbaa !25, !range !20, !noundef !21
  %351 = trunc nuw i8 %350 to i1
  br i1 %351, label %360, label %352

352:                                              ; preds = %.thread337
  %353 = load i8, ptr %19, align 1, !tbaa !25, !range !20, !noundef !21
  %354 = trunc nuw i8 %353 to i1
  br i1 %354, label %360, label %355

355:                                              ; preds = %352
  br i1 %.0265.shrunk, label %356, label %358

356:                                              ; preds = %355
  %357 = select i1 %.not290, i32 37, i32 35
  br label %360

358:                                              ; preds = %355
  %359 = select i1 %.not290, i32 36, i32 33
  br label %360

360:                                              ; preds = %356, %358, %.thread337, %352
  %361 = phi i32 [ 34, %352 ], [ 34, %.thread337 ], [ %357, %356 ], [ %359, %358 ]
  %362 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %361, float noundef 1.000000e+00)
  call void @_ZN5ImGui17TabItemBackgroundEP10ImDrawListRK6ImRectij(ptr noundef %349, ptr noundef nonnull align 4 dereferenceable(16) %14, i32 noundef %.0261, i32 noundef %362)
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %14, i32 noundef %37, i32 noundef 1)
  %363 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 32)
  br i1 %363, label %364, label %371

364:                                              ; preds = %360
  %365 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 1, i1 noundef zeroext false)
  br i1 %365, label %369, label %366

366:                                              ; preds = %364
  %367 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 1)
  %368 = select i1 %367, i1 %.not292, i1 false
  br i1 %368, label %370, label %371

369:                                              ; preds = %364
  br i1 %.not292, label %370, label %371

370:                                              ; preds = %366, %369
  call void @_ZN5ImGui16TabBarQueueFocusEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef nonnull %0, ptr noundef nonnull %.0263)
  br label %371

371:                                              ; preds = %366, %370, %369, %360
  %372 = load i32, ptr %92, align 8, !tbaa !123
  %373 = lshr i32 %372, 1
  %374 = and i32 %373, 4
  %spec.select321 = or i32 %374, %.0261
  br i1 %61, label %375, label %382

375:                                              ; preds = %371
  br i1 %108, label %376, label %379

376:                                              ; preds = %375
  %377 = getelementptr inbounds i8, ptr %4, i64 16
  %378 = load i32, ptr %377, align 8, !tbaa !162
  br label %379

379:                                              ; preds = %375, %376
  %380 = phi i32 [ %378, %376 ], [ %37, %375 ]
  %381 = call noundef i32 @_ZN5ImGui13GetIDWithSeedEPKcS1_j(ptr noundef nonnull @.str.150, ptr noundef null, i32 noundef %380)
  br label %382

382:                                              ; preds = %371, %379
  %383 = phi i32 [ %381, %379 ], [ 0, %371 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #12
  %384 = and i32 %spec.select321, -2
  %385 = select i1 %104, i32 %384, i32 %spec.select321
  %386 = getelementptr inbounds i8, ptr %0, i64 120
  %.sroa.0.0.copyload = load <2 x float>, ptr %386, align 8
  call void @_ZN5ImGui26TabItemLabelAndCloseButtonEP10ImDrawListRK6ImRecti6ImVec2PKcjjbPbS8_(ptr noundef %349, ptr noundef nonnull align 4 dereferenceable(16) %14, i32 noundef %385, <2 x float> %.sroa.0.0.copyload, ptr noundef %1, i32 noundef %37, i32 noundef %383, i1 noundef zeroext %.0265.shrunk, ptr noundef nonnull %22, ptr noundef nonnull %23)
  %387 = load i8, ptr %22, align 1, !tbaa !25, !range !20, !noundef !21
  %388 = trunc nuw i8 %387 to i1
  %or.cond7 = and i1 %61, %388
  br i1 %or.cond7, label %389, label %390

389:                                              ; preds = %382
  store i8 0, ptr %.0260, align 1, !tbaa !25
  call void @_ZN5ImGui14TabBarCloseTabEP11ImGuiTabBarP12ImGuiTabItem(ptr noundef nonnull %0, ptr noundef nonnull %.0263)
  br label %390

390:                                              ; preds = %389, %382
  br i1 %108, label %391, label %402

391:                                              ; preds = %390
  %392 = load i8, ptr %19, align 1, !tbaa !25, !range !20, !noundef !21
  %393 = trunc nuw i8 %392 to i1
  br i1 %393, label %398, label %394

394:                                              ; preds = %391
  %395 = getelementptr inbounds i8, ptr %24, i64 16484
  %396 = load i32, ptr %395, align 4, !tbaa !163
  %397 = icmp eq i32 %396, %383
  br i1 %397, label %398, label %402

398:                                              ; preds = %394, %391
  %399 = getelementptr inbounds i8, ptr %24, i64 18624
  %400 = load i32, ptr %399, align 8, !tbaa !164
  %401 = or i32 %400, 128
  store i32 %401, ptr %399, align 8, !tbaa !164
  br label %402

402:                                              ; preds = %398, %394, %390
  br i1 %210, label %403, label %404

403:                                              ; preds = %402
  call void @_ZN5ImGui11PopClipRectEv()
  br label %404

404:                                              ; preds = %403, %402
  store i64 %170, ptr %169, align 8
  %405 = load i8, ptr %23, align 1, !tbaa !25, !range !20, !noundef !21
  %406 = trunc nuw i8 %405 to i1
  br i1 %406, label %407, label %426

407:                                              ; preds = %404
  %408 = getelementptr inbounds i8, ptr %24, i64 16484
  %409 = load i32, ptr %408, align 4, !tbaa !163
  %410 = icmp eq i32 %409, %37
  br i1 %410, label %411, label %426

411:                                              ; preds = %407
  %412 = load i8, ptr %20, align 1, !tbaa !25, !range !20, !noundef !21
  %413 = trunc nuw i8 %412 to i1
  br i1 %413, label %426, label %414

414:                                              ; preds = %411
  %415 = load i32, ptr %92, align 8, !tbaa !123
  %416 = and i32 %415, 32
  %.not301 = icmp eq i32 %416, 0
  br i1 %.not301, label %417, label %426

417:                                              ; preds = %414
  %418 = load i32, ptr %106, align 4, !tbaa !125
  %419 = and i32 %418, 16
  %.not302 = icmp eq i32 %419, 0
  br i1 %.not302, label %420, label %426

420:                                              ; preds = %417
  %421 = call noundef ptr @_ZN5ImGui19FindRenderedTextEndEPKcS1_(ptr noundef %1, ptr noundef null)
  %422 = ptrtoint ptr %421 to i64
  %423 = ptrtoint ptr %1 to i64
  %424 = sub i64 %422, %423
  %425 = trunc i64 %424 to i32
  call void (ptr, ...) @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef nonnull @.str.188, i32 noundef %425, ptr noundef %1)
  br label %426

426:                                              ; preds = %414, %417, %420, %411, %407, %404
  br i1 %.not292, label %.critedge, label %427

427:                                              ; preds = %426
  %428 = load i32, ptr %162, align 8, !tbaa !129
  %429 = load i32, ptr %.0263, align 8, !tbaa !109
  %.not303 = icmp eq i32 %428, %429
  br i1 %.not303, label %430, label %.critedge

430:                                              ; preds = %427
  call void @__assert_fail(ptr noundef nonnull @.str.189, ptr noundef nonnull @.str.4, i32 noundef 8602, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui9TabItemExEP11ImGuiTabBarPKcPbiP11ImGuiWindow) #13
  unreachable

.critedge:                                        ; preds = %426, %427
  %.0265.shrunk.322 = phi i1 [ %.0265.shrunk, %426 ], [ %230, %427 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #12
  br label %431

431:                                              ; preds = %.critedge, %219
  %.1 = phi i1 [ %.0265.shrunk.322, %.critedge ], [ %.0265.shrunk, %219 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #12
  br label %432

432:                                              ; preds = %159, %431
  %.2 = phi i1 [ %.1, %431 ], [ %.0265.shrunk., %159 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #12
  br label %433

433:                                              ; preds = %41, %432, %30
  %.4 = phi i1 [ false, %30 ], [ %.2, %432 ], [ false, %41 ]
  ret i1 %.4
}

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN5ImGuiL15TabBarCalcTabIDEP11ImGuiTabBarPKcP11ImGuiWindow(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #10

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui15TabItemCalcSizeEPKcb(ptr noundef, i1 noundef zeroext) local_unnamed_addr #8

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK12ImGuiPayload10IsDataTypeEPKc(ptr noundef nonnull align 8 dereferenceable(59), ptr noundef) local_unnamed_addr #2 align 2

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

declare void @_ZN5ImGui22StartMouseMovingWindowEP11ImGuiWindow(ptr noundef) local_unnamed_addr #4

declare void @_ZN5ImGui28DockContextQueueUndockWindowEP12ImGuiContextP11ImGuiWindow(ptr noundef, ptr noundef) local_unnamed_addr #4

declare void @_ZN5ImGui31SetActiveIdUsingAllKeyboardKeysEv() local_unnamed_addr #4

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

declare noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef, i1 noundef zeroext) local_unnamed_addr #4

declare noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef) local_unnamed_addr #4

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

declare void @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef, ...) local_unnamed_addr #4

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


; Effective O3 passes: ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,MergedLoadStoreMotionPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass