; LLVM IR from hadryansalles/Luz :: deps/imgui/imgui.ll (ZN5ImGui17ShowMetricsWindowEPb)

; 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.ImVector.16 = type { i32, i32, ptr }
%struct.ImVec2 = type { float, float }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImGuiContext = type { i8, i8, %struct.ImGuiIO, %struct.ImGuiPlatformIO, %struct.ImGuiStyle, i32, i32, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i32, i8, i8, i8, i8, i8, ptr, %struct.ImVector.3, %struct.ImVector.3, i32, i32, %struct.ImVector.4, %struct.ImVector.4, %struct.ImVector.4, %struct.ImVector.5, %struct.ImGuiStorage, i32, %struct.ImVec2, i32, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i8, i8, float, float, 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, i32, [4 x i8], %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, [4 x i8], %struct.ImGuiNextWindowData, i8, i32, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImVector.12, %struct.ImVector.13, %struct.ImVector.14, %struct.ImVector.14, %struct.ImVector.15, i32, %struct.ImVector.16, float, ptr, ptr, ptr, i32, %struct.ImGuiPlatformMonitor, i32, i32, i32, ptr, i32, i32, %struct.ImVector.11, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i64, i8, i8, i8, i8, i8, i8, i8, i8, %struct.ImGuiNavItemData, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, ptr, ptr, ptr, float, float, i8, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, i32, i32, i32, %struct.ImGuiPayload, %struct.ImRect, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.17, [16 x i8], i32, %struct.ImVector.18, ptr, i32, i32, %struct.ImVector.19, %struct.ImPool, %struct.ImVector.21, %struct.ImVector.22, ptr, %struct.ImPool.23, %struct.ImVector.25, %struct.ImVector.26, i32, i32, float, float, i32, i32, i32, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, %struct.ImRect, i8, float, float, i8, i8, float, float, float, float, i16, i16, i16, %struct.ImVector.27, %struct.ImVector.29, %struct.ImGuiTypingSelectState, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i32, [4 x i8], %struct.ImGuiDockContext, ptr, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.32, %struct.ImChunkStream, %struct.ImChunkStream.33, %struct.ImVector.34, i32, [11 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, ptr, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.27, [64 x i8] }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, float, float, float, float, float, float, i8, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i16, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, %struct.ImVec2, [666 x i32], [666 x i8], [16 x float], ptr, %struct.ImVec2, [5 x i8], float, float, i32, i32, i8, i8, i8, i8, i32, [666 x %struct.ImGuiKeyData], i8, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x i8], [5 x i8], i8, [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], float, i8, i8, i8, i8, i16, %struct.ImVector }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiPlatformIO = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVector.0, %struct.ImVector.1 }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, i8, float, float, [55 x %struct.ImVec4], float, float, float, i32, i32 }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, %struct.ImVector.2, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.6 }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImBitArray = type { [5 x i32] }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [154 x i16], %struct.ImVector.7, %struct.ImVector.7 }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, i32, i64, float, i32, i8, i8, [6 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect }
%struct.ImGuiNextWindowData = type <{ i32, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i32, i8, i8, [2 x i8], %struct.ImRect, [4 x i8], ptr, ptr, float, i32, i32, %struct.ImGuiWindowClass, %struct.ImVec2, [4 x i8] }>
%struct.ImGuiWindowClass = type <{ i32, i32, i32, i32, i32, i32, i32, i8, i8, [2 x i8] }>
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImGuiPlatformMonitor = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, ptr }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type <{ ptr, i32, i32, %struct.ImRect, i32, [4 x i8], i64, float, float, float, [4 x i8] }>
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.20, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImPool.23 = type { %struct.ImVector.24, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, i32, i32, i32, [4 x i8], %struct.ImVector, %struct.ImVector.27, %struct.ImVector.27, i8, [3 x i8], i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ImStb::STB_TexteditState" = type { i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, float, %"struct.ImStb::StbUndoState" }
%"struct.ImStb::StbUndoState" = type { [99 x %"struct.ImStb::StbUndoRecord"], [999 x i16], i16, i16, i32, i32 }
%"struct.ImStb::StbUndoRecord" = type { i32, i32, i32, i32 }
%struct.ImGuiInputTextDeactivatedState = type { i32, %struct.ImVector.27 }
%struct.ImFont = type <{ %struct.ImVector.21, float, float, %struct.ImVector, %struct.ImVector.28, 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.28 = type { i32, i32, ptr }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImGuiTypingSelectState = type <{ %struct.ImGuiTypingSelectRequest, [64 x i8], i32, i32, float, i8, [3 x i8] }>
%struct.ImGuiTypingSelectRequest = type { i32, i32, ptr, i8, i8, i8 }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImGuiDockContext = type <{ %struct.ImGuiStorage, %struct.ImVector.30, %struct.ImVector.31, i8, [7 x i8] }>
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImVector.32 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.27 }
%struct.ImChunkStream.33 = type { %struct.ImVector.27 }
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.27 }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.12, i32, [4 x i8] }>
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiIDStackTool = type { i32, i32, i32, %struct.ImVector.35, i8, float }
%struct.ImVector.35 = type { i32, i32, ptr }
%struct.ImGuiDebugAllocInfo = type { i32, i32, i16, [6 x %struct.ImGuiDebugAllocEntry] }
%struct.ImGuiDebugAllocEntry = type { i32, i16, i16 }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImGuiWindow = type { ptr, ptr, i32, i32, i32, i32, %struct.ImGuiWindowClass, ptr, i32, %struct.ImVec2, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, i16, i32, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.29, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, i32, float, float, %struct.ImGuiStorage, %struct.ImVector.38, float, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], [2 x %struct.ImVec2], i32, i32, i32, i8, i8, i16, %struct.ImGuiWindowDockStyle, ptr, ptr, i32, i32, %struct.ImRect }
%struct.ImGuiWindowTempData = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, %struct.ImVec2, i32, i16, i16, i8, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.4, ptr, ptr, i32, i32, i32, float, float, %struct.ImVector.21, %struct.ImVector.21 }
%struct.ImVec1 = type { float }
%struct.ImGuiMenuColumns = type <{ i32, i32, i16, i16, i16, i16, i16, [4 x i16], [2 x i8] }>
%struct.ImVec2ih = type { i16, i16 }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.39, %struct.ImVector, %struct.ImVector.40, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.41, %struct.ImVector.42, %struct.ImVector.2, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImVector.40 = type { i32, i32, ptr }
%struct.ImVector.41 = type { i32, i32, ptr }
%struct.ImVector.42 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.22 }
%struct.ImGuiWindowDockStyle = type { [6 x i32] }
%struct.ImGuiTable = type <{ i32, i32, ptr, ptr, %struct.ImSpan, %struct.ImSpan.43, %struct.ImSpan.44, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i16, i16, float, float, float, float, float, float, i32, i32, [2 x i32], i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, ptr, ptr, %struct.ImGuiTextBuffer, ptr, %struct.ImGuiTableInstanceData, %struct.ImVector.45, %struct.ImGuiTableColumnSortSpecs, [4 x i8], %struct.ImVector.46, %struct.ImGuiTableSortSpecs, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [6 x i8] }>
%struct.ImSpan = type { ptr, ptr }
%struct.ImSpan.43 = type { ptr, ptr }
%struct.ImSpan.44 = type { ptr, ptr }
%struct.ImGuiTableInstanceData = type { i32, float, float, float, i32, i32 }
%struct.ImVector.45 = type { i32, i32, ptr }
%struct.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.46 = type { i32, i32, ptr }
%struct.ImGuiTableSortSpecs = type <{ ptr, i32, i8, [3 x i8] }>
%struct.ImGuiViewportP = type { %struct.ImGuiViewport.base, ptr, i32, i32, i32, i32, %struct.ImVec2, float, float, i8, i16, [2 x i32], [2 x ptr], %struct.ImDrawData, %struct.ImDrawDataBuilder, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2 }
%struct.ImGuiViewport.base = type <{ i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8 }>
%struct.ImDrawData = type { i8, i32, i32, i32, %struct.ImVector.51, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, ptr }
%struct.ImVector.51 = type { i32, i32, ptr }
%struct.ImDrawDataBuilder = type { [2 x ptr], %struct.ImVector.51 }
%struct.ImGuiViewport = type <{ i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, [4 x i8] }>
%struct.ImGuiPopupData = type <{ i32, [4 x i8], ptr, ptr, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, [4 x i8] }>
%struct.ImFontAtlas = type <{ i32, [4 x i8], ptr, i32, i32, i8, [7 x i8], ptr, i8, i8, [6 x i8], ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.10, %struct.ImVector.49, %struct.ImVector.50, [64 x %struct.ImVec4], ptr, i32, i32, i32, [4 x i8] }>
%struct.ImVector.49 = type { i32, i32, ptr }
%struct.ImVector.50 = type { i32, i32, ptr }
%"struct.ImGuiStorage::ImGuiStoragePair" = type { i32, %union.anon.36 }
%union.anon.36 = type { ptr }
%struct.ImGuiSettingsHandler = type { ptr, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.ImGuiWindowSettings = type <{ i32, %struct.ImVec2ih, %struct.ImVec2ih, %struct.ImVec2ih, i32, i32, i32, i16, i8, i8, i8, i8, [2 x i8] }>
%struct.ImGuiDockNodeSettings = type { i32, i32, i32, i32, i8, i8, i32, %struct.ImVec2ih, %struct.ImVec2ih, %struct.ImVec2ih }
%struct.ImGuiKeyRoutingData = type { i16, i16, i8, i8, i32, i32 }
%struct.ImGuiDockNode = type <{ i32, i32, i32, i32, i32, i32, ptr, [2 x ptr], %struct.ImVector.4, ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i32, %struct.ImGuiWindowClass, i32, ptr, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i16, i8, [5 x i8] }>
%struct.ImGuiFocusScopeData = type { i32, i32 }

@GImGui = external dso_local global ptr, align 8
@.str.17 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [43 x i8], align 1
@__const._ZN5ImGui17ShowMetricsWindowEPb.wrt_rects_names = external hidden unnamed_addr constant [8 x ptr], align 16
@__const._ZN5ImGui17ShowMetricsWindowEPb.trt_rects_names = external hidden unnamed_addr constant [13 x ptr], align 16
@.str.451 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [64 x i8], align 16
@.str.477 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.494 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [33 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE9viewports = external hidden global %struct.ImVector.16, align 8
@_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports = external hidden global i64, align 8
@__dso_handle = external hidden global i8
@.str.497 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only = external hidden global i8, align 1
@.str.515 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.520 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.529 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.530 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.531 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.532 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.533 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.535 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.536 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.537 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.538 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.539 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.540 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.541 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.542 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.543 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.544 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.545 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.546 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.547 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.548 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.549 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.550 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.551 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.552 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.553 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.554 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.555 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.556 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.557 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.558 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.560 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.561 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.562 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.563 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.564 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.565 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.566 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.567 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.568 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.569 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.570 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.571 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.572 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.573 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.574 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.575 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.576 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.577 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.578 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.579 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.580 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.581 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.582 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.583 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.584 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.585 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.586 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.587 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.588 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.589 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.590 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.591 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.592 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.593 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.594 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.595 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.596 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.597 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.598 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.599 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.600 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.601 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.602 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.603 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.604 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.605 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.606 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.607 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.608 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.609 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.610 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.611 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.613 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.614 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.615 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.616 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.617 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.618 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.619 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.620 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.621 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.622 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.623 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.624 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.625 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.626 = external hidden unnamed_addr constant [23 x i8], align 1

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

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef) #5

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z14ImFormatStringPcmPKcz(ptr noundef, i64 noundef, ptr noundef, ...) #1

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef, i64 noundef, i64 noundef, ptr noundef) #6

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

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

declare noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, ptr noundef, i64 noundef, i32 noundef, ptr noundef, ptr noundef) #7

declare void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef, float noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, ptr noundef, float noundef, ptr noundef) #7

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

declare void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef) #7

declare void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef, float noundef) #7

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEv() #9

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui16GetCurrentWindowEv() #5

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef) #9

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef) #9

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui17GetWindowDrawListEv() #9

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN5ImGui11GetFontSizeEv() #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui6PushIDEPKv(ptr noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui5PopIDEv() #9

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui15GetKeyChordNameEi(i32 noundef) #9

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef) #9

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef) #9

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef, i32 noundef) #5

declare void @_ZN5ImGui7TreePopEv() #7

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui6IndentEf(float noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8UnindentEf(float noundef) #9

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN5ImGui17GetTextLineHeightEv() #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv() #1

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui16ClearIniSettingsEv() #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef) #9

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui22FindWindowSettingsByIDEj(i32 noundef) #9

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui21DockContextClearNodesEP12ImGuiContextjb(ptr noundef, i32 noundef, i1 noundef zeroext) #9

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

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

declare noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef, i1 noundef zeroext, i32 noundef, ptr noundef nonnull align 4 dereferenceable(8)) #7

declare void @_ZN5ImGui4TextEPKcz(ptr noundef, ...) #7

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

declare void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, ptr noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef) #9

declare void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef, ptr noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef) #9

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef, ptr noundef, ...) #7

declare noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef, ptr noundef) #7

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef %0) #8 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca [8 x ptr], align 16
  %8 = alloca [13 x ptr], align 16
  %9 = alloca %struct.ImVec2, align 4
  %10 = alloca i32, align 4
  %11 = alloca %struct.ImRect, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca %struct.ImVec2, align 4
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca %struct.ImVec2, align 4
  %18 = alloca [128 x i8], align 16
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %struct.ImRect, align 4
  %22 = alloca %struct.ImVec2, align 4
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca %struct.ImVec2, align 4
  %27 = alloca %struct.ImRect, align 4
  %28 = alloca %struct.ImVec2, align 4
  %29 = alloca %struct.ImVec2, align 4
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca i8, align 1
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca i8, align 1
  %53 = alloca i32, align 4
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca ptr, align 8
  %58 = alloca ptr, align 8
  %59 = alloca ptr, align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca ptr, align 8
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca ptr, align 8
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  %70 = alloca i32, align 4
  %71 = alloca ptr, align 8
  %72 = alloca i32, align 4
  %73 = alloca ptr, align 8
  %74 = alloca ptr, align 8
  %75 = alloca ptr, align 8
  %76 = alloca i32, align 4
  %77 = alloca ptr, align 8
  %78 = alloca ptr, align 8
  %79 = alloca ptr, align 8
  %80 = alloca ptr, align 8
  %81 = alloca ptr, align 8
  %82 = alloca ptr, align 8
  %83 = alloca ptr, align 8
  %84 = alloca ptr, align 8
  %85 = alloca ptr, align 8
  %86 = alloca i32, align 4
  %87 = alloca ptr, align 8
  %88 = alloca ptr, align 8
  %89 = alloca ptr, align 8
  %90 = alloca ptr, align 8
  %91 = alloca %struct.ImVec2, align 4
  %92 = alloca ptr, align 8
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca ptr, align 8
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i16, align 2
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca %struct.ImVec2, align 4
  %106 = alloca i32, align 4
  %107 = alloca ptr, align 8
  %108 = alloca %struct.ImVec2, align 4
  %109 = alloca i32, align 4
  %110 = alloca ptr, align 8
  %111 = alloca i16, align 2
  %112 = alloca ptr, align 8
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca ptr, align 8
  %116 = alloca ptr, align 8
  %117 = alloca ptr, align 8
  %118 = alloca ptr, align 8
  %119 = alloca ptr, align 8
  %120 = alloca ptr, align 8
  %121 = alloca %struct.ImRect, align 4
  %122 = alloca [32 x i8], align 16
  %123 = alloca float, align 4
  %124 = alloca %struct.ImVec2, align 4
  %125 = alloca %struct.ImVec2, align 4
  %126 = alloca i32, align 4
  %127 = alloca ptr, align 8
  %128 = alloca ptr, align 8
  %129 = alloca i32, align 4
  %130 = alloca %struct.ImRect, align 4
  %131 = alloca i32, align 4
  %132 = alloca float, align 4
  %133 = alloca %struct.ImRect, align 4
  %134 = alloca [64 x i8], align 16
  %135 = alloca ptr, align 8
  %136 = alloca ptr, align 8
  %137 = alloca ptr, align 8
  %138 = alloca i32, align 4
  %139 = alloca %struct.ImVec2, align 4
  %140 = alloca %struct.ImVec2, align 4
  %141 = alloca %struct.ImVec2, align 4
  %142 = alloca %struct.ImVec2, align 4
  %143 = alloca %struct.ImVec2, align 4
  %144 = alloca %struct.ImVec2, align 4
  %145 = alloca %struct.ImVec2, align 4
  %146 = alloca %struct.ImVec2, align 4
  %147 = alloca %struct.ImVec2, align 4
  %148 = alloca %struct.ImVec2, align 4
  %149 = alloca %struct.ImVec2, align 4
  %150 = alloca %struct.ImVec2, align 4
  %151 = alloca %struct.ImVec2, align 4
  %152 = alloca %struct.ImVec2, align 4
  %153 = alloca %struct.ImVec2, align 4
  %154 = alloca %struct.ImVec2, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #10
  %155 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %155, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #10
  %156 = load ptr, ptr %3, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.ImGuiContext, ptr %156, i32 0, i32 2
  store ptr %157, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #10
  %158 = load ptr, ptr %3, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.ImGuiContext, ptr %158, i32 0, i32 276
  store ptr %159, ptr %5, align 8, !tbaa !5
  %160 = load ptr, ptr %5, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %160, i32 0, i32 0
  %162 = load i8, ptr %161, align 4, !tbaa !9, !range !13, !noundef !14
  %163 = trunc i8 %162 to i1
  br i1 %163, label %164, label %167

164:                                              ; preds = %1
  %165 = load ptr, ptr %5, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %165, i32 0, i32 0
  call void @_ZN5ImGui18ShowDebugLogWindowEPb(ptr noundef %166)
  br label %167

167:                                              ; preds = %164, %1
  %168 = load ptr, ptr %5, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %168, i32 0, i32 1
  %170 = load i8, ptr %169, align 1, !tbaa !15, !range !13, !noundef !14
  %171 = trunc i8 %170 to i1
  br i1 %171, label %172, label %175

172:                                              ; preds = %167
  %173 = load ptr, ptr %5, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %173, i32 0, i32 1
  call void @_ZN5ImGui21ShowIDStackToolWindowEPb(ptr noundef %174)
  br label %175

175:                                              ; preds = %172, %167
  %176 = load ptr, ptr %2, align 8, !tbaa !5
  %177 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.429, ptr noundef %176, i32 noundef 0)
  br i1 %177, label %178, label %184

178:                                              ; preds = %175
  %179 = call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %180 = getelementptr inbounds %struct.ImGuiWindow, ptr %179, i32 0, i32 52
  %181 = load i16, ptr %180, align 8, !tbaa !16
  %182 = sext i16 %181 to i32
  %183 = icmp sgt i32 %182, 1
  br i1 %183, label %184, label %185

184:                                              ; preds = %178, %175
  call void @_ZN5ImGui3EndEv()
  store i32 1, ptr %6, align 4
  br label %2554

185:                                              ; preds = %178
  call void @_ZN5ImGui19DebugBreakClearDataEv()
  %186 = call noundef ptr @_ZN5ImGui10GetVersionEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.430, ptr noundef %186)
  %187 = load ptr, ptr %4, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct.ImGuiIO, ptr %187, i32 0, i32 57
  %189 = load float, ptr %188, align 4, !tbaa !46
  %190 = fdiv float 1.000000e+03, %189
  %191 = fpext float %190 to double
  %192 = load ptr, ptr %4, align 8, !tbaa !5
  %193 = getelementptr inbounds %struct.ImGuiIO, ptr %192, i32 0, i32 57
  %194 = load float, ptr %193, align 4, !tbaa !46
  %195 = fpext float %194 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.431, double noundef %191, double noundef %195)
  %196 = load ptr, ptr %4, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.ImGuiIO, ptr %196, i32 0, i32 58
  %198 = load i32, ptr %197, align 8, !tbaa !49
  %199 = load ptr, ptr %4, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.ImGuiIO, ptr %199, i32 0, i32 59
  %201 = load i32, ptr %200, align 4, !tbaa !50
  %202 = load ptr, ptr %4, align 8, !tbaa !5
  %203 = getelementptr inbounds %struct.ImGuiIO, ptr %202, i32 0, i32 59
  %204 = load i32, ptr %203, align 4, !tbaa !50
  %205 = sdiv i32 %204, 3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.432, i32 noundef %198, i32 noundef %201, i32 noundef %205)
  %206 = load ptr, ptr %4, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.ImGuiIO, ptr %206, i32 0, i32 60
  %208 = load i32, ptr %207, align 8, !tbaa !51
  %209 = load ptr, ptr %3, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.ImGuiContext, ptr %209, i32 0, i32 278
  %211 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %210, i32 0, i32 0
  %212 = load i32, ptr %211, align 8, !tbaa !52
  %213 = load ptr, ptr %3, align 8, !tbaa !5
  %214 = getelementptr inbounds %struct.ImGuiContext, ptr %213, i32 0, i32 278
  %215 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %214, i32 0, i32 1
  %216 = load i32, ptr %215, align 4, !tbaa !115
  %217 = sub nsw i32 %212, %216
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.433, i32 noundef %208, i32 noundef %217)
  call void @_ZN5ImGui9SeparatorEv()
  call void @llvm.lifetime.start.p0(i64 64, ptr %7) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %7, ptr align 16 @__const._ZN5ImGui17ShowMetricsWindowEPb.wrt_rects_names, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 104, ptr %8) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %8, ptr align 16 @__const._ZN5ImGui17ShowMetricsWindowEPb.trt_rects_names, i64 104, i1 false)
  %218 = load ptr, ptr %5, align 8, !tbaa !5
  %219 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %218, i32 0, i32 10
  %220 = load i32, ptr %219, align 4, !tbaa !116
  %221 = icmp slt i32 %220, 0
  br i1 %221, label %222, label %225

222:                                              ; preds = %185
  %223 = load ptr, ptr %5, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %223, i32 0, i32 10
  store i32 4, ptr %224, align 4, !tbaa !116
  br label %225

225:                                              ; preds = %222, %185
  %226 = load ptr, ptr %5, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %226, i32 0, i32 11
  %228 = load i32, ptr %227, align 4, !tbaa !117
  %229 = icmp slt i32 %228, 0
  br i1 %229, label %230, label %233

230:                                              ; preds = %225
  %231 = load ptr, ptr %5, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %231, i32 0, i32 11
  store i32 2, ptr %232, align 4, !tbaa !117
  br label %233

233:                                              ; preds = %230, %225
  %234 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.451)
  br i1 %234, label %235, label %586

235:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #10
  %236 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef @.str.453, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %236, ptr %9, align 4
  %237 = getelementptr inbounds %struct.ImVec2, ptr %9, i32 0, i32 0
  %238 = load float, ptr %237, align 4, !tbaa !118
  %239 = load ptr, ptr %3, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.ImGuiContext, ptr %239, i32 0, i32 4
  %241 = getelementptr inbounds %struct.ImGuiStyle, ptr %240, i32 0, i32 36
  %242 = getelementptr inbounds %struct.ImVec2, ptr %241, i32 0, i32 0
  %243 = load float, ptr %242, align 4, !tbaa !119
  %244 = fadd float %238, %243
  call void @_ZN5ImGui15SeparatorTextExEjPKcS1_f(i32 noundef 0, ptr noundef @.str.452, ptr noundef null, float noundef %244)
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #10
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.454)
  %245 = load ptr, ptr %3, align 8, !tbaa !5
  %246 = getelementptr inbounds %struct.ImGuiContext, ptr %245, i32 0, i32 271
  %247 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.455, ptr noundef %246)
  br i1 %247, label %248, label %254

248:                                              ; preds = %235
  %249 = load ptr, ptr %3, align 8, !tbaa !5
  %250 = getelementptr inbounds %struct.ImGuiContext, ptr %249, i32 0, i32 271
  %251 = load i8, ptr %250, align 1, !tbaa !120, !range !13, !noundef !14
  %252 = trunc i8 %251 to i1
  br i1 %252, label %253, label %254

253:                                              ; preds = %248
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %254

254:                                              ; preds = %253, %248, %235
  %255 = load ptr, ptr %3, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.ImGuiContext, ptr %255, i32 0, i32 2
  %257 = getelementptr inbounds %struct.ImGuiIO, ptr %256, i32 0, i32 35
  %258 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.456, ptr noundef %257)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.457)
  %259 = load ptr, ptr %5, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %259, i32 0, i32 0
  %261 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.458, ptr noundef %260)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.459)
  %262 = load ptr, ptr %5, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %262, i32 0, i32 1
  %264 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.460, ptr noundef %263)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.461)
  %265 = load ptr, ptr %5, align 8, !tbaa !5
  %266 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %265, i32 0, i32 3
  %267 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.462, ptr noundef %266)
  %268 = load ptr, ptr %5, align 8, !tbaa !5
  %269 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %268, i32 0, i32 2
  %270 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.463, ptr noundef %269)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %271 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %272 = fmul float %271, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %272)
  %273 = load ptr, ptr %5, align 8, !tbaa !5
  %274 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %273, i32 0, i32 10
  %275 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 0
  %276 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.464, ptr noundef %274, ptr noundef %275, i32 noundef 8, i32 noundef 8)
  %277 = zext i1 %276 to i32
  %278 = load ptr, ptr %5, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %278, i32 0, i32 2
  %280 = load i8, ptr %279, align 2, !tbaa !121, !range !13, !noundef !14
  %281 = trunc i8 %280 to i1
  %282 = zext i1 %281 to i32
  %283 = or i32 %282, %277
  %284 = icmp ne i32 %283, 0
  %285 = zext i1 %284 to i8
  store i8 %285, ptr %279, align 2, !tbaa !121
  %286 = load ptr, ptr %5, align 8, !tbaa !5
  %287 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %286, i32 0, i32 2
  %288 = load i8, ptr %287, align 2, !tbaa !121, !range !13, !noundef !14
  %289 = trunc i8 %288 to i1
  br i1 %289, label %290, label %343

290:                                              ; preds = %254
  %291 = load ptr, ptr %3, align 8, !tbaa !5
  %292 = getelementptr inbounds %struct.ImGuiContext, ptr %291, i32 0, i32 112
  %293 = load ptr, ptr %292, align 8, !tbaa !122
  %294 = icmp ne ptr %293, null
  br i1 %294, label %295, label %343

295:                                              ; preds = %290
  %296 = load ptr, ptr %3, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.ImGuiContext, ptr %296, i32 0, i32 112
  %298 = load ptr, ptr %297, align 8, !tbaa !122
  %299 = getelementptr inbounds %struct.ImGuiWindow, ptr %298, i32 0, i32 1
  %300 = load ptr, ptr %299, align 8, !tbaa !123
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.465, ptr noundef %300)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  store i32 0, ptr %10, align 4, !tbaa !124
  br label %301

301:                                              ; preds = %339, %295
  %302 = load i32, ptr %10, align 4, !tbaa !124
  %303 = icmp slt i32 %302, 8
  br i1 %303, label %305, label %304

304:                                              ; preds = %301
  store i32 2, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  br label %342

305:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #10
  %306 = load ptr, ptr %3, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.ImGuiContext, ptr %306, i32 0, i32 112
  %308 = load ptr, ptr %307, align 8, !tbaa !122
  %309 = load i32, ptr %10, align 4, !tbaa !124
  %310 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %308, i32 noundef %309)
  %311 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %11, i32 0, i32 0
  %312 = extractvalue { <2 x float>, <2 x float> } %310, 0
  store <2 x float> %312, ptr %311, align 4
  %313 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %11, i32 0, i32 1
  %314 = extractvalue { <2 x float>, <2 x float> } %310, 1
  store <2 x float> %314, ptr %313, align 4
  %315 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 0
  %316 = getelementptr inbounds %struct.ImVec2, ptr %315, i32 0, i32 0
  %317 = load float, ptr %316, align 4, !tbaa !125
  %318 = fpext float %317 to double
  %319 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 0
  %320 = getelementptr inbounds %struct.ImVec2, ptr %319, i32 0, i32 1
  %321 = load float, ptr %320, align 4, !tbaa !126
  %322 = fpext float %321 to double
  %323 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 1
  %324 = getelementptr inbounds %struct.ImVec2, ptr %323, i32 0, i32 0
  %325 = load float, ptr %324, align 4, !tbaa !127
  %326 = fpext float %325 to double
  %327 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 1
  %328 = getelementptr inbounds %struct.ImVec2, ptr %327, i32 0, i32 1
  %329 = load float, ptr %328, align 4, !tbaa !128
  %330 = fpext float %329 to double
  %331 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %332 = fpext float %331 to double
  %333 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %334 = fpext float %333 to double
  %335 = load i32, ptr %10, align 4, !tbaa !124
  %336 = sext i32 %335 to i64
  %337 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 %336
  %338 = load ptr, ptr %337, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.466, double noundef %318, double noundef %322, double noundef %326, double noundef %330, double noundef %332, double noundef %334, ptr noundef %338)
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #10
  br label %339

339:                                              ; preds = %305
  %340 = load i32, ptr %10, align 4, !tbaa !124
  %341 = add nsw i32 %340, 1
  store i32 %341, ptr %10, align 4, !tbaa !124
  br label %301, !llvm.loop !129

342:                                              ; preds = %304
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %343

343:                                              ; preds = %342, %290, %254
  %344 = load ptr, ptr %5, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %344, i32 0, i32 4
  %346 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.467, ptr noundef %345)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %347 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %348 = fmul float %347, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %348)
  %349 = load ptr, ptr %5, align 8, !tbaa !5
  %350 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %349, i32 0, i32 11
  %351 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 0
  %352 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.468, ptr noundef %350, ptr noundef %351, i32 noundef 13, i32 noundef 13)
  %353 = zext i1 %352 to i32
  %354 = load ptr, ptr %5, align 8, !tbaa !5
  %355 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %354, i32 0, i32 4
  %356 = load i8, ptr %355, align 4, !tbaa !131, !range !13, !noundef !14
  %357 = trunc i8 %356 to i1
  %358 = zext i1 %357 to i32
  %359 = or i32 %358, %353
  %360 = icmp ne i32 %359, 0
  %361 = zext i1 %360 to i8
  store i8 %361, ptr %355, align 4, !tbaa !131
  %362 = load ptr, ptr %5, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %362, i32 0, i32 4
  %364 = load i8, ptr %363, align 4, !tbaa !131, !range !13, !noundef !14
  %365 = trunc i8 %364 to i1
  br i1 %365, label %366, label %564

366:                                              ; preds = %343
  %367 = load ptr, ptr %3, align 8, !tbaa !5
  %368 = getelementptr inbounds %struct.ImGuiContext, ptr %367, i32 0, i32 112
  %369 = load ptr, ptr %368, align 8, !tbaa !122
  %370 = icmp ne ptr %369, null
  br i1 %370, label %371, label %564

371:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  store i32 0, ptr %12, align 4, !tbaa !124
  br label %372

372:                                              ; preds = %560, %371
  %373 = load i32, ptr %12, align 4, !tbaa !124
  %374 = load ptr, ptr %3, align 8, !tbaa !5
  %375 = getelementptr inbounds %struct.ImGuiContext, ptr %374, i32 0, i32 192
  %376 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %375)
  %377 = icmp slt i32 %373, %376
  br i1 %377, label %379, label %378

378:                                              ; preds = %372
  store i32 5, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  br label %563

379:                                              ; preds = %372
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #10
  %380 = load ptr, ptr %3, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.ImGuiContext, ptr %380, i32 0, i32 192
  %382 = load i32, ptr %12, align 4, !tbaa !124
  %383 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %381, i32 noundef %382)
  store ptr %383, ptr %13, align 8, !tbaa !5
  %384 = load ptr, ptr %13, align 8, !tbaa !5
  %385 = icmp eq ptr %384, null
  br i1 %385, label %411, label %386

386:                                              ; preds = %379
  %387 = load ptr, ptr %13, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.ImGuiTable, ptr %387, i32 0, i32 12
  %389 = load i32, ptr %388, align 8, !tbaa !132
  %390 = load ptr, ptr %3, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.ImGuiContext, ptr %390, i32 0, i32 12
  %392 = load i32, ptr %391, align 8, !tbaa !142
  %393 = sub nsw i32 %392, 1
  %394 = icmp slt i32 %389, %393
  br i1 %394, label %411, label %395

395:                                              ; preds = %386
  %396 = load ptr, ptr %13, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.ImGuiTable, ptr %396, i32 0, i32 55
  %398 = load ptr, ptr %397, align 8, !tbaa !143
  %399 = load ptr, ptr %3, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.ImGuiContext, ptr %399, i32 0, i32 112
  %401 = load ptr, ptr %400, align 8, !tbaa !122
  %402 = icmp ne ptr %398, %401
  br i1 %402, label %403, label %412

403:                                              ; preds = %395
  %404 = load ptr, ptr %13, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.ImGuiTable, ptr %404, i32 0, i32 56
  %406 = load ptr, ptr %405, align 8, !tbaa !144
  %407 = load ptr, ptr %3, align 8, !tbaa !5
  %408 = getelementptr inbounds %struct.ImGuiContext, ptr %407, i32 0, i32 112
  %409 = load ptr, ptr %408, align 8, !tbaa !122
  %410 = icmp ne ptr %406, %409
  br i1 %410, label %411, label %412

411:                                              ; preds = %403, %386, %379
  store i32 7, ptr %6, align 4
  br label %557

412:                                              ; preds = %403, %395
  %413 = load ptr, ptr %13, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.ImGuiTable, ptr %413, i32 0, i32 0
  %415 = load i32, ptr %414, align 8, !tbaa !145
  %416 = load ptr, ptr %13, align 8, !tbaa !5
  %417 = getelementptr inbounds %struct.ImGuiTable, ptr %416, i32 0, i32 13
  %418 = load i32, ptr %417, align 4, !tbaa !146
  %419 = load ptr, ptr %13, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.ImGuiTable, ptr %419, i32 0, i32 55
  %421 = load ptr, ptr %420, align 8, !tbaa !143
  %422 = getelementptr inbounds %struct.ImGuiWindow, ptr %421, i32 0, i32 1
  %423 = load ptr, ptr %422, align 8, !tbaa !123
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.469, i32 noundef %415, i32 noundef %418, ptr noundef %423)
  %424 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %424, label %425, label %435

425:                                              ; preds = %412
  %426 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #10
  %427 = load ptr, ptr %13, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.ImGuiTable, ptr %427, i32 0, i32 46
  %429 = getelementptr inbounds %struct.ImRect, ptr %428, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %430 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %429, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %430, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %431 = load ptr, ptr %13, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.ImGuiTable, ptr %431, i32 0, i32 46
  %433 = getelementptr inbounds %struct.ImRect, ptr %432, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %434 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %433, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %434, ptr %16, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %426, ptr noundef nonnull align 4 dereferenceable(8) %14, ptr noundef nonnull align 4 dereferenceable(8) %16, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #10
  br label %435

435:                                              ; preds = %425, %412
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 128, ptr %18) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  store i32 0, ptr %19, align 4, !tbaa !124
  br label %436

436:                                              ; preds = %553, %435
  %437 = load i32, ptr %19, align 4, !tbaa !124
  %438 = icmp slt i32 %437, 13
  br i1 %438, label %440, label %439

439:                                              ; preds = %436
  store i32 8, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %556

440:                                              ; preds = %436
  %441 = load i32, ptr %19, align 4, !tbaa !124
  %442 = icmp sge i32 %441, 6
  br i1 %442, label %443, label %508

443:                                              ; preds = %440
  %444 = load i32, ptr %19, align 4, !tbaa !124
  %445 = icmp ne i32 %444, 6
  br i1 %445, label %446, label %450

446:                                              ; preds = %443
  %447 = load i32, ptr %19, align 4, !tbaa !124
  %448 = icmp ne i32 %447, 8
  br i1 %448, label %449, label %450

449:                                              ; preds = %446
  br label %553

450:                                              ; preds = %446, %443
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  store i32 0, ptr %20, align 4, !tbaa !124
  br label %451

451:                                              ; preds = %504, %450
  %452 = load i32, ptr %20, align 4, !tbaa !124
  %453 = load ptr, ptr %13, align 8, !tbaa !5
  %454 = getelementptr inbounds %struct.ImGuiTable, ptr %453, i32 0, i32 13
  %455 = load i32, ptr %454, align 4, !tbaa !146
  %456 = icmp slt i32 %452, %455
  br i1 %456, label %458, label %457

457:                                              ; preds = %451
  store i32 11, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %507

458:                                              ; preds = %451
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #10
  %459 = load ptr, ptr %13, align 8, !tbaa !5
  %460 = load i32, ptr %19, align 4, !tbaa !124
  %461 = load i32, ptr %20, align 4, !tbaa !124
  %462 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %459, i32 noundef %460, i32 noundef %461)
  %463 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %21, i32 0, i32 0
  %464 = extractvalue { <2 x float>, <2 x float> } %462, 0
  store <2 x float> %464, ptr %463, align 4
  %465 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %21, i32 0, i32 1
  %466 = extractvalue { <2 x float>, <2 x float> } %462, 1
  store <2 x float> %466, ptr %465, align 4
  %467 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %468 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  %469 = getelementptr inbounds %struct.ImVec2, ptr %468, i32 0, i32 0
  %470 = load float, ptr %469, align 4, !tbaa !125
  %471 = fpext float %470 to double
  %472 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  %473 = getelementptr inbounds %struct.ImVec2, ptr %472, i32 0, i32 1
  %474 = load float, ptr %473, align 4, !tbaa !126
  %475 = fpext float %474 to double
  %476 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  %477 = getelementptr inbounds %struct.ImVec2, ptr %476, i32 0, i32 0
  %478 = load float, ptr %477, align 4, !tbaa !127
  %479 = fpext float %478 to double
  %480 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  %481 = getelementptr inbounds %struct.ImVec2, ptr %480, i32 0, i32 1
  %482 = load float, ptr %481, align 4, !tbaa !128
  %483 = fpext float %482 to double
  %484 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %21)
  %485 = fpext float %484 to double
  %486 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %21)
  %487 = fpext float %486 to double
  %488 = load i32, ptr %20, align 4, !tbaa !124
  %489 = load i32, ptr %19, align 4, !tbaa !124
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 %490
  %492 = load ptr, ptr %491, align 8, !tbaa !5
  %493 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %467, i64 noundef 128, ptr noundef @.str.470, double noundef %471, double noundef %475, double noundef %479, double noundef %483, double noundef %485, double noundef %487, i32 noundef %488, ptr noundef %492)
  %494 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %22, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %495 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %494, i1 noundef zeroext false, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %22)
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  %496 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %496, label %497, label %503

497:                                              ; preds = %458
  %498 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  %499 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %500 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %499, ptr noundef nonnull align 4 dereferenceable(8) %24)
  store <2 x float> %500, ptr %23, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  %501 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %26, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %502 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %501, ptr noundef nonnull align 4 dereferenceable(8) %26)
  store <2 x float> %502, ptr %25, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %498, ptr noundef nonnull align 4 dereferenceable(8) %23, ptr noundef nonnull align 4 dereferenceable(8) %25, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  br label %503

503:                                              ; preds = %497, %458
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #10
  br label %504

504:                                              ; preds = %503
  %505 = load i32, ptr %20, align 4, !tbaa !124
  %506 = add nsw i32 %505, 1
  store i32 %506, ptr %20, align 4, !tbaa !124
  br label %451, !llvm.loop !147

507:                                              ; preds = %457
  br label %552

508:                                              ; preds = %440
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #10
  %509 = load ptr, ptr %13, align 8, !tbaa !5
  %510 = load i32, ptr %19, align 4, !tbaa !124
  %511 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %509, i32 noundef %510, i32 noundef -1)
  %512 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 0
  %513 = extractvalue { <2 x float>, <2 x float> } %511, 0
  store <2 x float> %513, ptr %512, align 4
  %514 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 1
  %515 = extractvalue { <2 x float>, <2 x float> } %511, 1
  store <2 x float> %515, ptr %514, align 4
  %516 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %517 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %518 = getelementptr inbounds %struct.ImVec2, ptr %517, i32 0, i32 0
  %519 = load float, ptr %518, align 4, !tbaa !125
  %520 = fpext float %519 to double
  %521 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %522 = getelementptr inbounds %struct.ImVec2, ptr %521, i32 0, i32 1
  %523 = load float, ptr %522, align 4, !tbaa !126
  %524 = fpext float %523 to double
  %525 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %526 = getelementptr inbounds %struct.ImVec2, ptr %525, i32 0, i32 0
  %527 = load float, ptr %526, align 4, !tbaa !127
  %528 = fpext float %527 to double
  %529 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %530 = getelementptr inbounds %struct.ImVec2, ptr %529, i32 0, i32 1
  %531 = load float, ptr %530, align 4, !tbaa !128
  %532 = fpext float %531 to double
  %533 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %534 = fpext float %533 to double
  %535 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %536 = fpext float %535 to double
  %537 = load i32, ptr %19, align 4, !tbaa !124
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 %538
  %540 = load ptr, ptr %539, align 8, !tbaa !5
  %541 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %516, i64 noundef 128, ptr noundef @.str.466, double noundef %520, double noundef %524, double noundef %528, double noundef %532, double noundef %534, double noundef %536, ptr noundef %540)
  %542 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %28, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %543 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %542, i1 noundef zeroext false, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %28)
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  %544 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %544, label %545, label %551

545:                                              ; preds = %508
  %546 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  %547 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %548 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %547, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %548, ptr %29, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %549 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %550 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %549, ptr noundef nonnull align 4 dereferenceable(8) %32)
  store <2 x float> %550, ptr %31, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %546, ptr noundef nonnull align 4 dereferenceable(8) %29, ptr noundef nonnull align 4 dereferenceable(8) %31, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  br label %551

551:                                              ; preds = %545, %508
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #10
  br label %552

552:                                              ; preds = %551, %507
  br label %553

553:                                              ; preds = %552, %449
  %554 = load i32, ptr %19, align 4, !tbaa !124
  %555 = add nsw i32 %554, 1
  store i32 %555, ptr %19, align 4, !tbaa !124
  br label %436, !llvm.loop !148

556:                                              ; preds = %439
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 128, ptr %18) #10
  store i32 0, ptr %6, align 4
  br label %557

557:                                              ; preds = %556, %411
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #10
  %558 = load i32, ptr %6, align 4
  switch i32 %558, label %2562 [
    i32 0, label %559
    i32 7, label %560
  ]

559:                                              ; preds = %557
  br label %560

560:                                              ; preds = %559, %557
  %561 = load i32, ptr %12, align 4, !tbaa !124
  %562 = add nsw i32 %561, 1
  store i32 %562, ptr %12, align 4, !tbaa !124
  br label %372, !llvm.loop !149

563:                                              ; preds = %378
  br label %564

564:                                              ; preds = %563, %366, %343
  %565 = load ptr, ptr %3, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.ImGuiContext, ptr %565, i32 0, i32 90
  %567 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.471, ptr noundef %566)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.472)
  %568 = load ptr, ptr %4, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.ImGuiIO, ptr %568, i32 0, i32 37
  %570 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.473, ptr noundef %569)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.474)
  %571 = load ptr, ptr %5, align 8, !tbaa !5
  %572 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %571, i32 0, i32 7
  %573 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.475, ptr noundef %572)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.476)
  %574 = load ptr, ptr %5, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %574, i32 0, i32 7
  %576 = load i8, ptr %575, align 1, !tbaa !150, !range !13, !noundef !14
  %577 = trunc i8 %576 to i1
  br i1 %577, label %578, label %585

578:                                              ; preds = %564
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %579 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.477, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 64, i32 noundef 0, ptr noundef null, ptr noundef null)
  %580 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !151
  %581 = sext i8 %580 to i32
  %582 = icmp ne i32 %581, 0
  br i1 %582, label %583, label %584

583:                                              ; preds = %578
  call void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf)
  br label %584

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

585:                                              ; preds = %584, %564
  call void @_ZN5ImGui7TreePopEv()
  br label %586

586:                                              ; preds = %585, %233
  %587 = load ptr, ptr %3, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.ImGuiContext, ptr %587, i32 0, i32 26
  %589 = getelementptr inbounds %struct.ImVector.4, ptr %588, i32 0, i32 0
  %590 = load i32, ptr %589, align 8, !tbaa !152
  %591 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.478, ptr noundef @.str.479, i32 noundef %590)
  br i1 %591, label %592, label %645

592:                                              ; preds = %586
  %593 = load ptr, ptr %3, align 8, !tbaa !5
  %594 = getelementptr inbounds %struct.ImGuiContext, ptr %593, i32 0, i32 26
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %594, ptr noundef @.str.480)
  %595 = load ptr, ptr %3, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.ImGuiContext, ptr %595, i32 0, i32 27
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %596, ptr noundef @.str.481)
  %597 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.482)
  br i1 %597, label %598, label %644

598:                                              ; preds = %592
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  %599 = load ptr, ptr %3, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.ImGuiContext, ptr %599, i32 0, i32 28
  store ptr %600, ptr %33, align 8, !tbaa !5
  %601 = load ptr, ptr %33, align 8, !tbaa !5
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %601, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %602 = load ptr, ptr %3, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.ImGuiContext, ptr %602, i32 0, i32 26
  store ptr %603, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  %604 = load ptr, ptr %34, align 8, !tbaa !5
  %605 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %604)
  store ptr %605, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #10
  %606 = load ptr, ptr %34, align 8, !tbaa !5
  %607 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %606)
  store ptr %607, ptr %36, align 8, !tbaa !5
  br label %608

608:                                              ; preds = %627, %598
  %609 = load ptr, ptr %35, align 8, !tbaa !5
  %610 = load ptr, ptr %36, align 8, !tbaa !5
  %611 = icmp ne ptr %609, %610
  br i1 %611, label %613, label %612

612:                                              ; preds = %608
  store i32 14, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  br label %630

613:                                              ; preds = %608
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #10
  %614 = load ptr, ptr %35, align 8, !tbaa !5
  %615 = load ptr, ptr %614, align 8, !tbaa !5
  store ptr %615, ptr %37, align 8, !tbaa !5
  %616 = load ptr, ptr %37, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.ImGuiWindow, ptr %616, i32 0, i32 80
  %618 = load i32, ptr %617, align 8, !tbaa !153
  %619 = add nsw i32 %618, 1
  %620 = load ptr, ptr %3, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.ImGuiContext, ptr %620, i32 0, i32 12
  %622 = load i32, ptr %621, align 8, !tbaa !142
  %623 = icmp sge i32 %619, %622
  br i1 %623, label %624, label %626

624:                                              ; preds = %613
  %625 = load ptr, ptr %33, align 8, !tbaa !5
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %625, ptr noundef nonnull align 8 dereferenceable(8) %37)
  br label %626

626:                                              ; preds = %624, %613
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  br label %627

627:                                              ; preds = %626
  %628 = load ptr, ptr %35, align 8, !tbaa !5
  %629 = getelementptr inbounds ptr, ptr %628, i32 1
  store ptr %629, ptr %35, align 8, !tbaa !5
  br label %608

630:                                              ; preds = %612
  %631 = load ptr, ptr %33, align 8, !tbaa !5
  %632 = getelementptr inbounds %struct.ImVector.4, ptr %631, i32 0, i32 2
  %633 = load ptr, ptr %632, align 8, !tbaa !154
  %634 = load ptr, ptr %33, align 8, !tbaa !5
  %635 = getelementptr inbounds %struct.ImVector.4, ptr %634, i32 0, i32 0
  %636 = load i32, ptr %635, align 8, !tbaa !155
  %637 = sext i32 %636 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %633, i64 noundef %637, i64 noundef 8, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %638 = load ptr, ptr %33, align 8, !tbaa !5
  %639 = getelementptr inbounds %struct.ImVector.4, ptr %638, i32 0, i32 2
  %640 = load ptr, ptr %639, align 8, !tbaa !154
  %641 = load ptr, ptr %33, align 8, !tbaa !5
  %642 = getelementptr inbounds %struct.ImVector.4, ptr %641, i32 0, i32 0
  %643 = load i32, ptr %642, align 8, !tbaa !155
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %640, i32 noundef %643, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  br label %644

644:                                              ; preds = %630, %592
  call void @_ZN5ImGui7TreePopEv()
  br label %645

645:                                              ; preds = %644, %586
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  store i32 0, ptr %38, align 4, !tbaa !124
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  %646 = load ptr, ptr %3, align 8, !tbaa !5
  %647 = getelementptr inbounds %struct.ImGuiContext, ptr %646, i32 0, i32 102
  store ptr %647, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #10
  %648 = load ptr, ptr %39, align 8, !tbaa !5
  %649 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %648)
  store ptr %649, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  %650 = load ptr, ptr %39, align 8, !tbaa !5
  %651 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %650)
  store ptr %651, ptr %41, align 8, !tbaa !5
  br label %652

652:                                              ; preds = %667, %645
  %653 = load ptr, ptr %40, align 8, !tbaa !5
  %654 = load ptr, ptr %41, align 8, !tbaa !5
  %655 = icmp ne ptr %653, %654
  br i1 %655, label %657, label %656

656:                                              ; preds = %652
  store i32 16, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  br label %670

657:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  %658 = load ptr, ptr %40, align 8, !tbaa !5
  %659 = load ptr, ptr %658, align 8, !tbaa !5
  store ptr %659, ptr %42, align 8, !tbaa !5
  %660 = load ptr, ptr %42, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.ImGuiViewportP, ptr %660, i32 0, i32 13
  %662 = getelementptr inbounds %struct.ImDrawData, ptr %661, i32 0, i32 4
  %663 = getelementptr inbounds %struct.ImVector.51, ptr %662, i32 0, i32 0
  %664 = load i32, ptr %663, align 8, !tbaa !156
  %665 = load i32, ptr %38, align 4, !tbaa !124
  %666 = add nsw i32 %665, %664
  store i32 %666, ptr %38, align 4, !tbaa !124
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  br label %667

667:                                              ; preds = %657
  %668 = load ptr, ptr %40, align 8, !tbaa !5
  %669 = getelementptr inbounds ptr, ptr %668, i32 1
  store ptr %669, ptr %40, align 8, !tbaa !5
  br label %652

670:                                              ; preds = %656
  %671 = load i32, ptr %38, align 4, !tbaa !124
  %672 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.483, ptr noundef @.str.484, i32 noundef %671)
  br i1 %672, label %673, label %729

673:                                              ; preds = %670
  %674 = load ptr, ptr %5, align 8, !tbaa !5
  %675 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %674, i32 0, i32 5
  %676 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.485, ptr noundef %675)
  %677 = load ptr, ptr %5, align 8, !tbaa !5
  %678 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %677, i32 0, i32 6
  %679 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.486, ptr noundef %678)
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #10
  %680 = load ptr, ptr %3, align 8, !tbaa !5
  %681 = getelementptr inbounds %struct.ImGuiContext, ptr %680, i32 0, i32 102
  store ptr %681, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #10
  %682 = load ptr, ptr %43, align 8, !tbaa !5
  %683 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %682)
  store ptr %683, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  %684 = load ptr, ptr %43, align 8, !tbaa !5
  %685 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %684)
  store ptr %685, ptr %45, align 8, !tbaa !5
  br label %686

686:                                              ; preds = %725, %673
  %687 = load ptr, ptr %44, align 8, !tbaa !5
  %688 = load ptr, ptr %45, align 8, !tbaa !5
  %689 = icmp ne ptr %687, %688
  br i1 %689, label %691, label %690

690:                                              ; preds = %686
  store i32 18, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #10
  br label %728

691:                                              ; preds = %686
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #10
  %692 = load ptr, ptr %44, align 8, !tbaa !5
  %693 = load ptr, ptr %692, align 8, !tbaa !5
  store ptr %693, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #10
  store i8 0, ptr %47, align 1, !tbaa !162
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  %694 = load ptr, ptr %46, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.ImGuiViewportP, ptr %694, i32 0, i32 13
  %696 = getelementptr inbounds %struct.ImDrawData, ptr %695, i32 0, i32 4
  store ptr %696, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #10
  %697 = load ptr, ptr %48, align 8, !tbaa !5
  %698 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %697)
  store ptr %698, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #10
  %699 = load ptr, ptr %48, align 8, !tbaa !5
  %700 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %699)
  store ptr %700, ptr %50, align 8, !tbaa !5
  br label %701

701:                                              ; preds = %721, %691
  %702 = load ptr, ptr %49, align 8, !tbaa !5
  %703 = load ptr, ptr %50, align 8, !tbaa !5
  %704 = icmp ne ptr %702, %703
  br i1 %704, label %706, label %705

705:                                              ; preds = %701
  store i32 20, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #10
  br label %724

706:                                              ; preds = %701
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #10
  %707 = load ptr, ptr %49, align 8, !tbaa !5
  %708 = load ptr, ptr %707, align 8, !tbaa !5
  store ptr %708, ptr %51, align 8, !tbaa !5
  %709 = load i8, ptr %47, align 1, !tbaa !162, !range !13, !noundef !14
  %710 = trunc i8 %709 to i1
  br i1 %710, label %718, label %711

711:                                              ; preds = %706
  %712 = load ptr, ptr %46, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.ImGuiViewportP, ptr %712, i32 0, i32 2
  %714 = load i32, ptr %713, align 8, !tbaa !163
  %715 = load ptr, ptr %46, align 8, !tbaa !5
  %716 = getelementptr inbounds %struct.ImGuiViewport, ptr %715, i32 0, i32 0
  %717 = load i32, ptr %716, align 8, !tbaa !164
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.487, i32 noundef %714, i32 noundef %717)
  br label %718

718:                                              ; preds = %711, %706
  store i8 1, ptr %47, align 1, !tbaa !162
  %719 = load ptr, ptr %46, align 8, !tbaa !5
  %720 = load ptr, ptr %51, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef %719, ptr noundef %720, ptr noundef @.str.488)
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  br label %721

721:                                              ; preds = %718
  %722 = load ptr, ptr %49, align 8, !tbaa !5
  %723 = getelementptr inbounds ptr, ptr %722, i32 1
  store ptr %723, ptr %49, align 8, !tbaa !5
  br label %701

724:                                              ; preds = %705
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  br label %725

725:                                              ; preds = %724
  %726 = load ptr, ptr %44, align 8, !tbaa !5
  %727 = getelementptr inbounds ptr, ptr %726, i32 1
  store ptr %727, ptr %44, align 8, !tbaa !5
  br label %686

728:                                              ; preds = %690
  call void @_ZN5ImGui7TreePopEv()
  br label %729

729:                                              ; preds = %728, %670
  %730 = load ptr, ptr %3, align 8, !tbaa !5
  %731 = getelementptr inbounds %struct.ImGuiContext, ptr %730, i32 0, i32 102
  %732 = getelementptr inbounds %struct.ImVector.16, ptr %731, i32 0, i32 0
  %733 = load i32, ptr %732, align 8, !tbaa !165
  %734 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.489, ptr noundef @.str.490, i32 noundef %733)
  br i1 %734, label %735, label %1000

735:                                              ; preds = %729
  %736 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %736)
  call void @_ZL25RenderViewportsThumbnailsv()
  %737 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %737)
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #10
  %738 = load ptr, ptr %3, align 8, !tbaa !5
  %739 = getelementptr inbounds %struct.ImGuiContext, ptr %738, i32 0, i32 3
  %740 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %739, i32 0, i32 23
  %741 = getelementptr inbounds %struct.ImVector.0, ptr %740, i32 0, i32 0
  %742 = load i32, ptr %741, align 8, !tbaa !166
  %743 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.491, ptr noundef @.str.492, i32 noundef %742)
  %744 = zext i1 %743 to i8
  store i8 %744, ptr %52, align 1, !tbaa !162
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.493)
  %745 = load i8, ptr %52, align 1, !tbaa !162, !range !13, !noundef !14
  %746 = trunc i8 %745 to i1
  br i1 %746, label %747, label %853

747:                                              ; preds = %735
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #10
  store i32 0, ptr %53, align 4, !tbaa !124
  br label %748

748:                                              ; preds = %849, %747
  %749 = load i32, ptr %53, align 4, !tbaa !124
  %750 = load ptr, ptr %3, align 8, !tbaa !5
  %751 = getelementptr inbounds %struct.ImGuiContext, ptr %750, i32 0, i32 3
  %752 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %751, i32 0, i32 23
  %753 = getelementptr inbounds %struct.ImVector.0, ptr %752, i32 0, i32 0
  %754 = load i32, ptr %753, align 8, !tbaa !166
  %755 = icmp slt i32 %749, %754
  br i1 %755, label %757, label %756

756:                                              ; preds = %748
  store i32 22, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %852

757:                                              ; preds = %748
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #10
  %758 = load ptr, ptr %3, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.ImGuiContext, ptr %758, i32 0, i32 3
  %760 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %759, i32 0, i32 23
  %761 = load i32, ptr %53, align 4, !tbaa !124
  %762 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI20ImGuiPlatformMonitorEixEi(ptr noundef nonnull align 8 dereferenceable(16) %760, i32 noundef %761)
  store ptr %762, ptr %54, align 8, !tbaa !5
  %763 = load i32, ptr %53, align 4, !tbaa !124
  %764 = load ptr, ptr %54, align 8, !tbaa !5
  %765 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %764, i32 0, i32 4
  %766 = load float, ptr %765, align 8, !tbaa !167
  %767 = fmul float %766, 1.000000e+02
  %768 = fpext float %767 to double
  %769 = load ptr, ptr %54, align 8, !tbaa !5
  %770 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %769, i32 0, i32 0
  %771 = getelementptr inbounds %struct.ImVec2, ptr %770, i32 0, i32 0
  %772 = load float, ptr %771, align 8, !tbaa !168
  %773 = fpext float %772 to double
  %774 = load ptr, ptr %54, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %774, i32 0, i32 0
  %776 = getelementptr inbounds %struct.ImVec2, ptr %775, i32 0, i32 1
  %777 = load float, ptr %776, align 4, !tbaa !169
  %778 = fpext float %777 to double
  %779 = load ptr, ptr %54, align 8, !tbaa !5
  %780 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %779, i32 0, i32 0
  %781 = getelementptr inbounds %struct.ImVec2, ptr %780, i32 0, i32 0
  %782 = load float, ptr %781, align 8, !tbaa !168
  %783 = load ptr, ptr %54, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %783, i32 0, i32 1
  %785 = getelementptr inbounds %struct.ImVec2, ptr %784, i32 0, i32 0
  %786 = load float, ptr %785, align 8, !tbaa !170
  %787 = fadd float %782, %786
  %788 = fpext float %787 to double
  %789 = load ptr, ptr %54, align 8, !tbaa !5
  %790 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %789, i32 0, i32 0
  %791 = getelementptr inbounds %struct.ImVec2, ptr %790, i32 0, i32 1
  %792 = load float, ptr %791, align 4, !tbaa !169
  %793 = load ptr, ptr %54, align 8, !tbaa !5
  %794 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %793, i32 0, i32 1
  %795 = getelementptr inbounds %struct.ImVec2, ptr %794, i32 0, i32 1
  %796 = load float, ptr %795, align 4, !tbaa !171
  %797 = fadd float %792, %796
  %798 = fpext float %797 to double
  %799 = load ptr, ptr %54, align 8, !tbaa !5
  %800 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %799, i32 0, i32 1
  %801 = getelementptr inbounds %struct.ImVec2, ptr %800, i32 0, i32 0
  %802 = load float, ptr %801, align 8, !tbaa !170
  %803 = fpext float %802 to double
  %804 = load ptr, ptr %54, align 8, !tbaa !5
  %805 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %804, i32 0, i32 1
  %806 = getelementptr inbounds %struct.ImVec2, ptr %805, i32 0, i32 1
  %807 = load float, ptr %806, align 4, !tbaa !171
  %808 = fpext float %807 to double
  %809 = load ptr, ptr %54, align 8, !tbaa !5
  %810 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %809, i32 0, i32 2
  %811 = getelementptr inbounds %struct.ImVec2, ptr %810, i32 0, i32 0
  %812 = load float, ptr %811, align 8, !tbaa !172
  %813 = fpext float %812 to double
  %814 = load ptr, ptr %54, align 8, !tbaa !5
  %815 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %814, i32 0, i32 2
  %816 = getelementptr inbounds %struct.ImVec2, ptr %815, i32 0, i32 1
  %817 = load float, ptr %816, align 4, !tbaa !173
  %818 = fpext float %817 to double
  %819 = load ptr, ptr %54, align 8, !tbaa !5
  %820 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %819, i32 0, i32 2
  %821 = getelementptr inbounds %struct.ImVec2, ptr %820, i32 0, i32 0
  %822 = load float, ptr %821, align 8, !tbaa !172
  %823 = load ptr, ptr %54, align 8, !tbaa !5
  %824 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %823, i32 0, i32 3
  %825 = getelementptr inbounds %struct.ImVec2, ptr %824, i32 0, i32 0
  %826 = load float, ptr %825, align 8, !tbaa !174
  %827 = fadd float %822, %826
  %828 = fpext float %827 to double
  %829 = load ptr, ptr %54, align 8, !tbaa !5
  %830 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %829, i32 0, i32 2
  %831 = getelementptr inbounds %struct.ImVec2, ptr %830, i32 0, i32 1
  %832 = load float, ptr %831, align 4, !tbaa !173
  %833 = load ptr, ptr %54, align 8, !tbaa !5
  %834 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %833, i32 0, i32 3
  %835 = getelementptr inbounds %struct.ImVec2, ptr %834, i32 0, i32 1
  %836 = load float, ptr %835, align 4, !tbaa !175
  %837 = fadd float %832, %836
  %838 = fpext float %837 to double
  %839 = load ptr, ptr %54, align 8, !tbaa !5
  %840 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %839, i32 0, i32 3
  %841 = getelementptr inbounds %struct.ImVec2, ptr %840, i32 0, i32 0
  %842 = load float, ptr %841, align 8, !tbaa !174
  %843 = fpext float %842 to double
  %844 = load ptr, ptr %54, align 8, !tbaa !5
  %845 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %844, i32 0, i32 3
  %846 = getelementptr inbounds %struct.ImVec2, ptr %845, i32 0, i32 1
  %847 = load float, ptr %846, align 4, !tbaa !175
  %848 = fpext float %847 to double
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.494, i32 noundef %763, double noundef %768, double noundef %773, double noundef %778, double noundef %788, double noundef %798, double noundef %803, double noundef %808, double noundef %813, double noundef %818, double noundef %828, double noundef %838, double noundef %843, double noundef %848)
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  br label %849

849:                                              ; preds = %757
  %850 = load i32, ptr %53, align 4, !tbaa !124
  %851 = add nsw i32 %850, 1
  store i32 %851, ptr %53, align 4, !tbaa !124
  br label %748, !llvm.loop !176

852:                                              ; preds = %756
  call void @_ZN5ImGui7TreePopEv()
  br label %853

853:                                              ; preds = %852, %735
  %854 = load ptr, ptr %3, align 8, !tbaa !5
  %855 = getelementptr inbounds %struct.ImGuiContext, ptr %854, i32 0, i32 105
  %856 = load ptr, ptr %855, align 8, !tbaa !177
  %857 = icmp ne ptr %856, null
  br i1 %857, label %858, label %864

858:                                              ; preds = %853
  %859 = load ptr, ptr %3, align 8, !tbaa !5
  %860 = getelementptr inbounds %struct.ImGuiContext, ptr %859, i32 0, i32 105
  %861 = load ptr, ptr %860, align 8, !tbaa !177
  %862 = getelementptr inbounds %struct.ImGuiViewport, ptr %861, i32 0, i32 0
  %863 = load i32, ptr %862, align 8, !tbaa !164
  br label %865

864:                                              ; preds = %853
  br label %865

865:                                              ; preds = %864, %858
  %866 = phi i32 [ %863, %858 ], [ 0, %864 ]
  %867 = load ptr, ptr %3, align 8, !tbaa !5
  %868 = getelementptr inbounds %struct.ImGuiContext, ptr %867, i32 0, i32 2
  %869 = getelementptr inbounds %struct.ImGuiIO, ptr %868, i32 0, i32 72
  %870 = load i32, ptr %869, align 4, !tbaa !178
  %871 = load ptr, ptr %3, align 8, !tbaa !5
  %872 = getelementptr inbounds %struct.ImGuiContext, ptr %871, i32 0, i32 106
  %873 = load ptr, ptr %872, align 8, !tbaa !179
  %874 = icmp ne ptr %873, null
  br i1 %874, label %875, label %881

875:                                              ; preds = %865
  %876 = load ptr, ptr %3, align 8, !tbaa !5
  %877 = getelementptr inbounds %struct.ImGuiContext, ptr %876, i32 0, i32 106
  %878 = load ptr, ptr %877, align 8, !tbaa !179
  %879 = getelementptr inbounds %struct.ImGuiViewport, ptr %878, i32 0, i32 0
  %880 = load i32, ptr %879, align 8, !tbaa !164
  br label %882

881:                                              ; preds = %865
  br label %882

882:                                              ; preds = %881, %875
  %883 = phi i32 [ %880, %875 ], [ 0, %881 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.495, i32 noundef %866, i32 noundef %870, i32 noundef %883)
  %884 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.496)
  br i1 %884, label %885, label %980

885:                                              ; preds = %882
  %886 = load atomic i8, ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports acquire, align 8
  %887 = icmp eq i8 %886, 0
  br i1 %887, label %888, label %894, !prof !180

888:                                              ; preds = %885
  %889 = call i32 @__cxa_guard_acquire(ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #10
  %890 = icmp ne i32 %889, 0
  br i1 %890, label %891, label %894

891:                                              ; preds = %888
  invoke void @_ZN8ImVectorIP14ImGuiViewportPEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
          to label %892 unwind label %914

892:                                              ; preds = %891
  %893 = call i32 @__cxa_atexit(ptr @_ZN8ImVectorIP14ImGuiViewportPED2Ev, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, ptr @__dso_handle) #10
  call void @__cxa_guard_release(ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #10
  br label %894

894:                                              ; preds = %892, %888, %885
  %895 = load ptr, ptr %3, align 8, !tbaa !5
  %896 = getelementptr inbounds %struct.ImGuiContext, ptr %895, i32 0, i32 102
  %897 = getelementptr inbounds %struct.ImVector.16, ptr %896, i32 0, i32 0
  %898 = load i32, ptr %897, align 8, !tbaa !165
  call void @_ZN8ImVectorIP14ImGuiViewportPE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 noundef %898)
  %899 = load ptr, ptr getelementptr inbounds (%struct.ImVector.16, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 0, i32 2), align 8, !tbaa !181
  %900 = load ptr, ptr %3, align 8, !tbaa !5
  %901 = getelementptr inbounds %struct.ImGuiContext, ptr %900, i32 0, i32 102
  %902 = getelementptr inbounds %struct.ImVector.16, ptr %901, i32 0, i32 2
  %903 = load ptr, ptr %902, align 8, !tbaa !182
  %904 = load ptr, ptr %3, align 8, !tbaa !5
  %905 = getelementptr inbounds %struct.ImGuiContext, ptr %904, i32 0, i32 102
  %906 = call noundef i32 @_ZNK8ImVectorIP14ImGuiViewportPE13size_in_bytesEv(ptr noundef nonnull align 8 dereferenceable(16) %905)
  %907 = sext i32 %906 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %899, ptr align 8 %903, i64 %907, i1 false)
  %908 = load i32, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, align 8, !tbaa !183
  %909 = icmp sgt i32 %908, 1
  br i1 %909, label %910, label %918

910:                                              ; preds = %894
  %911 = load ptr, ptr getelementptr inbounds (%struct.ImVector.16, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 0, i32 2), align 8, !tbaa !181
  %912 = load i32, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, align 8, !tbaa !183
  %913 = sext i32 %912 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %911, i64 noundef %913, i64 noundef 8, ptr noundef @_ZL39ViewportComparerByLastFocusedStampCountPKvS0_)
  br label %918

914:                                              ; preds = %891
  %915 = landingpad { ptr, i32 }
          cleanup
  %916 = extractvalue { ptr, i32 } %915, 0
  store ptr %916, ptr %55, align 8
  %917 = extractvalue { ptr, i32 } %915, 1
  store i32 %917, ptr %56, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #10
  br label %2557

918:                                              ; preds = %910, %894
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #10
  store ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #10
  %919 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  store ptr %919, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #10
  %920 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  store ptr %920, ptr %59, align 8, !tbaa !5
  br label %921

921:                                              ; preds = %976, %918
  %922 = load ptr, ptr %58, align 8, !tbaa !5
  %923 = load ptr, ptr %59, align 8, !tbaa !5
  %924 = icmp ne ptr %922, %923
  br i1 %924, label %926, label %925

925:                                              ; preds = %921
  store i32 25, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  br label %979

926:                                              ; preds = %921
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  %927 = load ptr, ptr %58, align 8, !tbaa !5
  %928 = load ptr, ptr %927, align 8, !tbaa !5
  store ptr %928, ptr %60, align 8, !tbaa !5
  %929 = load ptr, ptr %60, align 8, !tbaa !5
  %930 = getelementptr inbounds %struct.ImGuiViewportP, ptr %929, i32 0, i32 2
  %931 = load i32, ptr %930, align 8, !tbaa !163
  %932 = load ptr, ptr %60, align 8, !tbaa !5
  %933 = getelementptr inbounds %struct.ImGuiViewport, ptr %932, i32 0, i32 0
  %934 = load i32, ptr %933, align 8, !tbaa !164
  %935 = load ptr, ptr %60, align 8, !tbaa !5
  %936 = getelementptr inbounds %struct.ImGuiViewportP, ptr %935, i32 0, i32 4
  %937 = load i32, ptr %936, align 8, !tbaa !184
  %938 = load ptr, ptr %3, align 8, !tbaa !5
  %939 = getelementptr inbounds %struct.ImGuiContext, ptr %938, i32 0, i32 3
  %940 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %939, i32 0, i32 8
  %941 = load ptr, ptr %940, align 8, !tbaa !185
  %942 = icmp ne ptr %941, null
  br i1 %942, label %943, label %960

943:                                              ; preds = %926
  %944 = load ptr, ptr %60, align 8, !tbaa !5
  %945 = getelementptr inbounds %struct.ImGuiViewport, ptr %944, i32 0, i32 13
  %946 = load i8, ptr %945, align 8, !tbaa !186, !range !13, !noundef !14
  %947 = trunc i8 %946 to i1
  br i1 %947, label %948, label %960

948:                                              ; preds = %943
  %949 = load ptr, ptr %3, align 8, !tbaa !5
  %950 = getelementptr inbounds %struct.ImGuiContext, ptr %949, i32 0, i32 3
  %951 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %950, i32 0, i32 8
  %952 = load ptr, ptr %951, align 8, !tbaa !185
  %953 = load ptr, ptr %60, align 8, !tbaa !5
  %954 = call noundef zeroext i1 %952(ptr noundef %953)
  br i1 %954, label %955, label %956

955:                                              ; preds = %948
  br label %957

956:                                              ; preds = %948
  br label %957

957:                                              ; preds = %956, %955
  %958 = phi ptr [ @.str.498, %955 ], [ @.str.91, %956 ]
  %959 = getelementptr inbounds [2 x i8], ptr %958, i64 0, i64 0
  br label %961

960:                                              ; preds = %943, %926
  br label %961

961:                                              ; preds = %960, %957
  %962 = phi ptr [ %959, %957 ], [ @.str.200, %960 ]
  %963 = load ptr, ptr %60, align 8, !tbaa !5
  %964 = getelementptr inbounds %struct.ImGuiViewportP, ptr %963, i32 0, i32 1
  %965 = load ptr, ptr %964, align 8, !tbaa !187
  %966 = icmp ne ptr %965, null
  br i1 %966, label %967, label %973

967:                                              ; preds = %961
  %968 = load ptr, ptr %60, align 8, !tbaa !5
  %969 = getelementptr inbounds %struct.ImGuiViewportP, ptr %968, i32 0, i32 1
  %970 = load ptr, ptr %969, align 8, !tbaa !187
  %971 = getelementptr inbounds %struct.ImGuiWindow, ptr %970, i32 0, i32 1
  %972 = load ptr, ptr %971, align 8, !tbaa !123
  br label %974

973:                                              ; preds = %961
  br label %974

974:                                              ; preds = %973, %967
  %975 = phi ptr [ %972, %967 ], [ @.str.200, %973 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.497, i32 noundef %931, i32 noundef %934, i32 noundef %937, ptr noundef %962, ptr noundef %975)
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  br label %976

976:                                              ; preds = %974
  %977 = load ptr, ptr %58, align 8, !tbaa !5
  %978 = getelementptr inbounds ptr, ptr %977, i32 1
  store ptr %978, ptr %58, align 8, !tbaa !5
  br label %921

979:                                              ; preds = %925
  call void @_ZN5ImGui7TreePopEv()
  br label %980

980:                                              ; preds = %979, %882
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #10
  %981 = load ptr, ptr %3, align 8, !tbaa !5
  %982 = getelementptr inbounds %struct.ImGuiContext, ptr %981, i32 0, i32 102
  store ptr %982, ptr %61, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #10
  %983 = load ptr, ptr %61, align 8, !tbaa !5
  %984 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %983)
  store ptr %984, ptr %62, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #10
  %985 = load ptr, ptr %61, align 8, !tbaa !5
  %986 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %985)
  store ptr %986, ptr %63, align 8, !tbaa !5
  br label %987

987:                                              ; preds = %996, %980
  %988 = load ptr, ptr %62, align 8, !tbaa !5
  %989 = load ptr, ptr %63, align 8, !tbaa !5
  %990 = icmp ne ptr %988, %989
  br i1 %990, label %992, label %991

991:                                              ; preds = %987
  store i32 27, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  br label %999

992:                                              ; preds = %987
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  %993 = load ptr, ptr %62, align 8, !tbaa !5
  %994 = load ptr, ptr %993, align 8, !tbaa !5
  store ptr %994, ptr %64, align 8, !tbaa !5
  %995 = load ptr, ptr %64, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %995)
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  br label %996

996:                                              ; preds = %992
  %997 = load ptr, ptr %62, align 8, !tbaa !5
  %998 = getelementptr inbounds ptr, ptr %997, i32 1
  store ptr %998, ptr %62, align 8, !tbaa !5
  br label %987

999:                                              ; preds = %991
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #10
  br label %1000

1000:                                             ; preds = %999, %729
  %1001 = load ptr, ptr %3, align 8, !tbaa !5
  %1002 = getelementptr inbounds %struct.ImGuiContext, ptr %1001, i32 0, i32 98
  %1003 = getelementptr inbounds %struct.ImVector.14, ptr %1002, i32 0, i32 0
  %1004 = load i32, ptr %1003, align 8, !tbaa !188
  %1005 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.499, ptr noundef @.str.500, i32 noundef %1004)
  br i1 %1005, label %1006, label %1092

1006:                                             ; preds = %1000
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #10
  %1007 = load ptr, ptr %3, align 8, !tbaa !5
  %1008 = getelementptr inbounds %struct.ImGuiContext, ptr %1007, i32 0, i32 98
  store ptr %1008, ptr %65, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #10
  %1009 = load ptr, ptr %65, align 8, !tbaa !5
  %1010 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1009)
  store ptr %1010, ptr %66, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #10
  %1011 = load ptr, ptr %65, align 8, !tbaa !5
  %1012 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %1011)
  store ptr %1012, ptr %67, align 8, !tbaa !5
  br label %1013

1013:                                             ; preds = %1088, %1006
  %1014 = load ptr, ptr %66, align 8, !tbaa !5
  %1015 = load ptr, ptr %67, align 8, !tbaa !5
  %1016 = icmp ne ptr %1014, %1015
  br i1 %1016, label %1018, label %1017

1017:                                             ; preds = %1013
  store i32 29, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  br label %1091

1018:                                             ; preds = %1013
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  %1019 = load ptr, ptr %66, align 8, !tbaa !5
  store ptr %1019, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #10
  %1020 = load ptr, ptr %68, align 8, !tbaa !5
  %1021 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1020, i32 0, i32 2
  %1022 = load ptr, ptr %1021, align 8, !tbaa !189
  store ptr %1022, ptr %69, align 8, !tbaa !5
  %1023 = load ptr, ptr %68, align 8, !tbaa !5
  %1024 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1023, i32 0, i32 0
  %1025 = load i32, ptr %1024, align 8, !tbaa !191
  %1026 = load ptr, ptr %69, align 8, !tbaa !5
  %1027 = icmp ne ptr %1026, null
  br i1 %1027, label %1028, label %1032

1028:                                             ; preds = %1018
  %1029 = load ptr, ptr %69, align 8, !tbaa !5
  %1030 = getelementptr inbounds %struct.ImGuiWindow, ptr %1029, i32 0, i32 1
  %1031 = load ptr, ptr %1030, align 8, !tbaa !123
  br label %1033

1032:                                             ; preds = %1018
  br label %1033

1033:                                             ; preds = %1032, %1028
  %1034 = phi ptr [ %1031, %1028 ], [ @.str.502, %1032 ]
  %1035 = load ptr, ptr %69, align 8, !tbaa !5
  %1036 = icmp ne ptr %1035, null
  br i1 %1036, label %1037, label %1043

1037:                                             ; preds = %1033
  %1038 = load ptr, ptr %69, align 8, !tbaa !5
  %1039 = getelementptr inbounds %struct.ImGuiWindow, ptr %1038, i32 0, i32 3
  %1040 = load i32, ptr %1039, align 4, !tbaa !192
  %1041 = and i32 %1040, 16777216
  %1042 = icmp ne i32 %1041, 0
  br label %1043

1043:                                             ; preds = %1037, %1033
  %1044 = phi i1 [ false, %1033 ], [ %1042, %1037 ]
  %1045 = zext i1 %1044 to i64
  %1046 = select i1 %1044, ptr @.str.503, ptr @.str.17
  %1047 = load ptr, ptr %69, align 8, !tbaa !5
  %1048 = icmp ne ptr %1047, null
  br i1 %1048, label %1049, label %1055

1049:                                             ; preds = %1043
  %1050 = load ptr, ptr %69, align 8, !tbaa !5
  %1051 = getelementptr inbounds %struct.ImGuiWindow, ptr %1050, i32 0, i32 3
  %1052 = load i32, ptr %1051, align 4, !tbaa !192
  %1053 = and i32 %1052, 268435456
  %1054 = icmp ne i32 %1053, 0
  br label %1055

1055:                                             ; preds = %1049, %1043
  %1056 = phi i1 [ false, %1043 ], [ %1054, %1049 ]
  %1057 = zext i1 %1056 to i64
  %1058 = select i1 %1056, ptr @.str.504, ptr @.str.17
  %1059 = load ptr, ptr %68, align 8, !tbaa !5
  %1060 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1059, i32 0, i32 3
  %1061 = load ptr, ptr %1060, align 8, !tbaa !193
  %1062 = icmp ne ptr %1061, null
  br i1 %1062, label %1063, label %1069

1063:                                             ; preds = %1055
  %1064 = load ptr, ptr %68, align 8, !tbaa !5
  %1065 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1064, i32 0, i32 3
  %1066 = load ptr, ptr %1065, align 8, !tbaa !193
  %1067 = getelementptr inbounds %struct.ImGuiWindow, ptr %1066, i32 0, i32 1
  %1068 = load ptr, ptr %1067, align 8, !tbaa !123
  br label %1070

1069:                                             ; preds = %1055
  br label %1070

1070:                                             ; preds = %1069, %1063
  %1071 = phi ptr [ %1068, %1063 ], [ @.str.502, %1069 ]
  %1072 = load ptr, ptr %69, align 8, !tbaa !5
  %1073 = icmp ne ptr %1072, null
  br i1 %1073, label %1074, label %1085

1074:                                             ; preds = %1070
  %1075 = load ptr, ptr %69, align 8, !tbaa !5
  %1076 = getelementptr inbounds %struct.ImGuiWindow, ptr %1075, i32 0, i32 91
  %1077 = load ptr, ptr %1076, align 8, !tbaa !194
  %1078 = icmp ne ptr %1077, null
  br i1 %1078, label %1079, label %1085

1079:                                             ; preds = %1074
  %1080 = load ptr, ptr %69, align 8, !tbaa !5
  %1081 = getelementptr inbounds %struct.ImGuiWindow, ptr %1080, i32 0, i32 91
  %1082 = load ptr, ptr %1081, align 8, !tbaa !194
  %1083 = getelementptr inbounds %struct.ImGuiWindow, ptr %1082, i32 0, i32 1
  %1084 = load ptr, ptr %1083, align 8, !tbaa !123
  br label %1086

1085:                                             ; preds = %1074, %1070
  br label %1086

1086:                                             ; preds = %1085, %1079
  %1087 = phi ptr [ %1084, %1079 ], [ @.str.502, %1085 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.501, i32 noundef %1025, ptr noundef %1034, ptr noundef %1046, ptr noundef %1058, ptr noundef %1071, ptr noundef %1087)
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  br label %1088

1088:                                             ; preds = %1086
  %1089 = load ptr, ptr %66, align 8, !tbaa !5
  %1090 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1089, i32 1
  store ptr %1090, ptr %66, align 8, !tbaa !5
  br label %1013

1091:                                             ; preds = %1017
  call void @_ZN5ImGui7TreePopEv()
  br label %1092

1092:                                             ; preds = %1091, %1000
  %1093 = load ptr, ptr %3, align 8, !tbaa !5
  %1094 = getelementptr inbounds %struct.ImGuiContext, ptr %1093, i32 0, i32 196
  %1095 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %1094)
  %1096 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.505, ptr noundef @.str.506, i32 noundef %1095)
  br i1 %1096, label %1097, label %1120

1097:                                             ; preds = %1092
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  store i32 0, ptr %70, align 4, !tbaa !124
  br label %1098

1098:                                             ; preds = %1116, %1097
  %1099 = load i32, ptr %70, align 4, !tbaa !124
  %1100 = load ptr, ptr %3, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.ImGuiContext, ptr %1100, i32 0, i32 196
  %1102 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1101)
  %1103 = icmp slt i32 %1099, %1102
  br i1 %1103, label %1105, label %1104

1104:                                             ; preds = %1098
  store i32 31, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %1119

1105:                                             ; preds = %1098
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #10
  %1106 = load ptr, ptr %3, align 8, !tbaa !5
  %1107 = getelementptr inbounds %struct.ImGuiContext, ptr %1106, i32 0, i32 196
  %1108 = load i32, ptr %70, align 4, !tbaa !124
  %1109 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1107, i32 noundef %1108)
  store ptr %1109, ptr %71, align 8, !tbaa !5
  %1110 = load ptr, ptr %71, align 8, !tbaa !5
  %1111 = icmp ne ptr %1110, null
  br i1 %1111, label %1112, label %1115

1112:                                             ; preds = %1105
  %1113 = load ptr, ptr %71, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef %1113)
  %1114 = load ptr, ptr %71, align 8, !tbaa !5
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef %1114, ptr noundef @.str.507)
  call void @_ZN5ImGui5PopIDEv()
  br label %1115

1115:                                             ; preds = %1112, %1105
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  br label %1116

1116:                                             ; preds = %1115
  %1117 = load i32, ptr %70, align 4, !tbaa !124
  %1118 = add nsw i32 %1117, 1
  store i32 %1118, ptr %70, align 4, !tbaa !124
  br label %1098, !llvm.loop !195

1119:                                             ; preds = %1104
  call void @_ZN5ImGui7TreePopEv()
  br label %1120

1120:                                             ; preds = %1119, %1092
  %1121 = load ptr, ptr %3, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.ImGuiContext, ptr %1121, i32 0, i32 192
  %1123 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %1122)
  %1124 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.508, ptr noundef @.str.509, i32 noundef %1123)
  br i1 %1124, label %1125, label %1147

1125:                                             ; preds = %1120
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  store i32 0, ptr %72, align 4, !tbaa !124
  br label %1126

1126:                                             ; preds = %1143, %1125
  %1127 = load i32, ptr %72, align 4, !tbaa !124
  %1128 = load ptr, ptr %3, align 8, !tbaa !5
  %1129 = getelementptr inbounds %struct.ImGuiContext, ptr %1128, i32 0, i32 192
  %1130 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1129)
  %1131 = icmp slt i32 %1127, %1130
  br i1 %1131, label %1133, label %1132

1132:                                             ; preds = %1126
  store i32 34, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %1146

1133:                                             ; preds = %1126
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #10
  %1134 = load ptr, ptr %3, align 8, !tbaa !5
  %1135 = getelementptr inbounds %struct.ImGuiContext, ptr %1134, i32 0, i32 192
  %1136 = load i32, ptr %72, align 4, !tbaa !124
  %1137 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1135, i32 noundef %1136)
  store ptr %1137, ptr %73, align 8, !tbaa !5
  %1138 = load ptr, ptr %73, align 8, !tbaa !5
  %1139 = icmp ne ptr %1138, null
  br i1 %1139, label %1140, label %1142

1140:                                             ; preds = %1133
  %1141 = load ptr, ptr %73, align 8, !tbaa !5
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef %1141)
  br label %1142

1142:                                             ; preds = %1140, %1133
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  br label %1143

1143:                                             ; preds = %1142
  %1144 = load i32, ptr %72, align 4, !tbaa !124
  %1145 = add nsw i32 %1144, 1
  store i32 %1145, ptr %72, align 4, !tbaa !124
  br label %1126, !llvm.loop !196

1146:                                             ; preds = %1132
  call void @_ZN5ImGui7TreePopEv()
  br label %1147

1147:                                             ; preds = %1146, %1120
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  %1148 = load ptr, ptr %3, align 8, !tbaa !5
  %1149 = getelementptr inbounds %struct.ImGuiContext, ptr %1148, i32 0, i32 2
  %1150 = getelementptr inbounds %struct.ImGuiIO, ptr %1149, i32 0, i32 8
  %1151 = load ptr, ptr %1150, align 8, !tbaa !197
  store ptr %1151, ptr %74, align 8, !tbaa !5
  %1152 = load ptr, ptr %74, align 8, !tbaa !5
  %1153 = getelementptr inbounds %struct.ImFontAtlas, ptr %1152, i32 0, i32 17
  %1154 = getelementptr inbounds %struct.ImVector.10, ptr %1153, i32 0, i32 0
  %1155 = load i32, ptr %1154, align 8, !tbaa !198
  %1156 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.510, ptr noundef @.str.511, i32 noundef %1155)
  br i1 %1156, label %1157, label %1159

1157:                                             ; preds = %1147
  %1158 = load ptr, ptr %74, align 8, !tbaa !5
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef %1158)
  call void @_ZN5ImGui7TreePopEv()
  br label %1159

1159:                                             ; preds = %1157, %1147
  %1160 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.512)
  br i1 %1160, label %1161, label %1164

1161:                                             ; preds = %1159
  %1162 = load ptr, ptr %3, align 8, !tbaa !5
  %1163 = getelementptr inbounds %struct.ImGuiContext, ptr %1162, i32 0, i32 208
  call void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef %1163)
  call void @_ZN5ImGui7TreePopEv()
  br label %1164

1164:                                             ; preds = %1161, %1159
  %1165 = load ptr, ptr %3, align 8, !tbaa !5
  %1166 = getelementptr inbounds %struct.ImGuiContext, ptr %1165, i32 0, i32 235
  %1167 = getelementptr inbounds %struct.ImGuiTypingSelectState, ptr %1166, i32 0, i32 1
  %1168 = getelementptr inbounds [64 x i8], ptr %1167, i64 0, i64 0
  %1169 = load i8, ptr %1168, align 8, !tbaa !151
  %1170 = sext i8 %1169 to i32
  %1171 = icmp ne i32 %1170, 0
  %1172 = zext i1 %1171 to i64
  %1173 = select i1 %1171, i32 1, i32 0
  %1174 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.513, ptr noundef @.str.514, i32 noundef %1173)
  br i1 %1174, label %1175, label %1178

1175:                                             ; preds = %1164
  %1176 = load ptr, ptr %3, align 8, !tbaa !5
  %1177 = getelementptr inbounds %struct.ImGuiContext, ptr %1176, i32 0, i32 235
  call void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef %1177)
  call void @_ZN5ImGui7TreePopEv()
  br label %1178

1178:                                             ; preds = %1175, %1164
  %1179 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.352)
  br i1 %1179, label %1180, label %1229

1180:                                             ; preds = %1178
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #10
  %1181 = load ptr, ptr %3, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.ImGuiContext, ptr %1181, i32 0, i32 240
  store ptr %1182, ptr %75, align 8, !tbaa !5
  %1183 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.515, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only)
  %1184 = load ptr, ptr %5, align 8, !tbaa !5
  %1185 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1184, i32 0, i32 9
  %1186 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.516, ptr noundef %1185)
  %1187 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.517)
  br i1 %1187, label %1188, label %1190

1188:                                             ; preds = %1180
  %1189 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN5ImGui21DockContextClearNodesEP12ImGuiContextjb(ptr noundef %1189, i32 noundef 0, i1 noundef zeroext true)
  br label %1190

1190:                                             ; preds = %1188, %1180
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1191 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.518)
  br i1 %1191, label %1192, label %1195

1192:                                             ; preds = %1190
  %1193 = load ptr, ptr %75, align 8, !tbaa !5
  %1194 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1193, i32 0, i32 3
  store i8 1, ptr %1194, align 8, !tbaa !202
  br label %1195

1195:                                             ; preds = %1192, %1190
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  store i32 0, ptr %76, align 4, !tbaa !124
  br label %1196

1196:                                             ; preds = %1225, %1195
  %1197 = load i32, ptr %76, align 4, !tbaa !124
  %1198 = load ptr, ptr %75, align 8, !tbaa !5
  %1199 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1198, i32 0, i32 0
  %1200 = getelementptr inbounds %struct.ImGuiStorage, ptr %1199, i32 0, i32 0
  %1201 = getelementptr inbounds %struct.ImVector.6, ptr %1200, i32 0, i32 0
  %1202 = load i32, ptr %1201, align 8, !tbaa !203
  %1203 = icmp slt i32 %1197, %1202
  br i1 %1203, label %1205, label %1204

1204:                                             ; preds = %1196
  store i32 37, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %1228

1205:                                             ; preds = %1196
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #10
  %1206 = load ptr, ptr %75, align 8, !tbaa !5
  %1207 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1206, i32 0, i32 0
  %1208 = getelementptr inbounds %struct.ImGuiStorage, ptr %1207, i32 0, i32 0
  %1209 = load i32, ptr %76, align 4, !tbaa !124
  %1210 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN8ImVectorIN12ImGuiStorage16ImGuiStoragePairEEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1208, i32 noundef %1209)
  %1211 = getelementptr inbounds %"struct.ImGuiStorage::ImGuiStoragePair", ptr %1210, i32 0, i32 1
  %1212 = load ptr, ptr %1211, align 8, !tbaa !151
  store ptr %1212, ptr %77, align 8, !tbaa !5
  %1213 = load ptr, ptr %77, align 8, !tbaa !5
  %1214 = icmp ne ptr %1213, null
  br i1 %1214, label %1215, label %1224

1215:                                             ; preds = %1205
  %1216 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only, align 1, !tbaa !162, !range !13, !noundef !14
  %1217 = trunc i8 %1216 to i1
  br i1 %1217, label %1218, label %1221

1218:                                             ; preds = %1215
  %1219 = load ptr, ptr %77, align 8, !tbaa !5
  %1220 = call noundef zeroext i1 @_ZNK13ImGuiDockNode10IsRootNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %1219)
  br i1 %1220, label %1221, label %1223

1221:                                             ; preds = %1218, %1215
  %1222 = load ptr, ptr %77, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDockNodeEP13ImGuiDockNodePKc(ptr noundef %1222, ptr noundef @.str.519)
  br label %1223

1223:                                             ; preds = %1221, %1218
  br label %1224

1224:                                             ; preds = %1223, %1205
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #10
  br label %1225

1225:                                             ; preds = %1224
  %1226 = load i32, ptr %76, align 4, !tbaa !124
  %1227 = add nsw i32 %1226, 1
  store i32 %1227, ptr %76, align 4, !tbaa !124
  br label %1196, !llvm.loop !204

1228:                                             ; preds = %1204
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #10
  br label %1229

1229:                                             ; preds = %1228, %1178
  %1230 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.520)
  br i1 %1230, label %1231, label %1453

1231:                                             ; preds = %1229
  %1232 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.521)
  br i1 %1232, label %1233, label %1234

1233:                                             ; preds = %1231
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %1234

1234:                                             ; preds = %1233, %1231
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1235 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.522)
  br i1 %1235, label %1236, label %1238

1236:                                             ; preds = %1234
  %1237 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %1238

1238:                                             ; preds = %1236, %1234
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1239 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.523)
  br i1 %1239, label %1240, label %1245

1240:                                             ; preds = %1238
  %1241 = load ptr, ptr %3, align 8, !tbaa !5
  %1242 = getelementptr inbounds %struct.ImGuiContext, ptr %1241, i32 0, i32 2
  %1243 = getelementptr inbounds %struct.ImGuiIO, ptr %1242, i32 0, i32 5
  %1244 = load ptr, ptr %1243, align 8, !tbaa !205
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %1244)
  br label %1245

1245:                                             ; preds = %1240, %1238
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1246 = load ptr, ptr %3, align 8, !tbaa !5
  %1247 = getelementptr inbounds %struct.ImGuiContext, ptr %1246, i32 0, i32 2
  %1248 = getelementptr inbounds %struct.ImGuiIO, ptr %1247, i32 0, i32 5
  %1249 = load ptr, ptr %1248, align 8, !tbaa !205
  %1250 = icmp ne ptr %1249, null
  br i1 %1250, label %1251, label %1256

1251:                                             ; preds = %1245
  %1252 = load ptr, ptr %3, align 8, !tbaa !5
  %1253 = getelementptr inbounds %struct.ImGuiContext, ptr %1252, i32 0, i32 2
  %1254 = getelementptr inbounds %struct.ImGuiIO, ptr %1253, i32 0, i32 5
  %1255 = load ptr, ptr %1254, align 8, !tbaa !205
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.524, ptr noundef %1255)
  br label %1257

1256:                                             ; preds = %1245
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef @.str.173, ptr noundef null)
  br label %1257

1257:                                             ; preds = %1256, %1251
  %1258 = load ptr, ptr %4, align 8, !tbaa !5
  %1259 = getelementptr inbounds %struct.ImGuiIO, ptr %1258, i32 0, i32 39
  %1260 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.525, ptr noundef %1259)
  %1261 = load ptr, ptr %3, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.ImGuiContext, ptr %1261, i32 0, i32 243
  %1263 = load float, ptr %1262, align 4, !tbaa !206
  %1264 = fpext float %1263 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.526, double noundef %1264)
  %1265 = load ptr, ptr %3, align 8, !tbaa !5
  %1266 = getelementptr inbounds %struct.ImGuiContext, ptr %1265, i32 0, i32 245
  %1267 = getelementptr inbounds %struct.ImVector.32, ptr %1266, i32 0, i32 0
  %1268 = load i32, ptr %1267, align 8, !tbaa !207
  %1269 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.527, ptr noundef @.str.528, i32 noundef %1268)
  br i1 %1269, label %1270, label %1291

1270:                                             ; preds = %1257
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #10
  %1271 = load ptr, ptr %3, align 8, !tbaa !5
  %1272 = getelementptr inbounds %struct.ImGuiContext, ptr %1271, i32 0, i32 245
  store ptr %1272, ptr %78, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #10
  %1273 = load ptr, ptr %78, align 8, !tbaa !5
  %1274 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1273)
  store ptr %1274, ptr %79, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #10
  %1275 = load ptr, ptr %78, align 8, !tbaa !5
  %1276 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %1275)
  store ptr %1276, ptr %80, align 8, !tbaa !5
  br label %1277

1277:                                             ; preds = %1287, %1270
  %1278 = load ptr, ptr %79, align 8, !tbaa !5
  %1279 = load ptr, ptr %80, align 8, !tbaa !5
  %1280 = icmp ne ptr %1278, %1279
  br i1 %1280, label %1282, label %1281

1281:                                             ; preds = %1277
  store i32 40, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  br label %1290

1282:                                             ; preds = %1277
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #10
  %1283 = load ptr, ptr %79, align 8, !tbaa !5
  store ptr %1283, ptr %81, align 8, !tbaa !5
  %1284 = load ptr, ptr %81, align 8, !tbaa !5
  %1285 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %1284, i32 0, i32 0
  %1286 = load ptr, ptr %1285, align 8, !tbaa !208
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.524, ptr noundef %1286)
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #10
  br label %1287

1287:                                             ; preds = %1282
  %1288 = load ptr, ptr %79, align 8, !tbaa !5
  %1289 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %1288, i32 1
  store ptr %1289, ptr %79, align 8, !tbaa !5
  br label %1277

1290:                                             ; preds = %1281
  call void @_ZN5ImGui7TreePopEv()
  br label %1291

1291:                                             ; preds = %1290, %1257
  %1292 = load ptr, ptr %3, align 8, !tbaa !5
  %1293 = getelementptr inbounds %struct.ImGuiContext, ptr %1292, i32 0, i32 246
  %1294 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1293)
  %1295 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.529, ptr noundef @.str.530, i32 noundef %1294)
  br i1 %1295, label %1296, label %1312

1296:                                             ; preds = %1291
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #10
  %1297 = load ptr, ptr %3, align 8, !tbaa !5
  %1298 = getelementptr inbounds %struct.ImGuiContext, ptr %1297, i32 0, i32 246
  %1299 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1298)
  store ptr %1299, ptr %82, align 8, !tbaa !5
  br label %1300

1300:                                             ; preds = %1306, %1296
  %1301 = load ptr, ptr %82, align 8, !tbaa !5
  %1302 = icmp ne ptr %1301, null
  br i1 %1302, label %1304, label %1303

1303:                                             ; preds = %1300
  store i32 42, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #10
  br label %1311

1304:                                             ; preds = %1300
  %1305 = load ptr, ptr %82, align 8, !tbaa !5
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef %1305)
  br label %1306

1306:                                             ; preds = %1304
  %1307 = load ptr, ptr %3, align 8, !tbaa !5
  %1308 = getelementptr inbounds %struct.ImGuiContext, ptr %1307, i32 0, i32 246
  %1309 = load ptr, ptr %82, align 8, !tbaa !5
  %1310 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %1308, ptr noundef %1309)
  store ptr %1310, ptr %82, align 8, !tbaa !5
  br label %1300, !llvm.loop !210

1311:                                             ; preds = %1303
  call void @_ZN5ImGui7TreePopEv()
  br label %1312

1312:                                             ; preds = %1311, %1291
  %1313 = load ptr, ptr %3, align 8, !tbaa !5
  %1314 = getelementptr inbounds %struct.ImGuiContext, ptr %1313, i32 0, i32 247
  %1315 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1314)
  %1316 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.531, ptr noundef @.str.532, i32 noundef %1315)
  br i1 %1316, label %1317, label %1333

1317:                                             ; preds = %1312
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  %1318 = load ptr, ptr %3, align 8, !tbaa !5
  %1319 = getelementptr inbounds %struct.ImGuiContext, ptr %1318, i32 0, i32 247
  %1320 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1319)
  store ptr %1320, ptr %83, align 8, !tbaa !5
  br label %1321

1321:                                             ; preds = %1327, %1317
  %1322 = load ptr, ptr %83, align 8, !tbaa !5
  %1323 = icmp ne ptr %1322, null
  br i1 %1323, label %1325, label %1324

1324:                                             ; preds = %1321
  store i32 45, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  br label %1332

1325:                                             ; preds = %1321
  %1326 = load ptr, ptr %83, align 8, !tbaa !5
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef %1326)
  br label %1327

1327:                                             ; preds = %1325
  %1328 = load ptr, ptr %3, align 8, !tbaa !5
  %1329 = getelementptr inbounds %struct.ImGuiContext, ptr %1328, i32 0, i32 247
  %1330 = load ptr, ptr %83, align 8, !tbaa !5
  %1331 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %1329, ptr noundef %1330)
  store ptr %1331, ptr %83, align 8, !tbaa !5
  br label %1321, !llvm.loop !211

1332:                                             ; preds = %1324
  call void @_ZN5ImGui7TreePopEv()
  br label %1333

1333:                                             ; preds = %1332, %1312
  %1334 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.533, ptr noundef @.str.534)
  br i1 %1334, label %1335, label %1434

1335:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #10
  %1336 = load ptr, ptr %3, align 8, !tbaa !5
  %1337 = getelementptr inbounds %struct.ImGuiContext, ptr %1336, i32 0, i32 240
  store ptr %1337, ptr %84, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.535)
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  %1338 = load ptr, ptr %3, align 8, !tbaa !5
  %1339 = getelementptr inbounds %struct.ImGuiContext, ptr %1338, i32 0, i32 246
  %1340 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1339)
  store ptr %1340, ptr %85, align 8, !tbaa !5
  br label %1341

1341:                                             ; preds = %1361, %1335
  %1342 = load ptr, ptr %85, align 8, !tbaa !5
  %1343 = icmp ne ptr %1342, null
  br i1 %1343, label %1345, label %1344

1344:                                             ; preds = %1341
  store i32 48, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  br label %1366

1345:                                             ; preds = %1341
  %1346 = load ptr, ptr %85, align 8, !tbaa !5
  %1347 = getelementptr inbounds %struct.ImGuiWindowSettings, ptr %1346, i32 0, i32 5
  %1348 = load i32, ptr %1347, align 4, !tbaa !212
  %1349 = icmp ne i32 %1348, 0
  br i1 %1349, label %1350, label %1360

1350:                                             ; preds = %1345
  %1351 = load ptr, ptr %85, align 8, !tbaa !5
  %1352 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(34) %1351)
  %1353 = load ptr, ptr %85, align 8, !tbaa !5
  %1354 = getelementptr inbounds %struct.ImGuiWindowSettings, ptr %1353, i32 0, i32 5
  %1355 = load i32, ptr %1354, align 4, !tbaa !212
  %1356 = load ptr, ptr %85, align 8, !tbaa !5
  %1357 = getelementptr inbounds %struct.ImGuiWindowSettings, ptr %1356, i32 0, i32 7
  %1358 = load i16, ptr %1357, align 4, !tbaa !214
  %1359 = sext i16 %1358 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.536, ptr noundef %1352, i32 noundef %1355, i32 noundef %1359)
  br label %1360

1360:                                             ; preds = %1350, %1345
  br label %1361

1361:                                             ; preds = %1360
  %1362 = load ptr, ptr %3, align 8, !tbaa !5
  %1363 = getelementptr inbounds %struct.ImGuiContext, ptr %1362, i32 0, i32 246
  %1364 = load ptr, ptr %85, align 8, !tbaa !5
  %1365 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %1363, ptr noundef %1364)
  store ptr %1365, ptr %85, align 8, !tbaa !5
  br label %1341, !llvm.loop !215

1366:                                             ; preds = %1344
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.537)
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  store i32 0, ptr %86, align 4, !tbaa !124
  br label %1367

1367:                                             ; preds = %1430, %1366
  %1368 = load i32, ptr %86, align 4, !tbaa !124
  %1369 = load ptr, ptr %84, align 8, !tbaa !5
  %1370 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1369, i32 0, i32 2
  %1371 = getelementptr inbounds %struct.ImVector.31, ptr %1370, i32 0, i32 0
  %1372 = load i32, ptr %1371, align 8, !tbaa !216
  %1373 = icmp slt i32 %1368, %1372
  br i1 %1373, label %1375, label %1374

1374:                                             ; preds = %1367
  store i32 51, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  br label %1433

1375:                                             ; preds = %1367
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #10
  %1376 = load ptr, ptr %84, align 8, !tbaa !5
  %1377 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1376, i32 0, i32 2
  %1378 = load i32, ptr %86, align 4, !tbaa !124
  %1379 = call noundef nonnull align 4 dereferenceable(36) ptr @_ZN8ImVectorI21ImGuiDockNodeSettingsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1377, i32 noundef %1378)
  store ptr %1379, ptr %87, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #10
  store ptr null, ptr %88, align 8, !tbaa !5
  %1380 = load ptr, ptr %87, align 8, !tbaa !5
  %1381 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1380, i32 0, i32 3
  %1382 = load i32, ptr %1381, align 4, !tbaa !217
  %1383 = icmp ne i32 %1382, 0
  br i1 %1383, label %1384, label %1407

1384:                                             ; preds = %1375
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #10
  %1385 = load ptr, ptr %87, align 8, !tbaa !5
  %1386 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1385, i32 0, i32 3
  %1387 = load i32, ptr %1386, align 4, !tbaa !217
  %1388 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %1387)
  store ptr %1388, ptr %89, align 8, !tbaa !5
  %1389 = load ptr, ptr %89, align 8, !tbaa !5
  %1390 = icmp ne ptr %1389, null
  br i1 %1390, label %1391, label %1395

1391:                                             ; preds = %1384
  %1392 = load ptr, ptr %89, align 8, !tbaa !5
  %1393 = getelementptr inbounds %struct.ImGuiWindow, ptr %1392, i32 0, i32 1
  %1394 = load ptr, ptr %1393, align 8, !tbaa !123
  store ptr %1394, ptr %88, align 8, !tbaa !5
  br label %1406

1395:                                             ; preds = %1384
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #10
  %1396 = load ptr, ptr %87, align 8, !tbaa !5
  %1397 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1396, i32 0, i32 3
  %1398 = load i32, ptr %1397, align 4, !tbaa !217
  %1399 = call noundef ptr @_ZN5ImGui22FindWindowSettingsByIDEj(i32 noundef %1398)
  store ptr %1399, ptr %90, align 8, !tbaa !5
  %1400 = load ptr, ptr %90, align 8, !tbaa !5
  %1401 = icmp ne ptr %1400, null
  br i1 %1401, label %1402, label %1405

1402:                                             ; preds = %1395
  %1403 = load ptr, ptr %90, align 8, !tbaa !5
  %1404 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(34) %1403)
  store ptr %1404, ptr %88, align 8, !tbaa !5
  br label %1405

1405:                                             ; preds = %1402, %1395
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #10
  br label %1406

1406:                                             ; preds = %1405, %1391
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #10
  br label %1407

1407:                                             ; preds = %1406, %1375
  %1408 = load ptr, ptr %87, align 8, !tbaa !5
  %1409 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1408, i32 0, i32 0
  %1410 = load i32, ptr %1409, align 4, !tbaa !219
  %1411 = load ptr, ptr %87, align 8, !tbaa !5
  %1412 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1411, i32 0, i32 1
  %1413 = load i32, ptr %1412, align 4, !tbaa !220
  %1414 = load ptr, ptr %87, align 8, !tbaa !5
  %1415 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1414, i32 0, i32 3
  %1416 = load i32, ptr %1415, align 4, !tbaa !217
  %1417 = load ptr, ptr %88, align 8, !tbaa !5
  %1418 = icmp ne ptr %1417, null
  br i1 %1418, label %1419, label %1421

1419:                                             ; preds = %1407
  %1420 = load ptr, ptr %88, align 8, !tbaa !5
  br label %1428

1421:                                             ; preds = %1407
  %1422 = load ptr, ptr %87, align 8, !tbaa !5
  %1423 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1422, i32 0, i32 3
  %1424 = load i32, ptr %1423, align 4, !tbaa !217
  %1425 = icmp ne i32 %1424, 0
  %1426 = zext i1 %1425 to i64
  %1427 = select i1 %1425, ptr @.str.200, ptr @.str.17
  br label %1428

1428:                                             ; preds = %1421, %1419
  %1429 = phi ptr [ %1420, %1419 ], [ %1427, %1421 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.538, i32 noundef %1410, i32 noundef %1413, i32 noundef %1416, ptr noundef %1429)
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  br label %1430

1430:                                             ; preds = %1428
  %1431 = load i32, ptr %86, align 4, !tbaa !124
  %1432 = add nsw i32 %1431, 1
  store i32 %1432, ptr %86, align 4, !tbaa !124
  br label %1367, !llvm.loop !221

1433:                                             ; preds = %1374
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #10
  br label %1434

1434:                                             ; preds = %1433, %1333
  %1435 = load ptr, ptr %3, align 8, !tbaa !5
  %1436 = getelementptr inbounds %struct.ImGuiContext, ptr %1435, i32 0, i32 244
  %1437 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1436)
  %1438 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.539, ptr noundef @.str.540, i32 noundef %1437)
  br i1 %1438, label %1439, label %1452

1439:                                             ; preds = %1434
  %1440 = load ptr, ptr %3, align 8, !tbaa !5
  %1441 = getelementptr inbounds %struct.ImGuiContext, ptr %1440, i32 0, i32 244
  %1442 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %1441)
  %1443 = load ptr, ptr %3, align 8, !tbaa !5
  %1444 = getelementptr inbounds %struct.ImGuiContext, ptr %1443, i32 0, i32 244
  %1445 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %1444, i32 0, i32 0
  %1446 = getelementptr inbounds %struct.ImVector.27, ptr %1445, i32 0, i32 0
  %1447 = load i32, ptr %1446, align 8, !tbaa !222
  %1448 = sext i32 %1447 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #10
  %1449 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %1450 = fmul float %1449, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %91, float noundef 0xB810000000000000, float noundef %1450)
  %1451 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.541, ptr noundef %1442, i64 noundef %1448, ptr noundef nonnull align 4 dereferenceable(8) %91, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #10
  call void @_ZN5ImGui7TreePopEv()
  br label %1452

1452:                                             ; preds = %1439, %1434
  call void @_ZN5ImGui7TreePopEv()
  br label %1453

1453:                                             ; preds = %1452, %1229
  %1454 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.542)
  br i1 %1454, label %1455, label %1519

1455:                                             ; preds = %1453
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #10
  %1456 = load ptr, ptr %3, align 8, !tbaa !5
  %1457 = getelementptr inbounds %struct.ImGuiContext, ptr %1456, i32 0, i32 278
  store ptr %1457, ptr %92, align 8, !tbaa !5
  %1458 = load ptr, ptr %92, align 8, !tbaa !5
  %1459 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1458, i32 0, i32 0
  %1460 = load i32, ptr %1459, align 4, !tbaa !223
  %1461 = load ptr, ptr %92, align 8, !tbaa !5
  %1462 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1461, i32 0, i32 1
  %1463 = load i32, ptr %1462, align 4, !tbaa !224
  %1464 = sub nsw i32 %1460, %1463
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.543, i32 noundef %1464)
  %1465 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.544)
  br i1 %1465, label %1466, label %1469

1466:                                             ; preds = %1455
  %1467 = load ptr, ptr %3, align 8, !tbaa !5
  %1468 = getelementptr inbounds %struct.ImGuiContext, ptr %1467, i32 0, i32 19
  store i8 1, ptr %1468, align 1, !tbaa !225
  br label %1469

1469:                                             ; preds = %1466, %1455
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.545)
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #10
  store i32 6, ptr %93, align 4, !tbaa !124
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #10
  %1470 = load i32, ptr %93, align 4, !tbaa !124
  %1471 = sub nsw i32 %1470, 1
  store i32 %1471, ptr %94, align 4, !tbaa !124
  br label %1472

1472:                                             ; preds = %1515, %1469
  %1473 = load i32, ptr %94, align 4, !tbaa !124
  %1474 = icmp sge i32 %1473, 0
  br i1 %1474, label %1476, label %1475

1475:                                             ; preds = %1472
  store i32 54, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  br label %1518

1476:                                             ; preds = %1472
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #10
  %1477 = load ptr, ptr %92, align 8, !tbaa !5
  %1478 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1477, i32 0, i32 3
  %1479 = load ptr, ptr %92, align 8, !tbaa !5
  %1480 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1479, i32 0, i32 2
  %1481 = load i16, ptr %1480, align 4, !tbaa !226
  %1482 = sext i16 %1481 to i32
  %1483 = load i32, ptr %94, align 4, !tbaa !124
  %1484 = sub nsw i32 %1482, %1483
  %1485 = load i32, ptr %93, align 4, !tbaa !124
  %1486 = add nsw i32 %1484, %1485
  %1487 = load i32, ptr %93, align 4, !tbaa !124
  %1488 = srem i32 %1486, %1487
  %1489 = sext i32 %1488 to i64
  %1490 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %1478, i64 0, i64 %1489
  store ptr %1490, ptr %95, align 8, !tbaa !5
  %1491 = load ptr, ptr %95, align 8, !tbaa !5
  %1492 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1491, i32 0, i32 0
  %1493 = load i32, ptr %1492, align 4, !tbaa !227
  %1494 = load ptr, ptr %95, align 8, !tbaa !5
  %1495 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1494, i32 0, i32 1
  %1496 = load i16, ptr %1495, align 4, !tbaa !229
  %1497 = sext i16 %1496 to i32
  %1498 = load ptr, ptr %95, align 8, !tbaa !5
  %1499 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1498, i32 0, i32 2
  %1500 = load i16, ptr %1499, align 2, !tbaa !230
  %1501 = sext i16 %1500 to i32
  %1502 = sub nsw i32 %1497, %1501
  %1503 = load ptr, ptr %95, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1503, i32 0, i32 1
  %1505 = load i16, ptr %1504, align 4, !tbaa !229
  %1506 = sext i16 %1505 to i32
  %1507 = load ptr, ptr %95, align 8, !tbaa !5
  %1508 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1507, i32 0, i32 2
  %1509 = load i16, ptr %1508, align 2, !tbaa !230
  %1510 = sext i16 %1509 to i32
  %1511 = load i32, ptr %94, align 4, !tbaa !124
  %1512 = icmp eq i32 %1511, 0
  %1513 = zext i1 %1512 to i64
  %1514 = select i1 %1512, ptr @.str.547, ptr @.str.17
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.546, i32 noundef %1493, i32 noundef %1502, i32 noundef %1506, i32 noundef %1510, ptr noundef %1514)
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #10
  br label %1515

1515:                                             ; preds = %1476
  %1516 = load i32, ptr %94, align 4, !tbaa !124
  %1517 = add nsw i32 %1516, -1
  store i32 %1517, ptr %94, align 4, !tbaa !124
  br label %1472, !llvm.loop !231

1518:                                             ; preds = %1475
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #10
  br label %1519

1519:                                             ; preds = %1518, %1453
  %1520 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.548)
  br i1 %1520, label %1521, label %1930

1521:                                             ; preds = %1519
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.549)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.550)
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #10
  store i32 0, ptr %96, align 4, !tbaa !232
  br label %1522

1522:                                             ; preds = %1546, %1521
  %1523 = load i32, ptr %96, align 4, !tbaa !232
  %1524 = icmp slt i32 %1523, 666
  br i1 %1524, label %1526, label %1525

1525:                                             ; preds = %1522
  store i32 57, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  br label %1549

1526:                                             ; preds = %1522
  %1527 = load i32, ptr %96, align 4, !tbaa !232
  %1528 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1527)
  br i1 %1528, label %1532, label %1529

1529:                                             ; preds = %1526
  %1530 = load i32, ptr %96, align 4, !tbaa !232
  %1531 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %1530)
  br i1 %1531, label %1533, label %1532

1532:                                             ; preds = %1529, %1526
  br label %1546

1533:                                             ; preds = %1529
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1534 = load i32, ptr %96, align 4, !tbaa !232
  %1535 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1534)
  %1536 = zext i1 %1535 to i64
  %1537 = select i1 %1535, ptr @.str.524, ptr @.str.551
  %1538 = load i32, ptr %96, align 4, !tbaa !232
  %1539 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1538)
  %1540 = load i32, ptr %96, align 4, !tbaa !232
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1537, ptr noundef %1539, i32 noundef %1540)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1541 = load i32, ptr %96, align 4, !tbaa !232
  %1542 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %1541)
  %1543 = getelementptr inbounds %struct.ImGuiKeyData, ptr %1542, i32 0, i32 1
  %1544 = load float, ptr %1543, align 4, !tbaa !234
  %1545 = fpext float %1544 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.552, double noundef %1545)
  br label %1546

1546:                                             ; preds = %1533, %1532
  %1547 = load i32, ptr %96, align 4, !tbaa !232
  %1548 = add nsw i32 %1547, 1
  store i32 %1548, ptr %96, align 4, !tbaa !232
  br label %1522, !llvm.loop !236

1549:                                             ; preds = %1525
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.553)
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #10
  store i32 0, ptr %97, align 4, !tbaa !232
  br label %1550

1550:                                             ; preds = %1569, %1549
  %1551 = load i32, ptr %97, align 4, !tbaa !232
  %1552 = icmp slt i32 %1551, 666
  br i1 %1552, label %1554, label %1553

1553:                                             ; preds = %1550
  store i32 60, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #10
  br label %1572

1554:                                             ; preds = %1550
  %1555 = load i32, ptr %97, align 4, !tbaa !232
  %1556 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1555)
  br i1 %1556, label %1560, label %1557

1557:                                             ; preds = %1554
  %1558 = load i32, ptr %97, align 4, !tbaa !232
  %1559 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %1558, i1 noundef zeroext true)
  br i1 %1559, label %1561, label %1560

1560:                                             ; preds = %1557, %1554
  br label %1569

1561:                                             ; preds = %1557
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1562 = load i32, ptr %97, align 4, !tbaa !232
  %1563 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1562)
  %1564 = zext i1 %1563 to i64
  %1565 = select i1 %1563, ptr @.str.524, ptr @.str.551
  %1566 = load i32, ptr %97, align 4, !tbaa !232
  %1567 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1566)
  %1568 = load i32, ptr %97, align 4, !tbaa !232
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1565, ptr noundef %1567, i32 noundef %1568)
  br label %1569

1569:                                             ; preds = %1561, %1560
  %1570 = load i32, ptr %97, align 4, !tbaa !232
  %1571 = add nsw i32 %1570, 1
  store i32 %1571, ptr %97, align 4, !tbaa !232
  br label %1550, !llvm.loop !237

1572:                                             ; preds = %1553
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.554)
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #10
  store i32 0, ptr %98, align 4, !tbaa !232
  br label %1573

1573:                                             ; preds = %1592, %1572
  %1574 = load i32, ptr %98, align 4, !tbaa !232
  %1575 = icmp slt i32 %1574, 666
  br i1 %1575, label %1577, label %1576

1576:                                             ; preds = %1573
  store i32 63, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #10
  br label %1595

1577:                                             ; preds = %1573
  %1578 = load i32, ptr %98, align 4, !tbaa !232
  %1579 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1578)
  br i1 %1579, label %1583, label %1580

1580:                                             ; preds = %1577
  %1581 = load i32, ptr %98, align 4, !tbaa !232
  %1582 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %1581)
  br i1 %1582, label %1584, label %1583

1583:                                             ; preds = %1580, %1577
  br label %1592

1584:                                             ; preds = %1580
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1585 = load i32, ptr %98, align 4, !tbaa !232
  %1586 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1585)
  %1587 = zext i1 %1586 to i64
  %1588 = select i1 %1586, ptr @.str.524, ptr @.str.551
  %1589 = load i32, ptr %98, align 4, !tbaa !232
  %1590 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1589)
  %1591 = load i32, ptr %98, align 4, !tbaa !232
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1588, ptr noundef %1590, i32 noundef %1591)
  br label %1592

1592:                                             ; preds = %1584, %1583
  %1593 = load i32, ptr %98, align 4, !tbaa !232
  %1594 = add nsw i32 %1593, 1
  store i32 %1594, ptr %98, align 4, !tbaa !232
  br label %1573, !llvm.loop !238

1595:                                             ; preds = %1576
  %1596 = load ptr, ptr %4, align 8, !tbaa !5
  %1597 = getelementptr inbounds %struct.ImGuiIO, ptr %1596, i32 0, i32 73
  %1598 = load i8, ptr %1597, align 8, !tbaa !239, !range !13, !noundef !14
  %1599 = trunc i8 %1598 to i1
  %1600 = zext i1 %1599 to i64
  %1601 = select i1 %1599, ptr @.str.556, ptr @.str.17
  %1602 = load ptr, ptr %4, align 8, !tbaa !5
  %1603 = getelementptr inbounds %struct.ImGuiIO, ptr %1602, i32 0, i32 74
  %1604 = load i8, ptr %1603, align 1, !tbaa !240, !range !13, !noundef !14
  %1605 = trunc i8 %1604 to i1
  %1606 = zext i1 %1605 to i64
  %1607 = select i1 %1605, ptr @.str.557, ptr @.str.17
  %1608 = load ptr, ptr %4, align 8, !tbaa !5
  %1609 = getelementptr inbounds %struct.ImGuiIO, ptr %1608, i32 0, i32 75
  %1610 = load i8, ptr %1609, align 2, !tbaa !241, !range !13, !noundef !14
  %1611 = trunc i8 %1610 to i1
  %1612 = zext i1 %1611 to i64
  %1613 = select i1 %1611, ptr @.str.558, ptr @.str.17
  %1614 = load ptr, ptr %4, align 8, !tbaa !5
  %1615 = getelementptr inbounds %struct.ImGuiIO, ptr %1614, i32 0, i32 76
  %1616 = load i8, ptr %1615, align 1, !tbaa !242, !range !13, !noundef !14
  %1617 = trunc i8 %1616 to i1
  %1618 = zext i1 %1617 to i64
  %1619 = select i1 %1617, ptr @.str.559, ptr @.str.17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.555, ptr noundef %1601, ptr noundef %1607, ptr noundef %1613, ptr noundef %1619)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.560)
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #10
  store i32 0, ptr %99, align 4, !tbaa !124
  br label %1620

1620:                                             ; preds = %1650, %1595
  %1621 = load i32, ptr %99, align 4, !tbaa !124
  %1622 = load ptr, ptr %4, align 8, !tbaa !5
  %1623 = getelementptr inbounds %struct.ImGuiIO, ptr %1622, i32 0, i32 101
  %1624 = getelementptr inbounds %struct.ImVector, ptr %1623, i32 0, i32 0
  %1625 = load i32, ptr %1624, align 8, !tbaa !243
  %1626 = icmp slt i32 %1621, %1625
  br i1 %1626, label %1628, label %1627

1627:                                             ; preds = %1620
  store i32 66, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #10
  br label %1653

1628:                                             ; preds = %1620
  call void @llvm.lifetime.start.p0(i64 2, ptr %100) #10
  %1629 = load ptr, ptr %4, align 8, !tbaa !5
  %1630 = getelementptr inbounds %struct.ImGuiIO, ptr %1629, i32 0, i32 101
  %1631 = load i32, ptr %99, align 4, !tbaa !124
  %1632 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1630, i32 noundef %1631)
  %1633 = load i16, ptr %1632, align 2, !tbaa !244
  store i16 %1633, ptr %100, align 2, !tbaa !244
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1634 = load i16, ptr %100, align 2, !tbaa !244
  %1635 = zext i16 %1634 to i32
  %1636 = icmp sgt i32 %1635, 32
  br i1 %1636, label %1637, label %1644

1637:                                             ; preds = %1628
  %1638 = load i16, ptr %100, align 2, !tbaa !244
  %1639 = zext i16 %1638 to i32
  %1640 = icmp sle i32 %1639, 255
  br i1 %1640, label %1641, label %1644

1641:                                             ; preds = %1637
  %1642 = load i16, ptr %100, align 2, !tbaa !244
  %1643 = trunc i16 %1642 to i8
  br label %1645

1644:                                             ; preds = %1637, %1628
  br label %1645

1645:                                             ; preds = %1644, %1641
  %1646 = phi i8 [ %1643, %1641 ], [ 63, %1644 ]
  %1647 = sext i8 %1646 to i32
  %1648 = load i16, ptr %100, align 2, !tbaa !244
  %1649 = zext i16 %1648 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.561, i32 noundef %1647, i32 noundef %1649)
  call void @llvm.lifetime.end.p0(i64 2, ptr %100) #10
  br label %1650

1650:                                             ; preds = %1645
  %1651 = load i32, ptr %99, align 4, !tbaa !124
  %1652 = add nsw i32 %1651, 1
  store i32 %1652, ptr %99, align 4, !tbaa !124
  br label %1620, !llvm.loop !245

1653:                                             ; preds = %1627
  %1654 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %1654)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.562)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1655 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %1655, label %1656, label %1667

1656:                                             ; preds = %1653
  %1657 = load ptr, ptr %4, align 8, !tbaa !5
  %1658 = getelementptr inbounds %struct.ImGuiIO, ptr %1657, i32 0, i32 67
  %1659 = getelementptr inbounds %struct.ImVec2, ptr %1658, i32 0, i32 0
  %1660 = load float, ptr %1659, align 8, !tbaa !246
  %1661 = fpext float %1660 to double
  %1662 = load ptr, ptr %4, align 8, !tbaa !5
  %1663 = getelementptr inbounds %struct.ImGuiIO, ptr %1662, i32 0, i32 67
  %1664 = getelementptr inbounds %struct.ImVec2, ptr %1663, i32 0, i32 1
  %1665 = load float, ptr %1664, align 4, !tbaa !247
  %1666 = fpext float %1665 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.563, double noundef %1661, double noundef %1666)
  br label %1668

1667:                                             ; preds = %1653
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.564)
  br label %1668

1668:                                             ; preds = %1667, %1656
  %1669 = load ptr, ptr %4, align 8, !tbaa !5
  %1670 = getelementptr inbounds %struct.ImGuiIO, ptr %1669, i32 0, i32 62
  %1671 = getelementptr inbounds %struct.ImVec2, ptr %1670, i32 0, i32 0
  %1672 = load float, ptr %1671, align 8, !tbaa !248
  %1673 = fpext float %1672 to double
  %1674 = load ptr, ptr %4, align 8, !tbaa !5
  %1675 = getelementptr inbounds %struct.ImGuiIO, ptr %1674, i32 0, i32 62
  %1676 = getelementptr inbounds %struct.ImVec2, ptr %1675, i32 0, i32 1
  %1677 = load float, ptr %1676, align 4, !tbaa !249
  %1678 = fpext float %1677 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.565, double noundef %1673, double noundef %1678)
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #10
  store i32 5, ptr %101, align 4, !tbaa !124
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.566)
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  store i32 0, ptr %102, align 4, !tbaa !124
  br label %1679

1679:                                             ; preds = %1697, %1668
  %1680 = load i32, ptr %102, align 4, !tbaa !124
  %1681 = load i32, ptr %101, align 4, !tbaa !124
  %1682 = icmp slt i32 %1680, %1681
  br i1 %1682, label %1684, label %1683

1683:                                             ; preds = %1679
  store i32 69, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %1700

1684:                                             ; preds = %1679
  %1685 = load i32, ptr %102, align 4, !tbaa !124
  %1686 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef %1685)
  br i1 %1686, label %1687, label %1696

1687:                                             ; preds = %1684
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1688 = load i32, ptr %102, align 4, !tbaa !124
  %1689 = load ptr, ptr %4, align 8, !tbaa !5
  %1690 = getelementptr inbounds %struct.ImGuiIO, ptr %1689, i32 0, i32 91
  %1691 = load i32, ptr %102, align 4, !tbaa !124
  %1692 = sext i32 %1691 to i64
  %1693 = getelementptr inbounds [5 x float], ptr %1690, i64 0, i64 %1692
  %1694 = load float, ptr %1693, align 4, !tbaa !250
  %1695 = fpext float %1694 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.567, i32 noundef %1688, double noundef %1695)
  br label %1696

1696:                                             ; preds = %1687, %1684
  br label %1697

1697:                                             ; preds = %1696
  %1698 = load i32, ptr %102, align 4, !tbaa !124
  %1699 = add nsw i32 %1698, 1
  store i32 %1699, ptr %102, align 4, !tbaa !124
  br label %1679, !llvm.loop !251

1700:                                             ; preds = %1683
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.568)
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #10
  store i32 0, ptr %103, align 4, !tbaa !124
  br label %1701

1701:                                             ; preds = %1719, %1700
  %1702 = load i32, ptr %103, align 4, !tbaa !124
  %1703 = load i32, ptr %101, align 4, !tbaa !124
  %1704 = icmp slt i32 %1702, %1703
  br i1 %1704, label %1706, label %1705

1705:                                             ; preds = %1701
  store i32 72, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #10
  br label %1722

1706:                                             ; preds = %1701
  %1707 = load i32, ptr %103, align 4, !tbaa !124
  %1708 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef %1707, i1 noundef zeroext false)
  br i1 %1708, label %1709, label %1718

1709:                                             ; preds = %1706
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1710 = load i32, ptr %103, align 4, !tbaa !124
  %1711 = load ptr, ptr %4, align 8, !tbaa !5
  %1712 = getelementptr inbounds %struct.ImGuiIO, ptr %1711, i32 0, i32 85
  %1713 = load i32, ptr %103, align 4, !tbaa !124
  %1714 = sext i32 %1713 to i64
  %1715 = getelementptr inbounds [5 x i16], ptr %1712, i64 0, i64 %1714
  %1716 = load i16, ptr %1715, align 2, !tbaa !244
  %1717 = zext i16 %1716 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.569, i32 noundef %1710, i32 noundef %1717)
  br label %1718

1718:                                             ; preds = %1709, %1706
  br label %1719

1719:                                             ; preds = %1718
  %1720 = load i32, ptr %103, align 4, !tbaa !124
  %1721 = add nsw i32 %1720, 1
  store i32 %1721, ptr %103, align 4, !tbaa !124
  br label %1701, !llvm.loop !252

1722:                                             ; preds = %1705
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.570)
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #10
  store i32 0, ptr %104, align 4, !tbaa !124
  br label %1723

1723:                                             ; preds = %1734, %1722
  %1724 = load i32, ptr %104, align 4, !tbaa !124
  %1725 = load i32, ptr %101, align 4, !tbaa !124
  %1726 = icmp slt i32 %1724, %1725
  br i1 %1726, label %1728, label %1727

1727:                                             ; preds = %1723
  store i32 75, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  br label %1737

1728:                                             ; preds = %1723
  %1729 = load i32, ptr %104, align 4, !tbaa !124
  %1730 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef %1729)
  br i1 %1730, label %1731, label %1733

1731:                                             ; preds = %1728
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1732 = load i32, ptr %104, align 4, !tbaa !124
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.571, i32 noundef %1732)
  br label %1733

1733:                                             ; preds = %1731, %1728
  br label %1734

1734:                                             ; preds = %1733
  %1735 = load i32, ptr %104, align 4, !tbaa !124
  %1736 = add nsw i32 %1735, 1
  store i32 %1736, ptr %104, align 4, !tbaa !124
  br label %1723, !llvm.loop !253

1737:                                             ; preds = %1727
  %1738 = load ptr, ptr %4, align 8, !tbaa !5
  %1739 = getelementptr inbounds %struct.ImGuiIO, ptr %1738, i32 0, i32 69
  %1740 = load float, ptr %1739, align 8, !tbaa !254
  %1741 = fpext float %1740 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.572, double noundef %1741)
  %1742 = load ptr, ptr %3, align 8, !tbaa !5
  %1743 = getelementptr inbounds %struct.ImGuiContext, ptr %1742, i32 0, i32 206
  %1744 = load float, ptr %1743, align 4, !tbaa !255
  %1745 = fpext float %1744 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.573, double noundef %1745)
  %1746 = load ptr, ptr %4, align 8, !tbaa !5
  %1747 = getelementptr inbounds %struct.ImGuiIO, ptr %1746, i32 0, i32 71
  %1748 = load i32, ptr %1747, align 8, !tbaa !256
  %1749 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %1748)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.574, ptr noundef %1749)
  %1750 = load ptr, ptr %4, align 8, !tbaa !5
  %1751 = getelementptr inbounds %struct.ImGuiIO, ptr %1750, i32 0, i32 95
  %1752 = load float, ptr %1751, align 4, !tbaa !257
  %1753 = fpext float %1752 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.575, double noundef %1753)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.576)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1754 = load ptr, ptr %3, align 8, !tbaa !5
  %1755 = getelementptr inbounds %struct.ImGuiContext, ptr %1754, i32 0, i32 38
  %1756 = load ptr, ptr %1755, align 8, !tbaa !258
  %1757 = icmp ne ptr %1756, null
  br i1 %1757, label %1758, label %1764

1758:                                             ; preds = %1737
  %1759 = load ptr, ptr %3, align 8, !tbaa !5
  %1760 = getelementptr inbounds %struct.ImGuiContext, ptr %1759, i32 0, i32 38
  %1761 = load ptr, ptr %1760, align 8, !tbaa !258
  %1762 = getelementptr inbounds %struct.ImGuiWindow, ptr %1761, i32 0, i32 1
  %1763 = load ptr, ptr %1762, align 8, !tbaa !123
  br label %1765

1764:                                             ; preds = %1737
  br label %1765

1765:                                             ; preds = %1764, %1758
  %1766 = phi ptr [ %1763, %1758 ], [ @.str.502, %1764 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.577, ptr noundef %1766)
  %1767 = load ptr, ptr %3, align 8, !tbaa !5
  %1768 = getelementptr inbounds %struct.ImGuiContext, ptr %1767, i32 0, i32 42
  %1769 = load float, ptr %1768, align 8, !tbaa !259
  %1770 = fpext float %1769 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.578, double noundef %1770)
  %1771 = load ptr, ptr %3, align 8, !tbaa !5
  %1772 = getelementptr inbounds %struct.ImGuiContext, ptr %1771, i32 0, i32 44
  %1773 = getelementptr inbounds %struct.ImVec2, ptr %1772, i32 0, i32 0
  %1774 = load float, ptr %1773, align 4, !tbaa !260
  %1775 = fpext float %1774 to double
  %1776 = load ptr, ptr %3, align 8, !tbaa !5
  %1777 = getelementptr inbounds %struct.ImGuiContext, ptr %1776, i32 0, i32 44
  %1778 = getelementptr inbounds %struct.ImVec2, ptr %1777, i32 0, i32 1
  %1779 = load float, ptr %1778, align 4, !tbaa !261
  %1780 = fpext float %1779 to double
  %1781 = load ptr, ptr %3, align 8, !tbaa !5
  %1782 = getelementptr inbounds %struct.ImGuiContext, ptr %1781, i32 0, i32 44
  %1783 = getelementptr inbounds %struct.ImVec2, ptr %1782, i32 0, i32 0
  %1784 = load float, ptr %1783, align 4, !tbaa !260
  %1785 = load ptr, ptr %3, align 8, !tbaa !5
  %1786 = getelementptr inbounds %struct.ImGuiContext, ptr %1785, i32 0, i32 44
  %1787 = getelementptr inbounds %struct.ImVec2, ptr %1786, i32 0, i32 1
  %1788 = load float, ptr %1787, align 4, !tbaa !261
  %1789 = fcmp ogt float %1784, %1788
  br i1 %1789, label %1790, label %1791

1790:                                             ; preds = %1765
  br label %1803

1791:                                             ; preds = %1765
  %1792 = load ptr, ptr %3, align 8, !tbaa !5
  %1793 = getelementptr inbounds %struct.ImGuiContext, ptr %1792, i32 0, i32 44
  %1794 = getelementptr inbounds %struct.ImVec2, ptr %1793, i32 0, i32 0
  %1795 = load float, ptr %1794, align 4, !tbaa !260
  %1796 = load ptr, ptr %3, align 8, !tbaa !5
  %1797 = getelementptr inbounds %struct.ImGuiContext, ptr %1796, i32 0, i32 44
  %1798 = getelementptr inbounds %struct.ImVec2, ptr %1797, i32 0, i32 1
  %1799 = load float, ptr %1798, align 4, !tbaa !261
  %1800 = fcmp olt float %1795, %1799
  %1801 = zext i1 %1800 to i64
  %1802 = select i1 %1800, ptr @.str.580, ptr @.str.581
  br label %1803

1803:                                             ; preds = %1791, %1790
  %1804 = phi ptr [ @.str.412, %1790 ], [ %1802, %1791 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.579, double noundef %1775, double noundef %1780, ptr noundef %1804)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.582)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #10
  %1805 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1806 = fmul float %1805, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %105, float noundef 0xB810000000000000, float noundef %1806)
  %1807 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef @.str.583, ptr noundef nonnull align 4 dereferenceable(8) %105, i32 noundef 136, i32 noundef 256)
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #10
  br i1 %1807, label %1808, label %1852

1808:                                             ; preds = %1803
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  store i32 512, ptr %106, align 4, !tbaa !232
  br label %1809

1809:                                             ; preds = %1848, %1808
  %1810 = load i32, ptr %106, align 4, !tbaa !232
  %1811 = icmp slt i32 %1810, 666
  br i1 %1811, label %1813, label %1812

1812:                                             ; preds = %1809
  store i32 78, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #10
  br label %1851

1813:                                             ; preds = %1809
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #10
  %1814 = load ptr, ptr %3, align 8, !tbaa !5
  %1815 = load i32, ptr %106, align 4, !tbaa !232
  %1816 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %1814, i32 noundef %1815)
  store ptr %1816, ptr %107, align 8, !tbaa !5
  %1817 = load ptr, ptr %107, align 8, !tbaa !5
  %1818 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1817, i32 0, i32 0
  %1819 = load i32, ptr %1818, align 4, !tbaa !262
  %1820 = icmp eq i32 %1819, -1
  br i1 %1820, label %1821, label %1822

1821:                                             ; preds = %1813
  store i32 80, ptr %6, align 4
  br label %1845

1822:                                             ; preds = %1813
  %1823 = load i32, ptr %106, align 4, !tbaa !232
  %1824 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1823)
  %1825 = load ptr, ptr %107, align 8, !tbaa !5
  %1826 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1825, i32 0, i32 0
  %1827 = load i32, ptr %1826, align 4, !tbaa !262
  %1828 = load ptr, ptr %107, align 8, !tbaa !5
  %1829 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1828, i32 0, i32 3
  %1830 = load i8, ptr %1829, align 1, !tbaa !264, !range !13, !noundef !14
  %1831 = trunc i8 %1830 to i1
  br i1 %1831, label %1832, label %1833

1832:                                             ; preds = %1822
  br label %1840

1833:                                             ; preds = %1822
  %1834 = load ptr, ptr %107, align 8, !tbaa !5
  %1835 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1834, i32 0, i32 2
  %1836 = load i8, ptr %1835, align 4, !tbaa !265, !range !13, !noundef !14
  %1837 = trunc i8 %1836 to i1
  %1838 = zext i1 %1837 to i64
  %1839 = select i1 %1837, ptr @.str.586, ptr @.str.17
  br label %1840

1840:                                             ; preds = %1833, %1832
  %1841 = phi ptr [ @.str.585, %1832 ], [ %1839, %1833 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.584, ptr noundef %1824, i32 noundef %1827, ptr noundef %1841)
  %1842 = load ptr, ptr %107, align 8, !tbaa !5
  %1843 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1842, i32 0, i32 0
  %1844 = load i32, ptr %1843, align 4, !tbaa !262
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1844)
  store i32 0, ptr %6, align 4
  br label %1845

1845:                                             ; preds = %1840, %1821
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #10
  %1846 = load i32, ptr %6, align 4
  switch i32 %1846, label %2562 [
    i32 0, label %1847
    i32 80, label %1848
  ]

1847:                                             ; preds = %1845
  br label %1848

1848:                                             ; preds = %1847, %1845
  %1849 = load i32, ptr %106, align 4, !tbaa !232
  %1850 = add nsw i32 %1849, 1
  store i32 %1850, ptr %106, align 4, !tbaa !232
  br label %1809, !llvm.loop !266

1851:                                             ; preds = %1812
  br label %1852

1852:                                             ; preds = %1851, %1803
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.587)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.588)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #10
  %1853 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1854 = fmul float %1853, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %108, float noundef 0xB810000000000000, float noundef %1854)
  %1855 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef @.str.589, ptr noundef nonnull align 4 dereferenceable(8) %108, i32 noundef 136, i32 noundef 256)
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #10
  br i1 %1855, label %1856, label %1921

1856:                                             ; preds = %1852
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #10
  store i32 512, ptr %109, align 4, !tbaa !232
  br label %1857

1857:                                             ; preds = %1917, %1856
  %1858 = load i32, ptr %109, align 4, !tbaa !232
  %1859 = icmp slt i32 %1858, 666
  br i1 %1859, label %1861, label %1860

1860:                                             ; preds = %1857
  store i32 81, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #10
  br label %1920

1861:                                             ; preds = %1857
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #10
  %1862 = load ptr, ptr %3, align 8, !tbaa !5
  %1863 = getelementptr inbounds %struct.ImGuiContext, ptr %1862, i32 0, i32 77
  store ptr %1863, ptr %110, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %111) #10
  %1864 = load ptr, ptr %110, align 8, !tbaa !5
  %1865 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1864, i32 0, i32 0
  %1866 = load i32, ptr %109, align 4, !tbaa !232
  %1867 = sub nsw i32 %1866, 512
  %1868 = sext i32 %1867 to i64
  %1869 = getelementptr inbounds [154 x i16], ptr %1865, i64 0, i64 %1868
  %1870 = load i16, ptr %1869, align 2, !tbaa !244
  store i16 %1870, ptr %111, align 2, !tbaa !244
  br label %1871

1871:                                             ; preds = %1912, %1861
  %1872 = load i16, ptr %111, align 2, !tbaa !244
  %1873 = sext i16 %1872 to i32
  %1874 = icmp ne i32 %1873, -1
  br i1 %1874, label %1876, label %1875

1875:                                             ; preds = %1871
  store i32 84, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %111) #10
  br label %1916

1876:                                             ; preds = %1871
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #10
  %1877 = load ptr, ptr %110, align 8, !tbaa !5
  %1878 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1877, i32 0, i32 1
  %1879 = load i16, ptr %111, align 2, !tbaa !244
  %1880 = sext i16 %1879 to i32
  %1881 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1878, i32 noundef %1880)
  store ptr %1881, ptr %112, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #10
  %1882 = load i32, ptr %109, align 4, !tbaa !232
  %1883 = load ptr, ptr %112, align 8, !tbaa !5
  %1884 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1883, i32 0, i32 1
  %1885 = load i16, ptr %1884, align 2, !tbaa !267
  %1886 = zext i16 %1885 to i32
  %1887 = or i32 %1882, %1886
  store i32 %1887, ptr %113, align 4, !tbaa !124
  %1888 = load i32, ptr %113, align 4, !tbaa !124
  %1889 = call noundef ptr @_ZN5ImGui15GetKeyChordNameEi(i32 noundef %1888)
  %1890 = load ptr, ptr %112, align 8, !tbaa !5
  %1891 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1890, i32 0, i32 4
  %1892 = load i32, ptr %1891, align 4, !tbaa !269
  %1893 = load ptr, ptr %112, align 8, !tbaa !5
  %1894 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1893, i32 0, i32 2
  %1895 = load i8, ptr %1894, align 4, !tbaa !270
  %1896 = zext i8 %1895 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.590, ptr noundef %1889, i32 noundef %1892, i32 noundef %1896)
  %1897 = load ptr, ptr %112, align 8, !tbaa !5
  %1898 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1897, i32 0, i32 4
  %1899 = load i32, ptr %1898, align 4, !tbaa !269
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1899)
  %1900 = load ptr, ptr %3, align 8, !tbaa !5
  %1901 = getelementptr inbounds %struct.ImGuiContext, ptr %1900, i32 0, i32 2
  %1902 = getelementptr inbounds %struct.ImGuiIO, ptr %1901, i32 0, i32 35
  %1903 = load i8, ptr %1902, align 8, !tbaa !271, !range !13, !noundef !14
  %1904 = trunc i8 %1903 to i1
  br i1 %1904, label %1905, label %1912

1905:                                             ; preds = %1876
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1906 = call noundef zeroext i1 @_ZN5ImGui16DebugBreakButtonEPKcS1_(ptr noundef @.str.591, ptr noundef @.str.592)
  br i1 %1906, label %1907, label %1911

1907:                                             ; preds = %1905
  %1908 = load i32, ptr %113, align 4, !tbaa !124
  %1909 = load ptr, ptr %3, align 8, !tbaa !5
  %1910 = getelementptr inbounds %struct.ImGuiContext, ptr %1909, i32 0, i32 80
  store i32 %1908, ptr %1910, align 8, !tbaa !272
  br label %1911

1911:                                             ; preds = %1907, %1905
  br label %1912

1912:                                             ; preds = %1911, %1876
  %1913 = load ptr, ptr %112, align 8, !tbaa !5
  %1914 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1913, i32 0, i32 0
  %1915 = load i16, ptr %1914, align 4, !tbaa !273
  store i16 %1915, ptr %111, align 2, !tbaa !244
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #10
  br label %1871, !llvm.loop !274

1916:                                             ; preds = %1875
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #10
  br label %1917

1917:                                             ; preds = %1916
  %1918 = load i32, ptr %109, align 4, !tbaa !232
  %1919 = add nsw i32 %1918, 1
  store i32 %1919, ptr %109, align 4, !tbaa !232
  br label %1857, !llvm.loop !275

1920:                                             ; preds = %1860
  br label %1921

1921:                                             ; preds = %1920, %1852
  call void @_ZN5ImGui8EndChildEv()
  %1922 = load ptr, ptr %3, align 8, !tbaa !5
  %1923 = getelementptr inbounds %struct.ImGuiContext, ptr %1922, i32 0, i32 79
  %1924 = load i8, ptr %1923, align 4, !tbaa !276, !range !13, !noundef !14
  %1925 = trunc i8 %1924 to i1
  %1926 = zext i1 %1925 to i32
  %1927 = load ptr, ptr %3, align 8, !tbaa !5
  %1928 = getelementptr inbounds %struct.ImGuiContext, ptr %1927, i32 0, i32 78
  %1929 = load i32, ptr %1928, align 8, !tbaa !277
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.593, i32 noundef %1926, i32 noundef %1929)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1930

1930:                                             ; preds = %1921, %1519
  %1931 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.594)
  br i1 %1931, label %1932, label %2218

1932:                                             ; preds = %1930
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.595)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1933 = load ptr, ptr %3, align 8, !tbaa !5
  %1934 = getelementptr inbounds %struct.ImGuiContext, ptr %1933, i32 0, i32 35
  %1935 = load ptr, ptr %1934, align 8, !tbaa !278
  %1936 = icmp ne ptr %1935, null
  br i1 %1936, label %1937, label %1943

1937:                                             ; preds = %1932
  %1938 = load ptr, ptr %3, align 8, !tbaa !5
  %1939 = getelementptr inbounds %struct.ImGuiContext, ptr %1938, i32 0, i32 35
  %1940 = load ptr, ptr %1939, align 8, !tbaa !278
  %1941 = getelementptr inbounds %struct.ImGuiWindow, ptr %1940, i32 0, i32 1
  %1942 = load ptr, ptr %1941, align 8, !tbaa !123
  br label %1944

1943:                                             ; preds = %1932
  br label %1944

1944:                                             ; preds = %1943, %1937
  %1945 = phi ptr [ %1942, %1937 ], [ @.str.502, %1943 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.596, ptr noundef %1945)
  %1946 = load ptr, ptr %3, align 8, !tbaa !5
  %1947 = getelementptr inbounds %struct.ImGuiContext, ptr %1946, i32 0, i32 35
  %1948 = load ptr, ptr %1947, align 8, !tbaa !278
  %1949 = icmp ne ptr %1948, null
  br i1 %1949, label %1950, label %1958

1950:                                             ; preds = %1944
  %1951 = load ptr, ptr %3, align 8, !tbaa !5
  %1952 = getelementptr inbounds %struct.ImGuiContext, ptr %1951, i32 0, i32 35
  %1953 = load ptr, ptr %1952, align 8, !tbaa !278
  %1954 = getelementptr inbounds %struct.ImGuiWindow, ptr %1953, i32 0, i32 95
  %1955 = load ptr, ptr %1954, align 8, !tbaa !279
  %1956 = getelementptr inbounds %struct.ImGuiWindow, ptr %1955, i32 0, i32 1
  %1957 = load ptr, ptr %1956, align 8, !tbaa !123
  br label %1959

1958:                                             ; preds = %1944
  br label %1959

1959:                                             ; preds = %1958, %1950
  %1960 = phi ptr [ %1957, %1950 ], [ @.str.502, %1958 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.597, ptr noundef %1960)
  %1961 = load ptr, ptr %3, align 8, !tbaa !5
  %1962 = getelementptr inbounds %struct.ImGuiContext, ptr %1961, i32 0, i32 36
  %1963 = load ptr, ptr %1962, align 8, !tbaa !280
  %1964 = icmp ne ptr %1963, null
  br i1 %1964, label %1965, label %1971

1965:                                             ; preds = %1959
  %1966 = load ptr, ptr %3, align 8, !tbaa !5
  %1967 = getelementptr inbounds %struct.ImGuiContext, ptr %1966, i32 0, i32 36
  %1968 = load ptr, ptr %1967, align 8, !tbaa !280
  %1969 = getelementptr inbounds %struct.ImGuiWindow, ptr %1968, i32 0, i32 1
  %1970 = load ptr, ptr %1969, align 8, !tbaa !123
  br label %1972

1971:                                             ; preds = %1959
  br label %1972

1972:                                             ; preds = %1971, %1965
  %1973 = phi ptr [ %1970, %1965 ], [ @.str.502, %1971 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.598, ptr noundef %1973)
  %1974 = load ptr, ptr %3, align 8, !tbaa !5
  %1975 = getelementptr inbounds %struct.ImGuiContext, ptr %1974, i32 0, i32 279
  %1976 = load ptr, ptr %1975, align 8, !tbaa !281
  %1977 = icmp ne ptr %1976, null
  br i1 %1977, label %1978, label %1984

1978:                                             ; preds = %1972
  %1979 = load ptr, ptr %3, align 8, !tbaa !5
  %1980 = getelementptr inbounds %struct.ImGuiContext, ptr %1979, i32 0, i32 279
  %1981 = load ptr, ptr %1980, align 8, !tbaa !281
  %1982 = getelementptr inbounds %struct.ImGuiDockNode, ptr %1981, i32 0, i32 0
  %1983 = load i32, ptr %1982, align 8, !tbaa !282
  br label %1985

1984:                                             ; preds = %1972
  br label %1985

1985:                                             ; preds = %1984, %1978
  %1986 = phi i32 [ %1983, %1978 ], [ 0, %1984 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.599, i32 noundef %1986)
  %1987 = load ptr, ptr %3, align 8, !tbaa !5
  %1988 = getelementptr inbounds %struct.ImGuiContext, ptr %1987, i32 0, i32 37
  %1989 = load ptr, ptr %1988, align 8, !tbaa !286
  %1990 = icmp ne ptr %1989, null
  br i1 %1990, label %1991, label %1997

1991:                                             ; preds = %1985
  %1992 = load ptr, ptr %3, align 8, !tbaa !5
  %1993 = getelementptr inbounds %struct.ImGuiContext, ptr %1992, i32 0, i32 37
  %1994 = load ptr, ptr %1993, align 8, !tbaa !286
  %1995 = getelementptr inbounds %struct.ImGuiWindow, ptr %1994, i32 0, i32 1
  %1996 = load ptr, ptr %1995, align 8, !tbaa !123
  br label %1998

1997:                                             ; preds = %1985
  br label %1998

1998:                                             ; preds = %1997, %1991
  %1999 = phi ptr [ %1996, %1991 ], [ @.str.502, %1997 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.600, ptr noundef %1999)
  %2000 = load ptr, ptr %3, align 8, !tbaa !5
  %2001 = getelementptr inbounds %struct.ImGuiContext, ptr %2000, i32 0, i32 105
  %2002 = load ptr, ptr %2001, align 8, !tbaa !177
  %2003 = getelementptr inbounds %struct.ImGuiViewport, ptr %2002, i32 0, i32 0
  %2004 = load i32, ptr %2003, align 8, !tbaa !164
  %2005 = load ptr, ptr %3, align 8, !tbaa !5
  %2006 = getelementptr inbounds %struct.ImGuiContext, ptr %2005, i32 0, i32 2
  %2007 = getelementptr inbounds %struct.ImGuiIO, ptr %2006, i32 0, i32 72
  %2008 = load i32, ptr %2007, align 4, !tbaa !178
  %2009 = load ptr, ptr %3, align 8, !tbaa !5
  %2010 = getelementptr inbounds %struct.ImGuiContext, ptr %2009, i32 0, i32 106
  %2011 = load ptr, ptr %2010, align 8, !tbaa !179
  %2012 = icmp ne ptr %2011, null
  br i1 %2012, label %2013, label %2019

2013:                                             ; preds = %1998
  %2014 = load ptr, ptr %3, align 8, !tbaa !5
  %2015 = getelementptr inbounds %struct.ImGuiContext, ptr %2014, i32 0, i32 106
  %2016 = load ptr, ptr %2015, align 8, !tbaa !179
  %2017 = getelementptr inbounds %struct.ImGuiViewport, ptr %2016, i32 0, i32 0
  %2018 = load i32, ptr %2017, align 8, !tbaa !164
  br label %2020

2019:                                             ; preds = %1998
  br label %2020

2020:                                             ; preds = %2019, %2013
  %2021 = phi i32 [ %2018, %2013 ], [ 0, %2019 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.495, i32 noundef %2004, i32 noundef %2008, i32 noundef %2021)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.601)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %2022 = load ptr, ptr %3, align 8, !tbaa !5
  %2023 = getelementptr inbounds %struct.ImGuiContext, ptr %2022, i32 0, i32 52
  %2024 = load i32, ptr %2023, align 4, !tbaa !287
  %2025 = load ptr, ptr %3, align 8, !tbaa !5
  %2026 = getelementptr inbounds %struct.ImGuiContext, ptr %2025, i32 0, i32 66
  %2027 = load i32, ptr %2026, align 4, !tbaa !288
  %2028 = load ptr, ptr %3, align 8, !tbaa !5
  %2029 = getelementptr inbounds %struct.ImGuiContext, ptr %2028, i32 0, i32 54
  %2030 = load float, ptr %2029, align 4, !tbaa !289
  %2031 = fpext float %2030 to double
  %2032 = load ptr, ptr %3, align 8, !tbaa !5
  %2033 = getelementptr inbounds %struct.ImGuiContext, ptr %2032, i32 0, i32 56
  %2034 = load i8, ptr %2033, align 1, !tbaa !290, !range !13, !noundef !14
  %2035 = trunc i8 %2034 to i1
  %2036 = zext i1 %2035 to i32
  %2037 = load ptr, ptr %3, align 8, !tbaa !5
  %2038 = getelementptr inbounds %struct.ImGuiContext, ptr %2037, i32 0, i32 65
  %2039 = load i32, ptr %2038, align 8, !tbaa !291
  %2040 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %2039)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.602, i32 noundef %2024, i32 noundef %2027, double noundef %2031, i32 noundef %2036, ptr noundef %2040)
  %2041 = load ptr, ptr %3, align 8, !tbaa !5
  %2042 = getelementptr inbounds %struct.ImGuiContext, ptr %2041, i32 0, i32 52
  %2043 = load i32, ptr %2042, align 4, !tbaa !287
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %2043)
  %2044 = load ptr, ptr %3, align 8, !tbaa !5
  %2045 = getelementptr inbounds %struct.ImGuiContext, ptr %2044, i32 0, i32 64
  %2046 = load ptr, ptr %2045, align 8, !tbaa !292
  %2047 = icmp ne ptr %2046, null
  br i1 %2047, label %2048, label %2054

2048:                                             ; preds = %2020
  %2049 = load ptr, ptr %3, align 8, !tbaa !5
  %2050 = getelementptr inbounds %struct.ImGuiContext, ptr %2049, i32 0, i32 64
  %2051 = load ptr, ptr %2050, align 8, !tbaa !292
  %2052 = getelementptr inbounds %struct.ImGuiWindow, ptr %2051, i32 0, i32 1
  %2053 = load ptr, ptr %2052, align 8, !tbaa !123
  br label %2055

2054:                                             ; preds = %2020
  br label %2055

2055:                                             ; preds = %2054, %2048
  %2056 = phi ptr [ %2053, %2048 ], [ @.str.502, %2054 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.603, ptr noundef %2056)
  %2057 = load ptr, ptr %3, align 8, !tbaa !5
  %2058 = getelementptr inbounds %struct.ImGuiContext, ptr %2057, i32 0, i32 79
  %2059 = load i8, ptr %2058, align 4, !tbaa !276, !range !13, !noundef !14
  %2060 = trunc i8 %2059 to i1
  %2061 = zext i1 %2060 to i32
  %2062 = load ptr, ptr %3, align 8, !tbaa !5
  %2063 = getelementptr inbounds %struct.ImGuiContext, ptr %2062, i32 0, i32 78
  %2064 = load i32, ptr %2063, align 8, !tbaa !277
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.604, i32 noundef %2061, i32 noundef %2064)
  %2065 = load ptr, ptr %3, align 8, !tbaa !5
  %2066 = getelementptr inbounds %struct.ImGuiContext, ptr %2065, i32 0, i32 47
  %2067 = load i32, ptr %2066, align 4, !tbaa !293
  %2068 = load ptr, ptr %3, align 8, !tbaa !5
  %2069 = getelementptr inbounds %struct.ImGuiContext, ptr %2068, i32 0, i32 50
  %2070 = load float, ptr %2069, align 4, !tbaa !294
  %2071 = fpext float %2070 to double
  %2072 = load ptr, ptr %3, align 8, !tbaa !5
  %2073 = getelementptr inbounds %struct.ImGuiContext, ptr %2072, i32 0, i32 48
  %2074 = load i8, ptr %2073, align 8, !tbaa !295, !range !13, !noundef !14
  %2075 = trunc i8 %2074 to i1
  %2076 = zext i1 %2075 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.605, i32 noundef %2067, double noundef %2071, i32 noundef %2076)
  %2077 = load ptr, ptr %3, align 8, !tbaa !5
  %2078 = getelementptr inbounds %struct.ImGuiContext, ptr %2077, i32 0, i32 199
  %2079 = load i32, ptr %2078, align 8, !tbaa !296
  %2080 = load ptr, ptr %3, align 8, !tbaa !5
  %2081 = getelementptr inbounds %struct.ImGuiContext, ptr %2080, i32 0, i32 201
  %2082 = load float, ptr %2081, align 8, !tbaa !297
  %2083 = fpext float %2082 to double
  %2084 = load ptr, ptr %3, align 8, !tbaa !5
  %2085 = getelementptr inbounds %struct.ImGuiContext, ptr %2084, i32 0, i32 202
  %2086 = load float, ptr %2085, align 4, !tbaa !298
  %2087 = fpext float %2086 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.606, i32 noundef %2079, double noundef %2083, double noundef %2087)
  %2088 = load ptr, ptr %3, align 8, !tbaa !5
  %2089 = getelementptr inbounds %struct.ImGuiContext, ptr %2088, i32 0, i32 168
  %2090 = load i8, ptr %2089, align 8, !tbaa !299, !range !13, !noundef !14
  %2091 = trunc i8 %2090 to i1
  %2092 = zext i1 %2091 to i32
  %2093 = load ptr, ptr %3, align 8, !tbaa !5
  %2094 = getelementptr inbounds %struct.ImGuiContext, ptr %2093, i32 0, i32 174
  %2095 = getelementptr inbounds %struct.ImGuiPayload, ptr %2094, i32 0, i32 2
  %2096 = load i32, ptr %2095, align 4, !tbaa !300
  %2097 = load ptr, ptr %3, align 8, !tbaa !5
  %2098 = getelementptr inbounds %struct.ImGuiContext, ptr %2097, i32 0, i32 174
  %2099 = getelementptr inbounds %struct.ImGuiPayload, ptr %2098, i32 0, i32 5
  %2100 = getelementptr inbounds [33 x i8], ptr %2099, i64 0, i64 0
  %2101 = load ptr, ptr %3, align 8, !tbaa !5
  %2102 = getelementptr inbounds %struct.ImGuiContext, ptr %2101, i32 0, i32 174
  %2103 = getelementptr inbounds %struct.ImGuiPayload, ptr %2102, i32 0, i32 1
  %2104 = load i32, ptr %2103, align 8, !tbaa !301
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.607, i32 noundef %2092, i32 noundef %2096, ptr noundef %2100, i32 noundef %2104)
  %2105 = load ptr, ptr %3, align 8, !tbaa !5
  %2106 = getelementptr inbounds %struct.ImGuiContext, ptr %2105, i32 0, i32 174
  %2107 = getelementptr inbounds %struct.ImGuiPayload, ptr %2106, i32 0, i32 2
  %2108 = load i32, ptr %2107, align 4, !tbaa !300
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %2108)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.608)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %2109 = load ptr, ptr %3, align 8, !tbaa !5
  %2110 = getelementptr inbounds %struct.ImGuiContext, ptr %2109, i32 0, i32 112
  %2111 = load ptr, ptr %2110, align 8, !tbaa !122
  %2112 = icmp ne ptr %2111, null
  br i1 %2112, label %2113, label %2119

2113:                                             ; preds = %2055
  %2114 = load ptr, ptr %3, align 8, !tbaa !5
  %2115 = getelementptr inbounds %struct.ImGuiContext, ptr %2114, i32 0, i32 112
  %2116 = load ptr, ptr %2115, align 8, !tbaa !122
  %2117 = getelementptr inbounds %struct.ImGuiWindow, ptr %2116, i32 0, i32 1
  %2118 = load ptr, ptr %2117, align 8, !tbaa !123
  br label %2120

2119:                                             ; preds = %2055
  br label %2120

2120:                                             ; preds = %2119, %2113
  %2121 = phi ptr [ %2118, %2113 ], [ @.str.502, %2119 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.609, ptr noundef %2121)
  %2122 = load ptr, ptr %3, align 8, !tbaa !5
  %2123 = getelementptr inbounds %struct.ImGuiContext, ptr %2122, i32 0, i32 113
  %2124 = load i32, ptr %2123, align 8, !tbaa !302
  %2125 = load ptr, ptr %3, align 8, !tbaa !5
  %2126 = getelementptr inbounds %struct.ImGuiContext, ptr %2125, i32 0, i32 128
  %2127 = load i32, ptr %2126, align 8, !tbaa !303
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.610, i32 noundef %2124, i32 noundef %2127)
  %2128 = load ptr, ptr %3, align 8, !tbaa !5
  %2129 = getelementptr inbounds %struct.ImGuiContext, ptr %2128, i32 0, i32 113
  %2130 = load i32, ptr %2129, align 8, !tbaa !302
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %2130)
  %2131 = load ptr, ptr %3, align 8, !tbaa !5
  %2132 = getelementptr inbounds %struct.ImGuiContext, ptr %2131, i32 0, i32 127
  %2133 = load i32, ptr %2132, align 4, !tbaa !304
  %2134 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %2133)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.611, ptr noundef %2134)
  %2135 = load ptr, ptr %3, align 8, !tbaa !5
  %2136 = getelementptr inbounds %struct.ImGuiContext, ptr %2135, i32 0, i32 129
  %2137 = load i64, ptr %2136, align 8, !tbaa !305
  %2138 = load ptr, ptr %3, align 8, !tbaa !5
  %2139 = getelementptr inbounds %struct.ImGuiContext, ptr %2138, i32 0, i32 129
  %2140 = load i64, ptr %2139, align 8, !tbaa !305
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.612, i64 noundef %2137, i64 noundef %2140)
  %2141 = load ptr, ptr %3, align 8, !tbaa !5
  %2142 = getelementptr inbounds %struct.ImGuiContext, ptr %2141, i32 0, i32 2
  %2143 = getelementptr inbounds %struct.ImGuiIO, ptr %2142, i32 0, i32 55
  %2144 = load i8, ptr %2143, align 1, !tbaa !306, !range !13, !noundef !14
  %2145 = trunc i8 %2144 to i1
  %2146 = zext i1 %2145 to i32
  %2147 = load ptr, ptr %3, align 8, !tbaa !5
  %2148 = getelementptr inbounds %struct.ImGuiContext, ptr %2147, i32 0, i32 2
  %2149 = getelementptr inbounds %struct.ImGuiIO, ptr %2148, i32 0, i32 56
  %2150 = load i8, ptr %2149, align 8, !tbaa !307, !range !13, !noundef !14
  %2151 = trunc i8 %2150 to i1
  %2152 = zext i1 %2151 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.613, i32 noundef %2146, i32 noundef %2152)
  %2153 = load ptr, ptr %3, align 8, !tbaa !5
  %2154 = getelementptr inbounds %struct.ImGuiContext, ptr %2153, i32 0, i32 116
  %2155 = load i32, ptr %2154, align 8, !tbaa !308
  %2156 = load ptr, ptr %3, align 8, !tbaa !5
  %2157 = getelementptr inbounds %struct.ImGuiContext, ptr %2156, i32 0, i32 117
  %2158 = load i32, ptr %2157, align 4, !tbaa !309
  %2159 = load ptr, ptr %3, align 8, !tbaa !5
  %2160 = getelementptr inbounds %struct.ImGuiContext, ptr %2159, i32 0, i32 118
  %2161 = load i32, ptr %2160, align 8, !tbaa !310
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.614, i32 noundef %2155, i32 noundef %2158, i32 noundef %2161)
  %2162 = load ptr, ptr %3, align 8, !tbaa !5
  %2163 = getelementptr inbounds %struct.ImGuiContext, ptr %2162, i32 0, i32 119
  %2164 = load i32, ptr %2163, align 4, !tbaa !311
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.615, i32 noundef %2164)
  %2165 = load ptr, ptr %3, align 8, !tbaa !5
  %2166 = getelementptr inbounds %struct.ImGuiContext, ptr %2165, i32 0, i32 132
  %2167 = load i8, ptr %2166, align 2, !tbaa !312, !range !13, !noundef !14
  %2168 = trunc i8 %2167 to i1
  %2169 = zext i1 %2168 to i32
  %2170 = load ptr, ptr %3, align 8, !tbaa !5
  %2171 = getelementptr inbounds %struct.ImGuiContext, ptr %2170, i32 0, i32 133
  %2172 = load i8, ptr %2171, align 1, !tbaa !313, !range !13, !noundef !14
  %2173 = trunc i8 %2172 to i1
  %2174 = zext i1 %2173 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.616, i32 noundef %2169, i32 noundef %2174)
  %2175 = load ptr, ptr %3, align 8, !tbaa !5
  %2176 = getelementptr inbounds %struct.ImGuiContext, ptr %2175, i32 0, i32 114
  %2177 = load i32, ptr %2176, align 4, !tbaa !314
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.617, i32 noundef %2177)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.618)
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #10
  %2178 = load ptr, ptr %3, align 8, !tbaa !5
  %2179 = getelementptr inbounds %struct.ImGuiContext, ptr %2178, i32 0, i32 115
  %2180 = getelementptr inbounds %struct.ImVector.11, ptr %2179, i32 0, i32 0
  %2181 = load i32, ptr %2180, align 8, !tbaa !315
  %2182 = sub nsw i32 %2181, 1
  store i32 %2182, ptr %114, align 4, !tbaa !124
  br label %2183

2183:                                             ; preds = %2201, %2120
  %2184 = load i32, ptr %114, align 4, !tbaa !124
  %2185 = icmp sge i32 %2184, 0
  br i1 %2185, label %2187, label %2186

2186:                                             ; preds = %2183
  store i32 86, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %2204

2187:                                             ; preds = %2183
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #10
  %2188 = load ptr, ptr %3, align 8, !tbaa !5
  %2189 = getelementptr inbounds %struct.ImGuiContext, ptr %2188, i32 0, i32 115
  %2190 = load i32, ptr %114, align 4, !tbaa !124
  %2191 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZN8ImVectorI19ImGuiFocusScopeDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %2189, i32 noundef %2190)
  store ptr %2191, ptr %115, align 8, !tbaa !5
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef 0.000000e+00)
  %2192 = load ptr, ptr %115, align 8, !tbaa !5
  %2193 = getelementptr inbounds %struct.ImGuiFocusScopeData, ptr %2192, i32 0, i32 0
  %2194 = load i32, ptr %2193, align 4, !tbaa !316
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.619, i32 noundef %2194)
  %2195 = load ptr, ptr %115, align 8, !tbaa !5
  %2196 = getelementptr inbounds %struct.ImGuiFocusScopeData, ptr %2195, i32 0, i32 1
  %2197 = load i32, ptr %2196, align 4, !tbaa !318
  %2198 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %2197)
  %2199 = getelementptr inbounds %struct.ImGuiWindow, ptr %2198, i32 0, i32 1
  %2200 = load ptr, ptr %2199, align 8, !tbaa !123
  call void (ptr, ...) @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef @.str.620, ptr noundef %2200)
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #10
  br label %2201

2201:                                             ; preds = %2187
  %2202 = load i32, ptr %114, align 4, !tbaa !124
  %2203 = add nsw i32 %2202, -1
  store i32 %2203, ptr %114, align 4, !tbaa !124
  br label %2183, !llvm.loop !319

2204:                                             ; preds = %2186
  %2205 = load ptr, ptr %3, align 8, !tbaa !5
  %2206 = getelementptr inbounds %struct.ImGuiContext, ptr %2205, i32 0, i32 159
  %2207 = load ptr, ptr %2206, align 8, !tbaa !320
  %2208 = icmp ne ptr %2207, null
  br i1 %2208, label %2209, label %2215

2209:                                             ; preds = %2204
  %2210 = load ptr, ptr %3, align 8, !tbaa !5
  %2211 = getelementptr inbounds %struct.ImGuiContext, ptr %2210, i32 0, i32 159
  %2212 = load ptr, ptr %2211, align 8, !tbaa !320
  %2213 = getelementptr inbounds %struct.ImGuiWindow, ptr %2212, i32 0, i32 1
  %2214 = load ptr, ptr %2213, align 8, !tbaa !123
  br label %2216

2215:                                             ; preds = %2204
  br label %2216

2216:                                             ; preds = %2215, %2209
  %2217 = phi ptr [ %2214, %2209 ], [ @.str.502, %2215 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.621, ptr noundef %2217)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %2218

2218:                                             ; preds = %2216, %1930
  %2219 = load ptr, ptr %5, align 8, !tbaa !5
  %2220 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2219, i32 0, i32 2
  %2221 = load i8, ptr %2220, align 2, !tbaa !121, !range !13, !noundef !14
  %2222 = trunc i8 %2221 to i1
  br i1 %2222, label %2228, label %2223

2223:                                             ; preds = %2218
  %2224 = load ptr, ptr %5, align 8, !tbaa !5
  %2225 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2224, i32 0, i32 3
  %2226 = load i8, ptr %2225, align 1, !tbaa !321, !range !13, !noundef !14
  %2227 = trunc i8 %2226 to i1
  br i1 %2227, label %2228, label %2307

2228:                                             ; preds = %2223, %2218
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #10
  %2229 = load ptr, ptr %3, align 8, !tbaa !5
  %2230 = getelementptr inbounds %struct.ImGuiContext, ptr %2229, i32 0, i32 26
  store ptr %2230, ptr %116, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #10
  %2231 = load ptr, ptr %116, align 8, !tbaa !5
  %2232 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %2231)
  store ptr %2232, ptr %117, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #10
  %2233 = load ptr, ptr %116, align 8, !tbaa !5
  %2234 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %2233)
  store ptr %2234, ptr %118, align 8, !tbaa !5
  br label %2235

2235:                                             ; preds = %2303, %2228
  %2236 = load ptr, ptr %117, align 8, !tbaa !5
  %2237 = load ptr, ptr %118, align 8, !tbaa !5
  %2238 = icmp ne ptr %2236, %2237
  br i1 %2238, label %2240, label %2239

2239:                                             ; preds = %2235
  store i32 89, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #10
  br label %2306

2240:                                             ; preds = %2235
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #10
  %2241 = load ptr, ptr %117, align 8, !tbaa !5
  %2242 = load ptr, ptr %2241, align 8, !tbaa !5
  store ptr %2242, ptr %119, align 8, !tbaa !5
  %2243 = load ptr, ptr %119, align 8, !tbaa !5
  %2244 = getelementptr inbounds %struct.ImGuiWindow, ptr %2243, i32 0, i32 40
  %2245 = load i8, ptr %2244, align 4, !tbaa !322, !range !13, !noundef !14
  %2246 = trunc i8 %2245 to i1
  br i1 %2246, label %2248, label %2247

2247:                                             ; preds = %2240
  store i32 90, ptr %6, align 4
  br label %2300

2248:                                             ; preds = %2240
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #10
  %2249 = load ptr, ptr %119, align 8, !tbaa !5
  %2250 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %2249)
  store ptr %2250, ptr %120, align 8, !tbaa !5
  %2251 = load ptr, ptr %5, align 8, !tbaa !5
  %2252 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2251, i32 0, i32 2
  %2253 = load i8, ptr %2252, align 2, !tbaa !121, !range !13, !noundef !14
  %2254 = trunc i8 %2253 to i1
  br i1 %2254, label %2255, label %2268

2255:                                             ; preds = %2248
  call void @llvm.lifetime.start.p0(i64 16, ptr %121) #10
  %2256 = load ptr, ptr %119, align 8, !tbaa !5
  %2257 = load ptr, ptr %5, align 8, !tbaa !5
  %2258 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2257, i32 0, i32 10
  %2259 = load i32, ptr %2258, align 4, !tbaa !116
  %2260 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %2256, i32 noundef %2259)
  %2261 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %121, i32 0, i32 0
  %2262 = extractvalue { <2 x float>, <2 x float> } %2260, 0
  store <2 x float> %2262, ptr %2261, align 4
  %2263 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %121, i32 0, i32 1
  %2264 = extractvalue { <2 x float>, <2 x float> } %2260, 1
  store <2 x float> %2264, ptr %2263, align 4
  %2265 = load ptr, ptr %120, align 8, !tbaa !5
  %2266 = getelementptr inbounds %struct.ImRect, ptr %121, i32 0, i32 0
  %2267 = getelementptr inbounds %struct.ImRect, ptr %121, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %2265, ptr noundef nonnull align 4 dereferenceable(8) %2266, ptr noundef nonnull align 4 dereferenceable(8) %2267, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr %121) #10
  br label %2268

2268:                                             ; preds = %2255, %2248
  %2269 = load ptr, ptr %5, align 8, !tbaa !5
  %2270 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2269, i32 0, i32 3
  %2271 = load i8, ptr %2270, align 1, !tbaa !321, !range !13, !noundef !14
  %2272 = trunc i8 %2271 to i1
  br i1 %2272, label %2273, label %2299

2273:                                             ; preds = %2268
  %2274 = load ptr, ptr %119, align 8, !tbaa !5
  %2275 = getelementptr inbounds %struct.ImGuiWindow, ptr %2274, i32 0, i32 3
  %2276 = load i32, ptr %2275, align 4, !tbaa !192
  %2277 = and i32 %2276, 16777216
  %2278 = icmp ne i32 %2277, 0
  br i1 %2278, label %2299, label %2279

2279:                                             ; preds = %2273
  call void @llvm.lifetime.start.p0(i64 32, ptr %122) #10
  %2280 = getelementptr inbounds [32 x i8], ptr %122, i64 0, i64 0
  %2281 = load ptr, ptr %119, align 8, !tbaa !5
  %2282 = getelementptr inbounds %struct.ImGuiWindow, ptr %2281, i32 0, i32 55
  %2283 = load i16, ptr %2282, align 2, !tbaa !323
  %2284 = sext i16 %2283 to i32
  %2285 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2280, i64 noundef 32, ptr noundef @.str.421, i32 noundef %2284)
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #10
  %2286 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  store float %2286, ptr %123, align 4, !tbaa !250
  %2287 = load ptr, ptr %120, align 8, !tbaa !5
  %2288 = load ptr, ptr %119, align 8, !tbaa !5
  %2289 = getelementptr inbounds %struct.ImGuiWindow, ptr %2288, i32 0, i32 11
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #10
  %2290 = load ptr, ptr %119, align 8, !tbaa !5
  %2291 = getelementptr inbounds %struct.ImGuiWindow, ptr %2290, i32 0, i32 11
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #10
  %2292 = load float, ptr %123, align 4, !tbaa !250
  %2293 = load float, ptr %123, align 4, !tbaa !250
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %125, float noundef %2292, float noundef %2293)
  %2294 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2291, ptr noundef nonnull align 4 dereferenceable(8) %125)
  store <2 x float> %2294, ptr %124, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %2287, ptr noundef nonnull align 4 dereferenceable(8) %2289, ptr noundef nonnull align 4 dereferenceable(8) %124, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  %2295 = load ptr, ptr %120, align 8, !tbaa !5
  %2296 = load ptr, ptr %119, align 8, !tbaa !5
  %2297 = getelementptr inbounds %struct.ImGuiWindow, ptr %2296, i32 0, i32 11
  %2298 = getelementptr inbounds [32 x i8], ptr %122, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %2295, ptr noundef nonnull align 4 dereferenceable(8) %2297, i32 noundef -1, ptr noundef %2298, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #10
  br label %2299

2299:                                             ; preds = %2279, %2273, %2268
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #10
  store i32 0, ptr %6, align 4
  br label %2300

2300:                                             ; preds = %2299, %2247
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #10
  %2301 = load i32, ptr %6, align 4
  switch i32 %2301, label %2562 [
    i32 0, label %2302
    i32 90, label %2303
  ]

2302:                                             ; preds = %2300
  br label %2303

2303:                                             ; preds = %2302, %2300
  %2304 = load ptr, ptr %117, align 8, !tbaa !5
  %2305 = getelementptr inbounds ptr, ptr %2304, i32 1
  store ptr %2305, ptr %117, align 8, !tbaa !5
  br label %2235

2306:                                             ; preds = %2239
  br label %2307

2307:                                             ; preds = %2306, %2223
  %2308 = load ptr, ptr %5, align 8, !tbaa !5
  %2309 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2308, i32 0, i32 4
  %2310 = load i8, ptr %2309, align 4, !tbaa !131, !range !13, !noundef !14
  %2311 = trunc i8 %2310 to i1
  br i1 %2311, label %2312, label %2411

2312:                                             ; preds = %2307
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #10
  store i32 0, ptr %126, align 4, !tbaa !124
  br label %2313

2313:                                             ; preds = %2407, %2312
  %2314 = load i32, ptr %126, align 4, !tbaa !124
  %2315 = load ptr, ptr %3, align 8, !tbaa !5
  %2316 = getelementptr inbounds %struct.ImGuiContext, ptr %2315, i32 0, i32 192
  %2317 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %2316)
  %2318 = icmp slt i32 %2314, %2317
  br i1 %2318, label %2320, label %2319

2319:                                             ; preds = %2313
  store i32 91, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %2410

2320:                                             ; preds = %2313
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #10
  %2321 = load ptr, ptr %3, align 8, !tbaa !5
  %2322 = getelementptr inbounds %struct.ImGuiContext, ptr %2321, i32 0, i32 192
  %2323 = load i32, ptr %126, align 4, !tbaa !124
  %2324 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %2322, i32 noundef %2323)
  store ptr %2324, ptr %127, align 8, !tbaa !5
  %2325 = load ptr, ptr %127, align 8, !tbaa !5
  %2326 = icmp eq ptr %2325, null
  br i1 %2326, label %2336, label %2327

2327:                                             ; preds = %2320
  %2328 = load ptr, ptr %127, align 8, !tbaa !5
  %2329 = getelementptr inbounds %struct.ImGuiTable, ptr %2328, i32 0, i32 12
  %2330 = load i32, ptr %2329, align 8, !tbaa !132
  %2331 = load ptr, ptr %3, align 8, !tbaa !5
  %2332 = getelementptr inbounds %struct.ImGuiContext, ptr %2331, i32 0, i32 12
  %2333 = load i32, ptr %2332, align 8, !tbaa !142
  %2334 = sub nsw i32 %2333, 1
  %2335 = icmp slt i32 %2330, %2334
  br i1 %2335, label %2336, label %2337

2336:                                             ; preds = %2327, %2320
  store i32 93, ptr %6, align 4
  br label %2404

2337:                                             ; preds = %2327
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #10
  %2338 = load ptr, ptr %127, align 8, !tbaa !5
  %2339 = getelementptr inbounds %struct.ImGuiTable, ptr %2338, i32 0, i32 55
  %2340 = load ptr, ptr %2339, align 8, !tbaa !143
  %2341 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %2340)
  store ptr %2341, ptr %128, align 8, !tbaa !5
  %2342 = load ptr, ptr %5, align 8, !tbaa !5
  %2343 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2342, i32 0, i32 11
  %2344 = load i32, ptr %2343, align 4, !tbaa !117
  %2345 = icmp sge i32 %2344, 6
  br i1 %2345, label %2346, label %2390

2346:                                             ; preds = %2337
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  store i32 0, ptr %129, align 4, !tbaa !124
  br label %2347

2347:                                             ; preds = %2386, %2346
  %2348 = load i32, ptr %129, align 4, !tbaa !124
  %2349 = load ptr, ptr %127, align 8, !tbaa !5
  %2350 = getelementptr inbounds %struct.ImGuiTable, ptr %2349, i32 0, i32 13
  %2351 = load i32, ptr %2350, align 4, !tbaa !146
  %2352 = icmp slt i32 %2348, %2351
  br i1 %2352, label %2354, label %2353

2353:                                             ; preds = %2347
  store i32 94, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  br label %2389

2354:                                             ; preds = %2347
  call void @llvm.lifetime.start.p0(i64 16, ptr %130) #10
  %2355 = load ptr, ptr %127, align 8, !tbaa !5
  %2356 = load ptr, ptr %5, align 8, !tbaa !5
  %2357 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2356, i32 0, i32 11
  %2358 = load i32, ptr %2357, align 4, !tbaa !117
  %2359 = load i32, ptr %129, align 4, !tbaa !124
  %2360 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %2355, i32 noundef %2358, i32 noundef %2359)
  %2361 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %130, i32 0, i32 0
  %2362 = extractvalue { <2 x float>, <2 x float> } %2360, 0
  store <2 x float> %2362, ptr %2361, align 4
  %2363 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %130, i32 0, i32 1
  %2364 = extractvalue { <2 x float>, <2 x float> } %2360, 1
  store <2 x float> %2364, ptr %2363, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #10
  %2365 = load ptr, ptr %127, align 8, !tbaa !5
  %2366 = getelementptr inbounds %struct.ImGuiTable, ptr %2365, i32 0, i32 70
  %2367 = load i16, ptr %2366, align 2, !tbaa !324
  %2368 = sext i16 %2367 to i32
  %2369 = load i32, ptr %129, align 4, !tbaa !124
  %2370 = icmp eq i32 %2368, %2369
  %2371 = zext i1 %2370 to i64
  %2372 = select i1 %2370, i32 -8323073, i32 -8388353
  store i32 %2372, ptr %131, align 4, !tbaa !124
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #10
  %2373 = load ptr, ptr %127, align 8, !tbaa !5
  %2374 = getelementptr inbounds %struct.ImGuiTable, ptr %2373, i32 0, i32 70
  %2375 = load i16, ptr %2374, align 2, !tbaa !324
  %2376 = sext i16 %2375 to i32
  %2377 = load i32, ptr %129, align 4, !tbaa !124
  %2378 = icmp eq i32 %2376, %2377
  %2379 = zext i1 %2378 to i64
  %2380 = select i1 %2378, float 3.000000e+00, float 1.000000e+00
  store float %2380, ptr %132, align 4, !tbaa !250
  %2381 = load ptr, ptr %128, align 8, !tbaa !5
  %2382 = getelementptr inbounds %struct.ImRect, ptr %130, i32 0, i32 0
  %2383 = getelementptr inbounds %struct.ImRect, ptr %130, i32 0, i32 1
  %2384 = load i32, ptr %131, align 4, !tbaa !124
  %2385 = load float, ptr %132, align 4, !tbaa !250
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %2381, ptr noundef nonnull align 4 dereferenceable(8) %2382, ptr noundef nonnull align 4 dereferenceable(8) %2383, i32 noundef %2384, float noundef 0.000000e+00, i32 noundef 0, float noundef %2385)
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #10
  br label %2386

2386:                                             ; preds = %2354
  %2387 = load i32, ptr %129, align 4, !tbaa !124
  %2388 = add nsw i32 %2387, 1
  store i32 %2388, ptr %129, align 4, !tbaa !124
  br label %2347, !llvm.loop !325

2389:                                             ; preds = %2353
  br label %2403

2390:                                             ; preds = %2337
  call void @llvm.lifetime.start.p0(i64 16, ptr %133) #10
  %2391 = load ptr, ptr %127, align 8, !tbaa !5
  %2392 = load ptr, ptr %5, align 8, !tbaa !5
  %2393 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2392, i32 0, i32 11
  %2394 = load i32, ptr %2393, align 4, !tbaa !117
  %2395 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %2391, i32 noundef %2394, i32 noundef -1)
  %2396 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %133, i32 0, i32 0
  %2397 = extractvalue { <2 x float>, <2 x float> } %2395, 0
  store <2 x float> %2397, ptr %2396, align 4
  %2398 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %133, i32 0, i32 1
  %2399 = extractvalue { <2 x float>, <2 x float> } %2395, 1
  store <2 x float> %2399, ptr %2398, align 4
  %2400 = load ptr, ptr %128, align 8, !tbaa !5
  %2401 = getelementptr inbounds %struct.ImRect, ptr %133, i32 0, i32 0
  %2402 = getelementptr inbounds %struct.ImRect, ptr %133, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %2400, ptr noundef nonnull align 4 dereferenceable(8) %2401, ptr noundef nonnull align 4 dereferenceable(8) %2402, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr %133) #10
  br label %2403

2403:                                             ; preds = %2390, %2389
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #10
  store i32 0, ptr %6, align 4
  br label %2404

2404:                                             ; preds = %2403, %2336
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #10
  %2405 = load i32, ptr %6, align 4
  switch i32 %2405, label %2562 [
    i32 0, label %2406
    i32 93, label %2407
  ]

2406:                                             ; preds = %2404
  br label %2407

2407:                                             ; preds = %2406, %2404
  %2408 = load i32, ptr %126, align 4, !tbaa !124
  %2409 = add nsw i32 %2408, 1
  store i32 %2409, ptr %126, align 4, !tbaa !124
  br label %2313, !llvm.loop !326

2410:                                             ; preds = %2319
  br label %2411

2411:                                             ; preds = %2410, %2307
  %2412 = load ptr, ptr %5, align 8, !tbaa !5
  %2413 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2412, i32 0, i32 9
  %2414 = load i8, ptr %2413, align 1, !tbaa !327, !range !13, !noundef !14
  %2415 = trunc i8 %2414 to i1
  br i1 %2415, label %2416, label %2553

2416:                                             ; preds = %2411
  %2417 = load ptr, ptr %3, align 8, !tbaa !5
  %2418 = getelementptr inbounds %struct.ImGuiContext, ptr %2417, i32 0, i32 2
  %2419 = getelementptr inbounds %struct.ImGuiIO, ptr %2418, i32 0, i32 73
  %2420 = load i8, ptr %2419, align 8, !tbaa !328, !range !13, !noundef !14
  %2421 = trunc i8 %2420 to i1
  br i1 %2421, label %2422, label %2553

2422:                                             ; preds = %2416
  %2423 = load ptr, ptr %3, align 8, !tbaa !5
  %2424 = getelementptr inbounds %struct.ImGuiContext, ptr %2423, i32 0, i32 279
  %2425 = load ptr, ptr %2424, align 8, !tbaa !281
  %2426 = icmp ne ptr %2425, null
  br i1 %2426, label %2427, label %2553

2427:                                             ; preds = %2422
  call void @llvm.lifetime.start.p0(i64 64, ptr %134) #10
  call void @llvm.memset.p0.i64(ptr align 16 %134, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #10
  %2428 = getelementptr inbounds [64 x i8], ptr %134, i64 0, i64 0
  store ptr %2428, ptr %135, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #10
  %2429 = load ptr, ptr %3, align 8, !tbaa !5
  %2430 = getelementptr inbounds %struct.ImGuiContext, ptr %2429, i32 0, i32 279
  %2431 = load ptr, ptr %2430, align 8, !tbaa !281
  store ptr %2431, ptr %136, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #10
  %2432 = load ptr, ptr %136, align 8, !tbaa !5
  %2433 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2432, i32 0, i32 16
  %2434 = load ptr, ptr %2433, align 8, !tbaa !329
  %2435 = icmp ne ptr %2434, null
  br i1 %2435, label %2436, label %2441

2436:                                             ; preds = %2427
  %2437 = load ptr, ptr %136, align 8, !tbaa !5
  %2438 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2437, i32 0, i32 16
  %2439 = load ptr, ptr %2438, align 8, !tbaa !329
  %2440 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %2439)
  br label %2444

2441:                                             ; preds = %2427
  %2442 = call noundef ptr @_ZN5ImGui15GetMainViewportEv()
  %2443 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef %2442)
  br label %2444

2444:                                             ; preds = %2441, %2436
  %2445 = phi ptr [ %2440, %2436 ], [ %2443, %2441 ]
  store ptr %2445, ptr %137, align 8, !tbaa !5
  %2446 = load ptr, ptr %135, align 8, !tbaa !5
  %2447 = getelementptr inbounds [64 x i8], ptr %134, i64 0, i64 0
  %2448 = getelementptr inbounds i8, ptr %2447, i64 64
  %2449 = load ptr, ptr %135, align 8, !tbaa !5
  %2450 = ptrtoint ptr %2448 to i64
  %2451 = ptrtoint ptr %2449 to i64
  %2452 = sub i64 %2450, %2451
  %2453 = load ptr, ptr %136, align 8, !tbaa !5
  %2454 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2453, i32 0, i32 0
  %2455 = load i32, ptr %2454, align 8, !tbaa !282
  %2456 = load ptr, ptr %136, align 8, !tbaa !5
  %2457 = call noundef zeroext i1 @_ZNK13ImGuiDockNode13IsCentralNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %2456)
  %2458 = zext i1 %2457 to i64
  %2459 = select i1 %2457, ptr @.str.623, ptr @.str.17
  %2460 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2446, i64 noundef %2452, ptr noundef @.str.622, i32 noundef %2455, ptr noundef %2459)
  %2461 = load ptr, ptr %135, align 8, !tbaa !5
  %2462 = sext i32 %2460 to i64
  %2463 = getelementptr inbounds i8, ptr %2461, i64 %2462
  store ptr %2463, ptr %135, align 8, !tbaa !5
  %2464 = load ptr, ptr %135, align 8, !tbaa !5
  %2465 = getelementptr inbounds [64 x i8], ptr %134, i64 0, i64 0
  %2466 = getelementptr inbounds i8, ptr %2465, i64 64
  %2467 = load ptr, ptr %135, align 8, !tbaa !5
  %2468 = ptrtoint ptr %2466 to i64
  %2469 = ptrtoint ptr %2467 to i64
  %2470 = sub i64 %2468, %2469
  %2471 = load ptr, ptr %136, align 8, !tbaa !5
  %2472 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2471, i32 0, i32 14
  %2473 = getelementptr inbounds %struct.ImGuiWindowClass, ptr %2472, i32 0, i32 0
  %2474 = load i32, ptr %2473, align 4, !tbaa !330
  %2475 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2464, i64 noundef %2470, ptr noundef @.str.624, i32 noundef %2474)
  %2476 = load ptr, ptr %135, align 8, !tbaa !5
  %2477 = sext i32 %2475 to i64
  %2478 = getelementptr inbounds i8, ptr %2476, i64 %2477
  store ptr %2478, ptr %135, align 8, !tbaa !5
  %2479 = load ptr, ptr %135, align 8, !tbaa !5
  %2480 = getelementptr inbounds [64 x i8], ptr %134, i64 0, i64 0
  %2481 = getelementptr inbounds i8, ptr %2480, i64 64
  %2482 = load ptr, ptr %135, align 8, !tbaa !5
  %2483 = ptrtoint ptr %2481 to i64
  %2484 = ptrtoint ptr %2482 to i64
  %2485 = sub i64 %2483, %2484
  %2486 = load ptr, ptr %136, align 8, !tbaa !5
  %2487 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2486, i32 0, i32 11
  %2488 = getelementptr inbounds %struct.ImVec2, ptr %2487, i32 0, i32 0
  %2489 = load float, ptr %2488, align 8, !tbaa !331
  %2490 = fpext float %2489 to double
  %2491 = load ptr, ptr %136, align 8, !tbaa !5
  %2492 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2491, i32 0, i32 11
  %2493 = getelementptr inbounds %struct.ImVec2, ptr %2492, i32 0, i32 1
  %2494 = load float, ptr %2493, align 4, !tbaa !332
  %2495 = fpext float %2494 to double
  %2496 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2479, i64 noundef %2485, ptr noundef @.str.625, double noundef %2490, double noundef %2495)
  %2497 = load ptr, ptr %135, align 8, !tbaa !5
  %2498 = sext i32 %2496 to i64
  %2499 = getelementptr inbounds i8, ptr %2497, i64 %2498
  store ptr %2499, ptr %135, align 8, !tbaa !5
  %2500 = load ptr, ptr %135, align 8, !tbaa !5
  %2501 = getelementptr inbounds [64 x i8], ptr %134, i64 0, i64 0
  %2502 = getelementptr inbounds i8, ptr %2501, i64 64
  %2503 = load ptr, ptr %135, align 8, !tbaa !5
  %2504 = ptrtoint ptr %2502 to i64
  %2505 = ptrtoint ptr %2503 to i64
  %2506 = sub i64 %2504, %2505
  %2507 = load ptr, ptr %136, align 8, !tbaa !5
  %2508 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2507, i32 0, i32 12
  %2509 = getelementptr inbounds %struct.ImVec2, ptr %2508, i32 0, i32 0
  %2510 = load float, ptr %2509, align 8, !tbaa !333
  %2511 = fpext float %2510 to double
  %2512 = load ptr, ptr %136, align 8, !tbaa !5
  %2513 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2512, i32 0, i32 12
  %2514 = getelementptr inbounds %struct.ImVec2, ptr %2513, i32 0, i32 1
  %2515 = load float, ptr %2514, align 4, !tbaa !334
  %2516 = fpext float %2515 to double
  %2517 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2500, i64 noundef %2506, ptr noundef @.str.626, double noundef %2511, double noundef %2516)
  %2518 = load ptr, ptr %135, align 8, !tbaa !5
  %2519 = sext i32 %2517 to i64
  %2520 = getelementptr inbounds i8, ptr %2518, i64 %2519
  store ptr %2520, ptr %135, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #10
  %2521 = load ptr, ptr %136, align 8, !tbaa !5
  %2522 = call noundef i32 @_ZN5ImGui16DockNodeGetDepthEPK13ImGuiDockNode(ptr noundef %2521)
  store i32 %2522, ptr %138, align 4, !tbaa !124
  %2523 = load ptr, ptr %137, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #10
  %2524 = load ptr, ptr %136, align 8, !tbaa !5
  %2525 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2524, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %141, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %2526 = load i32, ptr %138, align 4, !tbaa !124
  %2527 = sitofp i32 %2526 to float
  %2528 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %141, float noundef %2527)
  store <2 x float> %2528, ptr %140, align 4
  %2529 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2525, ptr noundef nonnull align 4 dereferenceable(8) %140)
  store <2 x float> %2529, ptr %139, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #10
  %2530 = load ptr, ptr %136, align 8, !tbaa !5
  %2531 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2530, i32 0, i32 10
  %2532 = load ptr, ptr %136, align 8, !tbaa !5
  %2533 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2532, i32 0, i32 11
  %2534 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2531, ptr noundef nonnull align 4 dereferenceable(8) %2533)
  store <2 x float> %2534, ptr %143, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %145, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %2535 = load i32, ptr %138, align 4, !tbaa !124
  %2536 = sitofp i32 %2535 to float
  %2537 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %145, float noundef %2536)
  store <2 x float> %2537, ptr %144, align 4
  %2538 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %143, ptr noundef nonnull align 4 dereferenceable(8) %144)
  store <2 x float> %2538, ptr %142, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %2523, ptr noundef nonnull align 4 dereferenceable(8) %139, ptr noundef nonnull align 4 dereferenceable(8) %142, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #10
  %2539 = load ptr, ptr %136, align 8, !tbaa !5
  %2540 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2539, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %148, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %2541 = load i32, ptr %138, align 4, !tbaa !124
  %2542 = sitofp i32 %2541 to float
  %2543 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %148, float noundef %2542)
  store <2 x float> %2543, ptr %147, align 4
  %2544 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2540, ptr noundef nonnull align 4 dereferenceable(8) %147)
  store <2 x float> %2544, ptr %146, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #10
  %2545 = load ptr, ptr %137, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %150, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %2546 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %146, ptr noundef nonnull align 4 dereferenceable(8) %150)
  store <2 x float> %2546, ptr %149, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #10
  %2547 = getelementptr inbounds [64 x i8], ptr %134, i64 0, i64 0
  %2548 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %2547, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %2548, ptr %153, align 4
  %2549 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %146, ptr noundef nonnull align 4 dereferenceable(8) %153)
  store <2 x float> %2549, ptr %152, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %154, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %2550 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %152, ptr noundef nonnull align 4 dereferenceable(8) %154)
  store <2 x float> %2550, ptr %151, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %2545, ptr noundef nonnull align 4 dereferenceable(8) %149, ptr noundef nonnull align 4 dereferenceable(8) %151, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #10
  %2551 = load ptr, ptr %137, align 8, !tbaa !5
  %2552 = getelementptr inbounds [64 x i8], ptr %134, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %2551, ptr noundef null, float noundef 0.000000e+00, ptr noundef nonnull align 4 dereferenceable(8) %146, i32 noundef -1, ptr noundef %2552, ptr noundef null, float noundef 0.000000e+00, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %134) #10
  br label %2553

2553:                                             ; preds = %2444, %2422, %2416, %2411
  call void @_ZN5ImGui3EndEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %7) #10
  store i32 0, ptr %6, align 4
  br label %2554

2554:                                             ; preds = %2553, %184
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #10
  %2555 = load i32, ptr %6, align 4
  switch i32 %2555, label %2562 [
    i32 0, label %2556
    i32 1, label %2556
  ]

2556:                                             ; preds = %2554, %2554
  ret void

2557:                                             ; preds = %914
  %2558 = load ptr, ptr %55, align 8
  %2559 = load i32, ptr %56, align 4
  %2560 = insertvalue { ptr, i32 } poison, ptr %2558, 0
  %2561 = insertvalue { ptr, i32 } %2560, i32 %2559, 1
  resume { ptr, i32 } %2561

2562:                                             ; preds = %2554, %2404, %2300, %1845, %557
  unreachable
}

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui19DebugBreakClearDataEv() #1

declare void @_ZN5ImGui9SeparatorEv() #7

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef) #7

declare void @_ZN5ImGui15SeparatorTextExEjPKcS1_f(i32 noundef, ptr noundef, ptr noundef, float noundef) #7

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL17MetricsHelpMarkerPKc(ptr noundef) #9

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui20DebugStartItemPickerEv() #5

declare void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef) #7

declare noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #7

declare void @_ZN5ImGui10BulletTextEPKcz(ptr noundef, ...) #7

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef, i32 noundef) #8 align 2

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

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

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef, i32 noundef, i32 noundef) #9 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_(ptr noundef, ptr noundef) #1 align 2

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

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

declare noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv() #7

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

; Function Attrs: nounwind
declare i32 @__cxa_guard_acquire(ptr) #10

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

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

; Function Attrs: nounwind
declare i32 @__cxa_atexit(ptr, ptr, ptr) #10

; Function Attrs: nounwind
declare void @__cxa_guard_abort(ptr) #10

; Function Attrs: nounwind
declare void @__cxa_guard_release(ptr) #10

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL39ViewportComparerByLastFocusedStampCountPKvS0_(ptr noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef) #9

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

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

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

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

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

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) #7

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) #7

declare void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef) #7

declare noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef) #7

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef) #9

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

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

declare void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef) #7

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

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

declare noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, ptr noundef, i64 noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, ptr noundef) #7

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef) #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef) #1

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef) #1

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN5ImGui16DockNodeGetDepthEPK13ImGuiDockNode(ptr noundef) #5

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTS18ImGuiMetricsConfig", !11, i64 0, !11, i64 1, !11, i64 2, !11, i64 3, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !11, i64 8, !11, i64 9, !12, i64 12, !12, i64 16}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!10, !11, i64 1}
!16 = !{!17, !21, i64 256}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !18, i64 32, !6, i64 64, !12, i64 72, !19, i64 76, !12, i64 84, !19, i64 88, !19, i64 96, !19, i64 104, !19, i64 112, !19, i64 120, !19, i64 128, !19, i64 136, !20, i64 144, !20, i64 148, !20, i64 152, !20, i64 156, !20, i64 160, !20, i64 164, !20, i64 168, !20, i64 172, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !19, i64 192, !19, i64 200, !19, i64 208, !19, i64 216, !19, i64 224, !19, i64 232, !11, i64 240, !11, i64 241, !11, i64 242, !11, i64 243, !11, i64 244, !11, i64 245, !11, i64 246, !11, i64 247, !11, i64 248, !11, i64 249, !11, i64 250, !11, i64 251, !11, i64 252, !11, i64 253, !7, i64 254, !7, i64 255, !21, i64 256, !21, i64 258, !21, i64 260, !21, i64 262, !21, i64 264, !12, i64 268, !7, i64 272, !7, i64 273, !11, i64 274, !12, i64 276, !7, i64 280, !7, i64 281, !7, i64 282, !7, i64 283, !12, i64 284, !12, i64 285, !12, i64 286, !12, i64 287, !19, i64 288, !19, i64 296, !22, i64 304, !23, i64 320, !29, i64 552, !29, i64 568, !29, i64 584, !29, i64 600, !29, i64 616, !29, i64 632, !29, i64 648, !30, i64 664, !30, i64 668, !12, i64 672, !12, i64 676, !20, i64 680, !20, i64 684, !31, i64 688, !33, i64 704, !20, i64 720, !20, i64 724, !12, i64 728, !6, i64 736, !34, i64 744, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !6, i64 1000, !6, i64 1008, !7, i64 1016, !7, i64 1024, !7, i64 1056, !12, i64 1072, !12, i64 1076, !12, i64 1080, !11, i64 1084, !11, i64 1085, !11, i64 1085, !11, i64 1085, !11, i64 1085, !21, i64 1086, !45, i64 1088, !6, i64 1112, !6, i64 1120, !12, i64 1128, !12, i64 1132, !29, i64 1136}
!18 = !{!"_ZTS16ImGuiWindowClass", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !11, i64 28, !11, i64 29}
!19 = !{!"_ZTS6ImVec2", !20, i64 0, !20, i64 4}
!20 = !{!"float", !7, i64 0}
!21 = !{!"short", !7, i64 0}
!22 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!23 = !{!"_ZTS19ImGuiWindowTempData", !19, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !20, i64 56, !20, i64 60, !11, i64 64, !11, i64 65, !24, i64 68, !24, i64 72, !24, i64 76, !19, i64 80, !25, i64 88, !21, i64 92, !21, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !19, i64 100, !26, i64 108, !12, i64 136, !12, i64 140, !27, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !20, i64 188, !20, i64 192, !28, i64 200, !28, i64 216}
!24 = !{!"_ZTS6ImVec1", !20, i64 0}
!25 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!26 = !{!"_ZTS16ImGuiMenuColumns", !12, i64 0, !12, i64 4, !21, i64 8, !21, i64 10, !21, i64 12, !21, i64 14, !21, i64 16, !7, i64 18}
!27 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!28 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!29 = !{!"_ZTS6ImRect", !19, i64 0, !19, i64 8}
!30 = !{!"_ZTS8ImVec2ih", !21, i64 0, !21, i64 2}
!31 = !{!"_ZTS12ImGuiStorage", !32, i64 0}
!32 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !12, i64 0, !12, i64 4, !6, i64 8}
!33 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!34 = !{!"_ZTS10ImDrawList", !35, i64 0, !36, i64 16, !37, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !38, i64 88, !39, i64 104, !40, i64 120, !41, i64 136, !43, i64 168, !20, i64 192}
!35 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS8ImVectorIPvE", !12, i64 0, !12, i64 4, !6, i64 8}
!40 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!41 = !{!"_ZTS15ImDrawCmdHeader", !42, i64 0, !6, i64 16, !12, i64 24}
!42 = !{!"_ZTS6ImVec4", !20, i64 0, !20, i64 4, !20, i64 8, !20, i64 12}
!43 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !44, i64 8}
!44 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!45 = !{!"_ZTS20ImGuiWindowDockStyle", !7, i64 0}
!46 = !{!47, !20, i64 212}
!47 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !19, i64 8, !20, i64 16, !20, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !20, i64 56, !11, i64 60, !6, i64 64, !19, i64 72, !11, i64 80, !11, i64 81, !11, i64 82, !11, i64 83, !11, i64 84, !11, i64 85, !11, i64 86, !11, i64 87, !11, i64 88, !11, i64 89, !11, i64 90, !11, i64 91, !11, i64 92, !11, i64 93, !11, i64 94, !11, i64 95, !20, i64 96, !20, i64 100, !20, i64 104, !20, i64 108, !20, i64 112, !20, i64 116, !11, i64 120, !11, i64 121, !11, i64 122, !11, i64 123, !11, i64 124, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !21, i64 200, !11, i64 202, !11, i64 203, !11, i64 204, !11, i64 205, !11, i64 206, !11, i64 207, !11, i64 208, !20, i64 212, !12, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !19, i64 232, !7, i64 240, !7, i64 2904, !7, i64 3572, !6, i64 3640, !19, i64 3648, !7, i64 3656, !20, i64 3664, !20, i64 3668, !48, i64 3672, !12, i64 3676, !11, i64 3680, !11, i64 3681, !11, i64 3682, !11, i64 3683, !12, i64 3684, !7, i64 3688, !11, i64 14344, !19, i64 14348, !7, i64 14356, !7, i64 14400, !7, i64 14440, !7, i64 14445, !7, i64 14450, !7, i64 14460, !7, i64 14470, !7, i64 14475, !7, i64 14480, !11, i64 14485, !7, i64 14488, !7, i64 14508, !7, i64 14528, !7, i64 14568, !20, i64 14588, !11, i64 14592, !11, i64 14593, !7, i64 14594, !11, i64 14595, !21, i64 14596, !36, i64 14600}
!48 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!49 = !{!47, !12, i64 216}
!50 = !{!47, !12, i64 220}
!51 = !{!47, !12, i64 224}
!52 = !{!53, !12, i64 25344}
!53 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !47, i64 8, !54, i64 14624, !57, i64 14840, !12, i64 15972, !12, i64 15976, !6, i64 15984, !20, i64 15992, !20, i64 15996, !58, i64 16000, !59, i64 16528, !12, i64 16536, !12, i64 16540, !12, i64 16544, !12, i64 16548, !11, i64 16552, !11, i64 16553, !11, i64 16554, !11, i64 16555, !11, i64 16556, !6, i64 16560, !60, i64 16568, !60, i64 16584, !48, i64 16600, !12, i64 16604, !27, i64 16608, !27, i64 16624, !27, i64 16640, !61, i64 16656, !31, i64 16672, !12, i64 16688, !19, i64 16692, !12, i64 16700, !6, i64 16704, !6, i64 16712, !6, i64 16720, !6, i64 16728, !6, i64 16736, !19, i64 16744, !12, i64 16752, !12, i64 16756, !20, i64 16760, !19, i64 16764, !19, i64 16772, !12, i64 16780, !12, i64 16784, !12, i64 16788, !11, i64 16792, !11, i64 16793, !20, i64 16796, !20, i64 16800, !12, i64 16804, !12, i64 16808, !20, i64 16812, !11, i64 16816, !11, i64 16817, !11, i64 16818, !11, i64 16819, !11, i64 16820, !11, i64 16821, !11, i64 16822, !12, i64 16823, !19, i64 16824, !6, i64 16832, !62, i64 16840, !12, i64 16844, !11, i64 16848, !11, i64 16849, !6, i64 16856, !12, i64 16864, !20, i64 16868, !59, i64 16872, !59, i64 16880, !59, i64 16888, !63, i64 16896, !7, i64 16916, !64, i64 18768, !12, i64 19112, !11, i64 19116, !12, i64 19120, !12, i64 19124, !12, i64 19128, !12, i64 19132, !12, i64 19136, !66, i64 19144, !68, i64 19176, !69, i64 19256, !11, i64 19416, !12, i64 19420, !70, i64 19424, !71, i64 19440, !72, i64 19456, !73, i64 19472, !74, i64 19488, !75, i64 19504, !76, i64 19520, !76, i64 19536, !77, i64 19552, !12, i64 19568, !78, i64 19576, !20, i64 19592, !6, i64 19600, !6, i64 19608, !6, i64 19616, !12, i64 19624, !79, i64 19632, !12, i64 19680, !12, i64 19684, !12, i64 19688, !6, i64 19696, !12, i64 19704, !12, i64 19708, !73, i64 19712, !12, i64 19728, !12, i64 19732, !12, i64 19736, !12, i64 19740, !12, i64 19744, !20, i64 19748, !12, i64 19752, !12, i64 19756, !12, i64 19760, !12, i64 19764, !12, i64 19768, !62, i64 19772, !25, i64 19776, !67, i64 19784, !11, i64 19792, !11, i64 19793, !11, i64 19794, !11, i64 19795, !11, i64 19796, !11, i64 19797, !11, i64 19798, !80, i64 19800, !11, i64 19864, !11, i64 19865, !11, i64 19866, !12, i64 19868, !12, i64 19872, !12, i64 19876, !12, i64 19880, !12, i64 19884, !12, i64 19888, !29, i64 19892, !29, i64 19908, !12, i64 19924, !12, i64 19928, !12, i64 19932, !80, i64 19936, !80, i64 20000, !80, i64 20064, !80, i64 20128, !12, i64 20192, !12, i64 20196, !6, i64 20200, !6, i64 20208, !6, i64 20216, !20, i64 20224, !20, i64 20228, !11, i64 20232, !19, i64 20236, !19, i64 20244, !20, i64 20252, !11, i64 20256, !11, i64 20257, !11, i64 20258, !12, i64 20260, !12, i64 20264, !12, i64 20268, !81, i64 20272, !29, i64 20336, !29, i64 20352, !12, i64 20368, !12, i64 20372, !20, i64 20376, !12, i64 20380, !12, i64 20384, !12, i64 20388, !12, i64 20392, !82, i64 20400, !7, i64 20416, !12, i64 20432, !83, i64 20440, !6, i64 20456, !12, i64 20464, !12, i64 20468, !84, i64 20472, !85, i64 20488, !28, i64 20528, !44, i64 20544, !6, i64 20560, !87, i64 20568, !89, i64 20608, !90, i64 20624, !12, i64 20640, !12, i64 20644, !20, i64 20648, !20, i64 20652, !12, i64 20656, !12, i64 20660, !12, i64 20664, !20, i64 20668, !19, i64 20672, !91, i64 20680, !95, i64 24408, !96, i64 24432, !12, i64 24552, !12, i64 24556, !12, i64 24560, !12, i64 24564, !20, i64 24568, !20, i64 24572, !12, i64 24576, !42, i64 24580, !98, i64 24596, !29, i64 24644, !11, i64 24660, !20, i64 24664, !20, i64 24668, !11, i64 24672, !11, i64 24673, !20, i64 24676, !20, i64 24680, !20, i64 24684, !20, i64 24688, !21, i64 24692, !21, i64 24694, !21, i64 24696, !92, i64 24704, !22, i64 24720, !99, i64 24736, !101, i64 24840, !101, i64 24856, !12, i64 24872, !102, i64 24880, !6, i64 24936, !11, i64 24944, !20, i64 24948, !105, i64 24952, !106, i64 24968, !107, i64 24984, !108, i64 25000, !109, i64 25016, !12, i64 25032, !7, i64 25040, !11, i64 25128, !110, i64 25132, !6, i64 25136, !105, i64 25144, !6, i64 25160, !6, i64 25168, !20, i64 25176, !11, i64 25180, !12, i64 25184, !12, i64 25188, !12, i64 25192, !12, i64 25196, !105, i64 25200, !111, i64 25216, !12, i64 25240, !7, i64 25244, !7, i64 25245, !11, i64 25246, !12, i64 25248, !7, i64 25252, !11, i64 25253, !7, i64 25254, !12, i64 25256, !20, i64 25260, !42, i64 25264, !10, i64 25280, !112, i64 25304, !114, i64 25344, !6, i64 25408, !7, i64 25416, !12, i64 25656, !12, i64 25660, !20, i64 25664, !12, i64 25668, !12, i64 25672, !12, i64 25676, !92, i64 25680, !7, i64 25696}
!54 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !55, i64 184, !56, i64 200}
!55 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !12, i64 0, !12, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !12, i64 0, !12, i64 4, !6, i64 8}
!57 = !{!"_ZTS10ImGuiStyle", !20, i64 0, !20, i64 4, !19, i64 8, !20, i64 16, !20, i64 20, !19, i64 24, !19, i64 32, !12, i64 40, !20, i64 44, !20, i64 48, !20, i64 52, !20, i64 56, !19, i64 60, !20, i64 68, !20, i64 72, !19, i64 76, !19, i64 84, !19, i64 92, !19, i64 100, !20, i64 108, !20, i64 112, !20, i64 116, !20, i64 120, !20, i64 124, !20, i64 128, !20, i64 132, !20, i64 136, !20, i64 140, !20, i64 144, !20, i64 148, !20, i64 152, !12, i64 156, !19, i64 160, !19, i64 168, !20, i64 176, !19, i64 180, !19, i64 188, !19, i64 196, !19, i64 204, !20, i64 212, !20, i64 216, !11, i64 220, !11, i64 221, !11, i64 222, !20, i64 224, !20, i64 228, !7, i64 232, !20, i64 1112, !20, i64 1116, !20, i64 1120, !12, i64 1124, !12, i64 1128}
!58 = !{!"_ZTS20ImDrawListSharedData", !19, i64 0, !6, i64 8, !20, i64 16, !20, i64 20, !20, i64 24, !42, i64 28, !12, i64 44, !40, i64 48, !7, i64 64, !20, i64 448, !7, i64 452, !6, i64 520}
!59 = !{!"double", !7, i64 0}
!60 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!62 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!63 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!64 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !65, i64 312, !65, i64 328}
!65 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!66 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !67, i64 8, !20, i64 16, !12, i64 20, !11, i64 24, !12, i64 25}
!67 = !{!"long long", !7, i64 0}
!68 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !29, i64 12, !29, i64 28, !29, i64 44, !29, i64 60}
!69 = !{!"_ZTS19ImGuiNextWindowData", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !19, i64 20, !19, i64 28, !19, i64 36, !19, i64 44, !19, i64 52, !12, i64 60, !11, i64 64, !11, i64 65, !29, i64 68, !6, i64 88, !6, i64 96, !20, i64 104, !12, i64 108, !12, i64 112, !18, i64 116, !19, i64 148}
!70 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI20ImGuiNavTreeNodeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!79 = !{!"_ZTS20ImGuiPlatformMonitor", !19, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !20, i64 32, !6, i64 40}
!80 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !29, i64 16, !12, i64 32, !67, i64 40, !20, i64 48, !20, i64 52, !20, i64 56}
!81 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !7, i64 24, !11, i64 57, !11, i64 58}
!82 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_ZTS6ImPoolI10ImGuiTableE", !86, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!86 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!87 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !88, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!88 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!89 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!90 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!91 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !36, i64 24, !92, i64 40, !92, i64 56, !11, i64 72, !12, i64 76, !20, i64 80, !93, i64 84, !20, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !12, i64 3720}
!92 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!93 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !12, i64 0, !12, i64 4, !12, i64 8, !7, i64 12, !12, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !20, i64 28, !94, i64 32}
!94 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !21, i64 3582, !21, i64 3584, !12, i64 3588, !12, i64 3592}
!95 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !92, i64 8}
!96 = !{!"_ZTS6ImFont", !28, i64 0, !20, i64 16, !20, i64 20, !36, i64 24, !97, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !21, i64 80, !21, i64 82, !21, i64 84, !21, i64 86, !20, i64 88, !20, i64 92, !11, i64 96, !20, i64 100, !20, i64 104, !20, i64 108, !12, i64 112, !7, i64 116}
!97 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!98 = !{!"_ZTS21ImGuiComboPreviewData", !29, i64 0, !19, i64 16, !19, i64 24, !19, i64 32, !20, i64 40, !12, i64 44}
!99 = !{!"_ZTS22ImGuiTypingSelectState", !100, i64 0, !7, i64 24, !12, i64 88, !12, i64 92, !20, i64 96, !11, i64 100}
!100 = !{!"_ZTS24ImGuiTypingSelectRequest", !12, i64 0, !12, i64 4, !6, i64 8, !11, i64 16, !11, i64 17, !7, i64 18}
!101 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !19, i64 4, !20, i64 12}
!102 = !{!"_ZTS16ImGuiDockContext", !31, i64 0, !103, i64 16, !104, i64 32, !11, i64 48}
!103 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !12, i64 0, !12, i64 4, !6, i64 8}
!104 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !12, i64 0, !12, i64 4, !6, i64 8}
!105 = !{!"_ZTS15ImGuiTextBuffer", !92, i64 0}
!106 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!107 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !92, i64 0}
!108 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !92, i64 0}
!109 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!110 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!111 = !{!"_ZTS14ImGuiTextIndex", !74, i64 0, !12, i64 16}
!112 = !{!"_ZTS16ImGuiIDStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !113, i64 16, !11, i64 32, !20, i64 36}
!113 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!114 = !{!"_ZTS19ImGuiDebugAllocInfo", !12, i64 0, !12, i64 4, !21, i64 8, !7, i64 12}
!115 = !{!53, !12, i64 25348}
!116 = !{!10, !12, i64 12}
!117 = !{!10, !12, i64 16}
!118 = !{!19, !20, i64 0}
!119 = !{!53, !20, i64 15028}
!120 = !{!53, !11, i64 25253}
!121 = !{!10, !11, i64 2}
!122 = !{!53, !6, i64 19696}
!123 = !{!17, !6, i64 8}
!124 = !{!12, !12, i64 0}
!125 = !{!29, !20, i64 0}
!126 = !{!29, !20, i64 4}
!127 = !{!29, !20, i64 8}
!128 = !{!29, !20, i64 12}
!129 = distinct !{!129, !130}
!130 = !{!"llvm.loop.mustprogress"}
!131 = !{!10, !11, i64 4}
!132 = !{!133, !12, i64 104}
!133 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !134, i64 24, !135, i64 40, !136, i64 56, !6, i64 72, !6, i64 80, !6, i64 88, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !21, i64 120, !21, i64 122, !20, i64 124, !20, i64 128, !20, i64 132, !20, i64 136, !20, i64 140, !20, i64 144, !12, i64 148, !12, i64 150, !12, i64 152, !7, i64 156, !12, i64 164, !12, i64 168, !20, i64 172, !20, i64 176, !20, i64 180, !20, i64 184, !20, i64 188, !20, i64 192, !20, i64 196, !20, i64 200, !20, i64 204, !20, i64 208, !20, i64 212, !20, i64 216, !20, i64 220, !20, i64 224, !20, i64 228, !20, i64 232, !20, i64 236, !29, i64 240, !29, i64 256, !29, i64 272, !29, i64 288, !29, i64 304, !29, i64 320, !29, i64 336, !29, i64 352, !29, i64 368, !6, i64 384, !6, i64 392, !105, i64 400, !6, i64 416, !137, i64 424, !138, i64 448, !139, i64 464, !140, i64 480, !141, i64 496, !21, i64 512, !21, i64 514, !21, i64 516, !21, i64 518, !21, i64 520, !21, i64 522, !21, i64 524, !21, i64 526, !21, i64 528, !21, i64 530, !21, i64 532, !21, i64 534, !21, i64 536, !21, i64 538, !21, i64 540, !21, i64 542, !21, i64 544, !21, i64 546, !21, i64 548, !21, i64 550, !21, i64 552, !21, i64 554, !21, i64 556, !21, i64 558, !21, i64 560, !21, i64 562, !21, i64 564, !11, i64 566, !11, i64 567, !11, i64 568, !11, i64 569, !11, i64 570, !11, i64 571, !11, i64 572, !11, i64 573, !11, i64 574, !11, i64 575, !11, i64 576, !11, i64 577, !11, i64 578, !11, i64 579, !11, i64 580, !11, i64 581, !11, i64 582, !11, i64 583, !11, i64 584, !11, i64 585}
!134 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!135 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!136 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!137 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !20, i64 4, !20, i64 8, !20, i64 12, !12, i64 16, !12, i64 20}
!138 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!139 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !21, i64 4, !21, i64 6, !12, i64 8}
!140 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!141 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!142 = !{!53, !12, i64 16536}
!143 = !{!133, !6, i64 384}
!144 = !{!133, !6, i64 392}
!145 = !{!133, !12, i64 0}
!146 = !{!133, !12, i64 108}
!147 = distinct !{!147, !130}
!148 = distinct !{!148, !130}
!149 = distinct !{!149, !130}
!150 = !{!10, !11, i64 7}
!151 = !{!7, !7, i64 0}
!152 = !{!53, !12, i64 16608}
!153 = !{!17, !12, i64 672}
!154 = !{!27, !6, i64 8}
!155 = !{!27, !12, i64 0}
!156 = !{!157, !12, i64 184}
!157 = !{!"_ZTS14ImGuiViewportP", !158, i64 0, !6, i64 96, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !19, i64 120, !20, i64 128, !20, i64 132, !11, i64 136, !21, i64 138, !7, i64 140, !7, i64 152, !159, i64 168, !161, i64 232, !19, i64 264, !19, i64 272, !19, i64 280, !19, i64 288, !19, i64 296, !19, i64 304, !19, i64 312}
!158 = !{!"_ZTS13ImGuiViewport", !12, i64 0, !12, i64 4, !19, i64 8, !19, i64 16, !19, i64 24, !19, i64 32, !20, i64 40, !12, i64 44, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !11, i64 88, !11, i64 89, !11, i64 90, !11, i64 91}
!159 = !{!"_ZTS10ImDrawData", !11, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !160, i64 16, !19, i64 32, !19, i64 40, !19, i64 48, !6, i64 56}
!160 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!161 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0, !160, i64 16}
!162 = !{!11, !11, i64 0}
!163 = !{!157, !12, i64 104}
!164 = !{!158, !12, i64 0}
!165 = !{!53, !12, i64 19576}
!166 = !{!53, !12, i64 14808}
!167 = !{!79, !20, i64 32}
!168 = !{!79, !20, i64 0}
!169 = !{!79, !20, i64 4}
!170 = !{!79, !20, i64 8}
!171 = !{!79, !20, i64 12}
!172 = !{!79, !20, i64 16}
!173 = !{!79, !20, i64 20}
!174 = !{!79, !20, i64 24}
!175 = !{!79, !20, i64 28}
!176 = distinct !{!176, !130}
!177 = !{!53, !6, i64 19608}
!178 = !{!53, !12, i64 3684}
!179 = !{!53, !6, i64 19616}
!180 = !{!"branch_weights", i32 1, i32 1048575}
!181 = !{!78, !6, i64 8}
!182 = !{!53, !6, i64 19584}
!183 = !{!78, !12, i64 0}
!184 = !{!157, !12, i64 112}
!185 = !{!53, !6, i64 14688}
!186 = !{!158, !11, i64 88}
!187 = !{!157, !6, i64 96}
!188 = !{!53, !12, i64 19520}
!189 = !{!190, !6, i64 8}
!190 = !{!"_ZTS14ImGuiPopupData", !12, i64 0, !6, i64 8, !6, i64 16, !12, i64 24, !12, i64 28, !12, i64 32, !19, i64 36, !19, i64 44}
!191 = !{!190, !12, i64 0}
!192 = !{!17, !12, i64 20}
!193 = !{!190, !6, i64 16}
!194 = !{!17, !6, i64 944}
!195 = distinct !{!195, !130}
!196 = distinct !{!196, !130}
!197 = !{!53, !6, i64 56}
!198 = !{!199, !12, i64 88}
!199 = !{!"_ZTS11ImFontAtlas", !12, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !11, i64 24, !6, i64 32, !11, i64 40, !11, i64 41, !6, i64 48, !6, i64 56, !12, i64 64, !12, i64 68, !19, i64 72, !19, i64 80, !72, i64 88, !200, i64 104, !201, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!200 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!201 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!202 = !{!102, !11, i64 48}
!203 = !{!102, !12, i64 0}
!204 = distinct !{!204, !130}
!205 = !{!53, !6, i64 32}
!206 = !{!53, !20, i64 24948}
!207 = !{!53, !12, i64 24968}
!208 = !{!209, !6, i64 0}
!209 = !{!"_ZTS20ImGuiSettingsHandler", !6, i64 0, !12, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64}
!210 = distinct !{!210, !130}
!211 = distinct !{!211, !130}
!212 = !{!213, !12, i64 20}
!213 = !{!"_ZTS19ImGuiWindowSettings", !12, i64 0, !30, i64 4, !30, i64 8, !30, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !21, i64 28, !11, i64 30, !11, i64 31, !11, i64 32, !11, i64 33}
!214 = !{!213, !21, i64 28}
!215 = distinct !{!215, !130}
!216 = !{!102, !12, i64 32}
!217 = !{!218, !12, i64 12}
!218 = !{!"_ZTS21ImGuiDockNodeSettings", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !7, i64 16, !7, i64 17, !12, i64 20, !30, i64 24, !30, i64 28, !30, i64 32}
!219 = !{!218, !12, i64 0}
!220 = !{!218, !12, i64 4}
!221 = distinct !{!221, !130}
!222 = !{!53, !12, i64 24952}
!223 = !{!114, !12, i64 0}
!224 = !{!114, !12, i64 4}
!225 = !{!53, !11, i64 16555}
!226 = !{!114, !21, i64 8}
!227 = !{!228, !12, i64 0}
!228 = !{!"_ZTS20ImGuiDebugAllocEntry", !12, i64 0, !21, i64 4, !21, i64 6}
!229 = !{!228, !21, i64 4}
!230 = !{!228, !21, i64 6}
!231 = distinct !{!231, !130}
!232 = !{!233, !233, i64 0}
!233 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!234 = !{!235, !20, i64 4}
!235 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !20, i64 4, !20, i64 8, !20, i64 12}
!236 = distinct !{!236, !130}
!237 = distinct !{!237, !130}
!238 = distinct !{!238, !130}
!239 = !{!47, !11, i64 3680}
!240 = !{!47, !11, i64 3681}
!241 = !{!47, !11, i64 3682}
!242 = !{!47, !11, i64 3683}
!243 = !{!47, !12, i64 14600}
!244 = !{!21, !21, i64 0}
!245 = distinct !{!245, !130}
!246 = !{!47, !20, i64 3648}
!247 = !{!47, !20, i64 3652}
!248 = !{!47, !20, i64 232}
!249 = !{!47, !20, i64 236}
!250 = !{!20, !20, i64 0}
!251 = distinct !{!251, !130}
!252 = distinct !{!252, !130}
!253 = distinct !{!253, !130}
!254 = !{!47, !20, i64 3664}
!255 = !{!53, !20, i64 20668}
!256 = !{!47, !48, i64 3672}
!257 = !{!47, !20, i64 14588}
!258 = !{!53, !6, i64 16736}
!259 = !{!53, !20, i64 16760}
!260 = !{!53, !20, i64 16772}
!261 = !{!53, !20, i64 16776}
!262 = !{!263, !12, i64 0}
!263 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!264 = !{!263, !11, i64 9}
!265 = !{!263, !11, i64 8}
!266 = distinct !{!266, !130}
!267 = !{!268, !21, i64 2}
!268 = !{!"_ZTS19ImGuiKeyRoutingData", !21, i64 0, !21, i64 2, !7, i64 4, !7, i64 5, !12, i64 8, !12, i64 12}
!269 = !{!268, !12, i64 8}
!270 = !{!268, !7, i64 4}
!271 = !{!53, !11, i64 128}
!272 = !{!53, !12, i64 19120}
!273 = !{!268, !21, i64 0}
!274 = distinct !{!274, !130}
!275 = distinct !{!275, !130}
!276 = !{!53, !11, i64 19116}
!277 = !{!53, !12, i64 19112}
!278 = !{!53, !6, i64 16712}
!279 = !{!17, !6, i64 976}
!280 = !{!53, !6, i64 16720}
!281 = !{!53, !6, i64 25408}
!282 = !{!283, !12, i64 0}
!283 = !{!"_ZTS13ImGuiDockNode", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !284, i64 20, !6, i64 24, !7, i64 32, !27, i64 48, !6, i64 64, !19, i64 72, !19, i64 80, !19, i64 88, !285, i64 96, !18, i64 100, !12, i64 132, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !12, i64 168, !12, i64 172, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !12, i64 192, !12, i64 196, !12, i64 200, !12, i64 200, !12, i64 200, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 202, !11, i64 202, !11, i64 202, !11, i64 202}
!284 = !{!"_ZTS18ImGuiDockNodeState", !7, i64 0}
!285 = !{!"_ZTS9ImGuiAxis", !7, i64 0}
!286 = !{!53, !6, i64 16728}
!287 = !{!53, !12, i64 16804}
!288 = !{!53, !12, i64 16844}
!289 = !{!53, !20, i64 16812}
!290 = !{!53, !11, i64 16817}
!291 = !{!53, !62, i64 16840}
!292 = !{!53, !6, i64 16832}
!293 = !{!53, !12, i64 16788}
!294 = !{!53, !20, i64 16796}
!295 = !{!53, !11, i64 16792}
!296 = !{!53, !12, i64 20640}
!297 = !{!53, !20, i64 20648}
!298 = !{!53, !20, i64 20652}
!299 = !{!53, !11, i64 20256}
!300 = !{!53, !12, i64 20284}
!301 = !{!53, !12, i64 20280}
!302 = !{!53, !12, i64 19704}
!303 = !{!53, !25, i64 19776}
!304 = !{!53, !62, i64 19772}
!305 = !{!53, !67, i64 19784}
!306 = !{!53, !11, i64 215}
!307 = !{!53, !11, i64 216}
!308 = !{!53, !12, i64 19728}
!309 = !{!53, !12, i64 19732}
!310 = !{!53, !12, i64 19736}
!311 = !{!53, !12, i64 19740}
!312 = !{!53, !11, i64 19794}
!313 = !{!53, !11, i64 19795}
!314 = !{!53, !12, i64 19708}
!315 = !{!53, !12, i64 19712}
!316 = !{!317, !12, i64 0}
!317 = !{!"_ZTS19ImGuiFocusScopeData", !12, i64 0, !12, i64 4}
!318 = !{!317, !12, i64 4}
!319 = distinct !{!319, !130}
!320 = !{!53, !6, i64 20200}
!321 = !{!10, !11, i64 3}
!322 = !{!17, !11, i64 244}
!323 = !{!17, !21, i64 262}
!324 = !{!133, !21, i64 522}
!325 = distinct !{!325, !130}
!326 = distinct !{!326, !130}
!327 = !{!10, !11, i64 9}
!328 = !{!53, !11, i64 3688}
!329 = !{!283, !6, i64 136}
!330 = !{!283, !12, i64 100}
!331 = !{!283, !20, i64 80}
!332 = !{!283, !20, i64 84}
!333 = !{!283, !20, i64 88}
!334 = !{!283, !20, i64 92}


; 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.ImVector.16 = type { i32, i32, ptr }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }
%struct.ImGuiDebugAllocEntry = type { i32, i16, i16 }

@GImGui = external dso_local local_unnamed_addr global ptr, align 8
@.str.17 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [43 x i8], align 1
@__const._ZN5ImGui17ShowMetricsWindowEPb.wrt_rects_names = external hidden unnamed_addr constant [8 x ptr], align 16
@__const._ZN5ImGui17ShowMetricsWindowEPb.trt_rects_names = external hidden unnamed_addr constant [13 x ptr], align 16
@.str.451 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [64 x i8], align 16
@.str.477 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.494 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [33 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE9viewports = external hidden global %struct.ImVector.16, align 8
@_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports = external hidden global i64, align 8
@__dso_handle = external hidden global i8
@.str.497 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only = external hidden global i8, align 1
@.str.515 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.520 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.529 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.530 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.531 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.532 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.533 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.535 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.536 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.537 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.538 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.539 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.540 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.541 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.542 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.543 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.544 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.545 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.546 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.547 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.548 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.549 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.550 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.551 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.552 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.553 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.554 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.555 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.556 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.557 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.558 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.560 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.561 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.562 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.563 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.564 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.565 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.566 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.567 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.568 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.569 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.570 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.571 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.572 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.573 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.574 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.575 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.576 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.577 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.578 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.579 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.580 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.581 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.582 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.583 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.584 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.585 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.586 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.587 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.588 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.589 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.590 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.591 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.592 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.593 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.594 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.595 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.596 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.597 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.598 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.599 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.600 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.601 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.602 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.603 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.604 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.605 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.606 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.607 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.608 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.609 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.610 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.611 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.613 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.614 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.615 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.616 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.617 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.618 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.619 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.620 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.621 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.622 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.623 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.624 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.625 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.626 = external hidden unnamed_addr constant [23 x i8], align 1

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

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef) local_unnamed_addr #5

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z14ImFormatStringPcmPKcz(ptr noundef, i64 noundef, ptr noundef, ...) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #6

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

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

declare noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, ptr noundef, i64 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

declare void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef, float noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, ptr noundef, float noundef, ptr noundef) local_unnamed_addr #7

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

declare void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef) local_unnamed_addr #7

declare void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef, float noundef) local_unnamed_addr #7

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef) local_unnamed_addr #9

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEv() local_unnamed_addr #9

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui16GetCurrentWindowEv() local_unnamed_addr #5

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef) local_unnamed_addr #9

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef) local_unnamed_addr #9

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui17GetWindowDrawListEv() local_unnamed_addr #9

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui5PopIDEv() local_unnamed_addr #9

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui15GetKeyChordNameEi(i32 noundef) local_unnamed_addr #9

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef) local_unnamed_addr #9

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef) local_unnamed_addr #9

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef, i32 noundef) local_unnamed_addr #5

declare void @_ZN5ImGui7TreePopEv() local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui8SameLineEff(float noundef, float noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui6IndentEf(float noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8UnindentEf(float noundef) local_unnamed_addr #9

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui16ClearIniSettingsEv() local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef) local_unnamed_addr #9

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(34)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui22FindWindowSettingsByIDEj(i32 noundef) local_unnamed_addr #9

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui21DockContextClearNodesEP12ImGuiContextjb(ptr noundef, i32 noundef, i1 noundef zeroext) local_unnamed_addr #9

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

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

declare noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef, i1 noundef zeroext, i32 noundef, ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #7

declare void @_ZN5ImGui4TextEPKcz(ptr noundef, ...) local_unnamed_addr #7

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

declare void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

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

declare void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef, ptr noundef) local_unnamed_addr #7

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

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef, ptr noundef, ...) local_unnamed_addr #7

declare noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef, ptr noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef %0) local_unnamed_addr #8 personality ptr @__gxx_personality_v0 {
  %2 = alloca [8 x ptr], align 16
  %3 = alloca [13 x ptr], align 16
  %4 = alloca %struct.ImRect, align 8
  %5 = alloca %struct.ImVec2, align 8
  %6 = alloca %struct.ImVec2, align 4
  %7 = alloca %struct.ImVec2, align 8
  %8 = alloca %struct.ImVec2, align 4
  %9 = alloca [128 x i8], align 16
  %10 = alloca %struct.ImRect, align 8
  %11 = alloca %struct.ImVec2, align 4
  %12 = alloca %struct.ImVec2, align 8
  %13 = alloca %struct.ImVec2, align 4
  %14 = alloca %struct.ImVec2, align 8
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca %struct.ImRect, align 8
  %17 = alloca %struct.ImVec2, align 4
  %18 = alloca %struct.ImVec2, align 8
  %19 = alloca %struct.ImVec2, align 4
  %20 = alloca %struct.ImVec2, align 8
  %21 = alloca %struct.ImVec2, align 4
  %22 = alloca ptr, align 8
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca %struct.ImRect, align 8
  %27 = alloca [32 x i8], align 16
  %28 = alloca %struct.ImVec2, align 8
  %29 = alloca %struct.ImVec2, align 4
  %30 = alloca %struct.ImRect, align 8
  %31 = alloca %struct.ImRect, align 8
  %32 = alloca [64 x i8], align 16
  %33 = alloca %struct.ImVec2, align 8
  %34 = alloca %struct.ImVec2, align 8
  %35 = alloca %struct.ImVec2, align 4
  %36 = alloca %struct.ImVec2, align 8
  %37 = alloca %struct.ImVec2, align 8
  %38 = alloca %struct.ImVec2, align 8
  %39 = alloca %struct.ImVec2, align 4
  %40 = alloca %struct.ImVec2, align 8
  %41 = alloca %struct.ImVec2, align 8
  %42 = alloca %struct.ImVec2, align 4
  %43 = alloca %struct.ImVec2, align 8
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca %struct.ImVec2, align 8
  %46 = alloca %struct.ImVec2, align 8
  %47 = alloca %struct.ImVec2, align 8
  %48 = alloca %struct.ImVec2, align 4
  %49 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %50 = getelementptr inbounds i8, ptr %49, i64 25280
  %51 = load i8, ptr %50, align 4, !tbaa !9, !range !13, !noundef !14
  %52 = trunc nuw i8 %51 to i1
  br i1 %52, label %53, label %54

53:                                               ; preds = %1
  tail call void @_ZN5ImGui18ShowDebugLogWindowEPb(ptr noundef nonnull %50)
  br label %54

54:                                               ; preds = %53, %1
  %55 = getelementptr inbounds i8, ptr %49, i64 25281
  %56 = load i8, ptr %55, align 1, !tbaa !15, !range !13, !noundef !14
  %57 = trunc nuw i8 %56 to i1
  br i1 %57, label %58, label %59

58:                                               ; preds = %54
  tail call void @_ZN5ImGui21ShowIDStackToolWindowEPb(ptr noundef nonnull %55)
  br label %59

59:                                               ; preds = %58, %54
  %60 = tail call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.429, ptr noundef %0, i32 noundef 0)
  br i1 %60, label %61, label %66

61:                                               ; preds = %59
  %62 = tail call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %63 = getelementptr inbounds i8, ptr %62, i64 256
  %64 = load i16, ptr %63, align 8, !tbaa !16
  %65 = icmp sgt i16 %64, 1
  br i1 %65, label %66, label %67

66:                                               ; preds = %61, %59
  tail call void @_ZN5ImGui3EndEv()
  br label %1445

67:                                               ; preds = %61
  tail call void @_ZN5ImGui19DebugBreakClearDataEv()
  %68 = tail call noundef ptr @_ZN5ImGui10GetVersionEv()
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.430, ptr noundef %68)
  %69 = getelementptr inbounds i8, ptr %49, i64 220
  %70 = load float, ptr %69, align 4, !tbaa !46
  %71 = fdiv float 1.000000e+03, %70
  %72 = fpext float %71 to double
  %73 = fpext float %70 to double
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.431, double noundef %72, double noundef %73)
  %74 = getelementptr inbounds i8, ptr %49, i64 224
  %75 = load i32, ptr %74, align 8, !tbaa !49
  %76 = getelementptr inbounds i8, ptr %49, i64 228
  %77 = load i32, ptr %76, align 4, !tbaa !50
  %78 = sdiv i32 %77, 3
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.432, i32 noundef %75, i32 noundef %77, i32 noundef %78)
  %79 = getelementptr inbounds i8, ptr %49, i64 232
  %80 = load i32, ptr %79, align 8, !tbaa !51
  %81 = getelementptr inbounds i8, ptr %49, i64 25344
  %82 = load i32, ptr %81, align 8, !tbaa !52
  %83 = getelementptr inbounds i8, ptr %49, i64 25348
  %84 = load i32, ptr %83, align 4, !tbaa !115
  %85 = sub nsw i32 %82, %84
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.433, i32 noundef %80, i32 noundef %85)
  tail call void @_ZN5ImGui9SeparatorEv()
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %2) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %2, ptr noundef nonnull align 16 dereferenceable(64) @__const._ZN5ImGui17ShowMetricsWindowEPb.wrt_rects_names, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %3) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(104) %3, ptr noundef nonnull align 16 dereferenceable(104) @__const._ZN5ImGui17ShowMetricsWindowEPb.trt_rects_names, i64 104, i1 false)
  %86 = getelementptr inbounds i8, ptr %49, i64 25292
  %87 = load i32, ptr %86, align 4, !tbaa !116
  %88 = icmp slt i32 %87, 0
  br i1 %88, label %89, label %90

89:                                               ; preds = %67
  store i32 4, ptr %86, align 4, !tbaa !116
  br label %90

90:                                               ; preds = %89, %67
  %91 = getelementptr inbounds i8, ptr %49, i64 25296
  %92 = load i32, ptr %91, align 4, !tbaa !117
  %93 = icmp slt i32 %92, 0
  br i1 %93, label %94, label %95

94:                                               ; preds = %90
  store i32 2, ptr %91, align 4, !tbaa !117
  br label %95

95:                                               ; preds = %94, %90
  %96 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.451)
  br i1 %96, label %97, label %402

97:                                               ; preds = %95
  %98 = tail call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef nonnull @.str.453, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %98, i64 0
  %99 = getelementptr inbounds i8, ptr %49, i64 15028
  %100 = load float, ptr %99, align 4, !tbaa !118
  %101 = fadd float %.sroa.0.0.vec.extract, %100
  tail call void @_ZN5ImGui15SeparatorTextExEjPKcS1_f(i32 noundef 0, ptr noundef nonnull @.str.452, ptr noundef null, float noundef %101)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.454)
  %102 = getelementptr inbounds i8, ptr %49, i64 25253
  %103 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.455, ptr noundef nonnull %102)
  br i1 %103, label %104, label %108

104:                                              ; preds = %97
  %105 = load i8, ptr %102, align 1, !tbaa !119, !range !13, !noundef !14
  %106 = trunc nuw i8 %105 to i1
  br i1 %106, label %107, label %108

107:                                              ; preds = %104
  tail call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %108

108:                                              ; preds = %107, %104, %97
  %109 = getelementptr inbounds i8, ptr %49, i64 128
  %110 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.456, ptr noundef nonnull %109)
  tail call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.457)
  %111 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.458, ptr noundef nonnull %50)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.459)
  %112 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.460, ptr noundef nonnull %55)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.461)
  %113 = getelementptr inbounds i8, ptr %49, i64 25283
  %114 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.462, ptr noundef nonnull %113)
  %115 = getelementptr inbounds i8, ptr %49, i64 25282
  %116 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.463, ptr noundef nonnull %115)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %117 = tail call noundef float @_ZN5ImGui11GetFontSizeEv()
  %118 = fmul float %117, 1.200000e+01
  tail call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %118)
  %119 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.464, ptr noundef nonnull %86, ptr noundef nonnull %2, i32 noundef 8, i32 noundef 8)
  %120 = load i8, ptr %115, align 2, !tbaa !120, !range !13, !noundef !14
  %121 = zext i1 %119 to i8
  %122 = or i8 %120, %121
  %.not = icmp eq i8 %122, 0
  store i8 %122, ptr %115, align 2, !tbaa !120
  br i1 %.not, label %273, label %123

123:                                              ; preds = %108
  %124 = getelementptr inbounds i8, ptr %49, i64 19696
  %125 = load ptr, ptr %124, align 8, !tbaa !121
  %.not638 = icmp eq ptr %125, null
  br i1 %.not638, label %273, label %126

126:                                              ; preds = %123
  %127 = getelementptr inbounds i8, ptr %125, i64 8
  %128 = load ptr, ptr %127, align 8, !tbaa !122
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.465, ptr noundef %128)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %129 = getelementptr inbounds i8, ptr %4, i64 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  %130 = load ptr, ptr %124, align 8, !tbaa !121
  %131 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %130, i32 noundef 0)
  %132 = extractvalue { <2 x float>, <2 x float> } %131, 0
  store <2 x float> %132, ptr %4, align 8
  %133 = extractvalue { <2 x float>, <2 x float> } %131, 1
  store <2 x float> %133, ptr %129, align 8
  %134 = extractelement <2 x float> %132, i64 0
  %135 = fpext float %134 to double
  %136 = extractelement <2 x float> %132, i64 1
  %137 = fpext float %136 to double
  %138 = extractelement <2 x float> %133, i64 0
  %139 = fpext float %138 to double
  %140 = extractelement <2 x float> %133, i64 1
  %141 = fpext float %140 to double
  %142 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %143 = fpext float %142 to double
  %144 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %145 = fpext float %144 to double
  %146 = load ptr, ptr %2, align 16, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.466, double noundef %135, double noundef %137, double noundef %139, double noundef %141, double noundef %143, double noundef %145, ptr noundef %146)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  %147 = load ptr, ptr %124, align 8, !tbaa !121
  %148 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %147, i32 noundef 1)
  %149 = extractvalue { <2 x float>, <2 x float> } %148, 0
  store <2 x float> %149, ptr %4, align 8
  %150 = extractvalue { <2 x float>, <2 x float> } %148, 1
  store <2 x float> %150, ptr %129, align 8
  %151 = extractelement <2 x float> %149, i64 0
  %152 = fpext float %151 to double
  %153 = extractelement <2 x float> %149, i64 1
  %154 = fpext float %153 to double
  %155 = extractelement <2 x float> %150, i64 0
  %156 = fpext float %155 to double
  %157 = extractelement <2 x float> %150, i64 1
  %158 = fpext float %157 to double
  %159 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %160 = fpext float %159 to double
  %161 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %162 = fpext float %161 to double
  %163 = getelementptr inbounds i8, ptr %2, i64 8
  %164 = load ptr, ptr %163, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.466, double noundef %152, double noundef %154, double noundef %156, double noundef %158, double noundef %160, double noundef %162, ptr noundef %164)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  %165 = load ptr, ptr %124, align 8, !tbaa !121
  %166 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %165, i32 noundef 2)
  %167 = extractvalue { <2 x float>, <2 x float> } %166, 0
  store <2 x float> %167, ptr %4, align 8
  %168 = extractvalue { <2 x float>, <2 x float> } %166, 1
  store <2 x float> %168, ptr %129, align 8
  %169 = extractelement <2 x float> %167, i64 0
  %170 = fpext float %169 to double
  %171 = extractelement <2 x float> %167, i64 1
  %172 = fpext float %171 to double
  %173 = extractelement <2 x float> %168, i64 0
  %174 = fpext float %173 to double
  %175 = extractelement <2 x float> %168, i64 1
  %176 = fpext float %175 to double
  %177 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %178 = fpext float %177 to double
  %179 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %180 = fpext float %179 to double
  %181 = getelementptr inbounds i8, ptr %2, i64 16
  %182 = load ptr, ptr %181, align 16, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.466, double noundef %170, double noundef %172, double noundef %174, double noundef %176, double noundef %178, double noundef %180, ptr noundef %182)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  %183 = load ptr, ptr %124, align 8, !tbaa !121
  %184 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %183, i32 noundef 3)
  %185 = extractvalue { <2 x float>, <2 x float> } %184, 0
  store <2 x float> %185, ptr %4, align 8
  %186 = extractvalue { <2 x float>, <2 x float> } %184, 1
  store <2 x float> %186, ptr %129, align 8
  %187 = extractelement <2 x float> %185, i64 0
  %188 = fpext float %187 to double
  %189 = extractelement <2 x float> %185, i64 1
  %190 = fpext float %189 to double
  %191 = extractelement <2 x float> %186, i64 0
  %192 = fpext float %191 to double
  %193 = extractelement <2 x float> %186, i64 1
  %194 = fpext float %193 to double
  %195 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %196 = fpext float %195 to double
  %197 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %198 = fpext float %197 to double
  %199 = getelementptr inbounds i8, ptr %2, i64 24
  %200 = load ptr, ptr %199, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.466, double noundef %188, double noundef %190, double noundef %192, double noundef %194, double noundef %196, double noundef %198, ptr noundef %200)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  %201 = load ptr, ptr %124, align 8, !tbaa !121
  %202 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %201, i32 noundef 4)
  %203 = extractvalue { <2 x float>, <2 x float> } %202, 0
  store <2 x float> %203, ptr %4, align 8
  %204 = extractvalue { <2 x float>, <2 x float> } %202, 1
  store <2 x float> %204, ptr %129, align 8
  %205 = extractelement <2 x float> %203, i64 0
  %206 = fpext float %205 to double
  %207 = extractelement <2 x float> %203, i64 1
  %208 = fpext float %207 to double
  %209 = extractelement <2 x float> %204, i64 0
  %210 = fpext float %209 to double
  %211 = extractelement <2 x float> %204, i64 1
  %212 = fpext float %211 to double
  %213 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %214 = fpext float %213 to double
  %215 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %216 = fpext float %215 to double
  %217 = getelementptr inbounds i8, ptr %2, i64 32
  %218 = load ptr, ptr %217, align 16, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.466, double noundef %206, double noundef %208, double noundef %210, double noundef %212, double noundef %214, double noundef %216, ptr noundef %218)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  %219 = load ptr, ptr %124, align 8, !tbaa !121
  %220 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %219, i32 noundef 5)
  %221 = extractvalue { <2 x float>, <2 x float> } %220, 0
  store <2 x float> %221, ptr %4, align 8
  %222 = extractvalue { <2 x float>, <2 x float> } %220, 1
  store <2 x float> %222, ptr %129, align 8
  %223 = extractelement <2 x float> %221, i64 0
  %224 = fpext float %223 to double
  %225 = extractelement <2 x float> %221, i64 1
  %226 = fpext float %225 to double
  %227 = extractelement <2 x float> %222, i64 0
  %228 = fpext float %227 to double
  %229 = extractelement <2 x float> %222, i64 1
  %230 = fpext float %229 to double
  %231 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %232 = fpext float %231 to double
  %233 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %234 = fpext float %233 to double
  %235 = getelementptr inbounds i8, ptr %2, i64 40
  %236 = load ptr, ptr %235, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.466, double noundef %224, double noundef %226, double noundef %228, double noundef %230, double noundef %232, double noundef %234, ptr noundef %236)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  %237 = load ptr, ptr %124, align 8, !tbaa !121
  %238 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %237, i32 noundef 6)
  %239 = extractvalue { <2 x float>, <2 x float> } %238, 0
  store <2 x float> %239, ptr %4, align 8
  %240 = extractvalue { <2 x float>, <2 x float> } %238, 1
  store <2 x float> %240, ptr %129, align 8
  %241 = extractelement <2 x float> %239, i64 0
  %242 = fpext float %241 to double
  %243 = extractelement <2 x float> %239, i64 1
  %244 = fpext float %243 to double
  %245 = extractelement <2 x float> %240, i64 0
  %246 = fpext float %245 to double
  %247 = extractelement <2 x float> %240, i64 1
  %248 = fpext float %247 to double
  %249 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %250 = fpext float %249 to double
  %251 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %252 = fpext float %251 to double
  %253 = getelementptr inbounds i8, ptr %2, i64 48
  %254 = load ptr, ptr %253, align 16, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.466, double noundef %242, double noundef %244, double noundef %246, double noundef %248, double noundef %250, double noundef %252, ptr noundef %254)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  %255 = load ptr, ptr %124, align 8, !tbaa !121
  %256 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %255, i32 noundef 7)
  %257 = extractvalue { <2 x float>, <2 x float> } %256, 0
  store <2 x float> %257, ptr %4, align 8
  %258 = extractvalue { <2 x float>, <2 x float> } %256, 1
  store <2 x float> %258, ptr %129, align 8
  %259 = extractelement <2 x float> %257, i64 0
  %260 = fpext float %259 to double
  %261 = extractelement <2 x float> %257, i64 1
  %262 = fpext float %261 to double
  %263 = extractelement <2 x float> %258, i64 0
  %264 = fpext float %263 to double
  %265 = extractelement <2 x float> %258, i64 1
  %266 = fpext float %265 to double
  %267 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %268 = fpext float %267 to double
  %269 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %4)
  %270 = fpext float %269 to double
  %271 = getelementptr inbounds i8, ptr %2, i64 56
  %272 = load ptr, ptr %271, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.466, double noundef %260, double noundef %262, double noundef %264, double noundef %266, double noundef %268, double noundef %270, ptr noundef %272)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %273

273:                                              ; preds = %126, %123, %108
  %274 = getelementptr inbounds i8, ptr %49, i64 25284
  %275 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.467, ptr noundef nonnull %274)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %276 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %277 = fmul float %276, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %277)
  %278 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.468, ptr noundef nonnull %91, ptr noundef nonnull %3, i32 noundef 13, i32 noundef 13)
  %279 = load i8, ptr %274, align 4, !tbaa !123, !range !13, !noundef !14
  %280 = zext i1 %278 to i8
  %281 = or i8 %279, %280
  %.not639 = icmp eq i8 %281, 0
  store i8 %281, ptr %274, align 4, !tbaa !123
  br i1 %.not639, label %.loopexit713, label %282

282:                                              ; preds = %273
  %283 = getelementptr inbounds i8, ptr %49, i64 19696
  %284 = load ptr, ptr %283, align 8, !tbaa !121
  %.not640 = icmp eq ptr %284, null
  br i1 %.not640, label %.loopexit713, label %.preheader712

.preheader712:                                    ; preds = %282
  %285 = getelementptr inbounds i8, ptr %49, i64 20488
  %286 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %285)
  %287 = icmp sgt i32 %286, 0
  br i1 %287, label %.lr.ph719, label %.loopexit713

.lr.ph719:                                        ; preds = %.preheader712
  %288 = getelementptr inbounds i8, ptr %49, i64 16536
  %289 = getelementptr inbounds i8, ptr %16, i64 8
  %290 = getelementptr inbounds i8, ptr %10, i64 8
  br label %291

291:                                              ; preds = %.lr.ph719, %385
  %.0566718 = phi i32 [ 0, %.lr.ph719 ], [ %386, %385 ]
  %292 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %285, i32 noundef %.0566718)
  %293 = icmp eq ptr %292, null
  br i1 %293, label %385, label %294

294:                                              ; preds = %291
  %295 = getelementptr inbounds i8, ptr %292, i64 104
  %296 = load i32, ptr %295, align 8, !tbaa !124
  %297 = load i32, ptr %288, align 8, !tbaa !134
  %298 = add nsw i32 %297, -1
  %299 = icmp slt i32 %296, %298
  br i1 %299, label %385, label %300

300:                                              ; preds = %294
  %301 = getelementptr inbounds i8, ptr %292, i64 384
  %302 = load ptr, ptr %301, align 8, !tbaa !135
  %303 = load ptr, ptr %283, align 8, !tbaa !121
  %.not688 = icmp eq ptr %302, %303
  br i1 %.not688, label %307, label %304

304:                                              ; preds = %300
  %305 = getelementptr inbounds i8, ptr %292, i64 392
  %306 = load ptr, ptr %305, align 8, !tbaa !136
  %.not689 = icmp eq ptr %306, %303
  br i1 %.not689, label %307, label %385

307:                                              ; preds = %304, %300
  %308 = load i32, ptr %292, align 8, !tbaa !137
  %309 = getelementptr inbounds i8, ptr %292, i64 108
  %310 = load i32, ptr %309, align 4, !tbaa !138
  %311 = getelementptr inbounds i8, ptr %302, i64 8
  %312 = load ptr, ptr %311, align 8, !tbaa !122
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.469, i32 noundef %308, i32 noundef %310, ptr noundef %312)
  %313 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %313, label %314, label %320

314:                                              ; preds = %307
  %315 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #11
  %316 = getelementptr inbounds i8, ptr %292, i64 240
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %317 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %316, ptr noundef nonnull align 4 dereferenceable(8) %6)
  store <2 x float> %317, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #11
  %318 = getelementptr inbounds i8, ptr %292, i64 248
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %319 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %318, ptr noundef nonnull align 4 dereferenceable(8) %8)
  store <2 x float> %319, ptr %7, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %315, ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %7, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #11
  br label %320

320:                                              ; preds = %314, %307
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %9) #11
  br label %322

321:                                              ; preds = %.loopexit711
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %9) #11
  br label %385

322:                                              ; preds = %320, %.loopexit711
  %indvars.iv = phi i64 [ 0, %320 ], [ %indvars.iv.next, %.loopexit711 ]
  %323 = icmp ugt i64 %indvars.iv, 5
  br i1 %323, label %324, label %358

324:                                              ; preds = %322
  %325 = trunc nuw nsw i64 %indvars.iv to i32
  switch i32 %325, label %.loopexit711 [
    i32 8, label %326
    i32 6, label %326
  ]

326:                                              ; preds = %324, %324
  %327 = load i32, ptr %309, align 4, !tbaa !138
  %328 = icmp sgt i32 %327, 0
  br i1 %328, label %.lr.ph, label %.loopexit711

.lr.ph:                                           ; preds = %326
  %329 = getelementptr inbounds [13 x ptr], ptr %3, i64 0, i64 %indvars.iv
  br label %330

330:                                              ; preds = %.lr.ph, %354
  %.0568715 = phi i32 [ 0, %.lr.ph ], [ %355, %354 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #11
  %331 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %292, i32 noundef %325, i32 noundef %.0568715)
  %332 = extractvalue { <2 x float>, <2 x float> } %331, 0
  store <2 x float> %332, ptr %10, align 8
  %333 = extractvalue { <2 x float>, <2 x float> } %331, 1
  store <2 x float> %333, ptr %290, align 8
  %334 = extractelement <2 x float> %332, i64 0
  %335 = fpext float %334 to double
  %336 = extractelement <2 x float> %332, i64 1
  %337 = fpext float %336 to double
  %338 = extractelement <2 x float> %333, i64 0
  %339 = fpext float %338 to double
  %340 = extractelement <2 x float> %333, i64 1
  %341 = fpext float %340 to double
  %342 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %343 = fpext float %342 to double
  %344 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %345 = fpext float %344 to double
  %346 = load ptr, ptr %329, align 8, !tbaa !5
  %347 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %9, i64 noundef 128, ptr noundef nonnull @.str.470, double noundef %335, double noundef %337, double noundef %339, double noundef %341, double noundef %343, double noundef %345, i32 noundef %.0568715, ptr noundef %346)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %348 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef nonnull %9, i1 noundef zeroext false, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %11)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  %349 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %349, label %350, label %354

350:                                              ; preds = %330
  %351 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %13, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %352 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %10, ptr noundef nonnull align 4 dereferenceable(8) %13)
  store <2 x float> %352, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %353 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %290, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %353, ptr %14, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %351, ptr noundef nonnull align 4 dereferenceable(8) %12, ptr noundef nonnull align 4 dereferenceable(8) %14, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #11
  br label %354

354:                                              ; preds = %350, %330
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #11
  %355 = add nuw nsw i32 %.0568715, 1
  %356 = load i32, ptr %309, align 4, !tbaa !138
  %357 = icmp slt i32 %355, %356
  br i1 %357, label %330, label %.loopexit711, !llvm.loop !139

358:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #11
  %359 = trunc nuw nsw i64 %indvars.iv to i32
  %360 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %292, i32 noundef %359, i32 noundef -1)
  %361 = extractvalue { <2 x float>, <2 x float> } %360, 0
  store <2 x float> %361, ptr %16, align 8
  %362 = extractvalue { <2 x float>, <2 x float> } %360, 1
  store <2 x float> %362, ptr %289, align 8
  %363 = extractelement <2 x float> %361, i64 0
  %364 = fpext float %363 to double
  %365 = extractelement <2 x float> %361, i64 1
  %366 = fpext float %365 to double
  %367 = extractelement <2 x float> %362, i64 0
  %368 = fpext float %367 to double
  %369 = extractelement <2 x float> %362, i64 1
  %370 = fpext float %369 to double
  %371 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %16)
  %372 = fpext float %371 to double
  %373 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %16)
  %374 = fpext float %373 to double
  %375 = getelementptr inbounds [13 x ptr], ptr %3, i64 0, i64 %indvars.iv
  %376 = load ptr, ptr %375, align 8, !tbaa !5
  %377 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %9, i64 noundef 128, ptr noundef nonnull @.str.466, double noundef %364, double noundef %366, double noundef %368, double noundef %370, double noundef %372, double noundef %374, ptr noundef %376)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %378 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef nonnull %9, i1 noundef zeroext false, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #11
  %379 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %379, label %380, label %384

380:                                              ; preds = %358
  %381 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %382 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %16, ptr noundef nonnull align 4 dereferenceable(8) %19)
  store <2 x float> %382, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %21, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %383 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %289, ptr noundef nonnull align 4 dereferenceable(8) %21)
  store <2 x float> %383, ptr %20, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %381, ptr noundef nonnull align 4 dereferenceable(8) %18, ptr noundef nonnull align 4 dereferenceable(8) %20, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #11
  br label %384

384:                                              ; preds = %380, %358
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #11
  br label %.loopexit711

.loopexit711:                                     ; preds = %354, %326, %324, %384
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 13
  br i1 %exitcond.not, label %321, label %322, !llvm.loop !141

385:                                              ; preds = %291, %294, %304, %321
  %386 = add nuw nsw i32 %.0566718, 1
  %387 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %285)
  %388 = icmp slt i32 %386, %387
  br i1 %388, label %291, label %.loopexit713, !llvm.loop !142

.loopexit713:                                     ; preds = %385, %.preheader712, %282, %273
  %389 = getelementptr inbounds i8, ptr %49, i64 19416
  %390 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.471, ptr noundef nonnull %389)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.472)
  %391 = getelementptr inbounds i8, ptr %49, i64 130
  %392 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.473, ptr noundef nonnull %391)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.474)
  %393 = getelementptr inbounds i8, ptr %49, i64 25287
  %394 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.475, ptr noundef nonnull %393)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.476)
  %395 = load i8, ptr %393, align 1, !tbaa !143, !range !13, !noundef !14
  %396 = trunc nuw i8 %395 to i1
  br i1 %396, label %397, label %401

397:                                              ; preds = %.loopexit713
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %398 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.477, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 64, i32 noundef 0, ptr noundef null, ptr noundef null)
  %399 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !144
  %.not641 = icmp eq i8 %399, 0
  br i1 %.not641, label %401, label %400

400:                                              ; preds = %397
  call void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE3buf)
  br label %401

401:                                              ; preds = %397, %400, %.loopexit713
  call void @_ZN5ImGui7TreePopEv()
  br label %402

402:                                              ; preds = %401, %95
  %403 = getelementptr inbounds i8, ptr %49, i64 16608
  %404 = load i32, ptr %403, align 8, !tbaa !145
  %405 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.478, ptr noundef nonnull @.str.479, i32 noundef %404)
  br i1 %405, label %406, label %430

406:                                              ; preds = %402
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %403, ptr noundef nonnull @.str.480)
  %407 = getelementptr inbounds i8, ptr %49, i64 16624
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %407, ptr noundef nonnull @.str.481)
  %408 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.482)
  br i1 %408, label %409, label %429

409:                                              ; preds = %406
  %410 = getelementptr inbounds i8, ptr %49, i64 16640
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %410, i32 noundef 0)
  %411 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %403)
  %412 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %403)
  %.not642720 = icmp eq ptr %411, %412
  br i1 %.not642720, label %._crit_edge, label %.lr.ph722

.lr.ph722:                                        ; preds = %409
  %413 = getelementptr inbounds i8, ptr %49, i64 16536
  br label %420

._crit_edge:                                      ; preds = %427, %409
  %414 = getelementptr inbounds i8, ptr %49, i64 16648
  %415 = load ptr, ptr %414, align 8, !tbaa !146
  %416 = load i32, ptr %410, align 8, !tbaa !147
  %417 = sext i32 %416 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %415, i64 noundef %417, i64 noundef 8, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %418 = load ptr, ptr %414, align 8, !tbaa !146
  %419 = load i32, ptr %410, align 8, !tbaa !147
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %418, i32 noundef %419, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %429

420:                                              ; preds = %.lr.ph722, %427
  %.0570721 = phi ptr [ %411, %.lr.ph722 ], [ %428, %427 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %421 = load ptr, ptr %.0570721, align 8, !tbaa !5
  store ptr %421, ptr %22, align 8, !tbaa !5
  %422 = getelementptr inbounds i8, ptr %421, i64 672
  %423 = load i32, ptr %422, align 8, !tbaa !148
  %424 = add nsw i32 %423, 1
  %425 = load i32, ptr %413, align 8, !tbaa !134
  %.not687 = icmp slt i32 %424, %425
  br i1 %.not687, label %427, label %426

426:                                              ; preds = %420
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %410, ptr noundef nonnull align 8 dereferenceable(8) %22)
  br label %427

427:                                              ; preds = %426, %420
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  %428 = getelementptr inbounds i8, ptr %.0570721, i64 8
  %.not642 = icmp eq ptr %428, %412
  br i1 %.not642, label %._crit_edge, label %420

429:                                              ; preds = %._crit_edge, %406
  call void @_ZN5ImGui7TreePopEv()
  br label %430

430:                                              ; preds = %429, %402
  %431 = getelementptr inbounds i8, ptr %49, i64 19576
  %432 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %431)
  %433 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %431)
  %.not643723 = icmp eq ptr %432, %433
  br i1 %.not643723, label %._crit_edge728, label %.lr.ph727

._crit_edge728:                                   ; preds = %.lr.ph727, %430
  %.0571.lcssa = phi i32 [ 0, %430 ], [ %438, %.lr.ph727 ]
  %434 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.483, ptr noundef nonnull @.str.484, i32 noundef %.0571.lcssa)
  br i1 %434, label %440, label %460

.lr.ph727:                                        ; preds = %430, %.lr.ph727
  %.0571725 = phi i32 [ %438, %.lr.ph727 ], [ 0, %430 ]
  %.0573724 = phi ptr [ %439, %.lr.ph727 ], [ %432, %430 ]
  %435 = load ptr, ptr %.0573724, align 8, !tbaa !5
  %436 = getelementptr inbounds i8, ptr %435, i64 184
  %437 = load i32, ptr %436, align 8, !tbaa !149
  %438 = add nsw i32 %437, %.0571725
  %439 = getelementptr inbounds i8, ptr %.0573724, i64 8
  %.not643 = icmp eq ptr %439, %433
  br i1 %.not643, label %._crit_edge728, label %.lr.ph727

440:                                              ; preds = %._crit_edge728
  %441 = getelementptr inbounds i8, ptr %49, i64 25285
  %442 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.485, ptr noundef nonnull %441)
  %443 = getelementptr inbounds i8, ptr %49, i64 25286
  %444 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.486, ptr noundef nonnull %443)
  %445 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %431)
  %446 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %431)
  %.not644735 = icmp eq ptr %445, %446
  br i1 %.not644735, label %._crit_edge739, label %.lr.ph738

._crit_edge739:                                   ; preds = %._crit_edge734, %440
  call void @_ZN5ImGui7TreePopEv()
  br label %460

.lr.ph738:                                        ; preds = %440, %._crit_edge734
  %.0574736 = phi ptr [ %457, %._crit_edge734 ], [ %445, %440 ]
  %447 = load ptr, ptr %.0574736, align 8, !tbaa !5
  %448 = getelementptr inbounds i8, ptr %447, i64 184
  %449 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %448)
  %450 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %448)
  %.not686729 = icmp eq ptr %449, %450
  br i1 %.not686729, label %._crit_edge734, label %451

451:                                              ; preds = %.lr.ph738
  %452 = load ptr, ptr %449, align 8, !tbaa !5
  %453 = getelementptr inbounds i8, ptr %447, i64 104
  %454 = load i32, ptr %453, align 8, !tbaa !155
  %455 = load i32, ptr %447, align 8, !tbaa !156
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.487, i32 noundef %454, i32 noundef %455)
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef nonnull %447, ptr noundef %452, ptr noundef nonnull @.str.488)
  %456 = getelementptr inbounds i8, ptr %449, i64 8
  %.not686.peel = icmp eq ptr %456, %450
  br i1 %.not686.peel, label %._crit_edge734, label %.peel.next

._crit_edge734:                                   ; preds = %.peel.next, %451, %.lr.ph738
  %457 = getelementptr inbounds i8, ptr %.0574736, i64 8
  %.not644 = icmp eq ptr %457, %446
  br i1 %.not644, label %._crit_edge739, label %.lr.ph738

.peel.next:                                       ; preds = %451, %.peel.next
  %.0576730 = phi ptr [ %459, %.peel.next ], [ %456, %451 ]
  %458 = load ptr, ptr %.0576730, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef nonnull %447, ptr noundef %458, ptr noundef nonnull @.str.488)
  %459 = getelementptr inbounds i8, ptr %.0576730, i64 8
  %.not686 = icmp eq ptr %459, %450
  br i1 %.not686, label %._crit_edge734, label %.peel.next, !llvm.loop !157

460:                                              ; preds = %._crit_edge739, %._crit_edge728
  %461 = load i32, ptr %431, align 8, !tbaa !159
  %462 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.489, ptr noundef nonnull @.str.490, i32 noundef %461)
  br i1 %462, label %463, label %578

463:                                              ; preds = %460
  %464 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %464)
  call void @_ZL25RenderViewportsThumbnailsv()
  %465 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %465)
  %466 = getelementptr inbounds i8, ptr %49, i64 14808
  %467 = load i32, ptr %466, align 8, !tbaa !160
  %468 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.491, ptr noundef nonnull @.str.492, i32 noundef %467)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.493)
  br i1 %468, label %.preheader710, label %510

.preheader710:                                    ; preds = %463
  %469 = load i32, ptr %466, align 8, !tbaa !160
  %470 = icmp sgt i32 %469, 0
  br i1 %470, label %.lr.ph741, label %._crit_edge742

._crit_edge742:                                   ; preds = %.lr.ph741, %.preheader710
  call void @_ZN5ImGui7TreePopEv()
  br label %510

.lr.ph741:                                        ; preds = %.preheader710, %.lr.ph741
  %.0578740 = phi i32 [ %507, %.lr.ph741 ], [ 0, %.preheader710 ]
  %471 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI20ImGuiPlatformMonitorEixEi(ptr noundef nonnull align 8 dereferenceable(16) %466, i32 noundef %.0578740)
  %472 = getelementptr inbounds i8, ptr %471, i64 32
  %473 = load float, ptr %472, align 8, !tbaa !161
  %474 = fmul float %473, 1.000000e+02
  %475 = fpext float %474 to double
  %476 = load float, ptr %471, align 8, !tbaa !162
  %477 = fpext float %476 to double
  %478 = getelementptr inbounds i8, ptr %471, i64 4
  %479 = load float, ptr %478, align 4, !tbaa !163
  %480 = fpext float %479 to double
  %481 = getelementptr inbounds i8, ptr %471, i64 8
  %482 = load float, ptr %481, align 8, !tbaa !164
  %483 = fadd float %476, %482
  %484 = fpext float %483 to double
  %485 = getelementptr inbounds i8, ptr %471, i64 12
  %486 = load float, ptr %485, align 4, !tbaa !165
  %487 = fadd float %479, %486
  %488 = fpext float %487 to double
  %489 = fpext float %482 to double
  %490 = fpext float %486 to double
  %491 = getelementptr inbounds i8, ptr %471, i64 16
  %492 = load float, ptr %491, align 8, !tbaa !166
  %493 = fpext float %492 to double
  %494 = getelementptr inbounds i8, ptr %471, i64 20
  %495 = load float, ptr %494, align 4, !tbaa !167
  %496 = fpext float %495 to double
  %497 = getelementptr inbounds i8, ptr %471, i64 24
  %498 = load float, ptr %497, align 8, !tbaa !168
  %499 = fadd float %492, %498
  %500 = fpext float %499 to double
  %501 = getelementptr inbounds i8, ptr %471, i64 28
  %502 = load float, ptr %501, align 4, !tbaa !169
  %503 = fadd float %495, %502
  %504 = fpext float %503 to double
  %505 = fpext float %498 to double
  %506 = fpext float %502 to double
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.494, i32 noundef %.0578740, double noundef %475, double noundef %477, double noundef %480, double noundef %484, double noundef %488, double noundef %489, double noundef %490, double noundef %493, double noundef %496, double noundef %500, double noundef %504, double noundef %505, double noundef %506)
  %507 = add nuw nsw i32 %.0578740, 1
  %508 = load i32, ptr %466, align 8, !tbaa !160
  %509 = icmp slt i32 %507, %508
  br i1 %509, label %.lr.ph741, label %._crit_edge742, !llvm.loop !170

510:                                              ; preds = %._crit_edge742, %463
  %511 = getelementptr inbounds i8, ptr %49, i64 19608
  %512 = load ptr, ptr %511, align 8, !tbaa !171
  %.not645 = icmp eq ptr %512, null
  br i1 %.not645, label %515, label %513

513:                                              ; preds = %510
  %514 = load i32, ptr %512, align 8, !tbaa !156
  br label %515

515:                                              ; preds = %510, %513
  %516 = phi i32 [ %514, %513 ], [ 0, %510 ]
  %517 = getelementptr inbounds i8, ptr %49, i64 3684
  %518 = load i32, ptr %517, align 4, !tbaa !172
  %519 = getelementptr inbounds i8, ptr %49, i64 19616
  %520 = load ptr, ptr %519, align 8, !tbaa !173
  %.not646 = icmp eq ptr %520, null
  br i1 %.not646, label %523, label %521

521:                                              ; preds = %515
  %522 = load i32, ptr %520, align 8, !tbaa !156
  br label %523

523:                                              ; preds = %515, %521
  %524 = phi i32 [ %522, %521 ], [ 0, %515 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.495, i32 noundef %516, i32 noundef %518, i32 noundef %524)
  %525 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.496)
  br i1 %525, label %526, label %573

526:                                              ; preds = %523
  %527 = load atomic i8, ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports acquire, align 8
  %528 = icmp eq i8 %527, 0
  br i1 %528, label %529, label %533, !prof !174

529:                                              ; preds = %526
  %530 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #11
  %.not647 = icmp eq i32 %530, 0
  br i1 %.not647, label %533, label %531

531:                                              ; preds = %529
  call void @_ZN8ImVectorIP14ImGuiViewportPEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  %532 = call i32 @__cxa_atexit(ptr nonnull @_ZN8ImVectorIP14ImGuiViewportPED2Ev, ptr nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, ptr nonnull @__dso_handle) #11
  call void @__cxa_guard_release(ptr nonnull @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #11
  br label %533

533:                                              ; preds = %531, %529, %526
  %534 = load i32, ptr %431, align 8, !tbaa !159
  call void @_ZN8ImVectorIP14ImGuiViewportPE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 noundef %534)
  %535 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i64 8), align 8, !tbaa !175
  %536 = getelementptr inbounds i8, ptr %49, i64 19584
  %537 = load ptr, ptr %536, align 8, !tbaa !176
  %538 = call noundef i32 @_ZNK8ImVectorIP14ImGuiViewportPE13size_in_bytesEv(ptr noundef nonnull align 8 dereferenceable(16) %431)
  %539 = sext i32 %538 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %535, ptr align 8 %537, i64 %539, i1 false)
  %540 = load i32, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, align 8, !tbaa !177
  %541 = icmp sgt i32 %540, 1
  br i1 %541, label %542, label %545

542:                                              ; preds = %533
  %543 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i64 8), align 8, !tbaa !175
  %544 = zext nneg i32 %540 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %543, i64 noundef %544, i64 noundef 8, ptr noundef nonnull @_ZL39ViewportComparerByLastFocusedStampCountPKvS0_)
  br label %545

545:                                              ; preds = %542, %533
  %546 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  %547 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  %.not648743 = icmp eq ptr %546, %547
  br i1 %.not648743, label %._crit_edge747, label %.lr.ph746

.lr.ph746:                                        ; preds = %545
  %548 = getelementptr inbounds i8, ptr %49, i64 14688
  br label %549

._crit_edge747:                                   ; preds = %570, %545
  call void @_ZN5ImGui7TreePopEv()
  br label %573

549:                                              ; preds = %.lr.ph746, %570
  %.0579744 = phi ptr [ %546, %.lr.ph746 ], [ %572, %570 ]
  %550 = load ptr, ptr %.0579744, align 8, !tbaa !5
  %551 = getelementptr inbounds i8, ptr %550, i64 104
  %552 = load i32, ptr %551, align 8, !tbaa !155
  %553 = load i32, ptr %550, align 8, !tbaa !156
  %554 = getelementptr inbounds i8, ptr %550, i64 112
  %555 = load i32, ptr %554, align 8, !tbaa !178
  %556 = load ptr, ptr %548, align 8, !tbaa !179
  %.not684 = icmp eq ptr %556, null
  br i1 %.not684, label %563, label %557

557:                                              ; preds = %549
  %558 = getelementptr inbounds i8, ptr %550, i64 88
  %559 = load i8, ptr %558, align 8, !tbaa !180, !range !13, !noundef !14
  %560 = trunc nuw i8 %559 to i1
  br i1 %560, label %561, label %563

561:                                              ; preds = %557
  %562 = call noundef zeroext i1 %556(ptr noundef nonnull %550)
  %.str.498..str.91 = select i1 %562, ptr @.str.498, ptr @.str.91
  br label %563

563:                                              ; preds = %549, %557, %561
  %564 = phi ptr [ %.str.498..str.91, %561 ], [ @.str.200, %557 ], [ @.str.200, %549 ]
  %565 = getelementptr inbounds i8, ptr %550, i64 96
  %566 = load ptr, ptr %565, align 8, !tbaa !181
  %.not685 = icmp eq ptr %566, null
  br i1 %.not685, label %570, label %567

567:                                              ; preds = %563
  %568 = getelementptr inbounds i8, ptr %566, i64 8
  %569 = load ptr, ptr %568, align 8, !tbaa !122
  br label %570

570:                                              ; preds = %563, %567
  %571 = phi ptr [ %569, %567 ], [ @.str.200, %563 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.497, i32 noundef %552, i32 noundef %553, i32 noundef %555, ptr noundef nonnull %564, ptr noundef %571)
  %572 = getelementptr inbounds i8, ptr %.0579744, i64 8
  %.not648 = icmp eq ptr %572, %547
  br i1 %.not648, label %._crit_edge747, label %549

573:                                              ; preds = %._crit_edge747, %523
  %574 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %431)
  %575 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %431)
  %.not649748 = icmp eq ptr %574, %575
  br i1 %.not649748, label %._crit_edge752, label %.lr.ph751

._crit_edge752:                                   ; preds = %.lr.ph751, %573
  call void @_ZN5ImGui7TreePopEv()
  br label %578

.lr.ph751:                                        ; preds = %573, %.lr.ph751
  %.0581749 = phi ptr [ %577, %.lr.ph751 ], [ %574, %573 ]
  %576 = load ptr, ptr %.0581749, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %576)
  %577 = getelementptr inbounds i8, ptr %.0581749, i64 8
  %.not649 = icmp eq ptr %577, %575
  br i1 %.not649, label %._crit_edge752, label %.lr.ph751

578:                                              ; preds = %._crit_edge752, %460
  %579 = getelementptr inbounds i8, ptr %49, i64 19520
  %580 = load i32, ptr %579, align 8, !tbaa !182
  %581 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.499, ptr noundef nonnull @.str.500, i32 noundef %580)
  br i1 %581, label %582, label %614

582:                                              ; preds = %578
  %583 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %579)
  %584 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %579)
  %.not650753 = icmp eq ptr %583, %584
  br i1 %.not650753, label %._crit_edge757, label %.lr.ph756

._crit_edge757:                                   ; preds = %611, %582
  call void @_ZN5ImGui7TreePopEv()
  br label %614

.lr.ph756:                                        ; preds = %582, %611
  %.0582754 = phi ptr [ %613, %611 ], [ %583, %582 ]
  %585 = getelementptr inbounds i8, ptr %.0582754, i64 8
  %586 = load ptr, ptr %585, align 8, !tbaa !183
  %587 = load i32, ptr %.0582754, align 8, !tbaa !185
  %.not681 = icmp eq ptr %586, null
  br i1 %.not681, label %.thread694, label %588

588:                                              ; preds = %.lr.ph756
  %589 = getelementptr inbounds i8, ptr %586, i64 8
  %590 = load ptr, ptr %589, align 8, !tbaa !122
  %591 = getelementptr inbounds i8, ptr %586, i64 20
  %592 = load i32, ptr %591, align 4, !tbaa !186
  %.fr699 = freeze i32 %592
  %593 = and i32 %.fr699, 16777216
  %.not698 = icmp eq i32 %593, 0
  %spec.select = select i1 %.not698, ptr @.str.17, ptr @.str.503
  %594 = and i32 %.fr699, 268435456
  %.not700 = icmp eq i32 %594, 0
  %spec.select696 = select i1 %.not700, ptr @.str.17, ptr @.str.504
  br label %.thread694

.thread694:                                       ; preds = %588, %.lr.ph756
  %595 = phi ptr [ @.str.502, %.lr.ph756 ], [ %590, %588 ]
  %596 = phi ptr [ @.str.17, %.lr.ph756 ], [ %spec.select, %588 ]
  %597 = phi ptr [ @.str.17, %.lr.ph756 ], [ %spec.select696, %588 ]
  %598 = getelementptr inbounds i8, ptr %.0582754, i64 16
  %599 = load ptr, ptr %598, align 8, !tbaa !187
  %.not682 = icmp eq ptr %599, null
  br i1 %.not682, label %603, label %600

600:                                              ; preds = %.thread694
  %601 = getelementptr inbounds i8, ptr %599, i64 8
  %602 = load ptr, ptr %601, align 8, !tbaa !122
  br label %603

603:                                              ; preds = %.thread694, %600
  %604 = phi ptr [ %602, %600 ], [ @.str.502, %.thread694 ]
  br i1 %.not681, label %611, label %605

605:                                              ; preds = %603
  %606 = getelementptr inbounds i8, ptr %586, i64 944
  %607 = load ptr, ptr %606, align 8, !tbaa !188
  %.not683 = icmp eq ptr %607, null
  br i1 %.not683, label %611, label %608

608:                                              ; preds = %605
  %609 = getelementptr inbounds i8, ptr %607, i64 8
  %610 = load ptr, ptr %609, align 8, !tbaa !122
  br label %611

611:                                              ; preds = %603, %605, %608
  %612 = phi ptr [ %610, %608 ], [ @.str.502, %605 ], [ @.str.502, %603 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.501, i32 noundef %587, ptr noundef %595, ptr noundef nonnull %596, ptr noundef nonnull %597, ptr noundef %604, ptr noundef %612)
  %613 = getelementptr inbounds i8, ptr %.0582754, i64 56
  %.not650 = icmp eq ptr %613, %584
  br i1 %.not650, label %._crit_edge757, label %.lr.ph756

614:                                              ; preds = %._crit_edge757, %578
  %615 = getelementptr inbounds i8, ptr %49, i64 20568
  %616 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %615)
  %617 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.505, ptr noundef nonnull @.str.506, i32 noundef %616)
  br i1 %617, label %.preheader709, label %626

.preheader709:                                    ; preds = %614
  %618 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %615)
  %619 = icmp sgt i32 %618, 0
  br i1 %619, label %.lr.ph759, label %._crit_edge760

._crit_edge760:                                   ; preds = %622, %.preheader709
  call void @_ZN5ImGui7TreePopEv()
  br label %626

.lr.ph759:                                        ; preds = %.preheader709, %622
  %.0584758 = phi i32 [ %623, %622 ], [ 0, %.preheader709 ]
  %620 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %615, i32 noundef %.0584758)
  %.not680 = icmp eq ptr %620, null
  br i1 %.not680, label %622, label %621

621:                                              ; preds = %.lr.ph759
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef nonnull %620)
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef nonnull %620, ptr noundef nonnull @.str.507)
  call void @_ZN5ImGui5PopIDEv()
  br label %622

622:                                              ; preds = %621, %.lr.ph759
  %623 = add nuw nsw i32 %.0584758, 1
  %624 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %615)
  %625 = icmp slt i32 %623, %624
  br i1 %625, label %.lr.ph759, label %._crit_edge760, !llvm.loop !189

626:                                              ; preds = %._crit_edge760, %614
  %627 = getelementptr inbounds i8, ptr %49, i64 20488
  %628 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %627)
  %629 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.508, ptr noundef nonnull @.str.509, i32 noundef %628)
  br i1 %629, label %.preheader708, label %638

.preheader708:                                    ; preds = %626
  %630 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %627)
  %631 = icmp sgt i32 %630, 0
  br i1 %631, label %.lr.ph762, label %._crit_edge763

._crit_edge763:                                   ; preds = %634, %.preheader708
  call void @_ZN5ImGui7TreePopEv()
  br label %638

.lr.ph762:                                        ; preds = %.preheader708, %634
  %.0586761 = phi i32 [ %635, %634 ], [ 0, %.preheader708 ]
  %632 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %627, i32 noundef %.0586761)
  %.not679 = icmp eq ptr %632, null
  br i1 %.not679, label %634, label %633

633:                                              ; preds = %.lr.ph762
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef nonnull %632)
  br label %634

634:                                              ; preds = %633, %.lr.ph762
  %635 = add nuw nsw i32 %.0586761, 1
  %636 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %627)
  %637 = icmp slt i32 %635, %636
  br i1 %637, label %.lr.ph762, label %._crit_edge763, !llvm.loop !190

638:                                              ; preds = %._crit_edge763, %626
  %639 = getelementptr inbounds i8, ptr %49, i64 56
  %640 = load ptr, ptr %639, align 8, !tbaa !191
  %641 = getelementptr inbounds i8, ptr %640, i64 88
  %642 = load i32, ptr %641, align 8, !tbaa !192
  %643 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.510, ptr noundef nonnull @.str.511, i32 noundef %642)
  br i1 %643, label %644, label %645

644:                                              ; preds = %638
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef nonnull %640)
  call void @_ZN5ImGui7TreePopEv()
  br label %645

645:                                              ; preds = %644, %638
  %646 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.512)
  br i1 %646, label %647, label %649

647:                                              ; preds = %645
  %648 = getelementptr inbounds i8, ptr %49, i64 20680
  call void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef nonnull %648)
  call void @_ZN5ImGui7TreePopEv()
  br label %649

649:                                              ; preds = %647, %645
  %650 = getelementptr inbounds i8, ptr %49, i64 24760
  %651 = load i8, ptr %650, align 8, !tbaa !144
  %.not651 = icmp ne i8 %651, 0
  %652 = zext i1 %.not651 to i32
  %653 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.513, ptr noundef nonnull @.str.514, i32 noundef %652)
  br i1 %653, label %654, label %656

654:                                              ; preds = %649
  %655 = getelementptr inbounds i8, ptr %49, i64 24736
  call void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef nonnull %655)
  call void @_ZN5ImGui7TreePopEv()
  br label %656

656:                                              ; preds = %654, %649
  %657 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.352)
  br i1 %657, label %658, label %685

658:                                              ; preds = %656
  %659 = getelementptr inbounds i8, ptr %49, i64 24880
  %660 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.515, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only)
  %661 = getelementptr inbounds i8, ptr %49, i64 25289
  %662 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.516, ptr noundef nonnull %661)
  %663 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.517)
  br i1 %663, label %664, label %665

664:                                              ; preds = %658
  call void @_ZN5ImGui21DockContextClearNodesEP12ImGuiContextjb(ptr noundef nonnull %49, i32 noundef 0, i1 noundef zeroext true)
  br label %665

665:                                              ; preds = %664, %658
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %666 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.518)
  br i1 %666, label %667, label %669

667:                                              ; preds = %665
  %668 = getelementptr inbounds i8, ptr %49, i64 24928
  store i8 1, ptr %668, align 8, !tbaa !196
  br label %669

669:                                              ; preds = %667, %665
  %670 = load i32, ptr %659, align 8, !tbaa !197
  %671 = icmp sgt i32 %670, 0
  br i1 %671, label %.lr.ph766, label %._crit_edge767

._crit_edge767:                                   ; preds = %681, %669
  call void @_ZN5ImGui7TreePopEv()
  br label %685

.lr.ph766:                                        ; preds = %669, %681
  %.0591764 = phi i32 [ %682, %681 ], [ 0, %669 ]
  %672 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN8ImVectorIN12ImGuiStorage16ImGuiStoragePairEEixEi(ptr noundef nonnull align 8 dereferenceable(16) %659, i32 noundef %.0591764)
  %673 = getelementptr inbounds i8, ptr %672, i64 8
  %674 = load ptr, ptr %673, align 8, !tbaa !144
  %.not678 = icmp eq ptr %674, null
  br i1 %.not678, label %681, label %675

675:                                              ; preds = %.lr.ph766
  %676 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only, align 1, !tbaa !198, !range !13, !noundef !14
  %677 = trunc nuw i8 %676 to i1
  br i1 %677, label %678, label %680

678:                                              ; preds = %675
  %679 = call noundef zeroext i1 @_ZNK13ImGuiDockNode10IsRootNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %674)
  br i1 %679, label %680, label %681

680:                                              ; preds = %678, %675
  call void @_ZN5ImGui17DebugNodeDockNodeEP13ImGuiDockNodePKc(ptr noundef nonnull %674, ptr noundef nonnull @.str.519)
  br label %681

681:                                              ; preds = %678, %680, %.lr.ph766
  %682 = add nuw nsw i32 %.0591764, 1
  %683 = load i32, ptr %659, align 8, !tbaa !197
  %684 = icmp slt i32 %682, %683
  br i1 %684, label %.lr.ph766, label %._crit_edge767, !llvm.loop !199

685:                                              ; preds = %._crit_edge767, %656
  %686 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.520)
  br i1 %686, label %687, label %784

687:                                              ; preds = %685
  %688 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.521)
  br i1 %688, label %689, label %690

689:                                              ; preds = %687
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %690

690:                                              ; preds = %689, %687
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %691 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.522)
  br i1 %691, label %692, label %694

692:                                              ; preds = %690
  %693 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %694

694:                                              ; preds = %692, %690
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %695 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.523)
  br i1 %695, label %696, label %699

696:                                              ; preds = %694
  %697 = getelementptr inbounds i8, ptr %49, i64 32
  %698 = load ptr, ptr %697, align 8, !tbaa !200
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %698)
  br label %699

699:                                              ; preds = %696, %694
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %700 = getelementptr inbounds i8, ptr %49, i64 32
  %701 = load ptr, ptr %700, align 8, !tbaa !200
  %.not652 = icmp eq ptr %701, null
  br i1 %.not652, label %703, label %702

702:                                              ; preds = %699
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.524, ptr noundef nonnull %701)
  br label %704

703:                                              ; preds = %699
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef nonnull @.str.173, ptr noundef null)
  br label %704

704:                                              ; preds = %703, %702
  %705 = getelementptr inbounds i8, ptr %49, i64 132
  %706 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.525, ptr noundef nonnull %705)
  %707 = getelementptr inbounds i8, ptr %49, i64 24948
  %708 = load float, ptr %707, align 4, !tbaa !201
  %709 = fpext float %708 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.526, double noundef %709)
  %710 = getelementptr inbounds i8, ptr %49, i64 24968
  %711 = load i32, ptr %710, align 8, !tbaa !202
  %712 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.527, ptr noundef nonnull @.str.528, i32 noundef %711)
  br i1 %712, label %713, label %718

713:                                              ; preds = %704
  %714 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %710)
  %715 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %710)
  %.not653768 = icmp eq ptr %714, %715
  br i1 %.not653768, label %._crit_edge772, label %.lr.ph771

._crit_edge772:                                   ; preds = %.lr.ph771, %713
  call void @_ZN5ImGui7TreePopEv()
  br label %718

.lr.ph771:                                        ; preds = %713, %.lr.ph771
  %.0592769 = phi ptr [ %717, %.lr.ph771 ], [ %714, %713 ]
  %716 = load ptr, ptr %.0592769, align 8, !tbaa !203
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.524, ptr noundef %716)
  %717 = getelementptr inbounds i8, ptr %.0592769, i64 72
  %.not653 = icmp eq ptr %717, %715
  br i1 %.not653, label %._crit_edge772, label %.lr.ph771

718:                                              ; preds = %._crit_edge772, %704
  %719 = getelementptr inbounds i8, ptr %49, i64 24984
  %720 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %719)
  %721 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.529, ptr noundef nonnull @.str.530, i32 noundef %720)
  br i1 %721, label %722, label %725

722:                                              ; preds = %718
  %723 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %719)
  %.not654773 = icmp eq ptr %723, null
  br i1 %.not654773, label %._crit_edge777, label %.lr.ph776

._crit_edge777:                                   ; preds = %.lr.ph776, %722
  call void @_ZN5ImGui7TreePopEv()
  br label %725

.lr.ph776:                                        ; preds = %722, %.lr.ph776
  %.0597774 = phi ptr [ %724, %.lr.ph776 ], [ %723, %722 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0597774)
  %724 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %719, ptr noundef nonnull %.0597774)
  %.not654 = icmp eq ptr %724, null
  br i1 %.not654, label %._crit_edge777, label %.lr.ph776, !llvm.loop !205

725:                                              ; preds = %._crit_edge777, %718
  %726 = getelementptr inbounds i8, ptr %49, i64 25000
  %727 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %726)
  %728 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.531, ptr noundef nonnull @.str.532, i32 noundef %727)
  br i1 %728, label %729, label %732

729:                                              ; preds = %725
  %730 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %726)
  %.not655778 = icmp eq ptr %730, null
  br i1 %.not655778, label %._crit_edge782, label %.lr.ph781

._crit_edge782:                                   ; preds = %.lr.ph781, %729
  call void @_ZN5ImGui7TreePopEv()
  br label %732

.lr.ph781:                                        ; preds = %729, %.lr.ph781
  %.0599779 = phi ptr [ %731, %.lr.ph781 ], [ %730, %729 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0599779)
  %731 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %726, ptr noundef nonnull %.0599779)
  %.not655 = icmp eq ptr %731, null
  br i1 %.not655, label %._crit_edge782, label %.lr.ph781, !llvm.loop !206

732:                                              ; preds = %._crit_edge782, %725
  %733 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.533, ptr noundef nonnull @.str.534)
  br i1 %733, label %734, label %772

734:                                              ; preds = %732
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.535)
  %735 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %719)
  %.not656783 = icmp eq ptr %735, null
  br i1 %.not656783, label %._crit_edge787, label %.lr.ph786

._crit_edge787:                                   ; preds = %747, %734
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.537)
  %736 = getelementptr inbounds i8, ptr %49, i64 24912
  %737 = load i32, ptr %736, align 8, !tbaa !207
  %738 = icmp sgt i32 %737, 0
  br i1 %738, label %.lr.ph790, label %._crit_edge791

.lr.ph786:                                        ; preds = %734, %747
  %.0600784 = phi ptr [ %748, %747 ], [ %735, %734 ]
  %739 = getelementptr inbounds i8, ptr %.0600784, i64 20
  %740 = load i32, ptr %739, align 4, !tbaa !208
  %.not677 = icmp eq i32 %740, 0
  br i1 %.not677, label %747, label %741

741:                                              ; preds = %.lr.ph786
  %742 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(34) %.0600784)
  %743 = load i32, ptr %739, align 4, !tbaa !208
  %744 = getelementptr inbounds i8, ptr %.0600784, i64 28
  %745 = load i16, ptr %744, align 4, !tbaa !210
  %746 = sext i16 %745 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.536, ptr noundef %742, i32 noundef %743, i32 noundef %746)
  br label %747

747:                                              ; preds = %.lr.ph786, %741
  %748 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %719, ptr noundef nonnull %.0600784)
  %.not656 = icmp eq ptr %748, null
  br i1 %.not656, label %._crit_edge787, label %.lr.ph786, !llvm.loop !211

._crit_edge791:                                   ; preds = %762, %._crit_edge787
  call void @_ZN5ImGui7TreePopEv()
  br label %772

.lr.ph790:                                        ; preds = %._crit_edge787, %762
  %.0601788 = phi i32 [ %769, %762 ], [ 0, %._crit_edge787 ]
  %749 = call noundef nonnull align 4 dereferenceable(36) ptr @_ZN8ImVectorI21ImGuiDockNodeSettingsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %736, i32 noundef %.0601788)
  %750 = getelementptr inbounds i8, ptr %749, i64 12
  %751 = load i32, ptr %750, align 4, !tbaa !212
  %.not672 = icmp eq i32 %751, 0
  br i1 %.not672, label %762, label %752

752:                                              ; preds = %.lr.ph790
  %753 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %751)
  %.not673 = icmp eq ptr %753, null
  br i1 %.not673, label %757, label %754

754:                                              ; preds = %752
  %755 = getelementptr inbounds i8, ptr %753, i64 8
  %756 = load ptr, ptr %755, align 8, !tbaa !122
  br label %762

757:                                              ; preds = %752
  %758 = load i32, ptr %750, align 4, !tbaa !212
  %759 = call noundef ptr @_ZN5ImGui22FindWindowSettingsByIDEj(i32 noundef %758)
  %.not674 = icmp eq ptr %759, null
  br i1 %.not674, label %762, label %760

760:                                              ; preds = %757
  %761 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(34) %759)
  br label %762

762:                                              ; preds = %754, %760, %757, %.lr.ph790
  %.2 = phi ptr [ null, %.lr.ph790 ], [ %756, %754 ], [ %761, %760 ], [ null, %757 ]
  %763 = load i32, ptr %749, align 4, !tbaa !214
  %764 = getelementptr inbounds i8, ptr %749, i64 4
  %765 = load i32, ptr %764, align 4, !tbaa !215
  %766 = load i32, ptr %750, align 4, !tbaa !212
  %.not675 = icmp eq ptr %.2, null
  %.not676 = icmp eq i32 %766, 0
  %767 = select i1 %.not676, ptr @.str.17, ptr @.str.200
  %768 = select i1 %.not675, ptr %767, ptr %.2
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.538, i32 noundef %763, i32 noundef %765, i32 noundef %766, ptr noundef nonnull %768)
  %769 = add nuw nsw i32 %.0601788, 1
  %770 = load i32, ptr %736, align 8, !tbaa !207
  %771 = icmp slt i32 %769, %770
  br i1 %771, label %.lr.ph790, label %._crit_edge791, !llvm.loop !216

772:                                              ; preds = %._crit_edge791, %732
  %773 = getelementptr inbounds i8, ptr %49, i64 24952
  %774 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %773)
  %775 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.539, ptr noundef nonnull @.str.540, i32 noundef %774)
  br i1 %775, label %776, label %783

776:                                              ; preds = %772
  %777 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %773)
  %778 = load i32, ptr %773, align 8, !tbaa !217
  %779 = sext i32 %778 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #11
  %780 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %781 = fmul float %780, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0xB810000000000000, float noundef %781)
  %782 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.541, ptr noundef %777, i64 noundef %779, ptr noundef nonnull align 4 dereferenceable(8) %23, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  call void @_ZN5ImGui7TreePopEv()
  br label %783

783:                                              ; preds = %776, %772
  call void @_ZN5ImGui7TreePopEv()
  br label %784

784:                                              ; preds = %783, %685
  %785 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.542)
  br i1 %785, label %786, label %880

786:                                              ; preds = %784
  %787 = load i32, ptr %81, align 4, !tbaa !218
  %788 = load i32, ptr %83, align 4, !tbaa !219
  %789 = sub nsw i32 %787, %788
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.543, i32 noundef %789)
  %790 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.544)
  br i1 %790, label %791, label %793

791:                                              ; preds = %786
  %792 = getelementptr inbounds i8, ptr %49, i64 16555
  store i8 1, ptr %792, align 1, !tbaa !220
  br label %793

793:                                              ; preds = %791, %786
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.545)
  %794 = getelementptr inbounds i8, ptr %49, i64 25356
  %795 = getelementptr inbounds i8, ptr %49, i64 25352
  %796 = load i16, ptr %795, align 4, !tbaa !221
  %797 = sext i16 %796 to i32
  %798 = add nsw i32 %797, 1
  %799 = srem i32 %798, 6
  %800 = sext i32 %799 to i64
  %801 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %794, i64 0, i64 %800
  %802 = load i32, ptr %801, align 4, !tbaa !222
  %803 = getelementptr inbounds i8, ptr %801, i64 4
  %804 = load i16, ptr %803, align 4, !tbaa !224
  %805 = sext i16 %804 to i32
  %806 = getelementptr inbounds i8, ptr %801, i64 6
  %807 = load i16, ptr %806, align 2, !tbaa !225
  %808 = sext i16 %807 to i32
  %809 = sub nsw i32 %805, %808
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.546, i32 noundef %802, i32 noundef %809, i32 noundef %805, i32 noundef %808, ptr noundef nonnull @.str.17)
  %810 = load i16, ptr %795, align 4, !tbaa !221
  %811 = sext i16 %810 to i32
  %812 = add nsw i32 %811, 2
  %813 = srem i32 %812, 6
  %814 = sext i32 %813 to i64
  %815 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %794, i64 0, i64 %814
  %816 = load i32, ptr %815, align 4, !tbaa !222
  %817 = getelementptr inbounds i8, ptr %815, i64 4
  %818 = load i16, ptr %817, align 4, !tbaa !224
  %819 = sext i16 %818 to i32
  %820 = getelementptr inbounds i8, ptr %815, i64 6
  %821 = load i16, ptr %820, align 2, !tbaa !225
  %822 = sext i16 %821 to i32
  %823 = sub nsw i32 %819, %822
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.546, i32 noundef %816, i32 noundef %823, i32 noundef %819, i32 noundef %822, ptr noundef nonnull @.str.17)
  %824 = load i16, ptr %795, align 4, !tbaa !221
  %825 = sext i16 %824 to i32
  %826 = add nsw i32 %825, 3
  %827 = srem i32 %826, 6
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %794, i64 0, i64 %828
  %830 = load i32, ptr %829, align 4, !tbaa !222
  %831 = getelementptr inbounds i8, ptr %829, i64 4
  %832 = load i16, ptr %831, align 4, !tbaa !224
  %833 = sext i16 %832 to i32
  %834 = getelementptr inbounds i8, ptr %829, i64 6
  %835 = load i16, ptr %834, align 2, !tbaa !225
  %836 = sext i16 %835 to i32
  %837 = sub nsw i32 %833, %836
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.546, i32 noundef %830, i32 noundef %837, i32 noundef %833, i32 noundef %836, ptr noundef nonnull @.str.17)
  %838 = load i16, ptr %795, align 4, !tbaa !221
  %839 = sext i16 %838 to i32
  %840 = add nsw i32 %839, 4
  %841 = srem i32 %840, 6
  %842 = sext i32 %841 to i64
  %843 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %794, i64 0, i64 %842
  %844 = load i32, ptr %843, align 4, !tbaa !222
  %845 = getelementptr inbounds i8, ptr %843, i64 4
  %846 = load i16, ptr %845, align 4, !tbaa !224
  %847 = sext i16 %846 to i32
  %848 = getelementptr inbounds i8, ptr %843, i64 6
  %849 = load i16, ptr %848, align 2, !tbaa !225
  %850 = sext i16 %849 to i32
  %851 = sub nsw i32 %847, %850
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.546, i32 noundef %844, i32 noundef %851, i32 noundef %847, i32 noundef %850, ptr noundef nonnull @.str.17)
  %852 = load i16, ptr %795, align 4, !tbaa !221
  %853 = sext i16 %852 to i32
  %854 = add nsw i32 %853, 5
  %855 = srem i32 %854, 6
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %794, i64 0, i64 %856
  %858 = load i32, ptr %857, align 4, !tbaa !222
  %859 = getelementptr inbounds i8, ptr %857, i64 4
  %860 = load i16, ptr %859, align 4, !tbaa !224
  %861 = sext i16 %860 to i32
  %862 = getelementptr inbounds i8, ptr %857, i64 6
  %863 = load i16, ptr %862, align 2, !tbaa !225
  %864 = sext i16 %863 to i32
  %865 = sub nsw i32 %861, %864
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.546, i32 noundef %858, i32 noundef %865, i32 noundef %861, i32 noundef %864, ptr noundef nonnull @.str.17)
  %866 = load i16, ptr %795, align 4, !tbaa !221
  %867 = sext i16 %866 to i32
  %868 = add nsw i32 %867, 6
  %869 = srem i32 %868, 6
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %794, i64 0, i64 %870
  %872 = load i32, ptr %871, align 4, !tbaa !222
  %873 = getelementptr inbounds i8, ptr %871, i64 4
  %874 = load i16, ptr %873, align 4, !tbaa !224
  %875 = sext i16 %874 to i32
  %876 = getelementptr inbounds i8, ptr %871, i64 6
  %877 = load i16, ptr %876, align 2, !tbaa !225
  %878 = sext i16 %877 to i32
  %879 = sub nsw i32 %875, %878
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.546, i32 noundef %872, i32 noundef %879, i32 noundef %875, i32 noundef %878, ptr noundef nonnull @.str.547)
  call void @_ZN5ImGui7TreePopEv()
  br label %880

880:                                              ; preds = %793, %784
  %881 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.548)
  br i1 %881, label %882, label %1129

882:                                              ; preds = %880
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.549)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.550)
  br label %884

883:                                              ; preds = %896
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.553)
  br label %899

884:                                              ; preds = %882, %896
  %.0596793 = phi i32 [ 0, %882 ], [ %897, %896 ]
  %885 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0596793)
  br i1 %885, label %896, label %886

886:                                              ; preds = %884
  %887 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %.0596793)
  br i1 %887, label %888, label %896

888:                                              ; preds = %886
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %889 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0596793)
  %890 = select i1 %889, ptr @.str.524, ptr @.str.551
  %891 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0596793)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %890, ptr noundef %891, i32 noundef %.0596793)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %892 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %.0596793)
  %893 = getelementptr inbounds i8, ptr %892, i64 4
  %894 = load float, ptr %893, align 4, !tbaa !226
  %895 = fpext float %894 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.552, double noundef %895)
  br label %896

896:                                              ; preds = %884, %886, %888
  %897 = add nuw nsw i32 %.0596793, 1
  %exitcond826.not = icmp eq i32 %897, 666
  br i1 %exitcond826.not, label %883, label %884, !llvm.loop !228

898:                                              ; preds = %907
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.554)
  br label %929

899:                                              ; preds = %883, %907
  %.0595794 = phi i32 [ 0, %883 ], [ %908, %907 ]
  %900 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0595794)
  br i1 %900, label %907, label %901

901:                                              ; preds = %899
  %902 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %.0595794, i1 noundef zeroext true)
  br i1 %902, label %903, label %907

903:                                              ; preds = %901
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %904 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0595794)
  %905 = select i1 %904, ptr @.str.524, ptr @.str.551
  %906 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0595794)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %905, ptr noundef %906, i32 noundef %.0595794)
  br label %907

907:                                              ; preds = %899, %901, %903
  %908 = add nuw nsw i32 %.0595794, 1
  %exitcond827.not = icmp eq i32 %908, 666
  br i1 %exitcond827.not, label %898, label %899, !llvm.loop !229

909:                                              ; preds = %937
  %910 = getelementptr inbounds i8, ptr %49, i64 3688
  %911 = load i8, ptr %910, align 8, !tbaa !230, !range !13, !noundef !14
  %912 = trunc nuw i8 %911 to i1
  %913 = select i1 %912, ptr @.str.556, ptr @.str.17
  %914 = getelementptr inbounds i8, ptr %49, i64 3689
  %915 = load i8, ptr %914, align 1, !tbaa !231, !range !13, !noundef !14
  %916 = trunc nuw i8 %915 to i1
  %917 = select i1 %916, ptr @.str.557, ptr @.str.17
  %918 = getelementptr inbounds i8, ptr %49, i64 3690
  %919 = load i8, ptr %918, align 2, !tbaa !232, !range !13, !noundef !14
  %920 = trunc nuw i8 %919 to i1
  %921 = select i1 %920, ptr @.str.558, ptr @.str.17
  %922 = getelementptr inbounds i8, ptr %49, i64 3691
  %923 = load i8, ptr %922, align 1, !tbaa !233, !range !13, !noundef !14
  %924 = trunc nuw i8 %923 to i1
  %925 = select i1 %924, ptr @.str.559, ptr @.str.17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.555, ptr noundef nonnull %913, ptr noundef nonnull %917, ptr noundef nonnull %921, ptr noundef nonnull %925)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.560)
  %926 = getelementptr inbounds i8, ptr %49, i64 14608
  %927 = load i32, ptr %926, align 8, !tbaa !234
  %928 = icmp sgt i32 %927, 0
  br i1 %928, label %.lr.ph798, label %._crit_edge799

929:                                              ; preds = %898, %937
  %.0594795 = phi i32 [ 0, %898 ], [ %938, %937 ]
  %930 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0594795)
  br i1 %930, label %937, label %931

931:                                              ; preds = %929
  %932 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %.0594795)
  br i1 %932, label %933, label %937

933:                                              ; preds = %931
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %934 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0594795)
  %935 = select i1 %934, ptr @.str.524, ptr @.str.551
  %936 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0594795)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %935, ptr noundef %936, i32 noundef %.0594795)
  br label %937

937:                                              ; preds = %929, %931, %933
  %938 = add nuw nsw i32 %.0594795, 1
  %exitcond828.not = icmp eq i32 %938, 666
  br i1 %exitcond828.not, label %909, label %929, !llvm.loop !235

._crit_edge799:                                   ; preds = %.lr.ph798, %909
  %939 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %939)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.562)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %940 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %940, label %950, label %957

.lr.ph798:                                        ; preds = %909, %.lr.ph798
  %.0593796 = phi i32 [ %947, %.lr.ph798 ], [ 0, %909 ]
  %941 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %926, i32 noundef %.0593796)
  %942 = load i16, ptr %941, align 2, !tbaa !236
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %943 = zext i16 %942 to i32
  %944 = add i16 %942, -33
  %or.cond4 = icmp ult i16 %944, 223
  %sext = shl i32 %943, 24
  %945 = ashr exact i32 %sext, 24
  %946 = select i1 %or.cond4, i32 %945, i32 63
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.561, i32 noundef %946, i32 noundef %943)
  %947 = add nuw nsw i32 %.0593796, 1
  %948 = load i32, ptr %926, align 8, !tbaa !234
  %949 = icmp slt i32 %947, %948
  br i1 %949, label %.lr.ph798, label %._crit_edge799, !llvm.loop !237

950:                                              ; preds = %._crit_edge799
  %951 = getelementptr inbounds i8, ptr %49, i64 3656
  %952 = load float, ptr %951, align 8, !tbaa !238
  %953 = fpext float %952 to double
  %954 = getelementptr inbounds i8, ptr %49, i64 3660
  %955 = load float, ptr %954, align 4, !tbaa !239
  %956 = fpext float %955 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.563, double noundef %953, double noundef %956)
  br label %958

957:                                              ; preds = %._crit_edge799
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.564)
  br label %958

958:                                              ; preds = %957, %950
  %959 = getelementptr inbounds i8, ptr %49, i64 240
  %960 = load float, ptr %959, align 8, !tbaa !240
  %961 = fpext float %960 to double
  %962 = getelementptr inbounds i8, ptr %49, i64 244
  %963 = load float, ptr %962, align 4, !tbaa !241
  %964 = fpext float %963 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.565, double noundef %961, double noundef %964)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.566)
  %965 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 0)
  br i1 %965, label %966, label %970

966:                                              ; preds = %958
  %967 = getelementptr inbounds i8, ptr %49, i64 14496
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %968 = load float, ptr %967, align 4, !tbaa !242
  %969 = fpext float %968 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.567, i32 noundef 0, double noundef %969)
  br label %970

970:                                              ; preds = %958, %966
  %971 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 1)
  br i1 %971, label %972, label %976

972:                                              ; preds = %970
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %973 = getelementptr inbounds i8, ptr %49, i64 14500
  %974 = load float, ptr %973, align 4, !tbaa !242
  %975 = fpext float %974 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.567, i32 noundef 1, double noundef %975)
  br label %976

976:                                              ; preds = %972, %970
  %977 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 2)
  br i1 %977, label %978, label %982

978:                                              ; preds = %976
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %979 = getelementptr inbounds i8, ptr %49, i64 14504
  %980 = load float, ptr %979, align 4, !tbaa !242
  %981 = fpext float %980 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.567, i32 noundef 2, double noundef %981)
  br label %982

982:                                              ; preds = %978, %976
  %983 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 3)
  br i1 %983, label %984, label %988

984:                                              ; preds = %982
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %985 = getelementptr inbounds i8, ptr %49, i64 14508
  %986 = load float, ptr %985, align 4, !tbaa !242
  %987 = fpext float %986 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.567, i32 noundef 3, double noundef %987)
  br label %988

988:                                              ; preds = %984, %982
  %989 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 4)
  br i1 %989, label %990, label %994

990:                                              ; preds = %988
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %991 = getelementptr inbounds i8, ptr %49, i64 14512
  %992 = load float, ptr %991, align 4, !tbaa !242
  %993 = fpext float %992 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.567, i32 noundef 4, double noundef %993)
  br label %994

994:                                              ; preds = %990, %988
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.568)
  %995 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
  br i1 %995, label %996, label %1000

996:                                              ; preds = %994
  %997 = getelementptr inbounds i8, ptr %49, i64 14458
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %998 = load i16, ptr %997, align 2, !tbaa !236
  %999 = zext i16 %998 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.569, i32 noundef 0, i32 noundef %999)
  br label %1000

1000:                                             ; preds = %994, %996
  %1001 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 1, i1 noundef zeroext false)
  br i1 %1001, label %1002, label %1006

1002:                                             ; preds = %1000
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1003 = getelementptr inbounds i8, ptr %49, i64 14460
  %1004 = load i16, ptr %1003, align 2, !tbaa !236
  %1005 = zext i16 %1004 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.569, i32 noundef 1, i32 noundef %1005)
  br label %1006

1006:                                             ; preds = %1002, %1000
  %1007 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 2, i1 noundef zeroext false)
  br i1 %1007, label %1008, label %1012

1008:                                             ; preds = %1006
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1009 = getelementptr inbounds i8, ptr %49, i64 14462
  %1010 = load i16, ptr %1009, align 2, !tbaa !236
  %1011 = zext i16 %1010 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.569, i32 noundef 2, i32 noundef %1011)
  br label %1012

1012:                                             ; preds = %1008, %1006
  %1013 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 3, i1 noundef zeroext false)
  br i1 %1013, label %1014, label %1018

1014:                                             ; preds = %1012
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1015 = getelementptr inbounds i8, ptr %49, i64 14464
  %1016 = load i16, ptr %1015, align 2, !tbaa !236
  %1017 = zext i16 %1016 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.569, i32 noundef 3, i32 noundef %1017)
  br label %1018

1018:                                             ; preds = %1014, %1012
  %1019 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 4, i1 noundef zeroext false)
  br i1 %1019, label %1020, label %1024

1020:                                             ; preds = %1018
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1021 = getelementptr inbounds i8, ptr %49, i64 14466
  %1022 = load i16, ptr %1021, align 2, !tbaa !236
  %1023 = zext i16 %1022 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.569, i32 noundef 4, i32 noundef %1023)
  br label %1024

1024:                                             ; preds = %1020, %1018
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.570)
  %1025 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 0)
  br i1 %1025, label %1026, label %1027

1026:                                             ; preds = %1024
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.571, i32 noundef 0)
  br label %1027

1027:                                             ; preds = %1024, %1026
  %1028 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 1)
  br i1 %1028, label %1029, label %1030

1029:                                             ; preds = %1027
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.571, i32 noundef 1)
  br label %1030

1030:                                             ; preds = %1029, %1027
  %1031 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 2)
  br i1 %1031, label %1032, label %1033

1032:                                             ; preds = %1030
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.571, i32 noundef 2)
  br label %1033

1033:                                             ; preds = %1032, %1030
  %1034 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 3)
  br i1 %1034, label %1035, label %1036

1035:                                             ; preds = %1033
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.571, i32 noundef 3)
  br label %1036

1036:                                             ; preds = %1035, %1033
  %1037 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 4)
  br i1 %1037, label %1038, label %1039

1038:                                             ; preds = %1036
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.571, i32 noundef 4)
  br label %1039

1039:                                             ; preds = %1038, %1036
  %1040 = getelementptr inbounds i8, ptr %49, i64 3672
  %1041 = load float, ptr %1040, align 8, !tbaa !243
  %1042 = fpext float %1041 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.572, double noundef %1042)
  %1043 = getelementptr inbounds i8, ptr %49, i64 20668
  %1044 = load float, ptr %1043, align 4, !tbaa !244
  %1045 = fpext float %1044 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.573, double noundef %1045)
  %1046 = getelementptr inbounds i8, ptr %49, i64 3680
  %1047 = load i32, ptr %1046, align 8, !tbaa !245
  %1048 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %1047)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.574, ptr noundef %1048)
  %1049 = getelementptr inbounds i8, ptr %49, i64 14596
  %1050 = load float, ptr %1049, align 4, !tbaa !246
  %1051 = fpext float %1050 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.575, double noundef %1051)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.576)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1052 = getelementptr inbounds i8, ptr %49, i64 16736
  %1053 = load ptr, ptr %1052, align 8, !tbaa !247
  %.not657 = icmp eq ptr %1053, null
  br i1 %.not657, label %1057, label %1054

1054:                                             ; preds = %1039
  %1055 = getelementptr inbounds i8, ptr %1053, i64 8
  %1056 = load ptr, ptr %1055, align 8, !tbaa !122
  br label %1057

1057:                                             ; preds = %1039, %1054
  %1058 = phi ptr [ %1056, %1054 ], [ @.str.502, %1039 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.577, ptr noundef %1058)
  %1059 = getelementptr inbounds i8, ptr %49, i64 16760
  %1060 = load float, ptr %1059, align 8, !tbaa !248
  %1061 = fpext float %1060 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.578, double noundef %1061)
  %1062 = getelementptr inbounds i8, ptr %49, i64 16772
  %1063 = load float, ptr %1062, align 4, !tbaa !249
  %1064 = fpext float %1063 to double
  %1065 = getelementptr inbounds i8, ptr %49, i64 16776
  %1066 = load float, ptr %1065, align 4, !tbaa !250
  %1067 = fpext float %1066 to double
  %1068 = fcmp ogt float %1063, %1066
  %1069 = fcmp olt float %1063, %1066
  %1070 = select i1 %1069, ptr @.str.580, ptr @.str.581
  %1071 = select i1 %1068, ptr @.str.412, ptr %1070
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.579, double noundef %1064, double noundef %1067, ptr noundef nonnull %1071)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.582)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #11
  %1072 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1073 = fmul float %1072, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 0xB810000000000000, float noundef %1073)
  %1074 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef nonnull @.str.583, ptr noundef nonnull align 4 dereferenceable(8) %24, i32 noundef 136, i32 noundef 256)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #11
  br i1 %1074, label %.preheader706, label %.loopexit707

.preheader706:                                    ; preds = %1057, %1092
  %.0587803 = phi i32 [ %1093, %1092 ], [ 512, %1057 ]
  %1075 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %49, i32 noundef %.0587803)
  %1076 = load i32, ptr %1075, align 4, !tbaa !251
  %1077 = icmp eq i32 %1076, -1
  br i1 %1077, label %1092, label %1078

1078:                                             ; preds = %.preheader706
  %1079 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0587803)
  %1080 = load i32, ptr %1075, align 4, !tbaa !251
  %1081 = getelementptr inbounds i8, ptr %1075, i64 9
  %1082 = load i8, ptr %1081, align 1, !tbaa !253, !range !13, !noundef !14
  %1083 = trunc nuw i8 %1082 to i1
  br i1 %1083, label %1089, label %1084

1084:                                             ; preds = %1078
  %1085 = getelementptr inbounds i8, ptr %1075, i64 8
  %1086 = load i8, ptr %1085, align 4, !tbaa !254, !range !13, !noundef !14
  %1087 = trunc nuw i8 %1086 to i1
  %1088 = select i1 %1087, ptr @.str.586, ptr @.str.17
  br label %1089

1089:                                             ; preds = %1078, %1084
  %1090 = phi ptr [ %1088, %1084 ], [ @.str.585, %1078 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.584, ptr noundef %1079, i32 noundef %1080, ptr noundef nonnull %1090)
  %1091 = load i32, ptr %1075, align 4, !tbaa !251
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1091)
  br label %1092

1092:                                             ; preds = %.preheader706, %1089
  %1093 = add nuw nsw i32 %.0587803, 1
  %exitcond838.not = icmp eq i32 %1093, 666
  br i1 %exitcond838.not, label %.loopexit707, label %.preheader706, !llvm.loop !255

.loopexit707:                                     ; preds = %1092, %1057
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.587)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.588)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #11
  %1094 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1095 = fmul float %1094, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef 0xB810000000000000, float noundef %1095)
  %1096 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef nonnull @.str.589, ptr noundef nonnull align 4 dereferenceable(8) %25, i32 noundef 136, i32 noundef 256)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #11
  br i1 %1096, label %.preheader704, label %.loopexit705

.preheader704:                                    ; preds = %.loopexit707
  %1097 = getelementptr inbounds i8, ptr %49, i64 18768
  %1098 = getelementptr inbounds i8, ptr %49, i64 19080
  %1099 = getelementptr inbounds i8, ptr %49, i64 128
  %1100 = getelementptr inbounds i8, ptr %49, i64 19120
  br label %1101

1101:                                             ; preds = %.preheader704, %._crit_edge809
  %indvars.iv839 = phi i64 [ 512, %.preheader704 ], [ %indvars.iv.next840, %._crit_edge809 ]
  %1102 = add nsw i64 %indvars.iv839, -512
  %1103 = getelementptr inbounds [154 x i16], ptr %1097, i64 0, i64 %1102
  %.0583804 = load i16, ptr %1103, align 2, !tbaa !236
  %.not671805 = icmp eq i16 %.0583804, -1
  br i1 %.not671805, label %._crit_edge809, label %.lr.ph808.preheader

.lr.ph808.preheader:                              ; preds = %1101
  %1104 = trunc nuw nsw i64 %indvars.iv839 to i32
  br label %.lr.ph808

._crit_edge809:                                   ; preds = %1123, %1101
  %indvars.iv.next840 = add nuw nsw i64 %indvars.iv839, 1
  %exitcond842.not = icmp eq i64 %indvars.iv.next840, 666
  br i1 %exitcond842.not, label %.loopexit705, label %1101, !llvm.loop !256

.lr.ph808:                                        ; preds = %.lr.ph808.preheader, %1123
  %.0583806 = phi i16 [ %.0583, %1123 ], [ %.0583804, %.lr.ph808.preheader ]
  %1105 = sext i16 %.0583806 to i32
  %1106 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1098, i32 noundef %1105)
  %1107 = getelementptr inbounds i8, ptr %1106, i64 2
  %1108 = load i16, ptr %1107, align 2, !tbaa !257
  %1109 = zext i16 %1108 to i32
  %1110 = or i32 %1104, %1109
  %1111 = call noundef ptr @_ZN5ImGui15GetKeyChordNameEi(i32 noundef %1110)
  %1112 = getelementptr inbounds i8, ptr %1106, i64 8
  %1113 = load i32, ptr %1112, align 4, !tbaa !259
  %1114 = getelementptr inbounds i8, ptr %1106, i64 4
  %1115 = load i8, ptr %1114, align 4, !tbaa !260
  %1116 = zext i8 %1115 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.590, ptr noundef %1111, i32 noundef %1113, i32 noundef %1116)
  %1117 = load i32, ptr %1112, align 4, !tbaa !259
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1117)
  %1118 = load i8, ptr %1099, align 8, !tbaa !261, !range !13, !noundef !14
  %1119 = trunc nuw i8 %1118 to i1
  br i1 %1119, label %1120, label %1123

1120:                                             ; preds = %.lr.ph808
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1121 = call noundef zeroext i1 @_ZN5ImGui16DebugBreakButtonEPKcS1_(ptr noundef nonnull @.str.591, ptr noundef nonnull @.str.592)
  br i1 %1121, label %1122, label %1123

1122:                                             ; preds = %1120
  store i32 %1110, ptr %1100, align 8, !tbaa !262
  br label %1123

1123:                                             ; preds = %1120, %1122, %.lr.ph808
  %.0583 = load i16, ptr %1106, align 4, !tbaa !236
  %.not671 = icmp eq i16 %.0583, -1
  br i1 %.not671, label %._crit_edge809, label %.lr.ph808, !llvm.loop !263

.loopexit705:                                     ; preds = %._crit_edge809, %.loopexit707
  call void @_ZN5ImGui8EndChildEv()
  %1124 = getelementptr inbounds i8, ptr %49, i64 19116
  %1125 = load i8, ptr %1124, align 4, !tbaa !264, !range !13, !noundef !14
  %1126 = zext nneg i8 %1125 to i32
  %1127 = getelementptr inbounds i8, ptr %49, i64 19112
  %1128 = load i32, ptr %1127, align 8, !tbaa !265
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.593, i32 noundef %1126, i32 noundef %1128)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1129

1129:                                             ; preds = %.loopexit705, %880
  %1130 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.594)
  br i1 %1130, label %1131, label %1286

1131:                                             ; preds = %1129
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.595)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1132 = getelementptr inbounds i8, ptr %49, i64 16712
  %1133 = load ptr, ptr %1132, align 8, !tbaa !266
  %.not658 = icmp eq ptr %1133, null
  br i1 %.not658, label %1137, label %1134

1134:                                             ; preds = %1131
  %1135 = getelementptr inbounds i8, ptr %1133, i64 8
  %1136 = load ptr, ptr %1135, align 8, !tbaa !122
  br label %1137

1137:                                             ; preds = %1131, %1134
  %1138 = phi ptr [ %1136, %1134 ], [ @.str.502, %1131 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.596, ptr noundef %1138)
  %1139 = load ptr, ptr %1132, align 8, !tbaa !266
  %.not659 = icmp eq ptr %1139, null
  br i1 %.not659, label %1145, label %1140

1140:                                             ; preds = %1137
  %1141 = getelementptr inbounds i8, ptr %1139, i64 976
  %1142 = load ptr, ptr %1141, align 8, !tbaa !267
  %1143 = getelementptr inbounds i8, ptr %1142, i64 8
  %1144 = load ptr, ptr %1143, align 8, !tbaa !122
  br label %1145

1145:                                             ; preds = %1137, %1140
  %1146 = phi ptr [ %1144, %1140 ], [ @.str.502, %1137 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.597, ptr noundef %1146)
  %1147 = getelementptr inbounds i8, ptr %49, i64 16720
  %1148 = load ptr, ptr %1147, align 8, !tbaa !268
  %.not660 = icmp eq ptr %1148, null
  br i1 %.not660, label %1152, label %1149

1149:                                             ; preds = %1145
  %1150 = getelementptr inbounds i8, ptr %1148, i64 8
  %1151 = load ptr, ptr %1150, align 8, !tbaa !122
  br label %1152

1152:                                             ; preds = %1145, %1149
  %1153 = phi ptr [ %1151, %1149 ], [ @.str.502, %1145 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.598, ptr noundef %1153)
  %1154 = getelementptr inbounds i8, ptr %49, i64 25408
  %1155 = load ptr, ptr %1154, align 8, !tbaa !269
  %.not661 = icmp eq ptr %1155, null
  br i1 %.not661, label %1158, label %1156

1156:                                             ; preds = %1152
  %1157 = load i32, ptr %1155, align 8, !tbaa !270
  br label %1158

1158:                                             ; preds = %1152, %1156
  %1159 = phi i32 [ %1157, %1156 ], [ 0, %1152 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.599, i32 noundef %1159)
  %1160 = getelementptr inbounds i8, ptr %49, i64 16728
  %1161 = load ptr, ptr %1160, align 8, !tbaa !274
  %.not662 = icmp eq ptr %1161, null
  br i1 %.not662, label %1165, label %1162

1162:                                             ; preds = %1158
  %1163 = getelementptr inbounds i8, ptr %1161, i64 8
  %1164 = load ptr, ptr %1163, align 8, !tbaa !122
  br label %1165

1165:                                             ; preds = %1158, %1162
  %1166 = phi ptr [ %1164, %1162 ], [ @.str.502, %1158 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.600, ptr noundef %1166)
  %1167 = getelementptr inbounds i8, ptr %49, i64 19608
  %1168 = load ptr, ptr %1167, align 8, !tbaa !171
  %1169 = load i32, ptr %1168, align 8, !tbaa !156
  %1170 = getelementptr inbounds i8, ptr %49, i64 3684
  %1171 = load i32, ptr %1170, align 4, !tbaa !172
  %1172 = getelementptr inbounds i8, ptr %49, i64 19616
  %1173 = load ptr, ptr %1172, align 8, !tbaa !173
  %.not663 = icmp eq ptr %1173, null
  br i1 %.not663, label %1176, label %1174

1174:                                             ; preds = %1165
  %1175 = load i32, ptr %1173, align 8, !tbaa !156
  br label %1176

1176:                                             ; preds = %1165, %1174
  %1177 = phi i32 [ %1175, %1174 ], [ 0, %1165 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.495, i32 noundef %1169, i32 noundef %1171, i32 noundef %1177)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.601)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1178 = getelementptr inbounds i8, ptr %49, i64 16804
  %1179 = load i32, ptr %1178, align 4, !tbaa !275
  %1180 = getelementptr inbounds i8, ptr %49, i64 16844
  %1181 = load i32, ptr %1180, align 4, !tbaa !276
  %1182 = getelementptr inbounds i8, ptr %49, i64 16812
  %1183 = load float, ptr %1182, align 4, !tbaa !277
  %1184 = fpext float %1183 to double
  %1185 = getelementptr inbounds i8, ptr %49, i64 16817
  %1186 = load i8, ptr %1185, align 1, !tbaa !278, !range !13, !noundef !14
  %1187 = zext nneg i8 %1186 to i32
  %1188 = getelementptr inbounds i8, ptr %49, i64 16840
  %1189 = load i32, ptr %1188, align 8, !tbaa !279
  %1190 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1189)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.602, i32 noundef %1179, i32 noundef %1181, double noundef %1184, i32 noundef %1187, ptr noundef %1190)
  %1191 = load i32, ptr %1178, align 4, !tbaa !275
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1191)
  %1192 = getelementptr inbounds i8, ptr %49, i64 16832
  %1193 = load ptr, ptr %1192, align 8, !tbaa !280
  %.not664 = icmp eq ptr %1193, null
  br i1 %.not664, label %1197, label %1194

1194:                                             ; preds = %1176
  %1195 = getelementptr inbounds i8, ptr %1193, i64 8
  %1196 = load ptr, ptr %1195, align 8, !tbaa !122
  br label %1197

1197:                                             ; preds = %1176, %1194
  %1198 = phi ptr [ %1196, %1194 ], [ @.str.502, %1176 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.603, ptr noundef %1198)
  %1199 = getelementptr inbounds i8, ptr %49, i64 19116
  %1200 = load i8, ptr %1199, align 4, !tbaa !264, !range !13, !noundef !14
  %1201 = zext nneg i8 %1200 to i32
  %1202 = getelementptr inbounds i8, ptr %49, i64 19112
  %1203 = load i32, ptr %1202, align 8, !tbaa !265
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.604, i32 noundef %1201, i32 noundef %1203)
  %1204 = getelementptr inbounds i8, ptr %49, i64 16788
  %1205 = load i32, ptr %1204, align 4, !tbaa !281
  %1206 = getelementptr inbounds i8, ptr %49, i64 16796
  %1207 = load float, ptr %1206, align 4, !tbaa !282
  %1208 = fpext float %1207 to double
  %1209 = getelementptr inbounds i8, ptr %49, i64 16792
  %1210 = load i8, ptr %1209, align 8, !tbaa !283, !range !13, !noundef !14
  %1211 = zext nneg i8 %1210 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.605, i32 noundef %1205, double noundef %1208, i32 noundef %1211)
  %1212 = getelementptr inbounds i8, ptr %49, i64 20640
  %1213 = load i32, ptr %1212, align 8, !tbaa !284
  %1214 = getelementptr inbounds i8, ptr %49, i64 20648
  %1215 = load float, ptr %1214, align 8, !tbaa !285
  %1216 = fpext float %1215 to double
  %1217 = getelementptr inbounds i8, ptr %49, i64 20652
  %1218 = load float, ptr %1217, align 4, !tbaa !286
  %1219 = fpext float %1218 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.606, i32 noundef %1213, double noundef %1216, double noundef %1219)
  %1220 = getelementptr inbounds i8, ptr %49, i64 20256
  %1221 = load i8, ptr %1220, align 8, !tbaa !287, !range !13, !noundef !14
  %1222 = zext nneg i8 %1221 to i32
  %1223 = getelementptr inbounds i8, ptr %49, i64 20284
  %1224 = load i32, ptr %1223, align 4, !tbaa !288
  %1225 = getelementptr inbounds i8, ptr %49, i64 20296
  %1226 = getelementptr inbounds i8, ptr %49, i64 20280
  %1227 = load i32, ptr %1226, align 8, !tbaa !289
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.607, i32 noundef %1222, i32 noundef %1224, ptr noundef nonnull %1225, i32 noundef %1227)
  %1228 = load i32, ptr %1223, align 4, !tbaa !288
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1228)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.608)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1229 = getelementptr inbounds i8, ptr %49, i64 19696
  %1230 = load ptr, ptr %1229, align 8, !tbaa !121
  %.not665 = icmp eq ptr %1230, null
  br i1 %.not665, label %1234, label %1231

1231:                                             ; preds = %1197
  %1232 = getelementptr inbounds i8, ptr %1230, i64 8
  %1233 = load ptr, ptr %1232, align 8, !tbaa !122
  br label %1234

1234:                                             ; preds = %1197, %1231
  %1235 = phi ptr [ %1233, %1231 ], [ @.str.502, %1197 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.609, ptr noundef %1235)
  %1236 = getelementptr inbounds i8, ptr %49, i64 19704
  %1237 = load i32, ptr %1236, align 8, !tbaa !290
  %1238 = getelementptr inbounds i8, ptr %49, i64 19776
  %1239 = load i32, ptr %1238, align 8, !tbaa !291
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.610, i32 noundef %1237, i32 noundef %1239)
  %1240 = load i32, ptr %1236, align 8, !tbaa !290
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1240)
  %1241 = getelementptr inbounds i8, ptr %49, i64 19772
  %1242 = load i32, ptr %1241, align 4, !tbaa !292
  %1243 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1242)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.611, ptr noundef %1243)
  %1244 = getelementptr inbounds i8, ptr %49, i64 19784
  %1245 = load i64, ptr %1244, align 8, !tbaa !293
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.612, i64 noundef %1245, i64 noundef %1245)
  %1246 = getelementptr inbounds i8, ptr %49, i64 215
  %1247 = load i8, ptr %1246, align 1, !tbaa !294, !range !13, !noundef !14
  %1248 = zext nneg i8 %1247 to i32
  %1249 = getelementptr inbounds i8, ptr %49, i64 216
  %1250 = load i8, ptr %1249, align 8, !tbaa !295, !range !13, !noundef !14
  %1251 = zext nneg i8 %1250 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.613, i32 noundef %1248, i32 noundef %1251)
  %1252 = getelementptr inbounds i8, ptr %49, i64 19728
  %1253 = load i32, ptr %1252, align 8, !tbaa !296
  %1254 = getelementptr inbounds i8, ptr %49, i64 19732
  %1255 = load i32, ptr %1254, align 4, !tbaa !297
  %1256 = getelementptr inbounds i8, ptr %49, i64 19736
  %1257 = load i32, ptr %1256, align 8, !tbaa !298
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.614, i32 noundef %1253, i32 noundef %1255, i32 noundef %1257)
  %1258 = getelementptr inbounds i8, ptr %49, i64 19740
  %1259 = load i32, ptr %1258, align 4, !tbaa !299
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.615, i32 noundef %1259)
  %1260 = getelementptr inbounds i8, ptr %49, i64 19794
  %1261 = load i8, ptr %1260, align 2, !tbaa !300, !range !13, !noundef !14
  %1262 = zext nneg i8 %1261 to i32
  %1263 = getelementptr inbounds i8, ptr %49, i64 19795
  %1264 = load i8, ptr %1263, align 1, !tbaa !301, !range !13, !noundef !14
  %1265 = zext nneg i8 %1264 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.616, i32 noundef %1262, i32 noundef %1265)
  %1266 = getelementptr inbounds i8, ptr %49, i64 19708
  %1267 = load i32, ptr %1266, align 4, !tbaa !302
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.617, i32 noundef %1267)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.618)
  %1268 = getelementptr inbounds i8, ptr %49, i64 19712
  %1269 = load i32, ptr %1268, align 8, !tbaa !303
  %1270 = icmp sgt i32 %1269, 0
  br i1 %1270, label %.lr.ph813, label %._crit_edge814

._crit_edge814:                                   ; preds = %.lr.ph813, %1234
  %1271 = getelementptr inbounds i8, ptr %49, i64 20200
  %1272 = load ptr, ptr %1271, align 8, !tbaa !304
  %.not666 = icmp eq ptr %1272, null
  br i1 %.not666, label %1284, label %1281

.lr.ph813:                                        ; preds = %1234, %.lr.ph813
  %.0580.in811 = phi i32 [ %.0580, %.lr.ph813 ], [ %1269, %1234 ]
  %.0580 = add nsw i32 %.0580.in811, -1
  %1273 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZN8ImVectorI19ImGuiFocusScopeDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1268, i32 noundef %.0580)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef 0.000000e+00)
  %1274 = load i32, ptr %1273, align 4, !tbaa !305
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.619, i32 noundef %1274)
  %1275 = getelementptr inbounds i8, ptr %1273, i64 4
  %1276 = load i32, ptr %1275, align 4, !tbaa !307
  %1277 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %1276)
  %1278 = getelementptr inbounds i8, ptr %1277, i64 8
  %1279 = load ptr, ptr %1278, align 8, !tbaa !122
  call void (ptr, ...) @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef nonnull @.str.620, ptr noundef %1279)
  %1280 = icmp ugt i32 %.0580.in811, 1
  br i1 %1280, label %.lr.ph813, label %._crit_edge814, !llvm.loop !308

1281:                                             ; preds = %._crit_edge814
  %1282 = getelementptr inbounds i8, ptr %1272, i64 8
  %1283 = load ptr, ptr %1282, align 8, !tbaa !122
  br label %1284

1284:                                             ; preds = %._crit_edge814, %1281
  %1285 = phi ptr [ %1283, %1281 ], [ @.str.502, %._crit_edge814 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.621, ptr noundef %1285)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1286

1286:                                             ; preds = %1284, %1129
  %1287 = getelementptr inbounds i8, ptr %49, i64 25282
  %1288 = load i8, ptr %1287, align 2, !tbaa !120, !range !13, !noundef !14
  %1289 = trunc nuw i8 %1288 to i1
  br i1 %1289, label %1294, label %1290

1290:                                             ; preds = %1286
  %1291 = getelementptr inbounds i8, ptr %49, i64 25283
  %1292 = load i8, ptr %1291, align 1, !tbaa !309, !range !13, !noundef !14
  %1293 = trunc nuw i8 %1292 to i1
  br i1 %1293, label %1294, label %.loopexit703

1294:                                             ; preds = %1290, %1286
  %1295 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %403)
  %1296 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %403)
  %.not667815 = icmp eq ptr %1295, %1296
  br i1 %.not667815, label %.loopexit703, label %.lr.ph818

.lr.ph818:                                        ; preds = %1294
  %1297 = getelementptr inbounds i8, ptr %26, i64 8
  %1298 = getelementptr inbounds i8, ptr %49, i64 25283
  br label %1299

1299:                                             ; preds = %.lr.ph818, %1328
  %.0577816 = phi ptr [ %1295, %.lr.ph818 ], [ %1329, %1328 ]
  %1300 = load ptr, ptr %.0577816, align 8, !tbaa !5
  %1301 = getelementptr inbounds i8, ptr %1300, i64 244
  %1302 = load i8, ptr %1301, align 4, !tbaa !310, !range !13, !noundef !14
  %1303 = trunc nuw i8 %1302 to i1
  br i1 %1303, label %1304, label %1328

1304:                                             ; preds = %1299
  %1305 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %1300)
  %1306 = load i8, ptr %1287, align 2, !tbaa !120, !range !13, !noundef !14
  %1307 = trunc nuw i8 %1306 to i1
  br i1 %1307, label %1308, label %1313

1308:                                             ; preds = %1304
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #11
  %1309 = load i32, ptr %86, align 4, !tbaa !116
  %1310 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef nonnull %1300, i32 noundef %1309)
  %1311 = extractvalue { <2 x float>, <2 x float> } %1310, 0
  store <2 x float> %1311, ptr %26, align 8
  %1312 = extractvalue { <2 x float>, <2 x float> } %1310, 1
  store <2 x float> %1312, ptr %1297, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1305, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %1297, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #11
  br label %1313

1313:                                             ; preds = %1308, %1304
  %1314 = load i8, ptr %1298, align 1, !tbaa !309, !range !13, !noundef !14
  %1315 = trunc nuw i8 %1314 to i1
  br i1 %1315, label %1316, label %1328

1316:                                             ; preds = %1313
  %1317 = getelementptr inbounds i8, ptr %1300, i64 20
  %1318 = load i32, ptr %1317, align 4, !tbaa !186
  %1319 = and i32 %1318, 16777216
  %.not670 = icmp eq i32 %1319, 0
  br i1 %.not670, label %1320, label %1328

1320:                                             ; preds = %1316
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #11
  %1321 = getelementptr inbounds i8, ptr %1300, i64 262
  %1322 = load i16, ptr %1321, align 2, !tbaa !311
  %1323 = sext i16 %1322 to i32
  %1324 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %27, i64 noundef 32, ptr noundef nonnull @.str.421, i32 noundef %1323)
  %1325 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %1326 = getelementptr inbounds i8, ptr %1300, i64 88
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %29, float noundef %1325, float noundef %1325)
  %1327 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1326, ptr noundef nonnull align 4 dereferenceable(8) %29)
  store <2 x float> %1327, ptr %28, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1305, ptr noundef nonnull align 4 dereferenceable(8) %1326, ptr noundef nonnull align 4 dereferenceable(8) %28, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #11
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1305, ptr noundef nonnull align 4 dereferenceable(8) %1326, i32 noundef -1, ptr noundef nonnull %27, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #11
  br label %1328

1328:                                             ; preds = %1313, %1316, %1320, %1299
  %1329 = getelementptr inbounds i8, ptr %.0577816, i64 8
  %.not667 = icmp eq ptr %1329, %1296
  br i1 %.not667, label %.loopexit703, label %1299

.loopexit703:                                     ; preds = %1328, %1294, %1290
  %1330 = getelementptr inbounds i8, ptr %49, i64 25284
  %1331 = load i8, ptr %1330, align 4, !tbaa !123, !range !13, !noundef !14
  %1332 = trunc nuw i8 %1331 to i1
  br i1 %1332, label %.preheader701, label %.loopexit702

.preheader701:                                    ; preds = %.loopexit703
  %1333 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %627)
  %1334 = icmp sgt i32 %1333, 0
  br i1 %1334, label %.lr.ph822, label %.loopexit702

.lr.ph822:                                        ; preds = %.preheader701
  %1335 = getelementptr inbounds i8, ptr %49, i64 16536
  %1336 = getelementptr inbounds i8, ptr %31, i64 8
  %1337 = getelementptr inbounds i8, ptr %30, i64 8
  br label %1338

1338:                                             ; preds = %.lr.ph822, %.loopexit
  %.0572821 = phi i32 [ 0, %.lr.ph822 ], [ %1374, %.loopexit ]
  %1339 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %627, i32 noundef %.0572821)
  %1340 = icmp eq ptr %1339, null
  br i1 %1340, label %.loopexit, label %1341

1341:                                             ; preds = %1338
  %1342 = getelementptr inbounds i8, ptr %1339, i64 104
  %1343 = load i32, ptr %1342, align 8, !tbaa !124
  %1344 = load i32, ptr %1335, align 8, !tbaa !134
  %1345 = add nsw i32 %1344, -1
  %1346 = icmp slt i32 %1343, %1345
  br i1 %1346, label %.loopexit, label %1347

1347:                                             ; preds = %1341
  %1348 = getelementptr inbounds i8, ptr %1339, i64 384
  %1349 = load ptr, ptr %1348, align 8, !tbaa !135
  %1350 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1349)
  %1351 = load i32, ptr %91, align 4, !tbaa !117
  %1352 = icmp sgt i32 %1351, 5
  br i1 %1352, label %.preheader, label %1370

.preheader:                                       ; preds = %1347
  %1353 = getelementptr inbounds i8, ptr %1339, i64 108
  %1354 = load i32, ptr %1353, align 4, !tbaa !138
  %1355 = icmp sgt i32 %1354, 0
  br i1 %1355, label %.lr.ph820, label %.loopexit

.lr.ph820:                                        ; preds = %.preheader
  %1356 = getelementptr inbounds i8, ptr %1339, i64 522
  br label %1357

1357:                                             ; preds = %.lr.ph820, %1357
  %.0569819 = phi i32 [ 0, %.lr.ph820 ], [ %1367, %1357 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #11
  %1358 = load i32, ptr %91, align 4, !tbaa !117
  %1359 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1339, i32 noundef %1358, i32 noundef %.0569819)
  %1360 = extractvalue { <2 x float>, <2 x float> } %1359, 0
  store <2 x float> %1360, ptr %30, align 8
  %1361 = extractvalue { <2 x float>, <2 x float> } %1359, 1
  store <2 x float> %1361, ptr %1337, align 8
  %1362 = load i16, ptr %1356, align 2, !tbaa !312
  %1363 = sext i16 %1362 to i32
  %1364 = icmp eq i32 %.0569819, %1363
  %1365 = select i1 %1364, i32 -8323073, i32 -8388353
  %1366 = select i1 %1364, float 3.000000e+00, float 1.000000e+00
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1350, ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %1337, i32 noundef %1365, float noundef 0.000000e+00, i32 noundef 0, float noundef %1366)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #11
  %1367 = add nuw nsw i32 %.0569819, 1
  %1368 = load i32, ptr %1353, align 4, !tbaa !138
  %1369 = icmp slt i32 %1367, %1368
  br i1 %1369, label %1357, label %.loopexit, !llvm.loop !313

1370:                                             ; preds = %1347
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #11
  %1371 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1339, i32 noundef %1351, i32 noundef -1)
  %1372 = extractvalue { <2 x float>, <2 x float> } %1371, 0
  store <2 x float> %1372, ptr %31, align 8
  %1373 = extractvalue { <2 x float>, <2 x float> } %1371, 1
  store <2 x float> %1373, ptr %1336, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1350, ptr noundef nonnull align 4 dereferenceable(8) %31, ptr noundef nonnull align 4 dereferenceable(8) %1336, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #11
  br label %.loopexit

.loopexit:                                        ; preds = %1357, %.preheader, %1370, %1338, %1341
  %1374 = add nuw nsw i32 %.0572821, 1
  %1375 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %627)
  %1376 = icmp slt i32 %1374, %1375
  br i1 %1376, label %1338, label %.loopexit702, !llvm.loop !314

.loopexit702:                                     ; preds = %.loopexit, %.preheader701, %.loopexit703
  %1377 = getelementptr inbounds i8, ptr %49, i64 25289
  %1378 = load i8, ptr %1377, align 1, !tbaa !315, !range !13, !noundef !14
  %1379 = trunc nuw i8 %1378 to i1
  br i1 %1379, label %1380, label %1444

1380:                                             ; preds = %.loopexit702
  %1381 = getelementptr inbounds i8, ptr %49, i64 3688
  %1382 = load i8, ptr %1381, align 8, !tbaa !316, !range !13, !noundef !14
  %1383 = trunc nuw i8 %1382 to i1
  br i1 %1383, label %1384, label %1444

1384:                                             ; preds = %1380
  %1385 = getelementptr inbounds i8, ptr %49, i64 25408
  %1386 = load ptr, ptr %1385, align 8, !tbaa !269
  %.not668 = icmp eq ptr %1386, null
  br i1 %.not668, label %1444, label %1387

1387:                                             ; preds = %1384
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %32) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %32, i8 0, i64 64, i1 false)
  %1388 = getelementptr inbounds i8, ptr %1386, i64 136
  %1389 = load ptr, ptr %1388, align 8, !tbaa !317
  %.not669 = icmp eq ptr %1389, null
  br i1 %.not669, label %1392, label %1390

1390:                                             ; preds = %1387
  %1391 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %1389)
  br label %1395

1392:                                             ; preds = %1387
  %1393 = call noundef ptr @_ZN5ImGui15GetMainViewportEv()
  %1394 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef %1393)
  br label %1395

1395:                                             ; preds = %1392, %1390
  %1396 = phi ptr [ %1391, %1390 ], [ %1394, %1392 ]
  %1397 = getelementptr inbounds i8, ptr %32, i64 64
  %1398 = ptrtoint ptr %1397 to i64
  %1399 = load i32, ptr %1386, align 8, !tbaa !270
  %1400 = call noundef zeroext i1 @_ZNK13ImGuiDockNode13IsCentralNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %1386)
  %1401 = select i1 %1400, ptr @.str.623, ptr @.str.17
  %1402 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %32, i64 noundef 64, ptr noundef nonnull @.str.622, i32 noundef %1399, ptr noundef nonnull %1401)
  %1403 = sext i32 %1402 to i64
  %1404 = getelementptr inbounds i8, ptr %32, i64 %1403
  %gepdiff = sub nsw i64 64, %1403
  %1405 = getelementptr inbounds i8, ptr %1386, i64 100
  %1406 = load i32, ptr %1405, align 4, !tbaa !318
  %1407 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %1404, i64 noundef %gepdiff, ptr noundef nonnull @.str.624, i32 noundef %1406)
  %1408 = sext i32 %1407 to i64
  %1409 = getelementptr inbounds i8, ptr %1404, i64 %1408
  %1410 = ptrtoint ptr %1409 to i64
  %1411 = sub i64 %1398, %1410
  %1412 = getelementptr inbounds i8, ptr %1386, i64 80
  %1413 = load float, ptr %1412, align 8, !tbaa !319
  %1414 = fpext float %1413 to double
  %1415 = getelementptr inbounds i8, ptr %1386, i64 84
  %1416 = load float, ptr %1415, align 4, !tbaa !320
  %1417 = fpext float %1416 to double
  %1418 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %1409, i64 noundef %1411, ptr noundef nonnull @.str.625, double noundef %1414, double noundef %1417)
  %1419 = sext i32 %1418 to i64
  %1420 = getelementptr inbounds i8, ptr %1409, i64 %1419
  %1421 = ptrtoint ptr %1420 to i64
  %1422 = sub i64 %1398, %1421
  %1423 = getelementptr inbounds i8, ptr %1386, i64 88
  %1424 = load float, ptr %1423, align 8, !tbaa !321
  %1425 = fpext float %1424 to double
  %1426 = getelementptr inbounds i8, ptr %1386, i64 92
  %1427 = load float, ptr %1426, align 4, !tbaa !322
  %1428 = fpext float %1427 to double
  %1429 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %1420, i64 noundef %1422, ptr noundef nonnull @.str.626, double noundef %1425, double noundef %1428)
  %1430 = call noundef i32 @_ZN5ImGui16DockNodeGetDepthEPK13ImGuiDockNode(ptr noundef nonnull %1386)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #11
  %1431 = getelementptr inbounds i8, ptr %1386, i64 72
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %35, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %1432 = sitofp i32 %1430 to float
  %1433 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %35, float noundef %1432)
  store <2 x float> %1433, ptr %34, align 8
  %1434 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1431, ptr noundef nonnull align 4 dereferenceable(8) %34)
  store <2 x float> %1434, ptr %33, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #11
  %1435 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1431, ptr noundef nonnull align 4 dereferenceable(8) %1412)
  store <2 x float> %1435, ptr %37, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %1436 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef %1432)
  store <2 x float> %1436, ptr %38, align 8
  %1437 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %38)
  store <2 x float> %1437, ptr %36, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1396, ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %36, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %42, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %1438 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %42, float noundef %1432)
  store <2 x float> %1438, ptr %41, align 8
  %1439 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1431, ptr noundef nonnull align 4 dereferenceable(8) %41)
  store <2 x float> %1439, ptr %40, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %1440 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(8) %44)
  store <2 x float> %1440, ptr %43, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #11
  %1441 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef nonnull %32, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %1441, ptr %47, align 8
  %1442 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(8) %47)
  store <2 x float> %1442, ptr %46, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %48, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %1443 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %46, ptr noundef nonnull align 4 dereferenceable(8) %48)
  store <2 x float> %1443, ptr %45, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1396, ptr noundef nonnull align 4 dereferenceable(8) %43, ptr noundef nonnull align 4 dereferenceable(8) %45, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #11
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %1396, ptr noundef null, float noundef 0.000000e+00, ptr noundef nonnull align 4 dereferenceable(8) %40, i32 noundef -1, ptr noundef nonnull %32, ptr noundef null, float noundef 0.000000e+00, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %32) #11
  br label %1444

1444:                                             ; preds = %1395, %1384, %1380, %.loopexit702
  call void @_ZN5ImGui3EndEv()
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %2) #11
  br label %1445

1445:                                             ; preds = %1444, %66
  ret void
}

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

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

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

declare void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #7

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef) local_unnamed_addr #7

declare void @_ZN5ImGui15SeparatorTextExEjPKcS1_f(i32 noundef, ptr noundef, ptr noundef, float noundef) local_unnamed_addr #7

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui20DebugStartItemPickerEv() local_unnamed_addr #5

declare void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef) local_unnamed_addr #7

declare noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #7

declare void @_ZN5ImGui10BulletTextEPKcz(ptr noundef, ...) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef, i32 noundef) local_unnamed_addr #8 align 2

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

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

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #9 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_(ptr noundef, ptr noundef) #1 align 2

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

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

declare noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv() local_unnamed_addr #7

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

; Function Attrs: nofree nounwind
declare i32 @__cxa_guard_acquire(ptr) local_unnamed_addr #10

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

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

; Function Attrs: nofree nounwind
declare i32 @__cxa_atexit(ptr, ptr, ptr) local_unnamed_addr #10

; Function Attrs: nofree nounwind
declare void @__cxa_guard_release(ptr) local_unnamed_addr #10

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL39ViewportComparerByLastFocusedStampCountPKvS0_(ptr noundef, ptr noundef) #1

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

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

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

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

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

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

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) local_unnamed_addr #7

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) local_unnamed_addr #7

declare void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef) local_unnamed_addr #7

declare noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef) local_unnamed_addr #7

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

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

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

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

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

declare void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef) local_unnamed_addr #7

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

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

declare noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, ptr noundef, i64 noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef) local_unnamed_addr #1

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN5ImGui16DockNodeGetDepthEPK13ImGuiDockNode(ptr noundef) local_unnamed_addr #5

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTS18ImGuiMetricsConfig", !11, i64 0, !11, i64 1, !11, i64 2, !11, i64 3, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !11, i64 8, !11, i64 9, !12, i64 12, !12, i64 16}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!10, !11, i64 1}
!16 = !{!17, !21, i64 256}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !18, i64 32, !6, i64 64, !12, i64 72, !19, i64 76, !12, i64 84, !19, i64 88, !19, i64 96, !19, i64 104, !19, i64 112, !19, i64 120, !19, i64 128, !19, i64 136, !20, i64 144, !20, i64 148, !20, i64 152, !20, i64 156, !20, i64 160, !20, i64 164, !20, i64 168, !20, i64 172, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !19, i64 192, !19, i64 200, !19, i64 208, !19, i64 216, !19, i64 224, !19, i64 232, !11, i64 240, !11, i64 241, !11, i64 242, !11, i64 243, !11, i64 244, !11, i64 245, !11, i64 246, !11, i64 247, !11, i64 248, !11, i64 249, !11, i64 250, !11, i64 251, !11, i64 252, !11, i64 253, !7, i64 254, !7, i64 255, !21, i64 256, !21, i64 258, !21, i64 260, !21, i64 262, !21, i64 264, !12, i64 268, !7, i64 272, !7, i64 273, !11, i64 274, !12, i64 276, !7, i64 280, !7, i64 281, !7, i64 282, !7, i64 283, !12, i64 284, !12, i64 285, !12, i64 286, !12, i64 287, !19, i64 288, !19, i64 296, !22, i64 304, !23, i64 320, !29, i64 552, !29, i64 568, !29, i64 584, !29, i64 600, !29, i64 616, !29, i64 632, !29, i64 648, !30, i64 664, !30, i64 668, !12, i64 672, !12, i64 676, !20, i64 680, !20, i64 684, !31, i64 688, !33, i64 704, !20, i64 720, !20, i64 724, !12, i64 728, !6, i64 736, !34, i64 744, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !6, i64 1000, !6, i64 1008, !7, i64 1016, !7, i64 1024, !7, i64 1056, !12, i64 1072, !12, i64 1076, !12, i64 1080, !11, i64 1084, !11, i64 1085, !11, i64 1085, !11, i64 1085, !11, i64 1085, !21, i64 1086, !45, i64 1088, !6, i64 1112, !6, i64 1120, !12, i64 1128, !12, i64 1132, !29, i64 1136}
!18 = !{!"_ZTS16ImGuiWindowClass", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !11, i64 28, !11, i64 29}
!19 = !{!"_ZTS6ImVec2", !20, i64 0, !20, i64 4}
!20 = !{!"float", !7, i64 0}
!21 = !{!"short", !7, i64 0}
!22 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!23 = !{!"_ZTS19ImGuiWindowTempData", !19, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !20, i64 56, !20, i64 60, !11, i64 64, !11, i64 65, !24, i64 68, !24, i64 72, !24, i64 76, !19, i64 80, !25, i64 88, !21, i64 92, !21, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !19, i64 100, !26, i64 108, !12, i64 136, !12, i64 140, !27, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !20, i64 188, !20, i64 192, !28, i64 200, !28, i64 216}
!24 = !{!"_ZTS6ImVec1", !20, i64 0}
!25 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!26 = !{!"_ZTS16ImGuiMenuColumns", !12, i64 0, !12, i64 4, !21, i64 8, !21, i64 10, !21, i64 12, !21, i64 14, !21, i64 16, !7, i64 18}
!27 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!28 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!29 = !{!"_ZTS6ImRect", !19, i64 0, !19, i64 8}
!30 = !{!"_ZTS8ImVec2ih", !21, i64 0, !21, i64 2}
!31 = !{!"_ZTS12ImGuiStorage", !32, i64 0}
!32 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !12, i64 0, !12, i64 4, !6, i64 8}
!33 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!34 = !{!"_ZTS10ImDrawList", !35, i64 0, !36, i64 16, !37, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !38, i64 88, !39, i64 104, !40, i64 120, !41, i64 136, !43, i64 168, !20, i64 192}
!35 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS8ImVectorIPvE", !12, i64 0, !12, i64 4, !6, i64 8}
!40 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!41 = !{!"_ZTS15ImDrawCmdHeader", !42, i64 0, !6, i64 16, !12, i64 24}
!42 = !{!"_ZTS6ImVec4", !20, i64 0, !20, i64 4, !20, i64 8, !20, i64 12}
!43 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !44, i64 8}
!44 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!45 = !{!"_ZTS20ImGuiWindowDockStyle", !7, i64 0}
!46 = !{!47, !20, i64 212}
!47 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !19, i64 8, !20, i64 16, !20, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !20, i64 56, !11, i64 60, !6, i64 64, !19, i64 72, !11, i64 80, !11, i64 81, !11, i64 82, !11, i64 83, !11, i64 84, !11, i64 85, !11, i64 86, !11, i64 87, !11, i64 88, !11, i64 89, !11, i64 90, !11, i64 91, !11, i64 92, !11, i64 93, !11, i64 94, !11, i64 95, !20, i64 96, !20, i64 100, !20, i64 104, !20, i64 108, !20, i64 112, !20, i64 116, !11, i64 120, !11, i64 121, !11, i64 122, !11, i64 123, !11, i64 124, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !21, i64 200, !11, i64 202, !11, i64 203, !11, i64 204, !11, i64 205, !11, i64 206, !11, i64 207, !11, i64 208, !20, i64 212, !12, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !19, i64 232, !7, i64 240, !7, i64 2904, !7, i64 3572, !6, i64 3640, !19, i64 3648, !7, i64 3656, !20, i64 3664, !20, i64 3668, !48, i64 3672, !12, i64 3676, !11, i64 3680, !11, i64 3681, !11, i64 3682, !11, i64 3683, !12, i64 3684, !7, i64 3688, !11, i64 14344, !19, i64 14348, !7, i64 14356, !7, i64 14400, !7, i64 14440, !7, i64 14445, !7, i64 14450, !7, i64 14460, !7, i64 14470, !7, i64 14475, !7, i64 14480, !11, i64 14485, !7, i64 14488, !7, i64 14508, !7, i64 14528, !7, i64 14568, !20, i64 14588, !11, i64 14592, !11, i64 14593, !7, i64 14594, !11, i64 14595, !21, i64 14596, !36, i64 14600}
!48 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!49 = !{!47, !12, i64 216}
!50 = !{!47, !12, i64 220}
!51 = !{!47, !12, i64 224}
!52 = !{!53, !12, i64 25344}
!53 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !47, i64 8, !54, i64 14624, !57, i64 14840, !12, i64 15972, !12, i64 15976, !6, i64 15984, !20, i64 15992, !20, i64 15996, !58, i64 16000, !59, i64 16528, !12, i64 16536, !12, i64 16540, !12, i64 16544, !12, i64 16548, !11, i64 16552, !11, i64 16553, !11, i64 16554, !11, i64 16555, !11, i64 16556, !6, i64 16560, !60, i64 16568, !60, i64 16584, !48, i64 16600, !12, i64 16604, !27, i64 16608, !27, i64 16624, !27, i64 16640, !61, i64 16656, !31, i64 16672, !12, i64 16688, !19, i64 16692, !12, i64 16700, !6, i64 16704, !6, i64 16712, !6, i64 16720, !6, i64 16728, !6, i64 16736, !19, i64 16744, !12, i64 16752, !12, i64 16756, !20, i64 16760, !19, i64 16764, !19, i64 16772, !12, i64 16780, !12, i64 16784, !12, i64 16788, !11, i64 16792, !11, i64 16793, !20, i64 16796, !20, i64 16800, !12, i64 16804, !12, i64 16808, !20, i64 16812, !11, i64 16816, !11, i64 16817, !11, i64 16818, !11, i64 16819, !11, i64 16820, !11, i64 16821, !11, i64 16822, !12, i64 16823, !19, i64 16824, !6, i64 16832, !62, i64 16840, !12, i64 16844, !11, i64 16848, !11, i64 16849, !6, i64 16856, !12, i64 16864, !20, i64 16868, !59, i64 16872, !59, i64 16880, !59, i64 16888, !63, i64 16896, !7, i64 16916, !64, i64 18768, !12, i64 19112, !11, i64 19116, !12, i64 19120, !12, i64 19124, !12, i64 19128, !12, i64 19132, !12, i64 19136, !66, i64 19144, !68, i64 19176, !69, i64 19256, !11, i64 19416, !12, i64 19420, !70, i64 19424, !71, i64 19440, !72, i64 19456, !73, i64 19472, !74, i64 19488, !75, i64 19504, !76, i64 19520, !76, i64 19536, !77, i64 19552, !12, i64 19568, !78, i64 19576, !20, i64 19592, !6, i64 19600, !6, i64 19608, !6, i64 19616, !12, i64 19624, !79, i64 19632, !12, i64 19680, !12, i64 19684, !12, i64 19688, !6, i64 19696, !12, i64 19704, !12, i64 19708, !73, i64 19712, !12, i64 19728, !12, i64 19732, !12, i64 19736, !12, i64 19740, !12, i64 19744, !20, i64 19748, !12, i64 19752, !12, i64 19756, !12, i64 19760, !12, i64 19764, !12, i64 19768, !62, i64 19772, !25, i64 19776, !67, i64 19784, !11, i64 19792, !11, i64 19793, !11, i64 19794, !11, i64 19795, !11, i64 19796, !11, i64 19797, !11, i64 19798, !80, i64 19800, !11, i64 19864, !11, i64 19865, !11, i64 19866, !12, i64 19868, !12, i64 19872, !12, i64 19876, !12, i64 19880, !12, i64 19884, !12, i64 19888, !29, i64 19892, !29, i64 19908, !12, i64 19924, !12, i64 19928, !12, i64 19932, !80, i64 19936, !80, i64 20000, !80, i64 20064, !80, i64 20128, !12, i64 20192, !12, i64 20196, !6, i64 20200, !6, i64 20208, !6, i64 20216, !20, i64 20224, !20, i64 20228, !11, i64 20232, !19, i64 20236, !19, i64 20244, !20, i64 20252, !11, i64 20256, !11, i64 20257, !11, i64 20258, !12, i64 20260, !12, i64 20264, !12, i64 20268, !81, i64 20272, !29, i64 20336, !29, i64 20352, !12, i64 20368, !12, i64 20372, !20, i64 20376, !12, i64 20380, !12, i64 20384, !12, i64 20388, !12, i64 20392, !82, i64 20400, !7, i64 20416, !12, i64 20432, !83, i64 20440, !6, i64 20456, !12, i64 20464, !12, i64 20468, !84, i64 20472, !85, i64 20488, !28, i64 20528, !44, i64 20544, !6, i64 20560, !87, i64 20568, !89, i64 20608, !90, i64 20624, !12, i64 20640, !12, i64 20644, !20, i64 20648, !20, i64 20652, !12, i64 20656, !12, i64 20660, !12, i64 20664, !20, i64 20668, !19, i64 20672, !91, i64 20680, !95, i64 24408, !96, i64 24432, !12, i64 24552, !12, i64 24556, !12, i64 24560, !12, i64 24564, !20, i64 24568, !20, i64 24572, !12, i64 24576, !42, i64 24580, !98, i64 24596, !29, i64 24644, !11, i64 24660, !20, i64 24664, !20, i64 24668, !11, i64 24672, !11, i64 24673, !20, i64 24676, !20, i64 24680, !20, i64 24684, !20, i64 24688, !21, i64 24692, !21, i64 24694, !21, i64 24696, !92, i64 24704, !22, i64 24720, !99, i64 24736, !101, i64 24840, !101, i64 24856, !12, i64 24872, !102, i64 24880, !6, i64 24936, !11, i64 24944, !20, i64 24948, !105, i64 24952, !106, i64 24968, !107, i64 24984, !108, i64 25000, !109, i64 25016, !12, i64 25032, !7, i64 25040, !11, i64 25128, !110, i64 25132, !6, i64 25136, !105, i64 25144, !6, i64 25160, !6, i64 25168, !20, i64 25176, !11, i64 25180, !12, i64 25184, !12, i64 25188, !12, i64 25192, !12, i64 25196, !105, i64 25200, !111, i64 25216, !12, i64 25240, !7, i64 25244, !7, i64 25245, !11, i64 25246, !12, i64 25248, !7, i64 25252, !11, i64 25253, !7, i64 25254, !12, i64 25256, !20, i64 25260, !42, i64 25264, !10, i64 25280, !112, i64 25304, !114, i64 25344, !6, i64 25408, !7, i64 25416, !12, i64 25656, !12, i64 25660, !20, i64 25664, !12, i64 25668, !12, i64 25672, !12, i64 25676, !92, i64 25680, !7, i64 25696}
!54 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !55, i64 184, !56, i64 200}
!55 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !12, i64 0, !12, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !12, i64 0, !12, i64 4, !6, i64 8}
!57 = !{!"_ZTS10ImGuiStyle", !20, i64 0, !20, i64 4, !19, i64 8, !20, i64 16, !20, i64 20, !19, i64 24, !19, i64 32, !12, i64 40, !20, i64 44, !20, i64 48, !20, i64 52, !20, i64 56, !19, i64 60, !20, i64 68, !20, i64 72, !19, i64 76, !19, i64 84, !19, i64 92, !19, i64 100, !20, i64 108, !20, i64 112, !20, i64 116, !20, i64 120, !20, i64 124, !20, i64 128, !20, i64 132, !20, i64 136, !20, i64 140, !20, i64 144, !20, i64 148, !20, i64 152, !12, i64 156, !19, i64 160, !19, i64 168, !20, i64 176, !19, i64 180, !19, i64 188, !19, i64 196, !19, i64 204, !20, i64 212, !20, i64 216, !11, i64 220, !11, i64 221, !11, i64 222, !20, i64 224, !20, i64 228, !7, i64 232, !20, i64 1112, !20, i64 1116, !20, i64 1120, !12, i64 1124, !12, i64 1128}
!58 = !{!"_ZTS20ImDrawListSharedData", !19, i64 0, !6, i64 8, !20, i64 16, !20, i64 20, !20, i64 24, !42, i64 28, !12, i64 44, !40, i64 48, !7, i64 64, !20, i64 448, !7, i64 452, !6, i64 520}
!59 = !{!"double", !7, i64 0}
!60 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!62 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!63 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!64 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !65, i64 312, !65, i64 328}
!65 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!66 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !67, i64 8, !20, i64 16, !12, i64 20, !11, i64 24, !12, i64 25}
!67 = !{!"long long", !7, i64 0}
!68 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !29, i64 12, !29, i64 28, !29, i64 44, !29, i64 60}
!69 = !{!"_ZTS19ImGuiNextWindowData", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !19, i64 20, !19, i64 28, !19, i64 36, !19, i64 44, !19, i64 52, !12, i64 60, !11, i64 64, !11, i64 65, !29, i64 68, !6, i64 88, !6, i64 96, !20, i64 104, !12, i64 108, !12, i64 112, !18, i64 116, !19, i64 148}
!70 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI20ImGuiNavTreeNodeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!79 = !{!"_ZTS20ImGuiPlatformMonitor", !19, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !20, i64 32, !6, i64 40}
!80 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !29, i64 16, !12, i64 32, !67, i64 40, !20, i64 48, !20, i64 52, !20, i64 56}
!81 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !7, i64 24, !11, i64 57, !11, i64 58}
!82 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_ZTS6ImPoolI10ImGuiTableE", !86, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!86 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!87 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !88, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!88 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!89 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!90 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!91 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !36, i64 24, !92, i64 40, !92, i64 56, !11, i64 72, !12, i64 76, !20, i64 80, !93, i64 84, !20, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !12, i64 3720}
!92 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!93 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !12, i64 0, !12, i64 4, !12, i64 8, !7, i64 12, !12, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !20, i64 28, !94, i64 32}
!94 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !21, i64 3582, !21, i64 3584, !12, i64 3588, !12, i64 3592}
!95 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !92, i64 8}
!96 = !{!"_ZTS6ImFont", !28, i64 0, !20, i64 16, !20, i64 20, !36, i64 24, !97, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !21, i64 80, !21, i64 82, !21, i64 84, !21, i64 86, !20, i64 88, !20, i64 92, !11, i64 96, !20, i64 100, !20, i64 104, !20, i64 108, !12, i64 112, !7, i64 116}
!97 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!98 = !{!"_ZTS21ImGuiComboPreviewData", !29, i64 0, !19, i64 16, !19, i64 24, !19, i64 32, !20, i64 40, !12, i64 44}
!99 = !{!"_ZTS22ImGuiTypingSelectState", !100, i64 0, !7, i64 24, !12, i64 88, !12, i64 92, !20, i64 96, !11, i64 100}
!100 = !{!"_ZTS24ImGuiTypingSelectRequest", !12, i64 0, !12, i64 4, !6, i64 8, !11, i64 16, !11, i64 17, !7, i64 18}
!101 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !19, i64 4, !20, i64 12}
!102 = !{!"_ZTS16ImGuiDockContext", !31, i64 0, !103, i64 16, !104, i64 32, !11, i64 48}
!103 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !12, i64 0, !12, i64 4, !6, i64 8}
!104 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !12, i64 0, !12, i64 4, !6, i64 8}
!105 = !{!"_ZTS15ImGuiTextBuffer", !92, i64 0}
!106 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!107 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !92, i64 0}
!108 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !92, i64 0}
!109 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!110 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!111 = !{!"_ZTS14ImGuiTextIndex", !74, i64 0, !12, i64 16}
!112 = !{!"_ZTS16ImGuiIDStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !113, i64 16, !11, i64 32, !20, i64 36}
!113 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!114 = !{!"_ZTS19ImGuiDebugAllocInfo", !12, i64 0, !12, i64 4, !21, i64 8, !7, i64 12}
!115 = !{!53, !12, i64 25348}
!116 = !{!10, !12, i64 12}
!117 = !{!10, !12, i64 16}
!118 = !{!53, !20, i64 15028}
!119 = !{!53, !11, i64 25253}
!120 = !{!10, !11, i64 2}
!121 = !{!53, !6, i64 19696}
!122 = !{!17, !6, i64 8}
!123 = !{!10, !11, i64 4}
!124 = !{!125, !12, i64 104}
!125 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !126, i64 24, !127, i64 40, !128, i64 56, !6, i64 72, !6, i64 80, !6, i64 88, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !21, i64 120, !21, i64 122, !20, i64 124, !20, i64 128, !20, i64 132, !20, i64 136, !20, i64 140, !20, i64 144, !12, i64 148, !12, i64 150, !12, i64 152, !7, i64 156, !12, i64 164, !12, i64 168, !20, i64 172, !20, i64 176, !20, i64 180, !20, i64 184, !20, i64 188, !20, i64 192, !20, i64 196, !20, i64 200, !20, i64 204, !20, i64 208, !20, i64 212, !20, i64 216, !20, i64 220, !20, i64 224, !20, i64 228, !20, i64 232, !20, i64 236, !29, i64 240, !29, i64 256, !29, i64 272, !29, i64 288, !29, i64 304, !29, i64 320, !29, i64 336, !29, i64 352, !29, i64 368, !6, i64 384, !6, i64 392, !105, i64 400, !6, i64 416, !129, i64 424, !130, i64 448, !131, i64 464, !132, i64 480, !133, i64 496, !21, i64 512, !21, i64 514, !21, i64 516, !21, i64 518, !21, i64 520, !21, i64 522, !21, i64 524, !21, i64 526, !21, i64 528, !21, i64 530, !21, i64 532, !21, i64 534, !21, i64 536, !21, i64 538, !21, i64 540, !21, i64 542, !21, i64 544, !21, i64 546, !21, i64 548, !21, i64 550, !21, i64 552, !21, i64 554, !21, i64 556, !21, i64 558, !21, i64 560, !21, i64 562, !21, i64 564, !11, i64 566, !11, i64 567, !11, i64 568, !11, i64 569, !11, i64 570, !11, i64 571, !11, i64 572, !11, i64 573, !11, i64 574, !11, i64 575, !11, i64 576, !11, i64 577, !11, i64 578, !11, i64 579, !11, i64 580, !11, i64 581, !11, i64 582, !11, i64 583, !11, i64 584, !11, i64 585}
!126 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!127 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!128 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!129 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !20, i64 4, !20, i64 8, !20, i64 12, !12, i64 16, !12, i64 20}
!130 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!131 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !21, i64 4, !21, i64 6, !12, i64 8}
!132 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!133 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!134 = !{!53, !12, i64 16536}
!135 = !{!125, !6, i64 384}
!136 = !{!125, !6, i64 392}
!137 = !{!125, !12, i64 0}
!138 = !{!125, !12, i64 108}
!139 = distinct !{!139, !140}
!140 = !{!"llvm.loop.mustprogress"}
!141 = distinct !{!141, !140}
!142 = distinct !{!142, !140}
!143 = !{!10, !11, i64 7}
!144 = !{!7, !7, i64 0}
!145 = !{!53, !12, i64 16608}
!146 = !{!27, !6, i64 8}
!147 = !{!27, !12, i64 0}
!148 = !{!17, !12, i64 672}
!149 = !{!150, !12, i64 184}
!150 = !{!"_ZTS14ImGuiViewportP", !151, i64 0, !6, i64 96, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !19, i64 120, !20, i64 128, !20, i64 132, !11, i64 136, !21, i64 138, !7, i64 140, !7, i64 152, !152, i64 168, !154, i64 232, !19, i64 264, !19, i64 272, !19, i64 280, !19, i64 288, !19, i64 296, !19, i64 304, !19, i64 312}
!151 = !{!"_ZTS13ImGuiViewport", !12, i64 0, !12, i64 4, !19, i64 8, !19, i64 16, !19, i64 24, !19, i64 32, !20, i64 40, !12, i64 44, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !11, i64 88, !11, i64 89, !11, i64 90, !11, i64 91}
!152 = !{!"_ZTS10ImDrawData", !11, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !153, i64 16, !19, i64 32, !19, i64 40, !19, i64 48, !6, i64 56}
!153 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!154 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0, !153, i64 16}
!155 = !{!150, !12, i64 104}
!156 = !{!151, !12, i64 0}
!157 = distinct !{!157, !158}
!158 = !{!"llvm.loop.peeled.count", i32 1}
!159 = !{!53, !12, i64 19576}
!160 = !{!53, !12, i64 14808}
!161 = !{!79, !20, i64 32}
!162 = !{!79, !20, i64 0}
!163 = !{!79, !20, i64 4}
!164 = !{!79, !20, i64 8}
!165 = !{!79, !20, i64 12}
!166 = !{!79, !20, i64 16}
!167 = !{!79, !20, i64 20}
!168 = !{!79, !20, i64 24}
!169 = !{!79, !20, i64 28}
!170 = distinct !{!170, !140}
!171 = !{!53, !6, i64 19608}
!172 = !{!53, !12, i64 3684}
!173 = !{!53, !6, i64 19616}
!174 = !{!"branch_weights", i32 1, i32 1048575}
!175 = !{!78, !6, i64 8}
!176 = !{!53, !6, i64 19584}
!177 = !{!78, !12, i64 0}
!178 = !{!150, !12, i64 112}
!179 = !{!53, !6, i64 14688}
!180 = !{!151, !11, i64 88}
!181 = !{!150, !6, i64 96}
!182 = !{!53, !12, i64 19520}
!183 = !{!184, !6, i64 8}
!184 = !{!"_ZTS14ImGuiPopupData", !12, i64 0, !6, i64 8, !6, i64 16, !12, i64 24, !12, i64 28, !12, i64 32, !19, i64 36, !19, i64 44}
!185 = !{!184, !12, i64 0}
!186 = !{!17, !12, i64 20}
!187 = !{!184, !6, i64 16}
!188 = !{!17, !6, i64 944}
!189 = distinct !{!189, !140}
!190 = distinct !{!190, !140}
!191 = !{!53, !6, i64 56}
!192 = !{!193, !12, i64 88}
!193 = !{!"_ZTS11ImFontAtlas", !12, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !11, i64 24, !6, i64 32, !11, i64 40, !11, i64 41, !6, i64 48, !6, i64 56, !12, i64 64, !12, i64 68, !19, i64 72, !19, i64 80, !72, i64 88, !194, i64 104, !195, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!194 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!195 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!196 = !{!102, !11, i64 48}
!197 = !{!102, !12, i64 0}
!198 = !{!11, !11, i64 0}
!199 = distinct !{!199, !140}
!200 = !{!53, !6, i64 32}
!201 = !{!53, !20, i64 24948}
!202 = !{!53, !12, i64 24968}
!203 = !{!204, !6, i64 0}
!204 = !{!"_ZTS20ImGuiSettingsHandler", !6, i64 0, !12, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64}
!205 = distinct !{!205, !140}
!206 = distinct !{!206, !140}
!207 = !{!102, !12, i64 32}
!208 = !{!209, !12, i64 20}
!209 = !{!"_ZTS19ImGuiWindowSettings", !12, i64 0, !30, i64 4, !30, i64 8, !30, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !21, i64 28, !11, i64 30, !11, i64 31, !11, i64 32, !11, i64 33}
!210 = !{!209, !21, i64 28}
!211 = distinct !{!211, !140}
!212 = !{!213, !12, i64 12}
!213 = !{!"_ZTS21ImGuiDockNodeSettings", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !7, i64 16, !7, i64 17, !12, i64 20, !30, i64 24, !30, i64 28, !30, i64 32}
!214 = !{!213, !12, i64 0}
!215 = !{!213, !12, i64 4}
!216 = distinct !{!216, !140}
!217 = !{!53, !12, i64 24952}
!218 = !{!114, !12, i64 0}
!219 = !{!114, !12, i64 4}
!220 = !{!53, !11, i64 16555}
!221 = !{!114, !21, i64 8}
!222 = !{!223, !12, i64 0}
!223 = !{!"_ZTS20ImGuiDebugAllocEntry", !12, i64 0, !21, i64 4, !21, i64 6}
!224 = !{!223, !21, i64 4}
!225 = !{!223, !21, i64 6}
!226 = !{!227, !20, i64 4}
!227 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !20, i64 4, !20, i64 8, !20, i64 12}
!228 = distinct !{!228, !140}
!229 = distinct !{!229, !140}
!230 = !{!47, !11, i64 3680}
!231 = !{!47, !11, i64 3681}
!232 = !{!47, !11, i64 3682}
!233 = !{!47, !11, i64 3683}
!234 = !{!47, !12, i64 14600}
!235 = distinct !{!235, !140}
!236 = !{!21, !21, i64 0}
!237 = distinct !{!237, !140}
!238 = !{!47, !20, i64 3648}
!239 = !{!47, !20, i64 3652}
!240 = !{!47, !20, i64 232}
!241 = !{!47, !20, i64 236}
!242 = !{!20, !20, i64 0}
!243 = !{!47, !20, i64 3664}
!244 = !{!53, !20, i64 20668}
!245 = !{!47, !48, i64 3672}
!246 = !{!47, !20, i64 14588}
!247 = !{!53, !6, i64 16736}
!248 = !{!53, !20, i64 16760}
!249 = !{!53, !20, i64 16772}
!250 = !{!53, !20, i64 16776}
!251 = !{!252, !12, i64 0}
!252 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!253 = !{!252, !11, i64 9}
!254 = !{!252, !11, i64 8}
!255 = distinct !{!255, !140}
!256 = distinct !{!256, !140}
!257 = !{!258, !21, i64 2}
!258 = !{!"_ZTS19ImGuiKeyRoutingData", !21, i64 0, !21, i64 2, !7, i64 4, !7, i64 5, !12, i64 8, !12, i64 12}
!259 = !{!258, !12, i64 8}
!260 = !{!258, !7, i64 4}
!261 = !{!53, !11, i64 128}
!262 = !{!53, !12, i64 19120}
!263 = distinct !{!263, !140}
!264 = !{!53, !11, i64 19116}
!265 = !{!53, !12, i64 19112}
!266 = !{!53, !6, i64 16712}
!267 = !{!17, !6, i64 976}
!268 = !{!53, !6, i64 16720}
!269 = !{!53, !6, i64 25408}
!270 = !{!271, !12, i64 0}
!271 = !{!"_ZTS13ImGuiDockNode", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !272, i64 20, !6, i64 24, !7, i64 32, !27, i64 48, !6, i64 64, !19, i64 72, !19, i64 80, !19, i64 88, !273, i64 96, !18, i64 100, !12, i64 132, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !12, i64 168, !12, i64 172, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !12, i64 192, !12, i64 196, !12, i64 200, !12, i64 200, !12, i64 200, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 202, !11, i64 202, !11, i64 202, !11, i64 202}
!272 = !{!"_ZTS18ImGuiDockNodeState", !7, i64 0}
!273 = !{!"_ZTS9ImGuiAxis", !7, i64 0}
!274 = !{!53, !6, i64 16728}
!275 = !{!53, !12, i64 16804}
!276 = !{!53, !12, i64 16844}
!277 = !{!53, !20, i64 16812}
!278 = !{!53, !11, i64 16817}
!279 = !{!53, !62, i64 16840}
!280 = !{!53, !6, i64 16832}
!281 = !{!53, !12, i64 16788}
!282 = !{!53, !20, i64 16796}
!283 = !{!53, !11, i64 16792}
!284 = !{!53, !12, i64 20640}
!285 = !{!53, !20, i64 20648}
!286 = !{!53, !20, i64 20652}
!287 = !{!53, !11, i64 20256}
!288 = !{!53, !12, i64 20284}
!289 = !{!53, !12, i64 20280}
!290 = !{!53, !12, i64 19704}
!291 = !{!53, !25, i64 19776}
!292 = !{!53, !62, i64 19772}
!293 = !{!53, !67, i64 19784}
!294 = !{!53, !11, i64 215}
!295 = !{!53, !11, i64 216}
!296 = !{!53, !12, i64 19728}
!297 = !{!53, !12, i64 19732}
!298 = !{!53, !12, i64 19736}
!299 = !{!53, !12, i64 19740}
!300 = !{!53, !11, i64 19794}
!301 = !{!53, !11, i64 19795}
!302 = !{!53, !12, i64 19708}
!303 = !{!53, !12, i64 19712}
!304 = !{!53, !6, i64 20200}
!305 = !{!306, !12, i64 0}
!306 = !{!"_ZTS19ImGuiFocusScopeData", !12, i64 0, !12, i64 4}
!307 = !{!306, !12, i64 4}
!308 = distinct !{!308, !140}
!309 = !{!10, !11, i64 3}
!310 = !{!17, !11, i64 244}
!311 = !{!17, !21, i64 262}
!312 = !{!125, !21, i64 522}
!313 = distinct !{!313, !140}
!314 = distinct !{!314, !140}
!315 = !{!10, !11, i64 9}
!316 = !{!53, !11, i64 3688}
!317 = !{!271, !6, i64 136}
!318 = !{!271, !12, i64 100}
!319 = !{!271, !20, i64 80}
!320 = !{!271, !20, i64 84}
!321 = !{!271, !20, i64 88}
!322 = !{!271, !20, i64 92}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass