; LLVM IR from aap/librw :: skeleton/imgui/imgui_widgets.ll (ZN5ImGui16TreeNodeBehaviorEjiPKcS1_)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.ImVec2 = type { float, float }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImGuiWindow = type <{ ptr, ptr, i32, i32, i32, [4 x i8], ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, i16, i8, i8, i8, [3 x i8], i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, [4 x i8], %struct.ImVector, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, float, float, [4 x i8], %struct.ImGuiStorage, %struct.ImVector.3, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], [2 x %struct.ImVec2], i32, i32, i32, i8, [3 x i8] }>
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiWindowTempData = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, %struct.ImVec2, i32, i16, i16, i8, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.0, ptr, ptr, i32, i32, i32, i32, float, float, %struct.ImVector.1, %struct.ImVector.1 }
%struct.ImVec1 = type { float }
%struct.ImGuiMenuColumns = type <{ i32, i32, i16, i16, i16, i16, i16, [4 x i16], [2 x i8] }>
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImVec2ih = type { i16, i16 }
%struct.ImGuiStorage = type { %struct.ImVector.2 }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImDrawList = type { %struct.ImVector.4, %struct.ImVector.5, %struct.ImVector.6, i32, i32, ptr, ptr, ptr, %struct.ImVector.7, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, %struct.ImVector.9, %struct.ImVector.10, float, ptr }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImVec4 = type { float, float, float, float }
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.8 }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImGuiContext = type { i8, i8, [6 x i8], %struct.ImGuiIO, %struct.ImGuiStyle, ptr, float, float, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i8, ptr, [16 x i8], %struct.ImVector.11, %struct.ImVector.11, i32, i32, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.12, %struct.ImGuiStorage, i32, %struct.ImVec2, i32, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, float, float, i8, i8, i8, i32, i32, float, i8, i8, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, i8, i8, ptr, i32, float, double, double, double, %struct.ImBitArray, [154 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, i8, i32, %struct.ImVector.14, %struct.ImVector.15, %struct.ImVector.16, %struct.ImVector.17, %struct.ImVector.18, %struct.ImVector.19, %struct.ImVector.20, %struct.ImVector.20, %struct.ImVector.21, %struct.ImVector.22, ptr, i32, i32, i32, i32, i32, i32, i32, %struct.ImVector.17, i32, float, i32, i32, i32, i64, 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, i32, i32, i8, i8, i32, i32, ptr, ptr, ptr, float, float, i8, i32, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.23, [16 x i8], i32, %struct.ImVector.24, ptr, i32, i32, %struct.ImVector.25, %struct.ImPool, %struct.ImVector.1, %struct.ImVector.8, ptr, %struct.ImPool.27, %struct.ImVector.29, %struct.ImVector.30, %struct.ImGuiBoxSelectState, ptr, i32, %struct.ImVector.31, %struct.ImPool.32, i32, i32, float, float, i32, i32, i32, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, %struct.ImGuiDataTypeStorage, i32, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, %struct.ImRect, i8, i16, float, float, float, i8, i8, float, float, float, i16, i16, i16, %struct.ImVector.34, %struct.ImVector, %struct.ImGuiTypingSelectState, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.36, %struct.ImChunkStream, %struct.ImChunkStream.37, %struct.ImVector.38, i32, [9 x ptr], i8, i32, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i32, i8, i8, i8, i32, i8, i8, i8, i32, float, %struct.ImVec4, %struct.ImGuiMetricsConfig, %struct.ImGuiIDStackTool, %struct.ImGuiDebugAllocInfo, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.34, [64 x i8] }
%struct.ImGuiIO = type <{ i32, i32, %struct.ImVec2, float, float, ptr, ptr, ptr, ptr, float, i8, [3 x i8], ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8], float, float, float, float, float, float, i8, i8, i8, i8, i8, [7 x i8], ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i16, i8, i8, i8, i8, i8, i8, i8, [3 x i8], float, i32, i32, i32, i32, %struct.ImVec2, ptr, %struct.ImVec2, [5 x i8], [3 x i8], float, float, i32, i8, i8, i8, i8, i32, [666 x %struct.ImGuiKeyData], i8, [3 x i8], %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x i8], [5 x i8], i8, i8, i8, [5 x float], [5 x float], [5 x float], float, i8, i8, i8, i8, i16, [2 x i8], %struct.ImVector.5, [666 x i32], [666 x i8], [2 x i8], [16 x float], [4 x i8] }>
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, float, float, float, %struct.ImVec2, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [56 x %struct.ImVec4], float, float, float, i32, i32 }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, float, %struct.ImVec4, i32, %struct.ImVector.7, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImBitArray = type { [5 x i32] }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [154 x i16], %struct.ImVector.13, %struct.ImVector.13 }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, i32, i32, [4 x i8], i64, float, i32, i32, i8, i8, %struct.ImGuiDataTypeStorage, [2 x i8], i32, [4 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, i32 }
%struct.ImGuiNextWindowData = type { i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i32, i8, %struct.ImRect, ptr, ptr, float, %struct.ImVec2, i32 }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImVector.16 = 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.ImVector.17 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type { ptr, i32, i32, %struct.ImRect, i32, float, float, float, i64 }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.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.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.ImGuiBoxSelectState = type <{ i32, i8, i8, i8, i8, i8, i16, i8, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, [4 x i8], ptr, i8, [3 x i8], %struct.ImRect, %struct.ImRect, %struct.ImRect, [4 x i8] }>
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImPool.32 = type { %struct.ImVector.33, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type { ptr, i32, i32, i32, %struct.ImVector.5, %struct.ImVector.34, %struct.ImVector.34, i8, i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i32, i8, i32, i32 }
%"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.34 }
%struct.ImFont = type <{ %struct.ImVector.1, float, float, %struct.ImVector.5, %struct.ImVector.35, 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.35 = type { i32, i32, ptr }
%struct.ImGuiDataTypeStorage = type { [8 x i8] }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImGuiTypingSelectState = type <{ %struct.ImGuiTypingSelectRequest, [64 x i8], i32, i32, float, i8, [3 x i8] }>
%struct.ImGuiTypingSelectRequest = type { i32, i32, ptr, i8, i8, i8 }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImVector.36 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.34 }
%struct.ImChunkStream.37 = type { %struct.ImVector.34 }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.34 }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.18, i32, [4 x i8] }>
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32 }
%struct.ImGuiIDStackTool = type { i32, i32, i32, %struct.ImVector.39, i8, float }
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImGuiDebugAllocInfo = type { i32, i32, i16, [6 x %struct.ImGuiDebugAllocEntry] }
%struct.ImGuiDebugAllocEntry = type { i32, i16, i16 }
%struct.ImVector.34 = type { i32, i32, ptr }

@GImGui = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [54 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui16TreeNodeBehaviorEjiPKcS1_ = external hidden unnamed_addr constant [86 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [2 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui16GetCurrentWindowEv() #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

declare <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef, ptr noundef, i1 noundef zeroext, float noundef) #3

; 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) #3

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

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

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

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

declare void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float>, ptr noundef, ptr noundef, i1 noundef zeroext) #3

declare void @_ZN5ImGui17RenderTextClippedERK6ImVec2S2_PKcS4_PS1_S2_PK6ImRect(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef) #3

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

declare void @_ZN5ImGui12RenderBulletEP10ImDrawList6ImVec2j(ptr noundef, <2 x float>, i32 noundef) #3

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

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

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

declare void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float>, <2 x float>, i32 noundef, i1 noundef zeroext, float noundef) #3

declare void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef, ptr noundef) #3

declare void @_ZN5ImGui11RenderArrowEP10ImDrawList6ImVec2j8ImGuiDirf(ptr noundef, <2 x float>, i32 noundef, i32 noundef, float noundef) #3

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

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

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

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

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

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

65:                                               ; preds = %4
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %1009

66:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  %67 = load ptr, ptr @GImGui, align 8, !tbaa !9
  store ptr %67, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %68 = load ptr, ptr %12, align 8, !tbaa !9
  %69 = getelementptr inbounds %struct.ImGuiContext, ptr %68, i32 0, i32 4
  store ptr %69, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #9
  %70 = load i32, ptr %7, align 4, !tbaa !5
  %71 = and i32 %70, 2
  %72 = icmp ne i32 %71, 0
  %73 = zext i1 %72 to i8
  store i8 %73, ptr %14, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  %74 = load i8, ptr %14, align 1, !tbaa !43, !range !41, !noundef !42
  %75 = trunc i8 %74 to i1
  br i1 %75, label %80, label %76

76:                                               ; preds = %66
  %77 = load i32, ptr %7, align 4, !tbaa !5
  %78 = and i32 %77, 1024
  %79 = icmp ne i32 %78, 0
  br i1 %79, label %80, label %83

80:                                               ; preds = %76, %66
  %81 = load ptr, ptr %13, align 8, !tbaa !9
  %82 = getelementptr inbounds %struct.ImGuiStyle, ptr %81, i32 0, i32 12
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %15, ptr align 4 %82, i64 8, i1 false), !tbaa.struct !44
  br label %97

83:                                               ; preds = %76
  %84 = load ptr, ptr %13, align 8, !tbaa !9
  %85 = getelementptr inbounds %struct.ImGuiStyle, ptr %84, i32 0, i32 12
  %86 = getelementptr inbounds %struct.ImVec2, ptr %85, i32 0, i32 0
  %87 = load float, ptr %86, align 4, !tbaa !46
  %88 = load ptr, ptr %10, align 8, !tbaa !9
  %89 = getelementptr inbounds %struct.ImGuiWindow, ptr %88, i32 0, i32 69
  %90 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %89, i32 0, i32 7
  %91 = load float, ptr %90, align 8, !tbaa !48
  %92 = load ptr, ptr %13, align 8, !tbaa !9
  %93 = getelementptr inbounds %struct.ImGuiStyle, ptr %92, i32 0, i32 12
  %94 = getelementptr inbounds %struct.ImVec2, ptr %93, i32 0, i32 1
  %95 = load float, ptr %94, align 4, !tbaa !49
  %96 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %91, float noundef %95)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef %87, float noundef %96)
  br label %97

97:                                               ; preds = %83, %80
  %98 = load ptr, ptr %9, align 8, !tbaa !9
  %99 = icmp ne ptr %98, null
  br i1 %99, label %103, label %100

100:                                              ; preds = %97
  %101 = load ptr, ptr %8, align 8, !tbaa !9
  %102 = call noundef ptr @_ZN5ImGui19FindRenderedTextEndEPKcS1_(ptr noundef %101, ptr noundef null)
  store ptr %102, ptr %9, align 8, !tbaa !9
  br label %103

103:                                              ; preds = %100, %97
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %104 = load ptr, ptr %8, align 8, !tbaa !9
  %105 = load ptr, ptr %9, align 8, !tbaa !9
  %106 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %104, ptr noundef %105, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %106, ptr %16, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %107 = load ptr, ptr %12, align 8, !tbaa !9
  %108 = getelementptr inbounds %struct.ImGuiContext, ptr %107, i32 0, i32 6
  %109 = load float, ptr %108, align 8, !tbaa !50
  %110 = load i8, ptr %14, align 1, !tbaa !43, !range !41, !noundef !42
  %111 = trunc i8 %110 to i1
  br i1 %111, label %112, label %116

112:                                              ; preds = %103
  %113 = getelementptr inbounds %struct.ImVec2, ptr %15, i32 0, i32 0
  %114 = load float, ptr %113, align 4, !tbaa !114
  %115 = fmul float %114, 3.000000e+00
  br label %120

116:                                              ; preds = %103
  %117 = getelementptr inbounds %struct.ImVec2, ptr %15, i32 0, i32 0
  %118 = load float, ptr %117, align 4, !tbaa !114
  %119 = fmul float %118, 2.000000e+00
  br label %120

120:                                              ; preds = %116, %112
  %121 = phi float [ %115, %112 ], [ %119, %116 ]
  %122 = fadd float %109, %121
  store float %122, ptr %17, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  %123 = getelementptr inbounds %struct.ImVec2, ptr %15, i32 0, i32 1
  %124 = load float, ptr %123, align 4, !tbaa !115
  %125 = load ptr, ptr %10, align 8, !tbaa !9
  %126 = getelementptr inbounds %struct.ImGuiWindow, ptr %125, i32 0, i32 69
  %127 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %126, i32 0, i32 7
  %128 = load float, ptr %127, align 8, !tbaa !48
  %129 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %124, float noundef %128)
  store float %129, ptr %18, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  %130 = load ptr, ptr %12, align 8, !tbaa !9
  %131 = getelementptr inbounds %struct.ImGuiContext, ptr %130, i32 0, i32 6
  %132 = load float, ptr %131, align 8, !tbaa !50
  %133 = getelementptr inbounds %struct.ImVec2, ptr %16, i32 0, i32 0
  %134 = load float, ptr %133, align 4, !tbaa !114
  %135 = fadd float %132, %134
  %136 = getelementptr inbounds %struct.ImVec2, ptr %15, i32 0, i32 0
  %137 = load float, ptr %136, align 4, !tbaa !114
  %138 = call float @llvm.fmuladd.f32(float %137, float 2.000000e+00, float %135)
  store float %138, ptr %19, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %139 = load ptr, ptr %10, align 8, !tbaa !9
  %140 = getelementptr inbounds %struct.ImGuiWindow, ptr %139, i32 0, i32 69
  %141 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %140, i32 0, i32 5
  %142 = getelementptr inbounds %struct.ImVec2, ptr %141, i32 0, i32 1
  %143 = load float, ptr %142, align 4, !tbaa !116
  %144 = load ptr, ptr %12, align 8, !tbaa !9
  %145 = getelementptr inbounds %struct.ImGuiContext, ptr %144, i32 0, i32 6
  %146 = load float, ptr %145, align 8, !tbaa !50
  %147 = load ptr, ptr %13, align 8, !tbaa !9
  %148 = getelementptr inbounds %struct.ImGuiStyle, ptr %147, i32 0, i32 12
  %149 = getelementptr inbounds %struct.ImVec2, ptr %148, i32 0, i32 1
  %150 = load float, ptr %149, align 4, !tbaa !49
  %151 = call float @llvm.fmuladd.f32(float %150, float 2.000000e+00, float %146)
  %152 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %143, float noundef %151)
  %153 = getelementptr inbounds %struct.ImVec2, ptr %16, i32 0, i32 1
  %154 = load float, ptr %153, align 4, !tbaa !115
  %155 = getelementptr inbounds %struct.ImVec2, ptr %15, i32 0, i32 1
  %156 = load float, ptr %155, align 4, !tbaa !115
  %157 = call float @llvm.fmuladd.f32(float %156, float 2.000000e+00, float %154)
  %158 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %152, float noundef %157)
  store float %158, ptr %20, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #9
  %159 = load i32, ptr %7, align 4, !tbaa !5
  %160 = and i32 %159, 16384
  %161 = icmp ne i32 %160, 0
  br i1 %161, label %162, label %167

162:                                              ; preds = %120
  %163 = load ptr, ptr %12, align 8, !tbaa !9
  %164 = getelementptr inbounds %struct.ImGuiContext, ptr %163, i32 0, i32 181
  %165 = load ptr, ptr %164, align 8, !tbaa !117
  %166 = icmp ne ptr %165, null
  br label %167

167:                                              ; preds = %162, %120
  %168 = phi i1 [ false, %120 ], [ %166, %162 ]
  %169 = zext i1 %168 to i8
  store i8 %169, ptr %21, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #9
  call void @_ZN6ImRectC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %22)
  %170 = load i8, ptr %21, align 1, !tbaa !43, !range !41, !noundef !42
  %171 = trunc i8 %170 to i1
  br i1 %171, label %172, label %178

172:                                              ; preds = %167
  %173 = load ptr, ptr %10, align 8, !tbaa !9
  %174 = getelementptr inbounds %struct.ImGuiWindow, ptr %173, i32 0, i32 74
  %175 = getelementptr inbounds %struct.ImRect, ptr %174, i32 0, i32 0
  %176 = getelementptr inbounds %struct.ImVec2, ptr %175, i32 0, i32 0
  %177 = load float, ptr %176, align 8, !tbaa !118
  br label %196

178:                                              ; preds = %167
  %179 = load i32, ptr %7, align 4, !tbaa !5
  %180 = and i32 %179, 4096
  %181 = icmp ne i32 %180, 0
  br i1 %181, label %182, label %188

182:                                              ; preds = %178
  %183 = load ptr, ptr %10, align 8, !tbaa !9
  %184 = getelementptr inbounds %struct.ImGuiWindow, ptr %183, i32 0, i32 73
  %185 = getelementptr inbounds %struct.ImRect, ptr %184, i32 0, i32 0
  %186 = getelementptr inbounds %struct.ImVec2, ptr %185, i32 0, i32 0
  %187 = load float, ptr %186, align 8, !tbaa !119
  br label %194

188:                                              ; preds = %178
  %189 = load ptr, ptr %10, align 8, !tbaa !9
  %190 = getelementptr inbounds %struct.ImGuiWindow, ptr %189, i32 0, i32 69
  %191 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %190, i32 0, i32 0
  %192 = getelementptr inbounds %struct.ImVec2, ptr %191, i32 0, i32 0
  %193 = load float, ptr %192, align 8, !tbaa !120
  br label %194

194:                                              ; preds = %188, %182
  %195 = phi float [ %187, %182 ], [ %193, %188 ]
  br label %196

196:                                              ; preds = %194, %172
  %197 = phi float [ %177, %172 ], [ %195, %194 ]
  %198 = getelementptr inbounds %struct.ImRect, ptr %22, i32 0, i32 0
  %199 = getelementptr inbounds %struct.ImVec2, ptr %198, i32 0, i32 0
  store float %197, ptr %199, align 4, !tbaa !121
  %200 = load ptr, ptr %10, align 8, !tbaa !9
  %201 = getelementptr inbounds %struct.ImGuiWindow, ptr %200, i32 0, i32 69
  %202 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %201, i32 0, i32 0
  %203 = getelementptr inbounds %struct.ImVec2, ptr %202, i32 0, i32 1
  %204 = load float, ptr %203, align 4, !tbaa !122
  %205 = getelementptr inbounds %struct.ImRect, ptr %22, i32 0, i32 0
  %206 = getelementptr inbounds %struct.ImVec2, ptr %205, i32 0, i32 1
  store float %204, ptr %206, align 4, !tbaa !123
  %207 = load i8, ptr %21, align 1, !tbaa !43, !range !41, !noundef !42
  %208 = trunc i8 %207 to i1
  br i1 %208, label %209, label %215

209:                                              ; preds = %196
  %210 = load ptr, ptr %10, align 8, !tbaa !9
  %211 = getelementptr inbounds %struct.ImGuiWindow, ptr %210, i32 0, i32 74
  %212 = getelementptr inbounds %struct.ImRect, ptr %211, i32 0, i32 1
  %213 = getelementptr inbounds %struct.ImVec2, ptr %212, i32 0, i32 0
  %214 = load float, ptr %213, align 8, !tbaa !124
  br label %238

215:                                              ; preds = %196
  %216 = load i32, ptr %7, align 4, !tbaa !5
  %217 = and i32 %216, 8192
  %218 = icmp ne i32 %217, 0
  br i1 %218, label %219, label %230

219:                                              ; preds = %215
  %220 = load ptr, ptr %10, align 8, !tbaa !9
  %221 = getelementptr inbounds %struct.ImGuiWindow, ptr %220, i32 0, i32 69
  %222 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %221, i32 0, i32 0
  %223 = getelementptr inbounds %struct.ImVec2, ptr %222, i32 0, i32 0
  %224 = load float, ptr %223, align 8, !tbaa !120
  %225 = load float, ptr %19, align 4, !tbaa !45
  %226 = fadd float %224, %225
  %227 = getelementptr inbounds %struct.ImVec2, ptr %15, i32 0, i32 0
  %228 = load float, ptr %227, align 4, !tbaa !114
  %229 = fadd float %226, %228
  br label %236

230:                                              ; preds = %215
  %231 = load ptr, ptr %10, align 8, !tbaa !9
  %232 = getelementptr inbounds %struct.ImGuiWindow, ptr %231, i32 0, i32 73
  %233 = getelementptr inbounds %struct.ImRect, ptr %232, i32 0, i32 1
  %234 = getelementptr inbounds %struct.ImVec2, ptr %233, i32 0, i32 0
  %235 = load float, ptr %234, align 8, !tbaa !125
  br label %236

236:                                              ; preds = %230, %219
  %237 = phi float [ %229, %219 ], [ %235, %230 ]
  br label %238

238:                                              ; preds = %236, %209
  %239 = phi float [ %214, %209 ], [ %237, %236 ]
  %240 = getelementptr inbounds %struct.ImRect, ptr %22, i32 0, i32 1
  %241 = getelementptr inbounds %struct.ImVec2, ptr %240, i32 0, i32 0
  store float %239, ptr %241, align 4, !tbaa !126
  %242 = load ptr, ptr %10, align 8, !tbaa !9
  %243 = getelementptr inbounds %struct.ImGuiWindow, ptr %242, i32 0, i32 69
  %244 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %243, i32 0, i32 0
  %245 = getelementptr inbounds %struct.ImVec2, ptr %244, i32 0, i32 1
  %246 = load float, ptr %245, align 4, !tbaa !122
  %247 = load float, ptr %20, align 4, !tbaa !45
  %248 = fadd float %246, %247
  %249 = getelementptr inbounds %struct.ImRect, ptr %22, i32 0, i32 1
  %250 = getelementptr inbounds %struct.ImVec2, ptr %249, i32 0, i32 1
  store float %248, ptr %250, align 4, !tbaa !127
  %251 = load i8, ptr %14, align 1, !tbaa !43, !range !41, !noundef !42
  %252 = trunc i8 %251 to i1
  br i1 %252, label %253, label %271

253:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %254 = load ptr, ptr %10, align 8, !tbaa !9
  %255 = getelementptr inbounds %struct.ImGuiWindow, ptr %254, i32 0, i32 13
  %256 = getelementptr inbounds %struct.ImVec2, ptr %255, i32 0, i32 0
  %257 = load float, ptr %256, align 8, !tbaa !128
  %258 = fmul float %257, 5.000000e-01
  %259 = fptosi float %258 to i32
  %260 = sitofp i32 %259 to float
  store float %260, ptr %23, align 4, !tbaa !45
  %261 = load float, ptr %23, align 4, !tbaa !45
  %262 = getelementptr inbounds %struct.ImRect, ptr %22, i32 0, i32 0
  %263 = getelementptr inbounds %struct.ImVec2, ptr %262, i32 0, i32 0
  %264 = load float, ptr %263, align 4, !tbaa !121
  %265 = fsub float %264, %261
  store float %265, ptr %263, align 4, !tbaa !121
  %266 = load float, ptr %23, align 4, !tbaa !45
  %267 = getelementptr inbounds %struct.ImRect, ptr %22, i32 0, i32 1
  %268 = getelementptr inbounds %struct.ImVec2, ptr %267, i32 0, i32 0
  %269 = load float, ptr %268, align 4, !tbaa !126
  %270 = fadd float %269, %266
  store float %270, ptr %268, align 4, !tbaa !126
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %271

271:                                              ; preds = %253, %238
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  %272 = load ptr, ptr %10, align 8, !tbaa !9
  %273 = getelementptr inbounds %struct.ImGuiWindow, ptr %272, i32 0, i32 69
  %274 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %273, i32 0, i32 0
  %275 = getelementptr inbounds %struct.ImVec2, ptr %274, i32 0, i32 0
  %276 = load float, ptr %275, align 8, !tbaa !120
  %277 = load float, ptr %17, align 4, !tbaa !45
  %278 = fadd float %276, %277
  %279 = load ptr, ptr %10, align 8, !tbaa !9
  %280 = getelementptr inbounds %struct.ImGuiWindow, ptr %279, i32 0, i32 69
  %281 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %280, i32 0, i32 0
  %282 = getelementptr inbounds %struct.ImVec2, ptr %281, i32 0, i32 1
  %283 = load float, ptr %282, align 4, !tbaa !122
  %284 = load float, ptr %18, align 4, !tbaa !45
  %285 = fadd float %283, %284
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef %278, float noundef %285)
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %286 = load float, ptr %19, align 4, !tbaa !45
  %287 = load float, ptr %20, align 4, !tbaa !45
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef %286, float noundef %287)
  %288 = getelementptr inbounds %struct.ImVec2, ptr %15, i32 0, i32 1
  %289 = load float, ptr %288, align 4, !tbaa !115
  call void @_ZN5ImGui8ItemSizeERK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef %289)
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %26, ptr align 4 %22, i64 16, i1 false), !tbaa.struct !129
  %290 = load i32, ptr %7, align 4, !tbaa !5
  %291 = and i32 %290, 30722
  %292 = icmp eq i32 %291, 0
  br i1 %292, label %293, label %314

293:                                              ; preds = %271
  %294 = getelementptr inbounds %struct.ImRect, ptr %22, i32 0, i32 0
  %295 = getelementptr inbounds %struct.ImVec2, ptr %294, i32 0, i32 0
  %296 = load float, ptr %295, align 4, !tbaa !121
  %297 = load float, ptr %19, align 4, !tbaa !45
  %298 = fadd float %296, %297
  %299 = getelementptr inbounds %struct.ImVec2, ptr %16, i32 0, i32 0
  %300 = load float, ptr %299, align 4, !tbaa !114
  %301 = fcmp ogt float %300, 0.000000e+00
  br i1 %301, label %302, label %308

302:                                              ; preds = %293
  %303 = load ptr, ptr %13, align 8, !tbaa !9
  %304 = getelementptr inbounds %struct.ImGuiStyle, ptr %303, i32 0, i32 15
  %305 = getelementptr inbounds %struct.ImVec2, ptr %304, i32 0, i32 0
  %306 = load float, ptr %305, align 4, !tbaa !130
  %307 = fmul float %306, 2.000000e+00
  br label %309

308:                                              ; preds = %293
  br label %309

309:                                              ; preds = %308, %302
  %310 = phi float [ %307, %302 ], [ 0.000000e+00, %308 ]
  %311 = fadd float %298, %310
  %312 = getelementptr inbounds %struct.ImRect, ptr %26, i32 0, i32 1
  %313 = getelementptr inbounds %struct.ImVec2, ptr %312, i32 0, i32 0
  store float %311, ptr %313, align 4, !tbaa !126
  br label %314

314:                                              ; preds = %309, %271
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %315 = load ptr, ptr %12, align 8, !tbaa !9
  %316 = getelementptr inbounds %struct.ImGuiContext, ptr %315, i32 0, i32 86
  %317 = getelementptr inbounds %struct.ImGuiNextItemData, ptr %316, i32 0, i32 0
  %318 = load i32, ptr %317, align 8, !tbaa !131
  %319 = and i32 %318, 16
  %320 = icmp ne i32 %319, 0
  br i1 %320, label %321, label %326

321:                                              ; preds = %314
  %322 = load ptr, ptr %12, align 8, !tbaa !9
  %323 = getelementptr inbounds %struct.ImGuiContext, ptr %322, i32 0, i32 86
  %324 = getelementptr inbounds %struct.ImGuiNextItemData, ptr %323, i32 0, i32 12
  %325 = load i32, ptr %324, align 8, !tbaa !132
  br label %328

326:                                              ; preds = %314
  %327 = load i32, ptr %6, align 4, !tbaa !5
  br label %328

328:                                              ; preds = %326, %321
  %329 = phi i32 [ %325, %321 ], [ %327, %326 ]
  store i32 %329, ptr %27, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #9
  %330 = load i32, ptr %27, align 4, !tbaa !5
  %331 = load i32, ptr %7, align 4, !tbaa !5
  %332 = call noundef zeroext i1 @_ZN5ImGui22TreeNodeUpdateNextOpenEji(i32 noundef %330, i32 noundef %331)
  %333 = zext i1 %332 to i8
  store i8 %333, ptr %28, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #9
  %334 = load i8, ptr %21, align 1, !tbaa !43, !range !41, !noundef !42
  %335 = trunc i8 %334 to i1
  br i1 %335, label %336, label %378

336:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %337 = load ptr, ptr %10, align 8, !tbaa !9
  %338 = getelementptr inbounds %struct.ImGuiWindow, ptr %337, i32 0, i32 75
  %339 = getelementptr inbounds %struct.ImRect, ptr %338, i32 0, i32 0
  %340 = getelementptr inbounds %struct.ImVec2, ptr %339, i32 0, i32 0
  %341 = load float, ptr %340, align 8, !tbaa !133
  store float %341, ptr %30, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %342 = load ptr, ptr %10, align 8, !tbaa !9
  %343 = getelementptr inbounds %struct.ImGuiWindow, ptr %342, i32 0, i32 75
  %344 = getelementptr inbounds %struct.ImRect, ptr %343, i32 0, i32 1
  %345 = getelementptr inbounds %struct.ImVec2, ptr %344, i32 0, i32 0
  %346 = load float, ptr %345, align 8, !tbaa !134
  store float %346, ptr %31, align 4, !tbaa !45
  %347 = load ptr, ptr %10, align 8, !tbaa !9
  %348 = getelementptr inbounds %struct.ImGuiWindow, ptr %347, i32 0, i32 74
  %349 = getelementptr inbounds %struct.ImRect, ptr %348, i32 0, i32 0
  %350 = getelementptr inbounds %struct.ImVec2, ptr %349, i32 0, i32 0
  %351 = load float, ptr %350, align 8, !tbaa !118
  %352 = load ptr, ptr %10, align 8, !tbaa !9
  %353 = getelementptr inbounds %struct.ImGuiWindow, ptr %352, i32 0, i32 75
  %354 = getelementptr inbounds %struct.ImRect, ptr %353, i32 0, i32 0
  %355 = getelementptr inbounds %struct.ImVec2, ptr %354, i32 0, i32 0
  store float %351, ptr %355, align 8, !tbaa !133
  %356 = load ptr, ptr %10, align 8, !tbaa !9
  %357 = getelementptr inbounds %struct.ImGuiWindow, ptr %356, i32 0, i32 74
  %358 = getelementptr inbounds %struct.ImRect, ptr %357, i32 0, i32 1
  %359 = getelementptr inbounds %struct.ImVec2, ptr %358, i32 0, i32 0
  %360 = load float, ptr %359, align 8, !tbaa !124
  %361 = load ptr, ptr %10, align 8, !tbaa !9
  %362 = getelementptr inbounds %struct.ImGuiWindow, ptr %361, i32 0, i32 75
  %363 = getelementptr inbounds %struct.ImRect, ptr %362, i32 0, i32 1
  %364 = getelementptr inbounds %struct.ImVec2, ptr %363, i32 0, i32 0
  store float %360, ptr %364, align 8, !tbaa !134
  %365 = load i32, ptr %6, align 4, !tbaa !5
  %366 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %26, i32 noundef %365, ptr noundef null, i32 noundef 0)
  %367 = zext i1 %366 to i8
  store i8 %367, ptr %29, align 1, !tbaa !43
  %368 = load float, ptr %30, align 4, !tbaa !45
  %369 = load ptr, ptr %10, align 8, !tbaa !9
  %370 = getelementptr inbounds %struct.ImGuiWindow, ptr %369, i32 0, i32 75
  %371 = getelementptr inbounds %struct.ImRect, ptr %370, i32 0, i32 0
  %372 = getelementptr inbounds %struct.ImVec2, ptr %371, i32 0, i32 0
  store float %368, ptr %372, align 8, !tbaa !133
  %373 = load float, ptr %31, align 4, !tbaa !45
  %374 = load ptr, ptr %10, align 8, !tbaa !9
  %375 = getelementptr inbounds %struct.ImGuiWindow, ptr %374, i32 0, i32 75
  %376 = getelementptr inbounds %struct.ImRect, ptr %375, i32 0, i32 1
  %377 = getelementptr inbounds %struct.ImVec2, ptr %376, i32 0, i32 0
  store float %373, ptr %377, align 8, !tbaa !134
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %382

378:                                              ; preds = %328
  %379 = load i32, ptr %6, align 4, !tbaa !5
  %380 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %26, i32 noundef %379, ptr noundef null, i32 noundef 0)
  %381 = zext i1 %380 to i8
  store i8 %381, ptr %29, align 1, !tbaa !43
  br label %382

382:                                              ; preds = %378, %336
  %383 = load ptr, ptr %12, align 8, !tbaa !9
  %384 = getelementptr inbounds %struct.ImGuiContext, ptr %383, i32 0, i32 87
  %385 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %384, i32 0, i32 2
  %386 = load i32, ptr %385, align 8, !tbaa !135
  %387 = or i32 %386, 2
  store i32 %387, ptr %385, align 8, !tbaa !135
  %388 = load ptr, ptr %12, align 8, !tbaa !9
  %389 = getelementptr inbounds %struct.ImGuiContext, ptr %388, i32 0, i32 87
  %390 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %389, i32 0, i32 5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %390, ptr align 4 %22, i64 16, i1 false), !tbaa.struct !129
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #9
  store i8 0, ptr %32, align 1, !tbaa !43
  %391 = load i32, ptr %7, align 4, !tbaa !5
  %392 = and i32 %391, 8
  %393 = icmp ne i32 %392, 0
  br i1 %393, label %422, label %394

394:                                              ; preds = %382
  %395 = load i32, ptr %7, align 4, !tbaa !5
  %396 = and i32 %395, 32768
  %397 = icmp ne i32 %396, 0
  br i1 %397, label %398, label %421

398:                                              ; preds = %394
  %399 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %400 = trunc i8 %399 to i1
  br i1 %400, label %401, label %421

401:                                              ; preds = %398
  %402 = load ptr, ptr %12, align 8, !tbaa !9
  %403 = getelementptr inbounds %struct.ImGuiContext, ptr %402, i32 0, i32 116
  %404 = load i8, ptr %403, align 8, !tbaa !136, !range !41, !noundef !42
  %405 = trunc i8 %404 to i1
  br i1 %405, label %421, label %406

406:                                              ; preds = %401
  %407 = load ptr, ptr %12, align 8, !tbaa !9
  %408 = getelementptr inbounds %struct.ImGuiContext, ptr %407, i32 0, i32 130
  %409 = load i32, ptr %408, align 8, !tbaa !137
  %410 = icmp eq i32 %409, 0
  br i1 %410, label %411, label %420

411:                                              ; preds = %406
  %412 = load ptr, ptr %12, align 8, !tbaa !9
  %413 = getelementptr inbounds %struct.ImGuiContext, ptr %412, i32 0, i32 101
  %414 = load ptr, ptr %413, align 8, !tbaa !138
  %415 = load ptr, ptr %10, align 8, !tbaa !9
  %416 = icmp eq ptr %414, %415
  br i1 %416, label %417, label %420

417:                                              ; preds = %411
  %418 = call noundef zeroext i1 @_ZN5ImGui28NavMoveRequestButNoResultYetEv()
  br i1 %418, label %419, label %420

419:                                              ; preds = %417
  store i8 1, ptr %32, align 1, !tbaa !43
  br label %420

420:                                              ; preds = %419, %417, %411, %406
  br label %421

421:                                              ; preds = %420, %401, %398, %394
  br label %422

422:                                              ; preds = %421, %382
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #9
  %423 = load i32, ptr %7, align 4, !tbaa !5
  %424 = and i32 %423, 256
  %425 = icmp ne i32 %424, 0
  %426 = zext i1 %425 to i8
  store i8 %426, ptr %33, align 1, !tbaa !43
  %427 = load i8, ptr %29, align 1, !tbaa !43, !range !41, !noundef !42
  %428 = trunc i8 %427 to i1
  br i1 %428, label %450, label %429

429:                                              ; preds = %422
  %430 = load i8, ptr %32, align 1, !tbaa !43, !range !41, !noundef !42
  %431 = trunc i8 %430 to i1
  br i1 %431, label %432, label %437

432:                                              ; preds = %429
  %433 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %434 = trunc i8 %433 to i1
  br i1 %434, label %435, label %437

435:                                              ; preds = %432
  %436 = load i32, ptr %7, align 4, !tbaa !5
  call void @_ZL22TreeNodeStoreStackDatai(i32 noundef %436)
  br label %437

437:                                              ; preds = %435, %432, %429
  %438 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %439 = trunc i8 %438 to i1
  br i1 %439, label %440, label %446

440:                                              ; preds = %437
  %441 = load i32, ptr %7, align 4, !tbaa !5
  %442 = and i32 %441, 8
  %443 = icmp ne i32 %442, 0
  br i1 %443, label %446, label %444

444:                                              ; preds = %440
  %445 = load i32, ptr %6, align 4, !tbaa !5
  call void @_ZN5ImGui18TreePushOverrideIDEj(i32 noundef %445)
  br label %446

446:                                              ; preds = %444, %440, %437
  %447 = load ptr, ptr %12, align 8, !tbaa !9
  %448 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %449 = trunc i8 %448 to i1
  store i1 %449, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %1008

450:                                              ; preds = %422
  %451 = load i8, ptr %21, align 1, !tbaa !43, !range !41, !noundef !42
  %452 = trunc i8 %451 to i1
  br i1 %452, label %453, label %464

453:                                              ; preds = %450
  call void @_ZN5ImGui26TablePushBackgroundChannelEv()
  %454 = load ptr, ptr %12, align 8, !tbaa !9
  %455 = getelementptr inbounds %struct.ImGuiContext, ptr %454, i32 0, i32 87
  %456 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %455, i32 0, i32 2
  %457 = load i32, ptr %456, align 8, !tbaa !135
  %458 = or i32 %457, 512
  store i32 %458, ptr %456, align 8, !tbaa !135
  %459 = load ptr, ptr %10, align 8, !tbaa !9
  %460 = getelementptr inbounds %struct.ImGuiWindow, ptr %459, i32 0, i32 75
  %461 = load ptr, ptr %12, align 8, !tbaa !9
  %462 = getelementptr inbounds %struct.ImGuiContext, ptr %461, i32 0, i32 87
  %463 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %462, i32 0, i32 6
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %463, ptr align 8 %460, i64 16, i1 false), !tbaa.struct !129
  br label %464

464:                                              ; preds = %453, %450
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  store i32 0, ptr %34, align 4, !tbaa !5
  %465 = load i32, ptr %7, align 4, !tbaa !5
  %466 = and i32 %465, 4
  %467 = icmp ne i32 %466, 0
  br i1 %467, label %475, label %468

468:                                              ; preds = %464
  %469 = load ptr, ptr %12, align 8, !tbaa !9
  %470 = getelementptr inbounds %struct.ImGuiContext, ptr %469, i32 0, i32 87
  %471 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %470, i32 0, i32 1
  %472 = load i32, ptr %471, align 4, !tbaa !139
  %473 = and i32 %472, 16384
  %474 = icmp ne i32 %473, 0
  br i1 %474, label %475, label %478

475:                                              ; preds = %468, %464
  %476 = load i32, ptr %34, align 4, !tbaa !5
  %477 = or i32 %476, 4096
  store i32 %477, ptr %34, align 4, !tbaa !5
  br label %478

478:                                              ; preds = %475, %468
  %479 = load i8, ptr %33, align 1, !tbaa !43, !range !41, !noundef !42
  %480 = trunc i8 %479 to i1
  br i1 %480, label %484, label %481

481:                                              ; preds = %478
  %482 = load i32, ptr %34, align 4, !tbaa !5
  %483 = or i32 %482, 512
  store i32 %483, ptr %34, align 4, !tbaa !5
  br label %484

484:                                              ; preds = %481, %478
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %485 = getelementptr inbounds %struct.ImVec2, ptr %24, i32 0, i32 0
  %486 = load float, ptr %485, align 4, !tbaa !114
  %487 = load float, ptr %17, align 4, !tbaa !45
  %488 = fsub float %486, %487
  %489 = load ptr, ptr %13, align 8, !tbaa !9
  %490 = getelementptr inbounds %struct.ImGuiStyle, ptr %489, i32 0, i32 18
  %491 = getelementptr inbounds %struct.ImVec2, ptr %490, i32 0, i32 0
  %492 = load float, ptr %491, align 4, !tbaa !140
  %493 = fsub float %488, %492
  store float %493, ptr %35, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %494 = getelementptr inbounds %struct.ImVec2, ptr %24, i32 0, i32 0
  %495 = load float, ptr %494, align 4, !tbaa !114
  %496 = load float, ptr %17, align 4, !tbaa !45
  %497 = fsub float %495, %496
  %498 = load ptr, ptr %12, align 8, !tbaa !9
  %499 = getelementptr inbounds %struct.ImGuiContext, ptr %498, i32 0, i32 6
  %500 = load float, ptr %499, align 8, !tbaa !50
  %501 = getelementptr inbounds %struct.ImVec2, ptr %15, i32 0, i32 0
  %502 = load float, ptr %501, align 4, !tbaa !114
  %503 = call float @llvm.fmuladd.f32(float %502, float 2.000000e+00, float %500)
  %504 = fadd float %497, %503
  %505 = load ptr, ptr %13, align 8, !tbaa !9
  %506 = getelementptr inbounds %struct.ImGuiStyle, ptr %505, i32 0, i32 18
  %507 = getelementptr inbounds %struct.ImVec2, ptr %506, i32 0, i32 0
  %508 = load float, ptr %507, align 4, !tbaa !140
  %509 = fadd float %504, %508
  store float %509, ptr %36, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #9
  %510 = load ptr, ptr %12, align 8, !tbaa !9
  %511 = getelementptr inbounds %struct.ImGuiContext, ptr %510, i32 0, i32 3
  %512 = getelementptr inbounds %struct.ImGuiIO, ptr %511, i32 0, i32 63
  %513 = getelementptr inbounds %struct.ImVec2, ptr %512, i32 0, i32 0
  %514 = load float, ptr %513, align 8, !tbaa !141
  %515 = load float, ptr %35, align 4, !tbaa !45
  %516 = fcmp oge float %514, %515
  br i1 %516, label %517, label %525

517:                                              ; preds = %484
  %518 = load ptr, ptr %12, align 8, !tbaa !9
  %519 = getelementptr inbounds %struct.ImGuiContext, ptr %518, i32 0, i32 3
  %520 = getelementptr inbounds %struct.ImGuiIO, ptr %519, i32 0, i32 63
  %521 = getelementptr inbounds %struct.ImVec2, ptr %520, i32 0, i32 0
  %522 = load float, ptr %521, align 8, !tbaa !141
  %523 = load float, ptr %36, align 4, !tbaa !45
  %524 = fcmp olt float %522, %523
  br label %525

525:                                              ; preds = %517, %484
  %526 = phi i1 [ false, %484 ], [ %524, %517 ]
  %527 = zext i1 %526 to i8
  store i8 %527, ptr %37, align 1, !tbaa !43
  %528 = load i8, ptr %37, align 1, !tbaa !43, !range !41, !noundef !42
  %529 = trunc i8 %528 to i1
  br i1 %529, label %530, label %533

530:                                              ; preds = %525
  %531 = load i32, ptr %34, align 4, !tbaa !5
  %532 = or i32 %531, 16
  store i32 %532, ptr %34, align 4, !tbaa !5
  br label %544

533:                                              ; preds = %525
  %534 = load i32, ptr %7, align 4, !tbaa !5
  %535 = and i32 %534, 64
  %536 = icmp ne i32 %535, 0
  br i1 %536, label %537, label %540

537:                                              ; preds = %533
  %538 = load i32, ptr %34, align 4, !tbaa !5
  %539 = or i32 %538, 288
  store i32 %539, ptr %34, align 4, !tbaa !5
  br label %543

540:                                              ; preds = %533
  %541 = load i32, ptr %34, align 4, !tbaa !5
  %542 = or i32 %541, 32
  store i32 %542, ptr %34, align 4, !tbaa !5
  br label %543

543:                                              ; preds = %540, %537
  br label %544

544:                                              ; preds = %543, %530
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #9
  %545 = load i32, ptr %7, align 4, !tbaa !5
  %546 = and i32 %545, 1
  %547 = icmp ne i32 %546, 0
  %548 = zext i1 %547 to i8
  store i8 %548, ptr %38, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #9
  %549 = load i8, ptr %38, align 1, !tbaa !43, !range !41, !noundef !42
  %550 = trunc i8 %549 to i1
  %551 = zext i1 %550 to i8
  store i8 %551, ptr %39, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #9
  %552 = load ptr, ptr %12, align 8, !tbaa !9
  %553 = getelementptr inbounds %struct.ImGuiContext, ptr %552, i32 0, i32 87
  %554 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %553, i32 0, i32 1
  %555 = load i32, ptr %554, align 4, !tbaa !139
  %556 = and i32 %555, 4194304
  %557 = icmp ne i32 %556, 0
  %558 = zext i1 %557 to i8
  store i8 %558, ptr %40, align 1, !tbaa !43
  %559 = load i8, ptr %40, align 1, !tbaa !43, !range !41, !noundef !42
  %560 = trunc i8 %559 to i1
  br i1 %560, label %561, label %572

561:                                              ; preds = %544
  %562 = load i32, ptr %6, align 4, !tbaa !5
  call void @_ZN5ImGui21MultiSelectItemHeaderEjPbPi(i32 noundef %562, ptr noundef %38, ptr noundef %34)
  %563 = load i8, ptr %37, align 1, !tbaa !43, !range !41, !noundef !42
  %564 = trunc i8 %563 to i1
  br i1 %564, label %565, label %569

565:                                              ; preds = %561
  %566 = load i32, ptr %34, align 4, !tbaa !5
  %567 = or i32 %566, 16
  %568 = and i32 %567, -33
  store i32 %568, ptr %34, align 4, !tbaa !5
  br label %569

569:                                              ; preds = %565, %561
  %570 = load i32, ptr %7, align 4, !tbaa !5
  %571 = or i32 %570, 128
  store i32 %571, ptr %7, align 4, !tbaa !5
  br label %585

572:                                              ; preds = %544
  %573 = load ptr, ptr %10, align 8, !tbaa !9
  %574 = load ptr, ptr %12, align 8, !tbaa !9
  %575 = getelementptr inbounds %struct.ImGuiContext, ptr %574, i32 0, i32 35
  %576 = load ptr, ptr %575, align 8, !tbaa !142
  %577 = icmp ne ptr %573, %576
  br i1 %577, label %581, label %578

578:                                              ; preds = %572
  %579 = load i8, ptr %37, align 1, !tbaa !43, !range !41, !noundef !42
  %580 = trunc i8 %579 to i1
  br i1 %580, label %584, label %581

581:                                              ; preds = %578, %572
  %582 = load i32, ptr %34, align 4, !tbaa !5
  %583 = or i32 %582, 65536
  store i32 %583, ptr %34, align 4, !tbaa !5
  br label %584

584:                                              ; preds = %581, %578
  br label %585

585:                                              ; preds = %584, %569
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #9
  %586 = load i32, ptr %6, align 4, !tbaa !5
  %587 = load i32, ptr %34, align 4, !tbaa !5
  %588 = call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %26, i32 noundef %586, ptr noundef %41, ptr noundef %42, i32 noundef %587)
  %589 = zext i1 %588 to i8
  store i8 %589, ptr %43, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #9
  store i8 0, ptr %44, align 1, !tbaa !43
  %590 = load i8, ptr %33, align 1, !tbaa !43, !range !41, !noundef !42
  %591 = trunc i8 %590 to i1
  br i1 %591, label %725, label %592

592:                                              ; preds = %585
  %593 = load i8, ptr %43, align 1, !tbaa !43, !range !41, !noundef !42
  %594 = trunc i8 %593 to i1
  br i1 %594, label %595, label %651

595:                                              ; preds = %592
  %596 = load ptr, ptr %12, align 8, !tbaa !9
  %597 = getelementptr inbounds %struct.ImGuiContext, ptr %596, i32 0, i32 176
  %598 = load i32, ptr %597, align 8, !tbaa !143
  %599 = load i32, ptr %6, align 4, !tbaa !5
  %600 = icmp ne i32 %598, %599
  br i1 %600, label %601, label %651

601:                                              ; preds = %595
  %602 = load i32, ptr %7, align 4, !tbaa !5
  %603 = and i32 %602, 192
  %604 = icmp eq i32 %603, 0
  br i1 %604, label %614, label %605

605:                                              ; preds = %601
  %606 = load ptr, ptr %12, align 8, !tbaa !9
  %607 = getelementptr inbounds %struct.ImGuiContext, ptr %606, i32 0, i32 105
  %608 = load i32, ptr %607, align 4, !tbaa !144
  %609 = load i32, ptr %6, align 4, !tbaa !5
  %610 = icmp eq i32 %608, %609
  br i1 %610, label %611, label %615

611:                                              ; preds = %605
  %612 = load i8, ptr %40, align 1, !tbaa !43, !range !41, !noundef !42
  %613 = trunc i8 %612 to i1
  br i1 %613, label %615, label %614

614:                                              ; preds = %611, %601
  store i8 1, ptr %44, align 1, !tbaa !43
  br label %615

615:                                              ; preds = %614, %611, %605
  %616 = load i32, ptr %7, align 4, !tbaa !5
  %617 = and i32 %616, 128
  %618 = icmp ne i32 %617, 0
  br i1 %618, label %619, label %637

619:                                              ; preds = %615
  %620 = load i8, ptr %37, align 1, !tbaa !43, !range !41, !noundef !42
  %621 = trunc i8 %620 to i1
  br i1 %621, label %622, label %628

622:                                              ; preds = %619
  %623 = load ptr, ptr %12, align 8, !tbaa !9
  %624 = getelementptr inbounds %struct.ImGuiContext, ptr %623, i32 0, i32 119
  %625 = load i8, ptr %624, align 1, !tbaa !145, !range !41, !noundef !42
  %626 = trunc i8 %625 to i1
  %627 = xor i1 %626, true
  br label %628

628:                                              ; preds = %622, %619
  %629 = phi i1 [ false, %619 ], [ %627, %622 ]
  %630 = zext i1 %629 to i32
  %631 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %632 = trunc i8 %631 to i1
  %633 = zext i1 %632 to i32
  %634 = or i32 %633, %630
  %635 = icmp ne i32 %634, 0
  %636 = zext i1 %635 to i8
  store i8 %636, ptr %44, align 1, !tbaa !43
  br label %637

637:                                              ; preds = %628, %615
  %638 = load i32, ptr %7, align 4, !tbaa !5
  %639 = and i32 %638, 64
  %640 = icmp ne i32 %639, 0
  br i1 %640, label %641, label %650

641:                                              ; preds = %637
  %642 = load ptr, ptr %12, align 8, !tbaa !9
  %643 = getelementptr inbounds %struct.ImGuiContext, ptr %642, i32 0, i32 3
  %644 = getelementptr inbounds %struct.ImGuiIO, ptr %643, i32 0, i32 82
  %645 = getelementptr inbounds [5 x i16], ptr %644, i64 0, i64 0
  %646 = load i16, ptr %645, align 2, !tbaa !146
  %647 = zext i16 %646 to i32
  %648 = icmp eq i32 %647, 2
  br i1 %648, label %649, label %650

649:                                              ; preds = %641
  store i8 1, ptr %44, align 1, !tbaa !43
  br label %650

650:                                              ; preds = %649, %641, %637
  br label %673

651:                                              ; preds = %595, %592
  %652 = load i8, ptr %43, align 1, !tbaa !43, !range !41, !noundef !42
  %653 = trunc i8 %652 to i1
  br i1 %653, label %654, label %672

654:                                              ; preds = %651
  %655 = load ptr, ptr %12, align 8, !tbaa !9
  %656 = getelementptr inbounds %struct.ImGuiContext, ptr %655, i32 0, i32 176
  %657 = load i32, ptr %656, align 8, !tbaa !143
  %658 = load i32, ptr %6, align 4, !tbaa !5
  %659 = icmp eq i32 %657, %658
  br i1 %659, label %660, label %672

660:                                              ; preds = %654
  %661 = load i32, ptr %34, align 4, !tbaa !5
  %662 = and i32 %661, 512
  %663 = icmp ne i32 %662, 0
  br i1 %663, label %664, label %665

664:                                              ; preds = %660
  br label %667

665:                                              ; preds = %660
  call void @__assert_fail(ptr noundef @.str.146, ptr noundef @.str.2, i32 noundef 6531, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui16TreeNodeBehaviorEjiPKcS1_) #10
  unreachable

666:                                              ; No predecessors!
  br label %667

667:                                              ; preds = %666, %664
  %668 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %669 = trunc i8 %668 to i1
  br i1 %669, label %671, label %670

670:                                              ; preds = %667
  store i8 1, ptr %44, align 1, !tbaa !43
  br label %671

671:                                              ; preds = %670, %667
  br label %672

672:                                              ; preds = %671, %654, %651
  br label %673

673:                                              ; preds = %672, %650
  %674 = load ptr, ptr %12, align 8, !tbaa !9
  %675 = getelementptr inbounds %struct.ImGuiContext, ptr %674, i32 0, i32 102
  %676 = load i32, ptr %675, align 8, !tbaa !147
  %677 = load i32, ptr %6, align 4, !tbaa !5
  %678 = icmp eq i32 %676, %677
  br i1 %678, label %679, label %688

679:                                              ; preds = %673
  %680 = load ptr, ptr %12, align 8, !tbaa !9
  %681 = getelementptr inbounds %struct.ImGuiContext, ptr %680, i32 0, i32 130
  %682 = load i32, ptr %681, align 8, !tbaa !137
  %683 = icmp eq i32 %682, 0
  br i1 %683, label %684, label %688

684:                                              ; preds = %679
  %685 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %686 = trunc i8 %685 to i1
  br i1 %686, label %687, label %688

687:                                              ; preds = %684
  store i8 1, ptr %44, align 1, !tbaa !43
  call void @_ZN5ImGui27NavClearPreferredPosForAxisE9ImGuiAxis(i32 noundef 0)
  call void @_ZN5ImGui20NavMoveRequestCancelEv()
  br label %688

688:                                              ; preds = %687, %684, %679, %673
  %689 = load ptr, ptr %12, align 8, !tbaa !9
  %690 = getelementptr inbounds %struct.ImGuiContext, ptr %689, i32 0, i32 102
  %691 = load i32, ptr %690, align 8, !tbaa !147
  %692 = load i32, ptr %6, align 4, !tbaa !5
  %693 = icmp eq i32 %691, %692
  br i1 %693, label %694, label %703

694:                                              ; preds = %688
  %695 = load ptr, ptr %12, align 8, !tbaa !9
  %696 = getelementptr inbounds %struct.ImGuiContext, ptr %695, i32 0, i32 130
  %697 = load i32, ptr %696, align 8, !tbaa !137
  %698 = icmp eq i32 %697, 1
  br i1 %698, label %699, label %703

699:                                              ; preds = %694
  %700 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %701 = trunc i8 %700 to i1
  br i1 %701, label %703, label %702

702:                                              ; preds = %699
  store i8 1, ptr %44, align 1, !tbaa !43
  call void @_ZN5ImGui27NavClearPreferredPosForAxisE9ImGuiAxis(i32 noundef 0)
  call void @_ZN5ImGui20NavMoveRequestCancelEv()
  br label %703

703:                                              ; preds = %702, %699, %694, %688
  %704 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %705 = trunc i8 %704 to i1
  br i1 %705, label %706, label %724

706:                                              ; preds = %703
  %707 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %708 = trunc i8 %707 to i1
  %709 = xor i1 %708, true
  %710 = zext i1 %709 to i8
  store i8 %710, ptr %28, align 1, !tbaa !43
  %711 = load ptr, ptr %10, align 8, !tbaa !9
  %712 = getelementptr inbounds %struct.ImGuiWindow, ptr %711, i32 0, i32 69
  %713 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %712, i32 0, i32 27
  %714 = load ptr, ptr %713, align 8, !tbaa !148
  %715 = load i32, ptr %27, align 4, !tbaa !5
  %716 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %717 = trunc i8 %716 to i1
  %718 = zext i1 %717 to i32
  call void @_ZN12ImGuiStorage6SetIntEji(ptr noundef nonnull align 8 dereferenceable(16) %714, i32 noundef %715, i32 noundef %718)
  %719 = load ptr, ptr %12, align 8, !tbaa !9
  %720 = getelementptr inbounds %struct.ImGuiContext, ptr %719, i32 0, i32 87
  %721 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %720, i32 0, i32 2
  %722 = load i32, ptr %721, align 8, !tbaa !135
  %723 = or i32 %722, 16
  store i32 %723, ptr %721, align 8, !tbaa !135
  br label %724

724:                                              ; preds = %706, %703
  br label %725

725:                                              ; preds = %724, %585
  %726 = load i8, ptr %40, align 1, !tbaa !43, !range !41, !noundef !42
  %727 = trunc i8 %726 to i1
  br i1 %727, label %728, label %751

728:                                              ; preds = %725
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #9
  %729 = load i8, ptr %43, align 1, !tbaa !43, !range !41, !noundef !42
  %730 = trunc i8 %729 to i1
  br i1 %730, label %731, label %735

731:                                              ; preds = %728
  %732 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %733 = trunc i8 %732 to i1
  %734 = xor i1 %733, true
  br label %735

735:                                              ; preds = %731, %728
  %736 = phi i1 [ false, %728 ], [ %734, %731 ]
  %737 = zext i1 %736 to i8
  store i8 %737, ptr %45, align 1, !tbaa !43
  %738 = load i32, ptr %6, align 4, !tbaa !5
  call void @_ZN5ImGui21MultiSelectItemFooterEjPbS0_(i32 noundef %738, ptr noundef %38, ptr noundef %45)
  %739 = load i8, ptr %43, align 1, !tbaa !43, !range !41, !noundef !42
  %740 = trunc i8 %739 to i1
  br i1 %740, label %741, label %750

741:                                              ; preds = %735
  %742 = load i32, ptr %6, align 4, !tbaa !5
  %743 = load ptr, ptr %10, align 8, !tbaa !9
  %744 = getelementptr inbounds %struct.ImGuiWindow, ptr %743, i32 0, i32 69
  %745 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %744, i32 0, i32 15
  %746 = load i32, ptr %745, align 8, !tbaa !149
  %747 = load ptr, ptr %12, align 8, !tbaa !9
  %748 = getelementptr inbounds %struct.ImGuiContext, ptr %747, i32 0, i32 83
  %749 = load i32, ptr %748, align 4, !tbaa !150
  call void @_ZN5ImGui8SetNavIDEj13ImGuiNavLayerjRK6ImRect(i32 noundef %742, i32 noundef %746, i32 noundef %749, ptr noundef nonnull align 4 dereferenceable(16) %26)
  br label %750

750:                                              ; preds = %741, %735
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #9
  br label %751

751:                                              ; preds = %750, %725
  %752 = load i8, ptr %38, align 1, !tbaa !43, !range !41, !noundef !42
  %753 = trunc i8 %752 to i1
  %754 = zext i1 %753 to i32
  %755 = load i8, ptr %39, align 1, !tbaa !43, !range !41, !noundef !42
  %756 = trunc i8 %755 to i1
  %757 = zext i1 %756 to i32
  %758 = icmp ne i32 %754, %757
  br i1 %758, label %759, label %765

759:                                              ; preds = %751
  %760 = load ptr, ptr %12, align 8, !tbaa !9
  %761 = getelementptr inbounds %struct.ImGuiContext, ptr %760, i32 0, i32 87
  %762 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %761, i32 0, i32 2
  %763 = load i32, ptr %762, align 8, !tbaa !135
  %764 = or i32 %763, 8
  store i32 %764, ptr %762, align 8, !tbaa !135
  br label %765

765:                                              ; preds = %759, %751
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %766 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  store i32 %766, ptr %46, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  store i32 2, ptr %47, align 4, !tbaa !5
  %767 = load i8, ptr %40, align 1, !tbaa !43, !range !41, !noundef !42
  %768 = trunc i8 %767 to i1
  br i1 %768, label %769, label %772

769:                                              ; preds = %765
  %770 = load i32, ptr %47, align 4, !tbaa !5
  %771 = or i32 %770, 4
  store i32 %771, ptr %47, align 4, !tbaa !5
  br label %772

772:                                              ; preds = %769, %765
  %773 = load i8, ptr %14, align 1, !tbaa !43, !range !41, !noundef !42
  %774 = trunc i8 %773 to i1
  br i1 %774, label %775, label %882

775:                                              ; preds = %772
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  %776 = load i8, ptr %42, align 1, !tbaa !43, !range !41, !noundef !42
  %777 = trunc i8 %776 to i1
  br i1 %777, label %778, label %782

778:                                              ; preds = %775
  %779 = load i8, ptr %41, align 1, !tbaa !43, !range !41, !noundef !42
  %780 = trunc i8 %779 to i1
  br i1 %780, label %781, label %782

781:                                              ; preds = %778
  br label %787

782:                                              ; preds = %778, %775
  %783 = load i8, ptr %41, align 1, !tbaa !43, !range !41, !noundef !42
  %784 = trunc i8 %783 to i1
  %785 = zext i1 %784 to i64
  %786 = select i1 %784, i32 25, i32 24
  br label %787

787:                                              ; preds = %782, %781
  %788 = phi i32 [ 26, %781 ], [ %786, %782 ]
  %789 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %788, float noundef 1.000000e+00)
  store i32 %789, ptr %48, align 4, !tbaa !5
  %790 = getelementptr inbounds %struct.ImRect, ptr %22, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %49, ptr align 4 %790, i64 8, i1 false), !tbaa.struct !44
  %791 = getelementptr inbounds %struct.ImRect, ptr %22, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %50, ptr align 4 %791, i64 8, i1 false), !tbaa.struct !44
  %792 = load i32, ptr %48, align 4, !tbaa !5
  %793 = load ptr, ptr %13, align 8, !tbaa !9
  %794 = getelementptr inbounds %struct.ImGuiStyle, ptr %793, i32 0, i32 13
  %795 = load float, ptr %794, align 4, !tbaa !151
  %796 = load <2 x float>, ptr %49, align 4
  %797 = load <2 x float>, ptr %50, align 4
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %796, <2 x float> %797, i32 noundef %792, i1 noundef zeroext true, float noundef %795)
  %798 = load i32, ptr %6, align 4, !tbaa !5
  %799 = load i32, ptr %47, align 4, !tbaa !5
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %22, i32 noundef %798, i32 noundef %799)
  %800 = load i32, ptr %7, align 4, !tbaa !5
  %801 = and i32 %800, 512
  %802 = icmp ne i32 %801, 0
  br i1 %802, label %803, label %820

803:                                              ; preds = %787
  %804 = load ptr, ptr %10, align 8, !tbaa !9
  %805 = getelementptr inbounds %struct.ImGuiWindow, ptr %804, i32 0, i32 87
  %806 = load ptr, ptr %805, align 8, !tbaa !152
  %807 = getelementptr inbounds %struct.ImVec2, ptr %24, i32 0, i32 0
  %808 = load float, ptr %807, align 4, !tbaa !114
  %809 = load float, ptr %17, align 4, !tbaa !45
  %810 = fneg float %809
  %811 = call float @llvm.fmuladd.f32(float %810, float 0x3FE3333340000000, float %808)
  %812 = getelementptr inbounds %struct.ImVec2, ptr %24, i32 0, i32 1
  %813 = load float, ptr %812, align 4, !tbaa !115
  %814 = load ptr, ptr %12, align 8, !tbaa !9
  %815 = getelementptr inbounds %struct.ImGuiContext, ptr %814, i32 0, i32 6
  %816 = load float, ptr %815, align 8, !tbaa !50
  %817 = call float @llvm.fmuladd.f32(float %816, float 5.000000e-01, float %813)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %51, float noundef %811, float noundef %817)
  %818 = load i32, ptr %46, align 4, !tbaa !5
  %819 = load <2 x float>, ptr %51, align 4
  call void @_ZN5ImGui12RenderBulletEP10ImDrawList6ImVec2j(ptr noundef %806, <2 x float> %819, i32 noundef %818)
  br label %858

820:                                              ; preds = %787
  %821 = load i8, ptr %33, align 1, !tbaa !43, !range !41, !noundef !42
  %822 = trunc i8 %821 to i1
  br i1 %822, label %849, label %823

823:                                              ; preds = %820
  %824 = load ptr, ptr %10, align 8, !tbaa !9
  %825 = getelementptr inbounds %struct.ImGuiWindow, ptr %824, i32 0, i32 87
  %826 = load ptr, ptr %825, align 8, !tbaa !152
  %827 = getelementptr inbounds %struct.ImVec2, ptr %24, i32 0, i32 0
  %828 = load float, ptr %827, align 4, !tbaa !114
  %829 = load float, ptr %17, align 4, !tbaa !45
  %830 = fsub float %828, %829
  %831 = getelementptr inbounds %struct.ImVec2, ptr %15, i32 0, i32 0
  %832 = load float, ptr %831, align 4, !tbaa !114
  %833 = fadd float %830, %832
  %834 = getelementptr inbounds %struct.ImVec2, ptr %24, i32 0, i32 1
  %835 = load float, ptr %834, align 4, !tbaa !115
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %52, float noundef %833, float noundef %835)
  %836 = load i32, ptr %46, align 4, !tbaa !5
  %837 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %838 = trunc i8 %837 to i1
  br i1 %838, label %839, label %845

839:                                              ; preds = %823
  %840 = load i32, ptr %7, align 4, !tbaa !5
  %841 = and i32 %840, 536870912
  %842 = icmp ne i32 %841, 0
  %843 = zext i1 %842 to i64
  %844 = select i1 %842, i32 2, i32 3
  br label %846

845:                                              ; preds = %823
  br label %846

846:                                              ; preds = %845, %839
  %847 = phi i32 [ %844, %839 ], [ 1, %845 ]
  %848 = load <2 x float>, ptr %52, align 4
  call void @_ZN5ImGui11RenderArrowEP10ImDrawList6ImVec2j8ImGuiDirf(ptr noundef %826, <2 x float> %848, i32 noundef %836, i32 noundef %847, float noundef 1.000000e+00)
  br label %857

849:                                              ; preds = %820
  %850 = load float, ptr %17, align 4, !tbaa !45
  %851 = getelementptr inbounds %struct.ImVec2, ptr %15, i32 0, i32 0
  %852 = load float, ptr %851, align 4, !tbaa !114
  %853 = fsub float %850, %852
  %854 = getelementptr inbounds %struct.ImVec2, ptr %24, i32 0, i32 0
  %855 = load float, ptr %854, align 4, !tbaa !114
  %856 = fsub float %855, %853
  store float %856, ptr %854, align 4, !tbaa !114
  br label %857

857:                                              ; preds = %849, %846
  br label %858

858:                                              ; preds = %857, %803
  %859 = load i32, ptr %7, align 4, !tbaa !5
  %860 = and i32 %859, 268435456
  %861 = icmp ne i32 %860, 0
  br i1 %861, label %862, label %875

862:                                              ; preds = %858
  %863 = load ptr, ptr %12, align 8, !tbaa !9
  %864 = getelementptr inbounds %struct.ImGuiContext, ptr %863, i32 0, i32 6
  %865 = load float, ptr %864, align 8, !tbaa !50
  %866 = load ptr, ptr %13, align 8, !tbaa !9
  %867 = getelementptr inbounds %struct.ImGuiStyle, ptr %866, i32 0, i32 12
  %868 = getelementptr inbounds %struct.ImVec2, ptr %867, i32 0, i32 0
  %869 = load float, ptr %868, align 4, !tbaa !46
  %870 = fadd float %865, %869
  %871 = getelementptr inbounds %struct.ImRect, ptr %22, i32 0, i32 1
  %872 = getelementptr inbounds %struct.ImVec2, ptr %871, i32 0, i32 0
  %873 = load float, ptr %872, align 4, !tbaa !126
  %874 = fsub float %873, %870
  store float %874, ptr %872, align 4, !tbaa !126
  br label %875

875:                                              ; preds = %862, %858
  %876 = load ptr, ptr %12, align 8, !tbaa !9
  %877 = getelementptr inbounds %struct.ImGuiContext, ptr %876, i32 0, i32 249
  %878 = load i8, ptr %877, align 8, !tbaa !153, !range !41, !noundef !42
  %879 = trunc i8 %878 to i1
  br i1 %879, label %880, label %881

880:                                              ; preds = %875
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef @.str.147, ptr noundef @.str.147)
  br label %881

881:                                              ; preds = %880, %875
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %972

882:                                              ; preds = %772
  %883 = load i8, ptr %41, align 1, !tbaa !43, !range !41, !noundef !42
  %884 = trunc i8 %883 to i1
  br i1 %884, label %888, label %885

885:                                              ; preds = %882
  %886 = load i8, ptr %38, align 1, !tbaa !43, !range !41, !noundef !42
  %887 = trunc i8 %886 to i1
  br i1 %887, label %888, label %908

888:                                              ; preds = %885, %882
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  %889 = load i8, ptr %42, align 1, !tbaa !43, !range !41, !noundef !42
  %890 = trunc i8 %889 to i1
  br i1 %890, label %891, label %895

891:                                              ; preds = %888
  %892 = load i8, ptr %41, align 1, !tbaa !43, !range !41, !noundef !42
  %893 = trunc i8 %892 to i1
  br i1 %893, label %894, label %895

894:                                              ; preds = %891
  br label %900

895:                                              ; preds = %891, %888
  %896 = load i8, ptr %41, align 1, !tbaa !43, !range !41, !noundef !42
  %897 = trunc i8 %896 to i1
  %898 = zext i1 %897 to i64
  %899 = select i1 %897, i32 25, i32 24
  br label %900

900:                                              ; preds = %895, %894
  %901 = phi i32 [ 26, %894 ], [ %899, %895 ]
  %902 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %901, float noundef 1.000000e+00)
  store i32 %902, ptr %53, align 4, !tbaa !5
  %903 = getelementptr inbounds %struct.ImRect, ptr %22, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %54, ptr align 4 %903, i64 8, i1 false), !tbaa.struct !44
  %904 = getelementptr inbounds %struct.ImRect, ptr %22, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %55, ptr align 4 %904, i64 8, i1 false), !tbaa.struct !44
  %905 = load i32, ptr %53, align 4, !tbaa !5
  %906 = load <2 x float>, ptr %54, align 4
  %907 = load <2 x float>, ptr %55, align 4
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %906, <2 x float> %907, i32 noundef %905, i1 noundef zeroext false, float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %908

908:                                              ; preds = %900, %885
  %909 = load i32, ptr %6, align 4, !tbaa !5
  %910 = load i32, ptr %47, align 4, !tbaa !5
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %22, i32 noundef %909, i32 noundef %910)
  %911 = load i32, ptr %7, align 4, !tbaa !5
  %912 = and i32 %911, 512
  %913 = icmp ne i32 %912, 0
  br i1 %913, label %914, label %931

914:                                              ; preds = %908
  %915 = load ptr, ptr %10, align 8, !tbaa !9
  %916 = getelementptr inbounds %struct.ImGuiWindow, ptr %915, i32 0, i32 87
  %917 = load ptr, ptr %916, align 8, !tbaa !152
  %918 = getelementptr inbounds %struct.ImVec2, ptr %24, i32 0, i32 0
  %919 = load float, ptr %918, align 4, !tbaa !114
  %920 = load float, ptr %17, align 4, !tbaa !45
  %921 = fneg float %920
  %922 = call float @llvm.fmuladd.f32(float %921, float 5.000000e-01, float %919)
  %923 = getelementptr inbounds %struct.ImVec2, ptr %24, i32 0, i32 1
  %924 = load float, ptr %923, align 4, !tbaa !115
  %925 = load ptr, ptr %12, align 8, !tbaa !9
  %926 = getelementptr inbounds %struct.ImGuiContext, ptr %925, i32 0, i32 6
  %927 = load float, ptr %926, align 8, !tbaa !50
  %928 = call float @llvm.fmuladd.f32(float %927, float 5.000000e-01, float %924)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %56, float noundef %922, float noundef %928)
  %929 = load i32, ptr %46, align 4, !tbaa !5
  %930 = load <2 x float>, ptr %56, align 4
  call void @_ZN5ImGui12RenderBulletEP10ImDrawList6ImVec2j(ptr noundef %917, <2 x float> %930, i32 noundef %929)
  br label %965

931:                                              ; preds = %908
  %932 = load i8, ptr %33, align 1, !tbaa !43, !range !41, !noundef !42
  %933 = trunc i8 %932 to i1
  br i1 %933, label %964, label %934

934:                                              ; preds = %931
  %935 = load ptr, ptr %10, align 8, !tbaa !9
  %936 = getelementptr inbounds %struct.ImGuiWindow, ptr %935, i32 0, i32 87
  %937 = load ptr, ptr %936, align 8, !tbaa !152
  %938 = getelementptr inbounds %struct.ImVec2, ptr %24, i32 0, i32 0
  %939 = load float, ptr %938, align 4, !tbaa !114
  %940 = load float, ptr %17, align 4, !tbaa !45
  %941 = fsub float %939, %940
  %942 = getelementptr inbounds %struct.ImVec2, ptr %15, i32 0, i32 0
  %943 = load float, ptr %942, align 4, !tbaa !114
  %944 = fadd float %941, %943
  %945 = getelementptr inbounds %struct.ImVec2, ptr %24, i32 0, i32 1
  %946 = load float, ptr %945, align 4, !tbaa !115
  %947 = load ptr, ptr %12, align 8, !tbaa !9
  %948 = getelementptr inbounds %struct.ImGuiContext, ptr %947, i32 0, i32 6
  %949 = load float, ptr %948, align 8, !tbaa !50
  %950 = call float @llvm.fmuladd.f32(float %949, float 0x3FC3333340000000, float %946)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %57, float noundef %944, float noundef %950)
  %951 = load i32, ptr %46, align 4, !tbaa !5
  %952 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %953 = trunc i8 %952 to i1
  br i1 %953, label %954, label %960

954:                                              ; preds = %934
  %955 = load i32, ptr %7, align 4, !tbaa !5
  %956 = and i32 %955, 536870912
  %957 = icmp ne i32 %956, 0
  %958 = zext i1 %957 to i64
  %959 = select i1 %957, i32 2, i32 3
  br label %961

960:                                              ; preds = %934
  br label %961

961:                                              ; preds = %960, %954
  %962 = phi i32 [ %959, %954 ], [ 1, %960 ]
  %963 = load <2 x float>, ptr %57, align 4
  call void @_ZN5ImGui11RenderArrowEP10ImDrawList6ImVec2j8ImGuiDirf(ptr noundef %937, <2 x float> %963, i32 noundef %951, i32 noundef %962, float noundef 0x3FE6666660000000)
  br label %964

964:                                              ; preds = %961, %931
  br label %965

965:                                              ; preds = %964, %914
  %966 = load ptr, ptr %12, align 8, !tbaa !9
  %967 = getelementptr inbounds %struct.ImGuiContext, ptr %966, i32 0, i32 249
  %968 = load i8, ptr %967, align 8, !tbaa !153, !range !41, !noundef !42
  %969 = trunc i8 %968 to i1
  br i1 %969, label %970, label %971

970:                                              ; preds = %965
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef @.str.148, ptr noundef null)
  br label %971

971:                                              ; preds = %970, %965
  br label %972

972:                                              ; preds = %971, %881
  %973 = load i8, ptr %21, align 1, !tbaa !43, !range !41, !noundef !42
  %974 = trunc i8 %973 to i1
  br i1 %974, label %975, label %976

975:                                              ; preds = %972
  call void @_ZN5ImGui25TablePopBackgroundChannelEv()
  br label %976

976:                                              ; preds = %975, %972
  %977 = load i8, ptr %14, align 1, !tbaa !43, !range !41, !noundef !42
  %978 = trunc i8 %977 to i1
  br i1 %978, label %979, label %983

979:                                              ; preds = %976
  %980 = getelementptr inbounds %struct.ImRect, ptr %22, i32 0, i32 1
  %981 = load ptr, ptr %8, align 8, !tbaa !9
  %982 = load ptr, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %58, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui17RenderTextClippedERK6ImVec2S2_PKcS4_PS1_S2_PK6ImRect(ptr noundef nonnull align 4 dereferenceable(8) %24, ptr noundef nonnull align 4 dereferenceable(8) %980, ptr noundef %981, ptr noundef %982, ptr noundef %16, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  br label %987

983:                                              ; preds = %976
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %59, ptr align 4 %24, i64 8, i1 false), !tbaa.struct !44
  %984 = load ptr, ptr %8, align 8, !tbaa !9
  %985 = load ptr, ptr %9, align 8, !tbaa !9
  %986 = load <2 x float>, ptr %59, align 4
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %986, ptr noundef %984, ptr noundef %985, i1 noundef zeroext false)
  br label %987

987:                                              ; preds = %983, %979
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  %988 = load i8, ptr %32, align 1, !tbaa !43, !range !41, !noundef !42
  %989 = trunc i8 %988 to i1
  br i1 %989, label %990, label %995

990:                                              ; preds = %987
  %991 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %992 = trunc i8 %991 to i1
  br i1 %992, label %993, label %995

993:                                              ; preds = %990
  %994 = load i32, ptr %7, align 4, !tbaa !5
  call void @_ZL22TreeNodeStoreStackDatai(i32 noundef %994)
  br label %995

995:                                              ; preds = %993, %990, %987
  %996 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %997 = trunc i8 %996 to i1
  br i1 %997, label %998, label %1004

998:                                              ; preds = %995
  %999 = load i32, ptr %7, align 4, !tbaa !5
  %1000 = and i32 %999, 8
  %1001 = icmp ne i32 %1000, 0
  br i1 %1001, label %1004, label %1002

1002:                                             ; preds = %998
  %1003 = load i32, ptr %6, align 4, !tbaa !5
  call void @_ZN5ImGui18TreePushOverrideIDEj(i32 noundef %1003)
  br label %1004

1004:                                             ; preds = %1002, %998, %995
  %1005 = load ptr, ptr %12, align 8, !tbaa !9
  %1006 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %1007 = trunc i8 %1006 to i1
  store i1 %1007, ptr %5, align 1
  store i32 1, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1008

1008:                                             ; preds = %1004, %446
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  br label %1009

1009:                                             ; preds = %1008, %65
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  %1010 = load i1, ptr %5, align 1
  ret i1 %1010
}

declare void @_ZN12ImGuiStorage6SetIntEji(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef, i32 noundef) #3

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

declare noundef zeroext i1 @_ZN5ImGui28NavMoveRequestButNoResultYetEv() #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL22TreeNodeStoreStackDatai(i32 noundef) #8

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

declare void @_ZN5ImGui26TablePushBackgroundChannelEv() #3

declare void @_ZN5ImGui27NavClearPreferredPosForAxisE9ImGuiAxis(i32 noundef) #3

declare void @_ZN5ImGui20NavMoveRequestCancelEv() #3

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

declare void @_ZN5ImGui25TablePopBackgroundChannelEv() #3

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !15, i64 207}
!12 = !{!"_ZTS11ImGuiWindow", !10, i64 0, !10, i64 8, !6, i64 16, !6, i64 20, !6, i64 24, !10, i64 32, !13, i64 40, !13, i64 48, !13, i64 56, !13, i64 64, !13, i64 72, !13, i64 80, !13, i64 88, !14, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !14, i64 112, !14, i64 116, !14, i64 120, !14, i64 124, !14, i64 128, !14, i64 132, !6, i64 136, !6, i64 140, !6, i64 144, !6, i64 148, !13, i64 152, !13, i64 160, !13, i64 168, !13, i64 176, !13, i64 184, !13, i64 192, !15, i64 200, !15, i64 201, !15, i64 202, !15, i64 203, !15, i64 204, !15, i64 205, !15, i64 206, !15, i64 207, !15, i64 208, !15, i64 209, !15, i64 210, !15, i64 211, !15, i64 212, !15, i64 213, !7, i64 214, !7, i64 215, !16, i64 216, !16, i64 218, !16, i64 220, !16, i64 222, !16, i64 224, !7, i64 226, !7, i64 227, !15, i64 228, !17, i64 232, !7, i64 236, !7, i64 237, !7, i64 238, !7, i64 239, !6, i64 240, !6, i64 241, !6, i64 242, !13, i64 244, !13, i64 252, !18, i64 264, !19, i64 280, !25, i64 512, !25, i64 528, !25, i64 544, !25, i64 560, !25, i64 576, !25, i64 592, !25, i64 608, !26, i64 624, !26, i64 628, !6, i64 632, !14, i64 636, !14, i64 640, !27, i64 648, !29, i64 664, !14, i64 680, !6, i64 684, !10, i64 688, !30, i64 696, !10, i64 896, !10, i64 904, !10, i64 912, !10, i64 920, !10, i64 928, !10, i64 936, !10, i64 944, !10, i64 952, !7, i64 960, !7, i64 968, !7, i64 1000, !6, i64 1016, !6, i64 1020, !6, i64 1024, !15, i64 1028}
!13 = !{!"_ZTS6ImVec2", !14, i64 0, !14, i64 4}
!14 = !{!"float", !7, i64 0}
!15 = !{!"bool", !7, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = !{!"_ZTS8ImGuiDir", !7, i64 0}
!18 = !{!"_ZTS8ImVectorIjE", !6, i64 0, !6, i64 4, !10, i64 8}
!19 = !{!"_ZTS19ImGuiWindowTempData", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !14, i64 56, !14, i64 60, !15, i64 64, !15, i64 65, !20, i64 68, !20, i64 72, !20, i64 76, !13, i64 80, !21, i64 88, !16, i64 92, !16, i64 94, !15, i64 96, !15, i64 97, !15, i64 98, !15, i64 99, !13, i64 100, !22, i64 108, !6, i64 136, !6, i64 140, !23, i64 144, !10, i64 160, !10, i64 168, !6, i64 176, !6, i64 180, !6, i64 184, !6, i64 188, !14, i64 192, !14, i64 196, !24, i64 200, !24, i64 216}
!20 = !{!"_ZTS6ImVec1", !14, i64 0}
!21 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!22 = !{!"_ZTS16ImGuiMenuColumns", !6, i64 0, !6, i64 4, !16, i64 8, !16, i64 10, !16, i64 12, !16, i64 14, !16, i64 16, !7, i64 18}
!23 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !6, i64 0, !6, i64 4, !10, i64 8}
!24 = !{!"_ZTS8ImVectorIfE", !6, i64 0, !6, i64 4, !10, i64 8}
!25 = !{!"_ZTS6ImRect", !13, i64 0, !13, i64 8}
!26 = !{!"_ZTS8ImVec2ih", !16, i64 0, !16, i64 2}
!27 = !{!"_ZTS12ImGuiStorage", !28, i64 0}
!28 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !6, i64 0, !6, i64 4, !10, i64 8}
!29 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !6, i64 0, !6, i64 4, !10, i64 8}
!30 = !{!"_ZTS10ImDrawList", !31, i64 0, !32, i64 16, !33, i64 32, !6, i64 48, !6, i64 52, !10, i64 56, !10, i64 64, !10, i64 72, !34, i64 80, !35, i64 96, !37, i64 128, !39, i64 152, !40, i64 168, !14, i64 184, !10, i64 192}
!31 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !6, i64 0, !6, i64 4, !10, i64 8}
!32 = !{!"_ZTS8ImVectorItE", !6, i64 0, !6, i64 4, !10, i64 8}
!33 = !{!"_ZTS8ImVectorI10ImDrawVertE", !6, i64 0, !6, i64 4, !10, i64 8}
!34 = !{!"_ZTS8ImVectorI6ImVec2E", !6, i64 0, !6, i64 4, !10, i64 8}
!35 = !{!"_ZTS15ImDrawCmdHeader", !36, i64 0, !10, i64 16, !6, i64 24}
!36 = !{!"_ZTS6ImVec4", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12}
!37 = !{!"_ZTS18ImDrawListSplitter", !6, i64 0, !6, i64 4, !38, i64 8}
!38 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !6, i64 0, !6, i64 4, !10, i64 8}
!39 = !{!"_ZTS8ImVectorI6ImVec4E", !6, i64 0, !6, i64 4, !10, i64 8}
!40 = !{!"_ZTS8ImVectorIPvE", !6, i64 0, !6, i64 4, !10, i64 8}
!41 = !{i8 0, i8 2}
!42 = !{}
!43 = !{!15, !15, i64 0}
!44 = !{i64 0, i64 4, !45, i64 4, i64 4, !45}
!45 = !{!14, !14, i64 0}
!46 = !{!47, !14, i64 60}
!47 = !{!"_ZTS10ImGuiStyle", !14, i64 0, !14, i64 4, !13, i64 8, !14, i64 16, !14, i64 20, !13, i64 24, !13, i64 32, !17, i64 40, !14, i64 44, !14, i64 48, !14, i64 52, !14, i64 56, !13, i64 60, !14, i64 68, !14, i64 72, !13, i64 76, !13, i64 84, !13, i64 92, !13, i64 100, !14, i64 108, !14, i64 112, !14, i64 116, !14, i64 120, !14, i64 124, !14, i64 128, !14, i64 132, !14, i64 136, !14, i64 140, !14, i64 144, !14, i64 148, !14, i64 152, !14, i64 156, !13, i64 160, !17, i64 168, !13, i64 172, !13, i64 180, !14, i64 188, !13, i64 192, !13, i64 200, !13, i64 208, !13, i64 216, !14, i64 224, !15, i64 228, !15, i64 229, !15, i64 230, !14, i64 232, !14, i64 236, !7, i64 240, !14, i64 1136, !14, i64 1140, !14, i64 1144, !6, i64 1148, !6, i64 1152}
!48 = !{!12, !14, i64 336}
!49 = !{!47, !14, i64 64}
!50 = !{!51, !14, i64 15760}
!51 = !{!"_ZTS12ImGuiContext", !15, i64 0, !15, i64 1, !52, i64 8, !47, i64 14592, !10, i64 15752, !14, i64 15760, !14, i64 15764, !14, i64 15768, !14, i64 15772, !54, i64 15776, !55, i64 16312, !6, i64 16320, !6, i64 16324, !6, i64 16328, !15, i64 16332, !15, i64 16333, !15, i64 16334, !15, i64 16335, !15, i64 16336, !10, i64 16344, !7, i64 16352, !56, i64 16368, !56, i64 16384, !53, i64 16400, !6, i64 16404, !23, i64 16408, !23, i64 16424, !23, i64 16440, !57, i64 16456, !27, i64 16472, !6, i64 16488, !13, i64 16492, !6, i64 16500, !10, i64 16504, !10, i64 16512, !10, i64 16520, !10, i64 16528, !10, i64 16536, !10, i64 16544, !13, i64 16552, !6, i64 16560, !6, i64 16564, !14, i64 16568, !13, i64 16572, !13, i64 16580, !6, i64 16588, !6, i64 16592, !6, i64 16596, !14, i64 16600, !14, i64 16604, !15, i64 16608, !15, i64 16609, !15, i64 16610, !6, i64 16612, !6, i64 16616, !14, i64 16620, !15, i64 16624, !15, i64 16625, !15, i64 16626, !15, i64 16627, !15, i64 16628, !15, i64 16629, !15, i64 16630, !6, i64 16631, !13, i64 16632, !10, i64 16640, !58, i64 16648, !6, i64 16652, !15, i64 16656, !15, i64 16657, !10, i64 16664, !6, i64 16672, !14, i64 16676, !55, i64 16680, !55, i64 16688, !55, i64 16696, !59, i64 16704, !7, i64 16724, !60, i64 18576, !6, i64 18920, !15, i64 18924, !6, i64 18928, !6, i64 18932, !6, i64 18936, !6, i64 18940, !62, i64 18944, !65, i64 19000, !66, i64 19080, !15, i64 19192, !6, i64 19196, !67, i64 19200, !68, i64 19216, !69, i64 19232, !70, i64 19248, !71, i64 19264, !72, i64 19280, !73, i64 19296, !73, i64 19312, !74, i64 19328, !75, i64 19344, !10, i64 19360, !6, i64 19368, !6, i64 19372, !21, i64 19376, !6, i64 19380, !6, i64 19384, !6, i64 19388, !6, i64 19392, !70, i64 19400, !6, i64 19416, !14, i64 19420, !6, i64 19424, !6, i64 19428, !58, i64 19432, !63, i64 19440, !15, i64 19448, !15, i64 19449, !15, i64 19450, !15, i64 19451, !15, i64 19452, !15, i64 19453, !15, i64 19454, !76, i64 19456, !15, i64 19512, !15, i64 19513, !15, i64 19514, !6, i64 19516, !6, i64 19520, !6, i64 19524, !17, i64 19528, !17, i64 19532, !17, i64 19536, !25, i64 19540, !25, i64 19556, !6, i64 19572, !6, i64 19576, !6, i64 19580, !76, i64 19584, !76, i64 19640, !76, i64 19696, !76, i64 19752, !6, i64 19808, !6, i64 19812, !6, i64 19816, !6, i64 19820, !15, i64 19824, !15, i64 19825, !6, i64 19828, !6, i64 19832, !10, i64 19840, !10, i64 19848, !10, i64 19856, !14, i64 19864, !14, i64 19868, !15, i64 19872, !77, i64 19876, !13, i64 19880, !13, i64 19888, !14, i64 19896, !15, i64 19900, !15, i64 19901, !15, i64 19902, !6, i64 19904, !6, i64 19908, !6, i64 19912, !78, i64 19920, !25, i64 19984, !25, i64 20000, !6, i64 20016, !6, i64 20020, !14, i64 20024, !6, i64 20028, !6, i64 20032, !6, i64 20036, !6, i64 20040, !79, i64 20048, !7, i64 20064, !6, i64 20080, !80, i64 20088, !10, i64 20104, !6, i64 20112, !6, i64 20116, !81, i64 20120, !82, i64 20136, !24, i64 20176, !38, i64 20192, !10, i64 20208, !84, i64 20216, !86, i64 20256, !87, i64 20272, !88, i64 20288, !10, i64 20392, !6, i64 20400, !89, i64 20408, !90, i64 20424, !6, i64 20464, !6, i64 20468, !14, i64 20472, !14, i64 20476, !6, i64 20480, !6, i64 20484, !6, i64 20488, !14, i64 20492, !13, i64 20496, !92, i64 20504, !96, i64 24240, !97, i64 24264, !6, i64 24384, !64, i64 24388, !6, i64 24396, !6, i64 24400, !6, i64 24404, !6, i64 24408, !6, i64 24412, !14, i64 24416, !14, i64 24420, !6, i64 24424, !36, i64 24428, !99, i64 24444, !25, i64 24492, !15, i64 24508, !16, i64 24510, !14, i64 24512, !14, i64 24516, !14, i64 24520, !15, i64 24524, !15, i64 24525, !14, i64 24528, !14, i64 24532, !14, i64 24536, !16, i64 24540, !16, i64 24542, !16, i64 24544, !93, i64 24552, !18, i64 24568, !100, i64 24584, !102, i64 24688, !102, i64 24704, !15, i64 24720, !14, i64 24724, !103, i64 24728, !104, i64 24744, !105, i64 24760, !106, i64 24776, !107, i64 24792, !6, i64 24808, !7, i64 24816, !15, i64 24888, !108, i64 24892, !10, i64 24896, !103, i64 24904, !10, i64 24920, !10, i64 24928, !14, i64 24936, !15, i64 24940, !6, i64 24944, !6, i64 24948, !6, i64 24952, !6, i64 24956, !103, i64 24960, !109, i64 24976, !6, i64 25000, !7, i64 25004, !7, i64 25005, !15, i64 25006, !6, i64 25008, !7, i64 25012, !15, i64 25013, !7, i64 25014, !6, i64 25016, !14, i64 25020, !36, i64 25024, !110, i64 25040, !111, i64 25072, !113, i64 25112, !7, i64 25172, !6, i64 25412, !6, i64 25416, !14, i64 25420, !6, i64 25424, !6, i64 25428, !6, i64 25432, !93, i64 25440, !7, i64 25456}
!52 = !{!"_ZTS7ImGuiIO", !6, i64 0, !6, i64 4, !13, i64 8, !14, i64 16, !14, i64 20, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !14, i64 56, !15, i64 60, !10, i64 64, !13, i64 72, !15, i64 80, !15, i64 81, !15, i64 82, !15, i64 83, !15, i64 84, !15, i64 85, !15, i64 86, !15, i64 87, !15, i64 88, !14, i64 92, !14, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !14, i64 112, !15, i64 116, !15, i64 117, !15, i64 118, !15, i64 119, !15, i64 120, !10, i64 128, !10, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !16, i64 216, !15, i64 218, !15, i64 219, !15, i64 220, !15, i64 221, !15, i64 222, !15, i64 223, !15, i64 224, !14, i64 228, !6, i64 232, !6, i64 236, !6, i64 240, !6, i64 244, !13, i64 248, !10, i64 256, !13, i64 264, !7, i64 272, !14, i64 280, !14, i64 284, !53, i64 288, !15, i64 292, !15, i64 293, !15, i64 294, !15, i64 295, !6, i64 296, !7, i64 300, !15, i64 10956, !13, i64 10960, !7, i64 10968, !7, i64 11008, !7, i64 11048, !7, i64 11053, !7, i64 11058, !7, i64 11068, !7, i64 11078, !7, i64 11083, !7, i64 11088, !15, i64 11093, !15, i64 11094, !7, i64 11096, !7, i64 11116, !7, i64 11136, !14, i64 11156, !15, i64 11160, !15, i64 11161, !7, i64 11162, !15, i64 11163, !16, i64 11164, !32, i64 11168, !7, i64 11184, !7, i64 13848, !7, i64 14516}
!53 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!54 = !{!"_ZTS20ImDrawListSharedData", !13, i64 0, !10, i64 8, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !36, i64 32, !6, i64 48, !34, i64 56, !7, i64 72, !14, i64 456, !7, i64 460, !10, i64 528}
!55 = !{!"double", !7, i64 0}
!56 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !6, i64 0, !6, i64 4, !10, i64 8}
!57 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !6, i64 0, !6, i64 4, !10, i64 8}
!58 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!59 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!60 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !61, i64 312, !61, i64 328}
!61 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !6, i64 0, !6, i64 4, !10, i64 8}
!62 = !{!"_ZTS17ImGuiNextItemData", !6, i64 0, !6, i64 4, !6, i64 8, !63, i64 16, !14, i64 24, !6, i64 28, !6, i64 32, !15, i64 36, !7, i64 37, !64, i64 38, !6, i64 48}
!63 = !{!"long long", !7, i64 0}
!64 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!65 = !{!"_ZTS17ImGuiLastItemData", !6, i64 0, !6, i64 4, !6, i64 8, !25, i64 12, !25, i64 28, !25, i64 44, !25, i64 60, !6, i64 76}
!66 = !{!"_ZTS19ImGuiNextWindowData", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !6, i64 56, !15, i64 60, !25, i64 64, !10, i64 80, !10, i64 88, !14, i64 96, !13, i64 100, !6, i64 108}
!67 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !6, i64 0, !6, i64 4, !10, i64 8}
!68 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !6, i64 0, !6, i64 4, !10, i64 8}
!69 = !{!"_ZTS8ImVectorIP6ImFontE", !6, i64 0, !6, i64 4, !10, i64 8}
!70 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !6, i64 0, !6, i64 4, !10, i64 8}
!71 = !{!"_ZTS8ImVectorIiE", !6, i64 0, !6, i64 4, !10, i64 8}
!72 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !6, i64 0, !6, i64 4, !10, i64 8}
!73 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !6, i64 0, !6, i64 4, !10, i64 8}
!74 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !6, i64 0, !6, i64 4, !10, i64 8}
!75 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !6, i64 0, !6, i64 4, !10, i64 8}
!76 = !{!"_ZTS16ImGuiNavItemData", !10, i64 0, !6, i64 8, !6, i64 12, !25, i64 16, !6, i64 32, !14, i64 36, !14, i64 40, !14, i64 44, !63, i64 48}
!77 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!78 = !{!"_ZTS12ImGuiPayload", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !7, i64 24, !15, i64 57, !15, i64 58}
!79 = !{!"_ZTS8ImVectorIhE", !6, i64 0, !6, i64 4, !10, i64 8}
!80 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !6, i64 0, !6, i64 4, !10, i64 8}
!81 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !6, i64 0, !6, i64 4, !10, i64 8}
!82 = !{!"_ZTS6ImPoolI10ImGuiTableE", !83, i64 0, !27, i64 16, !6, i64 32, !6, i64 36}
!83 = !{!"_ZTS8ImVectorI10ImGuiTableE", !6, i64 0, !6, i64 4, !10, i64 8}
!84 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !85, i64 0, !27, i64 16, !6, i64 32, !6, i64 36}
!85 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !6, i64 0, !6, i64 4, !10, i64 8}
!86 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !6, i64 0, !6, i64 4, !10, i64 8}
!87 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !6, i64 0, !6, i64 4, !10, i64 8}
!88 = !{!"_ZTS19ImGuiBoxSelectState", !6, i64 0, !15, i64 4, !15, i64 5, !15, i64 6, !15, i64 7, !15, i64 8, !6, i64 9, !13, i64 12, !13, i64 20, !13, i64 28, !10, i64 40, !15, i64 48, !25, i64 52, !25, i64 68, !25, i64 84}
!89 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !6, i64 0, !6, i64 4, !10, i64 8}
!90 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !91, i64 0, !27, i64 16, !6, i64 32, !6, i64 36}
!91 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !6, i64 0, !6, i64 4, !10, i64 8}
!92 = !{!"_ZTS19ImGuiInputTextState", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !32, i64 24, !93, i64 40, !93, i64 56, !15, i64 72, !6, i64 76, !14, i64 80, !94, i64 84, !14, i64 3712, !15, i64 3716, !15, i64 3717, !15, i64 3718, !6, i64 3720, !15, i64 3724, !6, i64 3728, !6, i64 3732}
!93 = !{!"_ZTS8ImVectorIcE", !6, i64 0, !6, i64 4, !10, i64 8}
!94 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !6, i64 0, !6, i64 4, !6, i64 8, !7, i64 12, !6, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !14, i64 28, !95, i64 32}
!95 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !16, i64 3582, !16, i64 3584, !6, i64 3588, !6, i64 3592}
!96 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !6, i64 0, !93, i64 8}
!97 = !{!"_ZTS6ImFont", !24, i64 0, !14, i64 16, !14, i64 20, !32, i64 24, !98, i64 40, !10, i64 56, !10, i64 64, !10, i64 72, !16, i64 80, !16, i64 82, !16, i64 84, !16, i64 86, !14, i64 88, !14, i64 92, !15, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !6, i64 112, !7, i64 116}
!98 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !6, i64 0, !6, i64 4, !10, i64 8}
!99 = !{!"_ZTS21ImGuiComboPreviewData", !25, i64 0, !13, i64 16, !13, i64 24, !13, i64 32, !14, i64 40, !6, i64 44}
!100 = !{!"_ZTS22ImGuiTypingSelectState", !101, i64 0, !7, i64 24, !6, i64 88, !6, i64 92, !14, i64 96, !15, i64 100}
!101 = !{!"_ZTS24ImGuiTypingSelectRequest", !6, i64 0, !6, i64 4, !10, i64 8, !15, i64 16, !15, i64 17, !7, i64 18}
!102 = !{!"_ZTS20ImGuiPlatformImeData", !15, i64 0, !13, i64 4, !14, i64 12}
!103 = !{!"_ZTS15ImGuiTextBuffer", !93, i64 0}
!104 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !6, i64 0, !6, i64 4, !10, i64 8}
!105 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !93, i64 0}
!106 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !93, i64 0}
!107 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !6, i64 0, !6, i64 4, !10, i64 8}
!108 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!109 = !{!"_ZTS14ImGuiTextIndex", !71, i64 0, !6, i64 16}
!110 = !{!"_ZTS18ImGuiMetricsConfig", !15, i64 0, !15, i64 1, !15, i64 2, !15, i64 3, !15, i64 4, !15, i64 5, !15, i64 6, !15, i64 7, !15, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24}
!111 = !{!"_ZTS16ImGuiIDStackTool", !6, i64 0, !6, i64 4, !6, i64 8, !112, i64 16, !15, i64 32, !14, i64 36}
!112 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !6, i64 0, !6, i64 4, !10, i64 8}
!113 = !{!"_ZTS19ImGuiDebugAllocInfo", !6, i64 0, !6, i64 4, !16, i64 8, !7, i64 12}
!114 = !{!13, !14, i64 0}
!115 = !{!13, !14, i64 4}
!116 = !{!12, !14, i64 324}
!117 = !{!51, !10, i64 20104}
!118 = !{!12, !14, i64 576}
!119 = !{!12, !14, i64 560}
!120 = !{!12, !14, i64 280}
!121 = !{!25, !14, i64 0}
!122 = !{!12, !14, i64 284}
!123 = !{!25, !14, i64 4}
!124 = !{!12, !14, i64 584}
!125 = !{!12, !14, i64 568}
!126 = !{!25, !14, i64 8}
!127 = !{!25, !14, i64 12}
!128 = !{!12, !14, i64 88}
!129 = !{i64 0, i64 4, !45, i64 4, i64 4, !45, i64 8, i64 4, !45, i64 12, i64 4, !45}
!130 = !{!47, !14, i64 76}
!131 = !{!51, !6, i64 18944}
!132 = !{!51, !6, i64 18992}
!133 = !{!12, !14, i64 592}
!134 = !{!12, !14, i64 600}
!135 = !{!51, !6, i64 19008}
!136 = !{!51, !15, i64 19448}
!137 = !{!51, !17, i64 19528}
!138 = !{!51, !10, i64 19360}
!139 = !{!51, !6, i64 19004}
!140 = !{!47, !14, i64 100}
!141 = !{!51, !14, i64 272}
!142 = !{!51, !10, i64 16512}
!143 = !{!51, !6, i64 20040}
!144 = !{!51, !6, i64 19380}
!145 = !{!51, !15, i64 19451}
!146 = !{!16, !16, i64 0}
!147 = !{!51, !6, i64 19368}
!148 = !{!12, !10, i64 440}
!149 = !{!12, !21, i64 368}
!150 = !{!51, !6, i64 18932}
!151 = !{!47, !14, i64 68}
!152 = !{!12, !10, i64 688}
!153 = !{!51, !15, i64 24888}


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

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

@GImGui = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [54 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui16TreeNodeBehaviorEjiPKcS1_ = external hidden unnamed_addr constant [86 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [2 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui16GetCurrentWindowEv() 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

declare <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef, ptr noundef, i1 noundef zeroext, float noundef) local_unnamed_addr #3

; 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 #3

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

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

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

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

declare void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float>, ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #3

declare void @_ZN5ImGui17RenderTextClippedERK6ImVec2S2_PKcS4_PS1_S2_PK6ImRect(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef) local_unnamed_addr #3

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

declare void @_ZN5ImGui12RenderBulletEP10ImDrawList6ImVec2j(ptr noundef, <2 x float>, i32 noundef) local_unnamed_addr #3

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

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

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

declare void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float>, <2 x float>, i32 noundef, i1 noundef zeroext, float noundef) local_unnamed_addr #3

declare void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @_ZN5ImGui11RenderArrowEP10ImDrawList6ImVec2j8ImGuiDirf(ptr noundef, <2 x float>, i32 noundef, i32 noundef, float noundef) local_unnamed_addr #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN5ImGui16TreeNodeBehaviorEjiPKcS1_(i32 noundef %0, i32 noundef %1, ptr noundef %2, ptr noundef %3) local_unnamed_addr #6 {
  %5 = alloca %struct.ImVec2, align 8
  %6 = alloca %struct.ImVec2, align 8
  %7 = alloca %struct.ImRect, align 8
  %8 = alloca %struct.ImVec2, align 8
  %9 = alloca %struct.ImVec2, align 4
  %10 = alloca %struct.ImRect, align 4
  %11 = alloca i32, align 4
  %12 = alloca i8, align 1
  %13 = alloca i8, align 1
  %14 = alloca i8, align 1
  %15 = alloca i8, align 1
  %16 = alloca %struct.ImVec2, align 8
  %17 = alloca %struct.ImVec2, align 8
  %18 = alloca %struct.ImVec2, align 8
  %19 = alloca %struct.ImVec2, align 8
  %20 = alloca %struct.ImVec2, align 4
  %21 = tail call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %22 = getelementptr inbounds i8, ptr %21, i64 207
  %23 = load i8, ptr %22, align 1, !tbaa !5, !range !39, !noundef !40
  %24 = trunc nuw i8 %23 to i1
  br i1 %24, label %421, label %25

25:                                               ; preds = %4
  %26 = load ptr, ptr @GImGui, align 8, !tbaa !41
  %27 = and i32 %1, 2
  %.not = icmp eq i32 %27, 0
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  %28 = and i32 %1, 1026
  %or.cond = icmp eq i32 %28, 0
  %29 = getelementptr inbounds i8, ptr %26, i64 14652
  br i1 %or.cond, label %32, label %30

30:                                               ; preds = %25
  %31 = load i64, ptr %29, align 4
  store i64 %31, ptr %5, align 8
  br label %39

32:                                               ; preds = %25
  %33 = load float, ptr %29, align 4, !tbaa !42
  %34 = getelementptr inbounds i8, ptr %21, i64 336
  %35 = load float, ptr %34, align 8, !tbaa !44
  %36 = getelementptr inbounds i8, ptr %26, i64 14656
  %37 = load float, ptr %36, align 4, !tbaa !45
  %38 = tail call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %35, float noundef %37)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %5, float noundef %33, float noundef %38)
  br label %39

39:                                               ; preds = %32, %30
  %.not225 = icmp eq ptr %3, null
  br i1 %.not225, label %40, label %42

40:                                               ; preds = %39
  %41 = call noundef ptr @_ZN5ImGui19FindRenderedTextEndEPKcS1_(ptr noundef %2, ptr noundef null)
  br label %42

42:                                               ; preds = %40, %39
  %.0214 = phi ptr [ %3, %39 ], [ %41, %40 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  %43 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %2, ptr noundef %.0214, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %43, ptr %6, align 8
  %44 = getelementptr inbounds i8, ptr %26, i64 15760
  %45 = load float, ptr %44, align 8, !tbaa !46
  %46 = load float, ptr %5, align 8
  %.v = select i1 %.not, float 2.000000e+00, float 3.000000e+00
  %47 = fmul float %.v, %46
  %48 = fadd float %45, %47
  %49 = getelementptr inbounds i8, ptr %5, i64 4
  %50 = load float, ptr %49, align 4, !tbaa !110
  %51 = getelementptr inbounds i8, ptr %21, i64 280
  %52 = getelementptr inbounds i8, ptr %21, i64 336
  %53 = load float, ptr %52, align 8, !tbaa !44
  %54 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %50, float noundef %53)
  %55 = load float, ptr %44, align 8, !tbaa !46
  %56 = extractelement <2 x float> %43, i64 0
  %57 = fadd float %55, %56
  %58 = load float, ptr %5, align 8, !tbaa !111
  %59 = call float @llvm.fmuladd.f32(float %58, float 2.000000e+00, float %57)
  %60 = getelementptr inbounds i8, ptr %21, i64 324
  %61 = load float, ptr %60, align 4, !tbaa !112
  %62 = getelementptr inbounds i8, ptr %26, i64 14652
  %63 = getelementptr inbounds i8, ptr %26, i64 14656
  %64 = load float, ptr %63, align 4, !tbaa !45
  %65 = call float @llvm.fmuladd.f32(float %64, float 2.000000e+00, float %55)
  %66 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %61, float noundef %65)
  %67 = extractelement <2 x float> %43, i64 1
  %68 = load float, ptr %49, align 4, !tbaa !110
  %69 = call float @llvm.fmuladd.f32(float %68, float 2.000000e+00, float %67)
  %70 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %66, float noundef %69)
  %71 = and i32 %1, 16384
  %.not226 = icmp eq i32 %71, 0
  br i1 %.not226, label %76, label %72

72:                                               ; preds = %42
  %73 = getelementptr inbounds i8, ptr %26, i64 20104
  %74 = load ptr, ptr %73, align 8, !tbaa !113
  %75 = icmp ne ptr %74, null
  br label %76

76:                                               ; preds = %72, %42
  %77 = phi i1 [ false, %42 ], [ %75, %72 ]
  %cond.fr = freeze i1 %77
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #9
  call void @_ZN6ImRectC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %7)
  %78 = getelementptr inbounds i8, ptr %21, i64 576
  %79 = and i32 %1, 4096
  %.not227 = icmp eq i32 %79, 0
  %80 = getelementptr inbounds i8, ptr %21, i64 560
  %spec.select271 = select i1 %.not227, ptr %51, ptr %80
  %spec.select = select i1 %cond.fr, ptr %78, ptr %spec.select271
  %81 = load float, ptr %spec.select, align 8, !tbaa !114
  store float %81, ptr %7, align 8, !tbaa !115
  %82 = getelementptr inbounds i8, ptr %21, i64 284
  %83 = load float, ptr %82, align 4, !tbaa !116
  %84 = getelementptr inbounds i8, ptr %7, i64 4
  store float %83, ptr %84, align 4, !tbaa !117
  br i1 %cond.fr, label %85, label %88

85:                                               ; preds = %76
  %86 = getelementptr inbounds i8, ptr %21, i64 584
  %87 = load float, ptr %86, align 8, !tbaa !118
  br label %98

88:                                               ; preds = %76
  %89 = and i32 %1, 8192
  %.not228 = icmp eq i32 %89, 0
  br i1 %.not228, label %95, label %90

90:                                               ; preds = %88
  %91 = load float, ptr %51, align 8, !tbaa !119
  %92 = fadd float %59, %91
  %93 = load float, ptr %5, align 8, !tbaa !111
  %94 = fadd float %92, %93
  br label %98

95:                                               ; preds = %88
  %96 = getelementptr inbounds i8, ptr %21, i64 568
  %97 = load float, ptr %96, align 8, !tbaa !120
  br label %98

98:                                               ; preds = %90, %95, %85
  %99 = phi float [ %87, %85 ], [ %94, %90 ], [ %97, %95 ]
  %100 = getelementptr inbounds i8, ptr %7, i64 8
  store float %99, ptr %100, align 8, !tbaa !121
  %101 = fadd float %70, %83
  %102 = getelementptr inbounds i8, ptr %7, i64 12
  store float %101, ptr %102, align 4, !tbaa !122
  br i1 %.not, label %111, label %103

103:                                              ; preds = %98
  %104 = getelementptr inbounds i8, ptr %21, i64 88
  %105 = load float, ptr %104, align 8, !tbaa !123
  %106 = fmul float %105, 5.000000e-01
  %107 = fptosi float %106 to i32
  %108 = sitofp i32 %107 to float
  %109 = fsub float %81, %108
  store float %109, ptr %7, align 8, !tbaa !115
  %110 = fadd float %99, %108
  store float %110, ptr %100, align 8, !tbaa !121
  br label %111

111:                                              ; preds = %103, %98
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  %112 = load float, ptr %51, align 8, !tbaa !119
  %113 = fadd float %48, %112
  %114 = fadd float %54, %83
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef %113, float noundef %114)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef %59, float noundef %70)
  %115 = load float, ptr %49, align 4, !tbaa !110
  call void @_ZN5ImGui8ItemSizeERK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef %115)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %7, i64 16, i1 false), !tbaa.struct !124
  %116 = and i32 %1, 30722
  %117 = icmp eq i32 %116, 0
  br i1 %117, label %118, label %130

118:                                              ; preds = %111
  %119 = load float, ptr %7, align 8, !tbaa !115
  %120 = fadd float %59, %119
  %121 = fcmp ogt float %56, 0.000000e+00
  br i1 %121, label %122, label %126

122:                                              ; preds = %118
  %123 = getelementptr inbounds i8, ptr %26, i64 14668
  %124 = load float, ptr %123, align 4, !tbaa !125
  %125 = fmul float %124, 2.000000e+00
  br label %126

126:                                              ; preds = %118, %122
  %127 = phi float [ %125, %122 ], [ 0.000000e+00, %118 ]
  %128 = fadd float %120, %127
  %129 = getelementptr inbounds i8, ptr %10, i64 8
  store float %128, ptr %129, align 4, !tbaa !121
  br label %130

130:                                              ; preds = %126, %111
  %131 = getelementptr inbounds i8, ptr %26, i64 18944
  %132 = load i32, ptr %131, align 8, !tbaa !126
  %133 = and i32 %132, 16
  %.not229 = icmp eq i32 %133, 0
  br i1 %.not229, label %137, label %134

134:                                              ; preds = %130
  %135 = getelementptr inbounds i8, ptr %26, i64 18992
  %136 = load i32, ptr %135, align 8, !tbaa !127
  br label %137

137:                                              ; preds = %130, %134
  %138 = phi i32 [ %136, %134 ], [ %0, %130 ]
  %139 = call noundef zeroext i1 @_ZN5ImGui22TreeNodeUpdateNextOpenEji(i32 noundef %138, i32 noundef %1)
  br i1 %cond.fr, label %140, label %149

140:                                              ; preds = %137
  %141 = getelementptr inbounds i8, ptr %21, i64 592
  %142 = load float, ptr %141, align 8, !tbaa !128
  %143 = getelementptr inbounds i8, ptr %21, i64 600
  %144 = load float, ptr %143, align 8, !tbaa !129
  %145 = load float, ptr %78, align 8, !tbaa !130
  store float %145, ptr %141, align 8, !tbaa !128
  %146 = getelementptr inbounds i8, ptr %21, i64 584
  %147 = load float, ptr %146, align 8, !tbaa !118
  store float %147, ptr %143, align 8, !tbaa !129
  %148 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %10, i32 noundef %0, ptr noundef null, i32 noundef 0)
  store float %142, ptr %141, align 8, !tbaa !128
  store float %144, ptr %143, align 8, !tbaa !129
  br label %151

149:                                              ; preds = %137
  %150 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %10, i32 noundef %0, ptr noundef null, i32 noundef 0)
  br label %151

151:                                              ; preds = %149, %140
  %.0216.in = phi i1 [ %148, %140 ], [ %150, %149 ]
  %152 = getelementptr inbounds i8, ptr %26, i64 19008
  %153 = load i32, ptr %152, align 8, !tbaa !131
  %154 = or i32 %153, 2
  store i32 %154, ptr %152, align 8, !tbaa !131
  %155 = getelementptr inbounds i8, ptr %26, i64 19044
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %155, ptr noundef nonnull align 8 dereferenceable(16) %7, i64 16, i1 false), !tbaa.struct !124
  %156 = and i32 %1, 8
  %.not230 = icmp eq i32 %156, 0
  %157 = and i32 %1, 32776
  %or.cond249 = icmp eq i32 %157, 32768
  %.not250 = xor i1 %139, true
  %brmerge.not = and i1 %or.cond249, %139
  br i1 %brmerge.not, label %158, label %172

158:                                              ; preds = %151
  %159 = getelementptr inbounds i8, ptr %26, i64 19448
  %160 = load i8, ptr %159, align 8, !tbaa !132, !range !39, !noundef !40
  %161 = trunc nuw i8 %160 to i1
  br i1 %161, label %172, label %162

162:                                              ; preds = %158
  %163 = getelementptr inbounds i8, ptr %26, i64 19528
  %164 = load i32, ptr %163, align 8, !tbaa !133
  %165 = icmp eq i32 %164, 0
  br i1 %165, label %166, label %172

166:                                              ; preds = %162
  %167 = getelementptr inbounds i8, ptr %26, i64 19360
  %168 = load ptr, ptr %167, align 8, !tbaa !134
  %169 = icmp eq ptr %168, %21
  br i1 %169, label %170, label %172

170:                                              ; preds = %166
  %171 = call noundef zeroext i1 @_ZN5ImGui28NavMoveRequestButNoResultYetEv()
  br label %172

172:                                              ; preds = %170, %151, %158, %166, %162
  %.0217 = phi i1 [ false, %151 ], [ false, %158 ], [ false, %166 ], [ false, %162 ], [ %171, %170 ]
  %173 = and i32 %1, 256
  %.not232 = icmp eq i32 %173, 0
  br i1 %.0216.in, label %178, label %174

174:                                              ; preds = %172
  %brmerge252.not = and i1 %139, %.0217
  br i1 %brmerge252.not, label %175, label %176

175:                                              ; preds = %174
  call void @_ZL22TreeNodeStoreStackDatai(i32 noundef %1)
  br label %176

176:                                              ; preds = %174, %175
  %brmerge255.not = and i1 %.not230, %139
  br i1 %brmerge255.not, label %177, label %420

177:                                              ; preds = %176
  call void @_ZN5ImGui18TreePushOverrideIDEj(i32 noundef %0)
  br label %420

178:                                              ; preds = %172
  br i1 %cond.fr, label %179, label %184

179:                                              ; preds = %178
  call void @_ZN5ImGui26TablePushBackgroundChannelEv()
  %180 = load i32, ptr %152, align 8, !tbaa !131
  %181 = or i32 %180, 512
  store i32 %181, ptr %152, align 8, !tbaa !131
  %182 = getelementptr inbounds i8, ptr %21, i64 592
  %183 = getelementptr inbounds i8, ptr %26, i64 19060
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %183, ptr noundef nonnull align 8 dereferenceable(16) %182, i64 16, i1 false), !tbaa.struct !124
  br label %184

184:                                              ; preds = %179, %178
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #9
  %185 = and i32 %1, 4
  %.not233 = icmp eq i32 %185, 0
  br i1 %.not233, label %186, label %190

186:                                              ; preds = %184
  %187 = getelementptr inbounds i8, ptr %26, i64 19004
  %188 = load i32, ptr %187, align 4, !tbaa !135
  %189 = and i32 %188, 16384
  %.not234 = icmp eq i32 %189, 0
  br i1 %.not234, label %191, label %190

190:                                              ; preds = %186, %184
  br label %191

191:                                              ; preds = %190, %186
  %192 = phi i32 [ 4096, %190 ], [ 0, %186 ]
  %193 = or disjoint i32 %192, 512
  %spec.select290 = select i1 %.not232, i32 %193, i32 %192
  %194 = load float, ptr %8, align 8, !tbaa !111
  %195 = fsub float %194, %48
  %196 = getelementptr inbounds i8, ptr %26, i64 14692
  %197 = load float, ptr %196, align 4, !tbaa !136
  %198 = fsub float %195, %197
  %199 = getelementptr inbounds i8, ptr %26, i64 272
  %200 = load float, ptr %199, align 8, !tbaa !137
  %201 = fcmp ult float %200, %198
  br i1 %201, label %.thread, label %202

202:                                              ; preds = %191
  %203 = load float, ptr %5, align 8, !tbaa !111
  %204 = load float, ptr %44, align 8, !tbaa !46
  %205 = call float @llvm.fmuladd.f32(float %203, float 2.000000e+00, float %204)
  %206 = fadd float %195, %205
  %207 = fadd float %197, %206
  %208 = fcmp olt float %200, %207
  br i1 %208, label %209, label %.thread

209:                                              ; preds = %202
  %210 = or disjoint i32 %spec.select290, 16
  store i32 %210, ptr %11, align 4, !tbaa !138
  br label %216

.thread:                                          ; preds = %191, %202
  %211 = and i32 %1, 64
  %.not235 = icmp eq i32 %211, 0
  br i1 %.not235, label %214, label %212

212:                                              ; preds = %.thread
  %213 = or disjoint i32 %spec.select290, 288
  store i32 %213, ptr %11, align 4, !tbaa !138
  br label %216

214:                                              ; preds = %.thread
  %215 = or disjoint i32 %spec.select290, 32
  store i32 %215, ptr %11, align 4, !tbaa !138
  br label %216

216:                                              ; preds = %212, %214, %209
  %217 = phi i32 [ %213, %212 ], [ %215, %214 ], [ %210, %209 ]
  %218 = phi i1 [ false, %212 ], [ false, %214 ], [ true, %209 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #9
  %219 = and i32 %1, 1
  %220 = trunc nuw nsw i32 %219 to i8
  store i8 %220, ptr %12, align 1, !tbaa !139
  %221 = getelementptr inbounds i8, ptr %26, i64 19004
  %222 = load i32, ptr %221, align 4, !tbaa !135
  %223 = and i32 %222, 4194304
  %.not236 = icmp ne i32 %223, 0
  br i1 %.not236, label %224, label %230

224:                                              ; preds = %216
  call void @_ZN5ImGui21MultiSelectItemHeaderEjPbPi(i32 noundef %0, ptr noundef nonnull %12, ptr noundef nonnull %11)
  %.pre.pre = load i32, ptr %11, align 4, !tbaa !138
  br i1 %218, label %225, label %228

225:                                              ; preds = %224
  %226 = and i32 %.pre.pre, -49
  %227 = or disjoint i32 %226, 16
  store i32 %227, ptr %11, align 4, !tbaa !138
  br label %228

228:                                              ; preds = %225, %224
  %.pre = phi i32 [ %227, %225 ], [ %.pre.pre, %224 ]
  %229 = or i32 %1, 128
  br label %235

230:                                              ; preds = %216
  %231 = getelementptr inbounds i8, ptr %26, i64 16512
  %232 = load ptr, ptr %231, align 8, !tbaa !140
  %.not237 = icmp eq ptr %21, %232
  %brmerge257.not = and i1 %218, %.not237
  br i1 %brmerge257.not, label %235, label %233

233:                                              ; preds = %230
  %234 = or i32 %217, 65536
  store i32 %234, ptr %11, align 4, !tbaa !138
  br label %235

235:                                              ; preds = %230, %233, %228
  %236 = phi i32 [ %.pre, %228 ], [ %234, %233 ], [ %217, %230 ]
  %.0213 = phi i32 [ %229, %228 ], [ %1, %233 ], [ %1, %230 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #9
  %237 = call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %10, i32 noundef %0, ptr noundef nonnull %13, ptr noundef nonnull %14, i32 noundef %236)
  br i1 %.not232, label %238, label %293

238:                                              ; preds = %235
  br i1 %237, label %239, label %.critedge

239:                                              ; preds = %238
  %240 = getelementptr inbounds i8, ptr %26, i64 20040
  %241 = load i32, ptr %240, align 8, !tbaa !141
  %.not238 = icmp eq i32 %241, %0
  br i1 %.not238, label %266, label %242

242:                                              ; preds = %239
  %243 = and i32 %.0213, 192
  %244 = icmp eq i32 %243, 0
  br i1 %244, label %249, label %245

245:                                              ; preds = %242
  %246 = getelementptr inbounds i8, ptr %26, i64 19380
  %247 = load i32, ptr %246, align 4, !tbaa !142
  %248 = icmp ne i32 %247, %0
  %brmerge259 = or i1 %.not236, %248
  br i1 %brmerge259, label %250, label %249

249:                                              ; preds = %245, %242
  br label %250

250:                                              ; preds = %245, %249
  %.0219 = phi i8 [ 1, %249 ], [ 0, %245 ]
  %251 = and i32 %.0213, 128
  %.not240 = icmp eq i32 %251, 0
  br i1 %.not240, label %260, label %252

252:                                              ; preds = %250
  br i1 %218, label %253, label %257

253:                                              ; preds = %252
  %254 = getelementptr inbounds i8, ptr %26, i64 19451
  %255 = load i8, ptr %254, align 1, !tbaa !143, !range !39, !noundef !40
  %256 = xor i8 %255, 1
  br label %257

257:                                              ; preds = %253, %252
  %258 = phi i8 [ 0, %252 ], [ %256, %253 ]
  %259 = or i8 %258, %.0219
  br label %260

260:                                              ; preds = %257, %250
  %.1220 = phi i8 [ %259, %257 ], [ %.0219, %250 ]
  %261 = and i32 %.0213, 64
  %.not241 = icmp eq i32 %261, 0
  br i1 %.not241, label %.critedge, label %262

262:                                              ; preds = %260
  %263 = getelementptr inbounds i8, ptr %26, i64 11066
  %264 = load i16, ptr %263, align 2, !tbaa !144
  %265 = icmp eq i16 %264, 2
  %spec.select260 = select i1 %265, i8 1, i8 %.1220
  br label %.critedge

266:                                              ; preds = %239
  %267 = load i32, ptr %11, align 4, !tbaa !138
  %268 = and i32 %267, 512
  %.not239 = icmp eq i32 %268, 0
  br i1 %.not239, label %269, label %270

269:                                              ; preds = %266
  call void @__assert_fail(ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.2, i32 noundef 6531, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui16TreeNodeBehaviorEjiPKcS1_) #10
  unreachable

270:                                              ; preds = %266
  %spec.select261 = zext i1 %.not250 to i8
  br label %.critedge

.critedge:                                        ; preds = %270, %262, %238, %260
  %.2 = phi i8 [ %.1220, %260 ], [ %spec.select260, %262 ], [ %spec.select261, %270 ], [ 0, %238 ]
  %271 = getelementptr inbounds i8, ptr %26, i64 19368
  %272 = load i32, ptr %271, align 8, !tbaa !145
  %273 = icmp eq i32 %272, %0
  br i1 %273, label %274, label %279

274:                                              ; preds = %.critedge
  %275 = getelementptr inbounds i8, ptr %26, i64 19528
  %276 = load i32, ptr %275, align 8, !tbaa !133
  %277 = icmp eq i32 %276, 0
  %brmerge264.not = and i1 %139, %277
  br i1 %brmerge264.not, label %278, label %.thread286

278:                                              ; preds = %274
  call void @_ZN5ImGui27NavClearPreferredPosForAxisE9ImGuiAxis(i32 noundef 0)
  call void @_ZN5ImGui20NavMoveRequestCancelEv()
  %.pre279 = load i32, ptr %271, align 8, !tbaa !145
  br label %279

279:                                              ; preds = %278, %.critedge
  %280 = phi i32 [ %.pre279, %278 ], [ %272, %.critedge ]
  %.3 = phi i8 [ 1, %278 ], [ %.2, %.critedge ]
  %281 = icmp eq i32 %280, %0
  br i1 %281, label %.thread286, label %285

.thread286:                                       ; preds = %274, %279
  %.3289 = phi i8 [ %.3, %279 ], [ %.2, %274 ]
  %282 = getelementptr inbounds i8, ptr %26, i64 19528
  %283 = load i32, ptr %282, align 8, !tbaa !133
  %284 = icmp ne i32 %283, 1
  %brmerge266 = or i1 %139, %284
  br i1 %brmerge266, label %285, label %.thread272

.thread272:                                       ; preds = %.thread286
  call void @_ZN5ImGui27NavClearPreferredPosForAxisE9ImGuiAxis(i32 noundef 0)
  call void @_ZN5ImGui20NavMoveRequestCancelEv()
  br label %287

285:                                              ; preds = %.thread286, %279
  %.3288 = phi i8 [ %.3289, %.thread286 ], [ %.3, %279 ]
  %286 = trunc nuw i8 %.3288 to i1
  br i1 %286, label %287, label %293

287:                                              ; preds = %.thread272, %285
  %.4274 = phi i8 [ 1, %.thread272 ], [ %.3288, %285 ]
  %288 = getelementptr inbounds i8, ptr %21, i64 440
  %289 = load ptr, ptr %288, align 8, !tbaa !146
  %290 = zext i1 %.not250 to i32
  call void @_ZN12ImGuiStorage6SetIntEji(ptr noundef nonnull align 8 dereferenceable(16) %289, i32 noundef %138, i32 noundef %290)
  %291 = load i32, ptr %152, align 8, !tbaa !131
  %292 = or i32 %291, 16
  store i32 %292, ptr %152, align 8, !tbaa !131
  br label %293

293:                                              ; preds = %285, %287, %235
  %.5 = phi i8 [ 0, %235 ], [ %.4274, %287 ], [ %.3288, %285 ]
  %.0215.in = phi i1 [ %139, %235 ], [ %.not250, %287 ], [ %139, %285 ]
  br i1 %.not236, label %294, label %303

294:                                              ; preds = %293
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #9
  %295 = xor i8 %.5, 1
  %296 = select i1 %237, i8 %295, i8 0
  store i8 %296, ptr %15, align 1, !tbaa !139
  call void @_ZN5ImGui21MultiSelectItemFooterEjPbS0_(i32 noundef %0, ptr noundef nonnull %12, ptr noundef nonnull %15)
  br i1 %237, label %297, label %302

297:                                              ; preds = %294
  %298 = getelementptr inbounds i8, ptr %21, i64 368
  %299 = load i32, ptr %298, align 8, !tbaa !147
  %300 = getelementptr inbounds i8, ptr %26, i64 18932
  %301 = load i32, ptr %300, align 4, !tbaa !148
  call void @_ZN5ImGui8SetNavIDEj13ImGuiNavLayerjRK6ImRect(i32 noundef %0, i32 noundef %299, i32 noundef %301, ptr noundef nonnull align 4 dereferenceable(16) %10)
  br label %302

302:                                              ; preds = %297, %294
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #9
  br label %303

303:                                              ; preds = %302, %293
  %304 = load i8, ptr %12, align 1, !tbaa !139, !range !39, !noundef !40
  %305 = zext nneg i8 %304 to i32
  %.not242 = icmp eq i32 %219, %305
  br i1 %.not242, label %309, label %306

306:                                              ; preds = %303
  %307 = load i32, ptr %152, align 8, !tbaa !131
  %308 = or i32 %307, 8
  store i32 %308, ptr %152, align 8, !tbaa !131
  br label %309

309:                                              ; preds = %306, %303
  %310 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  %spec.select267 = select i1 %.not236, i32 6, i32 2
  br i1 %.not, label %364, label %311

311:                                              ; preds = %309
  %312 = load i8, ptr %14, align 1, !tbaa !139, !range !39, !noundef !40
  %313 = trunc nuw i8 %312 to i1
  %.pre280 = load i8, ptr %13, align 1, !tbaa !139, !range !39
  %314 = trunc nuw i8 %.pre280 to i1
  %.not291 = xor i1 %313, true
  %315 = select i1 %313, i1 %314, i1 false
  %.mux = select i1 %.not291, i1 %314, i1 false
  %316 = select i1 %.mux, i32 25, i32 24
  %317 = select i1 %315, i32 26, i32 %316
  %318 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %317, float noundef 1.000000e+00)
  %.sroa.04.0.copyload = load <2 x float>, ptr %7, align 8
  %.sroa.03.0.copyload = load <2 x float>, ptr %100, align 8
  %319 = getelementptr inbounds i8, ptr %26, i64 14660
  %320 = load float, ptr %319, align 4, !tbaa !149
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %.sroa.04.0.copyload, <2 x float> %.sroa.03.0.copyload, i32 noundef %318, i1 noundef zeroext true, float noundef %320)
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %7, i32 noundef %0, i32 noundef %spec.select267)
  %321 = and i32 %.0213, 512
  %.not245 = icmp eq i32 %321, 0
  br i1 %.not245, label %333, label %322

322:                                              ; preds = %311
  %323 = getelementptr inbounds i8, ptr %21, i64 688
  %324 = load ptr, ptr %323, align 8, !tbaa !150
  %325 = load float, ptr %8, align 8, !tbaa !111
  %326 = fneg float %48
  %327 = call float @llvm.fmuladd.f32(float %326, float 0x3FE3333340000000, float %325)
  %328 = getelementptr inbounds i8, ptr %8, i64 4
  %329 = load float, ptr %328, align 4, !tbaa !110
  %330 = load float, ptr %44, align 8, !tbaa !46
  %331 = call float @llvm.fmuladd.f32(float %330, float 5.000000e-01, float %329)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %16, float noundef %327, float noundef %331)
  %332 = load <2 x float>, ptr %16, align 8
  call void @_ZN5ImGui12RenderBulletEP10ImDrawList6ImVec2j(ptr noundef %324, <2 x float> %332, i32 noundef %310)
  br label %351

333:                                              ; preds = %311
  %334 = load float, ptr %8, align 8, !tbaa !111
  br i1 %.not232, label %335, label %347

335:                                              ; preds = %333
  %336 = getelementptr inbounds i8, ptr %21, i64 688
  %337 = load ptr, ptr %336, align 8, !tbaa !150
  %338 = fsub float %334, %48
  %339 = load float, ptr %5, align 8, !tbaa !111
  %340 = fadd float %338, %339
  %341 = getelementptr inbounds i8, ptr %8, i64 4
  %342 = load float, ptr %341, align 4, !tbaa !110
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef %340, float noundef %342)
  %343 = and i32 %.0213, 536870912
  %.not246 = icmp eq i32 %343, 0
  %344 = select i1 %.not246, i32 3, i32 2
  %345 = select i1 %.0215.in, i32 %344, i32 1
  %346 = load <2 x float>, ptr %17, align 8
  call void @_ZN5ImGui11RenderArrowEP10ImDrawList6ImVec2j8ImGuiDirf(ptr noundef %337, <2 x float> %346, i32 noundef %310, i32 noundef %345, float noundef 1.000000e+00)
  br label %351

347:                                              ; preds = %333
  %348 = load float, ptr %5, align 8, !tbaa !111
  %349 = fsub float %48, %348
  %350 = fsub float %334, %349
  store float %350, ptr %8, align 8, !tbaa !111
  br label %351

351:                                              ; preds = %335, %347, %322
  %352 = and i32 %.0213, 268435456
  %.not247 = icmp eq i32 %352, 0
  br i1 %.not247, label %359, label %353

353:                                              ; preds = %351
  %354 = load float, ptr %44, align 8, !tbaa !46
  %355 = load float, ptr %62, align 4, !tbaa !42
  %356 = fadd float %354, %355
  %357 = load float, ptr %100, align 8, !tbaa !121
  %358 = fsub float %357, %356
  store float %358, ptr %100, align 8, !tbaa !121
  br label %359

359:                                              ; preds = %353, %351
  %360 = getelementptr inbounds i8, ptr %26, i64 24888
  %361 = load i8, ptr %360, align 8, !tbaa !151, !range !39, !noundef !40
  %362 = trunc nuw i8 %361 to i1
  br i1 %362, label %363, label %409

363:                                              ; preds = %359
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.147)
  br label %409

364:                                              ; preds = %309
  %365 = load i8, ptr %13, align 1, !tbaa !139, !range !39, !noundef !40
  %366 = trunc nuw i8 %365 to i1
  br i1 %366, label %370, label %367

367:                                              ; preds = %364
  %368 = load i8, ptr %12, align 1, !tbaa !139, !range !39, !noundef !40
  %369 = trunc nuw i8 %368 to i1
  br i1 %369, label %.thread276, label %375

370:                                              ; preds = %364
  %371 = load i8, ptr %14, align 1, !tbaa !139, !range !39, !noundef !40
  %372 = trunc nuw i8 %371 to i1
  %spec.select278 = select i1 %372, i32 26, i32 25
  br label %.thread276

.thread276:                                       ; preds = %370, %367
  %373 = phi i32 [ 24, %367 ], [ %spec.select278, %370 ]
  %374 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %373, float noundef 1.000000e+00)
  %.sroa.02.0.copyload = load <2 x float>, ptr %7, align 8
  %.sroa.01.0.copyload = load <2 x float>, ptr %100, align 8
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %.sroa.02.0.copyload, <2 x float> %.sroa.01.0.copyload, i32 noundef %374, i1 noundef zeroext false, float noundef 0.000000e+00)
  br label %375

375:                                              ; preds = %.thread276, %367
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %7, i32 noundef %0, i32 noundef %spec.select267)
  %376 = and i32 %.0213, 512
  %.not243 = icmp eq i32 %376, 0
  br i1 %.not243, label %388, label %377

377:                                              ; preds = %375
  %378 = getelementptr inbounds i8, ptr %21, i64 688
  %379 = load ptr, ptr %378, align 8, !tbaa !150
  %380 = load float, ptr %8, align 8, !tbaa !111
  %381 = fneg float %48
  %382 = call float @llvm.fmuladd.f32(float %381, float 5.000000e-01, float %380)
  %383 = getelementptr inbounds i8, ptr %8, i64 4
  %384 = load float, ptr %383, align 4, !tbaa !110
  %385 = load float, ptr %44, align 8, !tbaa !46
  %386 = call float @llvm.fmuladd.f32(float %385, float 5.000000e-01, float %384)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef %382, float noundef %386)
  %387 = load <2 x float>, ptr %18, align 8
  call void @_ZN5ImGui12RenderBulletEP10ImDrawList6ImVec2j(ptr noundef %379, <2 x float> %387, i32 noundef %310)
  br label %404

388:                                              ; preds = %375
  br i1 %.not232, label %389, label %404

389:                                              ; preds = %388
  %390 = getelementptr inbounds i8, ptr %21, i64 688
  %391 = load ptr, ptr %390, align 8, !tbaa !150
  %392 = load float, ptr %8, align 8, !tbaa !111
  %393 = fsub float %392, %48
  %394 = load float, ptr %5, align 8, !tbaa !111
  %395 = fadd float %393, %394
  %396 = getelementptr inbounds i8, ptr %8, i64 4
  %397 = load float, ptr %396, align 4, !tbaa !110
  %398 = load float, ptr %44, align 8, !tbaa !46
  %399 = call float @llvm.fmuladd.f32(float %398, float 0x3FC3333340000000, float %397)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef %395, float noundef %399)
  %400 = and i32 %.0213, 536870912
  %.not244 = icmp eq i32 %400, 0
  %401 = select i1 %.not244, i32 3, i32 2
  %402 = select i1 %.0215.in, i32 %401, i32 1
  %403 = load <2 x float>, ptr %19, align 8
  call void @_ZN5ImGui11RenderArrowEP10ImDrawList6ImVec2j8ImGuiDirf(ptr noundef %391, <2 x float> %403, i32 noundef %310, i32 noundef %402, float noundef 0x3FE6666660000000)
  br label %404

404:                                              ; preds = %388, %389, %377
  %405 = getelementptr inbounds i8, ptr %26, i64 24888
  %406 = load i8, ptr %405, align 8, !tbaa !151, !range !39, !noundef !40
  %407 = trunc nuw i8 %406 to i1
  br i1 %407, label %408, label %409

408:                                              ; preds = %404
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef nonnull @.str.148, ptr noundef null)
  br label %409

409:                                              ; preds = %359, %363, %404, %408
  br i1 %cond.fr, label %410, label %411

410:                                              ; preds = %409
  call void @_ZN5ImGui25TablePopBackgroundChannelEv()
  br label %411

411:                                              ; preds = %410, %409
  br i1 %.not, label %413, label %412

412:                                              ; preds = %411
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %20, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui17RenderTextClippedERK6ImVec2S2_PKcS4_PS1_S2_PK6ImRect(ptr noundef nonnull align 4 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %100, ptr noundef %2, ptr noundef %.0214, ptr noundef nonnull %6, ptr noundef nonnull align 4 dereferenceable(8) %20, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #9
  br label %414

413:                                              ; preds = %411
  %.sroa.0.0.copyload = load <2 x float>, ptr %8, align 8
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %.sroa.0.0.copyload, ptr noundef %2, ptr noundef %.0214, i1 noundef zeroext false)
  br label %414

414:                                              ; preds = %413, %412
  %brmerge269.demorgan = and i1 %.0217, %.0215.in
  br i1 %brmerge269.demorgan, label %415, label %416

415:                                              ; preds = %414
  call void @_ZL22TreeNodeStoreStackDatai(i32 noundef %.0213)
  br label %416

416:                                              ; preds = %414, %415
  %417 = and i32 %.0213, 8
  %.not248 = icmp eq i32 %417, 0
  %or.cond270 = and i1 %.not248, %.0215.in
  br i1 %or.cond270, label %418, label %419

418:                                              ; preds = %416
  call void @_ZN5ImGui18TreePushOverrideIDEj(i32 noundef %0)
  br label %419

419:                                              ; preds = %418, %416
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #9
  br label %420

420:                                              ; preds = %177, %176, %419
  %.0 = phi i1 [ %.0215.in, %419 ], [ %139, %176 ], [ true, %177 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  br label %421

421:                                              ; preds = %4, %420
  %.1 = phi i1 [ %.0, %420 ], [ false, %4 ]
  ret i1 %.1
}

declare void @_ZN12ImGuiStorage6SetIntEji(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef, i32 noundef) local_unnamed_addr #3

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

declare noundef zeroext i1 @_ZN5ImGui28NavMoveRequestButNoResultYetEv() local_unnamed_addr #3

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

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

declare void @_ZN5ImGui26TablePushBackgroundChannelEv() local_unnamed_addr #3

declare void @_ZN5ImGui27NavClearPreferredPosForAxisE9ImGuiAxis(i32 noundef) local_unnamed_addr #3

declare void @_ZN5ImGui20NavMoveRequestCancelEv() local_unnamed_addr #3

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

declare void @_ZN5ImGui25TablePopBackgroundChannelEv() local_unnamed_addr #3

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !13, i64 207}
!6 = !{!"_ZTS11ImGuiWindow", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !7, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !11, i64 88, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !12, i64 124, !12, i64 128, !12, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !11, i64 152, !11, i64 160, !11, i64 168, !11, i64 176, !11, i64 184, !11, i64 192, !13, i64 200, !13, i64 201, !13, i64 202, !13, i64 203, !13, i64 204, !13, i64 205, !13, i64 206, !13, i64 207, !13, i64 208, !13, i64 209, !13, i64 210, !13, i64 211, !13, i64 212, !13, i64 213, !8, i64 214, !8, i64 215, !14, i64 216, !14, i64 218, !14, i64 220, !14, i64 222, !14, i64 224, !8, i64 226, !8, i64 227, !13, i64 228, !15, i64 232, !8, i64 236, !8, i64 237, !8, i64 238, !8, i64 239, !10, i64 240, !10, i64 241, !10, i64 242, !11, i64 244, !11, i64 252, !16, i64 264, !17, i64 280, !23, i64 512, !23, i64 528, !23, i64 544, !23, i64 560, !23, i64 576, !23, i64 592, !23, i64 608, !24, i64 624, !24, i64 628, !10, i64 632, !12, i64 636, !12, i64 640, !25, i64 648, !27, i64 664, !12, i64 680, !10, i64 684, !7, i64 688, !28, i64 696, !7, i64 896, !7, i64 904, !7, i64 912, !7, i64 920, !7, i64 928, !7, i64 936, !7, i64 944, !7, i64 952, !8, i64 960, !8, i64 968, !8, i64 1000, !10, i64 1016, !10, i64 1020, !10, i64 1024, !13, i64 1028}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"_ZTS6ImVec2", !12, i64 0, !12, i64 4}
!12 = !{!"float", !8, i64 0}
!13 = !{!"bool", !8, i64 0}
!14 = !{!"short", !8, i64 0}
!15 = !{!"_ZTS8ImGuiDir", !8, i64 0}
!16 = !{!"_ZTS8ImVectorIjE", !10, i64 0, !10, i64 4, !7, i64 8}
!17 = !{!"_ZTS19ImGuiWindowTempData", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !12, i64 56, !12, i64 60, !13, i64 64, !13, i64 65, !18, i64 68, !18, i64 72, !18, i64 76, !11, i64 80, !19, i64 88, !14, i64 92, !14, i64 94, !13, i64 96, !13, i64 97, !13, i64 98, !13, i64 99, !11, i64 100, !20, i64 108, !10, i64 136, !10, i64 140, !21, i64 144, !7, i64 160, !7, i64 168, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !12, i64 192, !12, i64 196, !22, i64 200, !22, i64 216}
!18 = !{!"_ZTS6ImVec1", !12, i64 0}
!19 = !{!"_ZTS13ImGuiNavLayer", !8, i64 0}
!20 = !{!"_ZTS16ImGuiMenuColumns", !10, i64 0, !10, i64 4, !14, i64 8, !14, i64 10, !14, i64 12, !14, i64 14, !14, i64 16, !8, i64 18}
!21 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !10, i64 0, !10, i64 4, !7, i64 8}
!22 = !{!"_ZTS8ImVectorIfE", !10, i64 0, !10, i64 4, !7, i64 8}
!23 = !{!"_ZTS6ImRect", !11, i64 0, !11, i64 8}
!24 = !{!"_ZTS8ImVec2ih", !14, i64 0, !14, i64 2}
!25 = !{!"_ZTS12ImGuiStorage", !26, i64 0}
!26 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !10, i64 0, !10, i64 4, !7, i64 8}
!27 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !10, i64 0, !10, i64 4, !7, i64 8}
!28 = !{!"_ZTS10ImDrawList", !29, i64 0, !30, i64 16, !31, i64 32, !10, i64 48, !10, i64 52, !7, i64 56, !7, i64 64, !7, i64 72, !32, i64 80, !33, i64 96, !35, i64 128, !37, i64 152, !38, i64 168, !12, i64 184, !7, i64 192}
!29 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !10, i64 0, !10, i64 4, !7, i64 8}
!30 = !{!"_ZTS8ImVectorItE", !10, i64 0, !10, i64 4, !7, i64 8}
!31 = !{!"_ZTS8ImVectorI10ImDrawVertE", !10, i64 0, !10, i64 4, !7, i64 8}
!32 = !{!"_ZTS8ImVectorI6ImVec2E", !10, i64 0, !10, i64 4, !7, i64 8}
!33 = !{!"_ZTS15ImDrawCmdHeader", !34, i64 0, !7, i64 16, !10, i64 24}
!34 = !{!"_ZTS6ImVec4", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12}
!35 = !{!"_ZTS18ImDrawListSplitter", !10, i64 0, !10, i64 4, !36, i64 8}
!36 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !10, i64 0, !10, i64 4, !7, i64 8}
!37 = !{!"_ZTS8ImVectorI6ImVec4E", !10, i64 0, !10, i64 4, !7, i64 8}
!38 = !{!"_ZTS8ImVectorIPvE", !10, i64 0, !10, i64 4, !7, i64 8}
!39 = !{i8 0, i8 2}
!40 = !{}
!41 = !{!7, !7, i64 0}
!42 = !{!43, !12, i64 60}
!43 = !{!"_ZTS10ImGuiStyle", !12, i64 0, !12, i64 4, !11, i64 8, !12, i64 16, !12, i64 20, !11, i64 24, !11, i64 32, !15, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56, !11, i64 60, !12, i64 68, !12, i64 72, !11, i64 76, !11, i64 84, !11, i64 92, !11, i64 100, !12, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !12, i64 124, !12, i64 128, !12, i64 132, !12, i64 136, !12, i64 140, !12, i64 144, !12, i64 148, !12, i64 152, !12, i64 156, !11, i64 160, !15, i64 168, !11, i64 172, !11, i64 180, !12, i64 188, !11, i64 192, !11, i64 200, !11, i64 208, !11, i64 216, !12, i64 224, !13, i64 228, !13, i64 229, !13, i64 230, !12, i64 232, !12, i64 236, !8, i64 240, !12, i64 1136, !12, i64 1140, !12, i64 1144, !10, i64 1148, !10, i64 1152}
!44 = !{!6, !12, i64 336}
!45 = !{!43, !12, i64 64}
!46 = !{!47, !12, i64 15760}
!47 = !{!"_ZTS12ImGuiContext", !13, i64 0, !13, i64 1, !48, i64 8, !43, i64 14592, !7, i64 15752, !12, i64 15760, !12, i64 15764, !12, i64 15768, !12, i64 15772, !50, i64 15776, !51, i64 16312, !10, i64 16320, !10, i64 16324, !10, i64 16328, !13, i64 16332, !13, i64 16333, !13, i64 16334, !13, i64 16335, !13, i64 16336, !7, i64 16344, !8, i64 16352, !52, i64 16368, !52, i64 16384, !49, i64 16400, !10, i64 16404, !21, i64 16408, !21, i64 16424, !21, i64 16440, !53, i64 16456, !25, i64 16472, !10, i64 16488, !11, i64 16492, !10, i64 16500, !7, i64 16504, !7, i64 16512, !7, i64 16520, !7, i64 16528, !7, i64 16536, !7, i64 16544, !11, i64 16552, !10, i64 16560, !10, i64 16564, !12, i64 16568, !11, i64 16572, !11, i64 16580, !10, i64 16588, !10, i64 16592, !10, i64 16596, !12, i64 16600, !12, i64 16604, !13, i64 16608, !13, i64 16609, !13, i64 16610, !10, i64 16612, !10, i64 16616, !12, i64 16620, !13, i64 16624, !13, i64 16625, !13, i64 16626, !13, i64 16627, !13, i64 16628, !13, i64 16629, !13, i64 16630, !10, i64 16631, !11, i64 16632, !7, i64 16640, !54, i64 16648, !10, i64 16652, !13, i64 16656, !13, i64 16657, !7, i64 16664, !10, i64 16672, !12, i64 16676, !51, i64 16680, !51, i64 16688, !51, i64 16696, !55, i64 16704, !8, i64 16724, !56, i64 18576, !10, i64 18920, !13, i64 18924, !10, i64 18928, !10, i64 18932, !10, i64 18936, !10, i64 18940, !58, i64 18944, !61, i64 19000, !62, i64 19080, !13, i64 19192, !10, i64 19196, !63, i64 19200, !64, i64 19216, !65, i64 19232, !66, i64 19248, !67, i64 19264, !68, i64 19280, !69, i64 19296, !69, i64 19312, !70, i64 19328, !71, i64 19344, !7, i64 19360, !10, i64 19368, !10, i64 19372, !19, i64 19376, !10, i64 19380, !10, i64 19384, !10, i64 19388, !10, i64 19392, !66, i64 19400, !10, i64 19416, !12, i64 19420, !10, i64 19424, !10, i64 19428, !54, i64 19432, !59, i64 19440, !13, i64 19448, !13, i64 19449, !13, i64 19450, !13, i64 19451, !13, i64 19452, !13, i64 19453, !13, i64 19454, !72, i64 19456, !13, i64 19512, !13, i64 19513, !13, i64 19514, !10, i64 19516, !10, i64 19520, !10, i64 19524, !15, i64 19528, !15, i64 19532, !15, i64 19536, !23, i64 19540, !23, i64 19556, !10, i64 19572, !10, i64 19576, !10, i64 19580, !72, i64 19584, !72, i64 19640, !72, i64 19696, !72, i64 19752, !10, i64 19808, !10, i64 19812, !10, i64 19816, !10, i64 19820, !13, i64 19824, !13, i64 19825, !10, i64 19828, !10, i64 19832, !7, i64 19840, !7, i64 19848, !7, i64 19856, !12, i64 19864, !12, i64 19868, !13, i64 19872, !73, i64 19876, !11, i64 19880, !11, i64 19888, !12, i64 19896, !13, i64 19900, !13, i64 19901, !13, i64 19902, !10, i64 19904, !10, i64 19908, !10, i64 19912, !74, i64 19920, !23, i64 19984, !23, i64 20000, !10, i64 20016, !10, i64 20020, !12, i64 20024, !10, i64 20028, !10, i64 20032, !10, i64 20036, !10, i64 20040, !75, i64 20048, !8, i64 20064, !10, i64 20080, !76, i64 20088, !7, i64 20104, !10, i64 20112, !10, i64 20116, !77, i64 20120, !78, i64 20136, !22, i64 20176, !36, i64 20192, !7, i64 20208, !80, i64 20216, !82, i64 20256, !83, i64 20272, !84, i64 20288, !7, i64 20392, !10, i64 20400, !85, i64 20408, !86, i64 20424, !10, i64 20464, !10, i64 20468, !12, i64 20472, !12, i64 20476, !10, i64 20480, !10, i64 20484, !10, i64 20488, !12, i64 20492, !11, i64 20496, !88, i64 20504, !92, i64 24240, !93, i64 24264, !10, i64 24384, !60, i64 24388, !10, i64 24396, !10, i64 24400, !10, i64 24404, !10, i64 24408, !10, i64 24412, !12, i64 24416, !12, i64 24420, !10, i64 24424, !34, i64 24428, !95, i64 24444, !23, i64 24492, !13, i64 24508, !14, i64 24510, !12, i64 24512, !12, i64 24516, !12, i64 24520, !13, i64 24524, !13, i64 24525, !12, i64 24528, !12, i64 24532, !12, i64 24536, !14, i64 24540, !14, i64 24542, !14, i64 24544, !89, i64 24552, !16, i64 24568, !96, i64 24584, !98, i64 24688, !98, i64 24704, !13, i64 24720, !12, i64 24724, !99, i64 24728, !100, i64 24744, !101, i64 24760, !102, i64 24776, !103, i64 24792, !10, i64 24808, !8, i64 24816, !13, i64 24888, !104, i64 24892, !7, i64 24896, !99, i64 24904, !7, i64 24920, !7, i64 24928, !12, i64 24936, !13, i64 24940, !10, i64 24944, !10, i64 24948, !10, i64 24952, !10, i64 24956, !99, i64 24960, !105, i64 24976, !10, i64 25000, !8, i64 25004, !8, i64 25005, !13, i64 25006, !10, i64 25008, !8, i64 25012, !13, i64 25013, !8, i64 25014, !10, i64 25016, !12, i64 25020, !34, i64 25024, !106, i64 25040, !107, i64 25072, !109, i64 25112, !8, i64 25172, !10, i64 25412, !10, i64 25416, !12, i64 25420, !10, i64 25424, !10, i64 25428, !10, i64 25432, !89, i64 25440, !8, i64 25456}
!48 = !{!"_ZTS7ImGuiIO", !10, i64 0, !10, i64 4, !11, i64 8, !12, i64 16, !12, i64 20, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !12, i64 56, !13, i64 60, !7, i64 64, !11, i64 72, !13, i64 80, !13, i64 81, !13, i64 82, !13, i64 83, !13, i64 84, !13, i64 85, !13, i64 86, !13, i64 87, !13, i64 88, !12, i64 92, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !13, i64 116, !13, i64 117, !13, i64 118, !13, i64 119, !13, i64 120, !7, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176, !7, i64 184, !7, i64 192, !7, i64 200, !7, i64 208, !14, i64 216, !13, i64 218, !13, i64 219, !13, i64 220, !13, i64 221, !13, i64 222, !13, i64 223, !13, i64 224, !12, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !10, i64 244, !11, i64 248, !7, i64 256, !11, i64 264, !8, i64 272, !12, i64 280, !12, i64 284, !49, i64 288, !13, i64 292, !13, i64 293, !13, i64 294, !13, i64 295, !10, i64 296, !8, i64 300, !13, i64 10956, !11, i64 10960, !8, i64 10968, !8, i64 11008, !8, i64 11048, !8, i64 11053, !8, i64 11058, !8, i64 11068, !8, i64 11078, !8, i64 11083, !8, i64 11088, !13, i64 11093, !13, i64 11094, !8, i64 11096, !8, i64 11116, !8, i64 11136, !12, i64 11156, !13, i64 11160, !13, i64 11161, !8, i64 11162, !13, i64 11163, !14, i64 11164, !30, i64 11168, !8, i64 11184, !8, i64 13848, !8, i64 14516}
!49 = !{!"_ZTS16ImGuiMouseSource", !8, i64 0}
!50 = !{!"_ZTS20ImDrawListSharedData", !11, i64 0, !7, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !34, i64 32, !10, i64 48, !32, i64 56, !8, i64 72, !12, i64 456, !8, i64 460, !7, i64 528}
!51 = !{!"double", !8, i64 0}
!52 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !10, i64 0, !10, i64 4, !7, i64 8}
!53 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!54 = !{!"_ZTS16ImGuiInputSource", !8, i64 0}
!55 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !8, i64 0}
!56 = !{!"_ZTS20ImGuiKeyRoutingTable", !8, i64 0, !57, i64 312, !57, i64 328}
!57 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!58 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !10, i64 4, !10, i64 8, !59, i64 16, !12, i64 24, !10, i64 28, !10, i64 32, !13, i64 36, !8, i64 37, !60, i64 38, !10, i64 48}
!59 = !{!"long long", !8, i64 0}
!60 = !{!"_ZTS20ImGuiDataTypeStorage", !8, i64 0}
!61 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !23, i64 12, !23, i64 28, !23, i64 44, !23, i64 60, !10, i64 76}
!62 = !{!"_ZTS19ImGuiNextWindowData", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !10, i64 56, !13, i64 60, !23, i64 64, !7, i64 80, !7, i64 88, !12, i64 96, !11, i64 100, !10, i64 108}
!63 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !7, i64 8}
!64 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !7, i64 8}
!65 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !7, i64 8}
!66 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!67 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !7, i64 8}
!68 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!69 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!70 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!71 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !7, i64 8}
!72 = !{!"_ZTS16ImGuiNavItemData", !7, i64 0, !10, i64 8, !10, i64 12, !23, i64 16, !10, i64 32, !12, i64 36, !12, i64 40, !12, i64 44, !59, i64 48}
!73 = !{!"_ZTS8ImGuiKey", !8, i64 0}
!74 = !{!"_ZTS12ImGuiPayload", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !8, i64 24, !13, i64 57, !13, i64 58}
!75 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !7, i64 8}
!76 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!77 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!78 = !{!"_ZTS6ImPoolI10ImGuiTableE", !79, i64 0, !25, i64 16, !10, i64 32, !10, i64 36}
!79 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !7, i64 8}
!80 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !81, i64 0, !25, i64 16, !10, i64 32, !10, i64 36}
!81 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !7, i64 8}
!82 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !7, i64 8}
!83 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !7, i64 8}
!84 = !{!"_ZTS19ImGuiBoxSelectState", !10, i64 0, !13, i64 4, !13, i64 5, !13, i64 6, !13, i64 7, !13, i64 8, !10, i64 9, !11, i64 12, !11, i64 20, !11, i64 28, !7, i64 40, !13, i64 48, !23, i64 52, !23, i64 68, !23, i64 84}
!85 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!86 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !87, i64 0, !25, i64 16, !10, i64 32, !10, i64 36}
!87 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !10, i64 0, !10, i64 4, !7, i64 8}
!88 = !{!"_ZTS19ImGuiInputTextState", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !30, i64 24, !89, i64 40, !89, i64 56, !13, i64 72, !10, i64 76, !12, i64 80, !90, i64 84, !12, i64 3712, !13, i64 3716, !13, i64 3717, !13, i64 3718, !10, i64 3720, !13, i64 3724, !10, i64 3728, !10, i64 3732}
!89 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !7, i64 8}
!90 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !10, i64 0, !10, i64 4, !10, i64 8, !8, i64 12, !10, i64 16, !8, i64 20, !8, i64 21, !8, i64 22, !8, i64 23, !8, i64 24, !8, i64 25, !8, i64 26, !12, i64 28, !91, i64 32}
!91 = !{!"_ZTSN5ImStb12StbUndoStateE", !8, i64 0, !8, i64 1584, !14, i64 3582, !14, i64 3584, !10, i64 3588, !10, i64 3592}
!92 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !10, i64 0, !89, i64 8}
!93 = !{!"_ZTS6ImFont", !22, i64 0, !12, i64 16, !12, i64 20, !30, i64 24, !94, i64 40, !7, i64 56, !7, i64 64, !7, i64 72, !14, i64 80, !14, i64 82, !14, i64 84, !14, i64 86, !12, i64 88, !12, i64 92, !13, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !10, i64 112, !8, i64 116}
!94 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !7, i64 8}
!95 = !{!"_ZTS21ImGuiComboPreviewData", !23, i64 0, !11, i64 16, !11, i64 24, !11, i64 32, !12, i64 40, !10, i64 44}
!96 = !{!"_ZTS22ImGuiTypingSelectState", !97, i64 0, !8, i64 24, !10, i64 88, !10, i64 92, !12, i64 96, !13, i64 100}
!97 = !{!"_ZTS24ImGuiTypingSelectRequest", !10, i64 0, !10, i64 4, !7, i64 8, !13, i64 16, !13, i64 17, !8, i64 18}
!98 = !{!"_ZTS20ImGuiPlatformImeData", !13, i64 0, !11, i64 4, !12, i64 12}
!99 = !{!"_ZTS15ImGuiTextBuffer", !89, i64 0}
!100 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !7, i64 8}
!101 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !89, i64 0}
!102 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !89, i64 0}
!103 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !7, i64 8}
!104 = !{!"_ZTS12ImGuiLogType", !8, i64 0}
!105 = !{!"_ZTS14ImGuiTextIndex", !67, i64 0, !10, i64 16}
!106 = !{!"_ZTS18ImGuiMetricsConfig", !13, i64 0, !13, i64 1, !13, i64 2, !13, i64 3, !13, i64 4, !13, i64 5, !13, i64 6, !13, i64 7, !13, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24}
!107 = !{!"_ZTS16ImGuiIDStackTool", !10, i64 0, !10, i64 4, !10, i64 8, !108, i64 16, !13, i64 32, !12, i64 36}
!108 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !10, i64 0, !10, i64 4, !7, i64 8}
!109 = !{!"_ZTS19ImGuiDebugAllocInfo", !10, i64 0, !10, i64 4, !14, i64 8, !8, i64 12}
!110 = !{!11, !12, i64 4}
!111 = !{!11, !12, i64 0}
!112 = !{!6, !12, i64 324}
!113 = !{!47, !7, i64 20104}
!114 = !{!12, !12, i64 0}
!115 = !{!23, !12, i64 0}
!116 = !{!6, !12, i64 284}
!117 = !{!23, !12, i64 4}
!118 = !{!6, !12, i64 584}
!119 = !{!6, !12, i64 280}
!120 = !{!6, !12, i64 568}
!121 = !{!23, !12, i64 8}
!122 = !{!23, !12, i64 12}
!123 = !{!6, !12, i64 88}
!124 = !{i64 0, i64 4, !114, i64 4, i64 4, !114, i64 8, i64 4, !114, i64 12, i64 4, !114}
!125 = !{!43, !12, i64 76}
!126 = !{!47, !10, i64 18944}
!127 = !{!47, !10, i64 18992}
!128 = !{!6, !12, i64 592}
!129 = !{!6, !12, i64 600}
!130 = !{!6, !12, i64 576}
!131 = !{!47, !10, i64 19008}
!132 = !{!47, !13, i64 19448}
!133 = !{!47, !15, i64 19528}
!134 = !{!47, !7, i64 19360}
!135 = !{!47, !10, i64 19004}
!136 = !{!43, !12, i64 100}
!137 = !{!47, !12, i64 272}
!138 = !{!10, !10, i64 0}
!139 = !{!13, !13, i64 0}
!140 = !{!47, !7, i64 16512}
!141 = !{!47, !10, i64 20040}
!142 = !{!47, !10, i64 19380}
!143 = !{!47, !13, i64 19451}
!144 = !{!14, !14, i64 0}
!145 = !{!47, !10, i64 19368}
!146 = !{!6, !7, i64 440}
!147 = !{!6, !19, i64 368}
!148 = !{!47, !10, i64 18932}
!149 = !{!43, !12, i64 68}
!150 = !{!6, !7, i64 688}
!151 = !{!47, !13, i64 24888}


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