; LLVM IR from JawherBenjeddou/GraphicsRenderer :: Graphics/vendor/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.15 = type { i32, i32, ptr }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }
%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, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, ptr, i32, float, [140 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImVector.12, %struct.ImVector.13, %struct.ImVector.14, %struct.ImVector.14, i32, %struct.ImVector.15, float, ptr, ptr, ptr, i32, %struct.ImGuiPlatformMonitor, i32, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, %struct.ImGuiNavItemData, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, ptr, ptr, ptr, float, float, i8, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, i32, i32, i32, %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.16, [16 x i8], i32, %struct.ImVector.17, ptr, i32, %struct.ImVector.18, %struct.ImPool, %struct.ImVector.20, %struct.ImVector.21, ptr, %struct.ImPool.22, %struct.ImVector.24, %struct.ImVector.25, i32, i32, float, float, i32, i32, i32, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, float, float, i8, i8, float, float, float, float, i16, i16, %struct.ImVector.26, %struct.ImVector.11, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i32, i8, [3 x i8], %struct.ImGuiDockContext, ptr, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.30, %struct.ImChunkStream, %struct.ImChunkStream.31, %struct.ImVector.32, i32, [9 x ptr], i8, i32, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i8, i8, i8, i8, i8, i32, %struct.ImGuiMetricsConfig, %struct.ImGuiStackTool, ptr, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.26 }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, float, float, float, float, float, float, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, [652 x i32], [652 x i8], [16 x float], ptr, %struct.ImVec2, [5 x i8], float, float, i32, i32, i8, i8, i8, i8, i32, [652 x %struct.ImGuiKeyData], i8, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x i8], [5 x i8], i8, [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], float, i8, i8, i8, i8, i16, %struct.ImVector }
%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, 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.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [140 x i16], %struct.ImVector.7, %struct.ImVector.7 }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, i32, float, i32, i32, i8, [3 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect }
%struct.ImGuiNextWindowData = type { i32, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, %struct.ImRect, ptr, ptr, float, i32, i32, %struct.ImGuiWindowClass, %struct.ImVec2 }
%struct.ImGuiWindowClass = type <{ i32, i32, i32, i32, i32, i32, i8, i8, [2 x i8] }>
%struct.ImVector.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.ImGuiPlatformMonitor = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, ptr }
%struct.ImGuiNavItemData = type { ptr, i32, i32, %struct.ImRect, i32, float, float, float }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.19, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImPool.22 = type { %struct.ImVector.23, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, i32, i32, i32, [4 x i8], %struct.ImVector, %struct.ImVector.26, %struct.ImVector.26, 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.26 }
%struct.ImFont = type <{ %struct.ImVector.20, float, float, %struct.ImVector, %struct.ImVector.27, 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.27 = type { i32, i32, ptr }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImGuiDockContext = type <{ %struct.ImGuiStorage, %struct.ImVector.28, %struct.ImVector.29, i8, [7 x i8] }>
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.26 }
%struct.ImChunkStream.31 = type { %struct.ImVector.26 }
%struct.ImVector.32 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.26 }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.12, i32, [4 x i8] }>
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiStackTool = type { i32, i32, i32, %struct.ImVector.33, i8, float }
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImGuiWindow = type { ptr, ptr, i32, i32, i32, %struct.ImGuiWindowClass, ptr, i32, %struct.ImVec2, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, i16, i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.11, %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.36, float, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], [2 x %struct.ImVec2], i32, i32, i32, i8, i8, i16, %struct.ImGuiWindowDockStyle, ptr, ptr, i32, i32, %struct.ImRect }
%struct.ImGuiWindowTempData = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, %struct.ImVec2, i32, i16, i16, i8, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.4, ptr, ptr, i32, i32, i32, float, float, %struct.ImVector.20, %struct.ImVector.20 }
%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.36 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.37, %struct.ImVector, %struct.ImVector.38, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.39, %struct.ImVector.40, %struct.ImVector.2, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImVector.40 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.21 }
%struct.ImGuiWindowDockStyle = type { [6 x i32] }
%struct.ImGuiTable = type <{ i32, i32, ptr, ptr, %struct.ImSpan, %struct.ImSpan.41, %struct.ImSpan.42, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i16, i16, 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, %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.43, %struct.ImGuiTableColumnSortSpecs, [4 x i8], %struct.ImVector.44, %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, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [5 x i8] }>
%struct.ImSpan = type { ptr, ptr }
%struct.ImSpan.41 = type { ptr, ptr }
%struct.ImSpan.42 = type { ptr, ptr }
%struct.ImGuiTableInstanceData = type { i32, float, float, float, i32, i32 }
%struct.ImVector.43 = type { i32, i32, ptr }
%struct.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.44 = 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.49, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, ptr }
%struct.ImVector.49 = type { i32, i32, ptr }
%struct.ImDrawDataBuilder = type { [2 x ptr], %struct.ImVector.49 }
%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.47, %struct.ImVector.48, [64 x %struct.ImVec4], ptr, i32, i32, i32, [4 x i8] }>
%struct.ImVector.47 = type { i32, i32, ptr }
%struct.ImVector.48 = type { i32, i32, ptr }
%"struct.ImGuiStorage::ImGuiStoragePair" = type { i32, %union.anon.34 }
%union.anon.34 = 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, [3 x i8] }>
%struct.ImGuiDockNodeSettings = type { i32, i32, i32, i32, i8, i8, i32, %struct.ImVec2ih, %struct.ImVec2ih, %struct.ImVec2ih }
%struct.ImGuiKeyRoutingData = type { i16, i16, 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, [4 x i8], ptr, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i16, i8, [5 x i8] }>

@GImGui = external dso_local global ptr, align 8
@.str.16 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [42 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.425 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [100 x i8], align 16
@.str.428 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [9 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 [9 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [33 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE9viewports = external hidden global %struct.ImVector.15, align 8
@_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports = external hidden global i64, align 8
@__dso_handle = external hidden global i8
@.str.465 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only = external hidden global i8, align 1
@.str.481 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.494 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.520 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.529 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.530 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.531 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.532 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.533 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.535 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.536 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.537 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.538 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.539 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.540 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.541 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.542 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.543 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.544 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.545 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.546 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.547 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.548 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.549 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.550 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.551 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.552 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.553 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.554 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.555 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.556 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.557 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.558 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.560 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.561 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.562 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.563 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.564 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.565 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.566 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.567 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.568 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.569 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.570 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.571 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.572 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.573 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.574 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.575 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.576 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.577 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.578 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.579 = 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 nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #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 nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #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 nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #5 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #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 void @_ZN5ImGui15GetKeyChordNameEiPci(i32 noundef, ptr noundef, 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: 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 nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #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(33)) #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 i8, align 1
  %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 i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca ptr, align 8
  %39 = alloca i8, align 1
  %40 = alloca i32, align 4
  %41 = alloca i8, align 1
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca i32, align 4
  %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 i32, align 4
  %61 = alloca ptr, align 8
  %62 = alloca i32, align 4
  %63 = alloca ptr, align 8
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca ptr, align 8
  %72 = alloca %struct.ImVec2, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i16, align 2
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca %struct.ImVec2, align 4
  %83 = alloca i32, align 4
  %84 = alloca ptr, align 8
  %85 = alloca %struct.ImVec2, align 4
  %86 = alloca i32, align 4
  %87 = alloca ptr, align 8
  %88 = alloca i16, align 2
  %89 = alloca [64 x i8], align 16
  %90 = alloca ptr, align 8
  %91 = alloca i32, align 4
  %92 = alloca ptr, align 8
  %93 = alloca ptr, align 8
  %94 = alloca %struct.ImRect, align 4
  %95 = alloca [32 x i8], align 16
  %96 = alloca float, align 4
  %97 = alloca %struct.ImVec2, align 4
  %98 = alloca %struct.ImVec2, align 4
  %99 = alloca i32, align 4
  %100 = alloca ptr, align 8
  %101 = alloca ptr, align 8
  %102 = alloca i32, align 4
  %103 = alloca %struct.ImRect, align 4
  %104 = alloca i32, align 4
  %105 = alloca float, align 4
  %106 = alloca %struct.ImRect, align 4
  %107 = alloca [64 x i8], align 16
  %108 = alloca ptr, align 8
  %109 = alloca ptr, align 8
  %110 = alloca ptr, align 8
  %111 = alloca i32, align 4
  %112 = alloca %struct.ImVec2, align 4
  %113 = alloca %struct.ImVec2, align 4
  %114 = alloca %struct.ImVec2, align 4
  %115 = alloca %struct.ImVec2, align 4
  %116 = alloca %struct.ImVec2, align 4
  %117 = alloca %struct.ImVec2, align 4
  %118 = alloca %struct.ImVec2, align 4
  %119 = alloca %struct.ImVec2, align 4
  %120 = alloca %struct.ImVec2, align 4
  %121 = alloca %struct.ImVec2, align 4
  %122 = alloca %struct.ImVec2, align 4
  %123 = alloca %struct.ImVec2, align 4
  %124 = alloca %struct.ImVec2, align 4
  %125 = alloca %struct.ImVec2, align 4
  %126 = alloca %struct.ImVec2, align 4
  %127 = 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
  %128 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %128, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #10
  %129 = load ptr, ptr %3, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.ImGuiContext, ptr %129, i32 0, i32 2
  store ptr %130, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #10
  %131 = load ptr, ptr %3, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.ImGuiContext, ptr %131, i32 0, i32 248
  store ptr %132, ptr %5, align 8, !tbaa !5
  %133 = load ptr, ptr %5, align 8, !tbaa !5
  %134 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %133, i32 0, i32 0
  %135 = load i8, ptr %134, align 4, !tbaa !9, !range !13, !noundef !14
  %136 = trunc i8 %135 to i1
  br i1 %136, label %137, label %140

137:                                              ; preds = %1
  %138 = load ptr, ptr %5, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %138, i32 0, i32 0
  call void @_ZN5ImGui18ShowDebugLogWindowEPb(ptr noundef %139)
  br label %140

140:                                              ; preds = %137, %1
  %141 = load ptr, ptr %5, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %141, i32 0, i32 1
  %143 = load i8, ptr %142, align 1, !tbaa !15, !range !13, !noundef !14
  %144 = trunc i8 %143 to i1
  br i1 %144, label %145, label %148

145:                                              ; preds = %140
  %146 = load ptr, ptr %5, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %146, i32 0, i32 1
  call void @_ZN5ImGui19ShowStackToolWindowEPb(ptr noundef %147)
  br label %148

148:                                              ; preds = %145, %140
  %149 = load ptr, ptr %2, align 8, !tbaa !5
  %150 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.403, ptr noundef %149, i32 noundef 0)
  br i1 %150, label %151, label %157

151:                                              ; preds = %148
  %152 = call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %153 = getelementptr inbounds %struct.ImGuiWindow, ptr %152, i32 0, i32 50
  %154 = load i16, ptr %153, align 8, !tbaa !16
  %155 = sext i16 %154 to i32
  %156 = icmp sgt i32 %155, 1
  br i1 %156, label %157, label %158

157:                                              ; preds = %151, %148
  call void @_ZN5ImGui3EndEv()
  store i32 1, ptr %6, align 4
  br label %2372

158:                                              ; preds = %151
  %159 = call noundef ptr @_ZN5ImGui10GetVersionEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.404, ptr noundef %159)
  %160 = load ptr, ptr %4, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.ImGuiIO, ptr %160, i32 0, i32 56
  %162 = load float, ptr %161, align 8, !tbaa !46
  %163 = fdiv float 1.000000e+03, %162
  %164 = fpext float %163 to double
  %165 = load ptr, ptr %4, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.ImGuiIO, ptr %165, i32 0, i32 56
  %167 = load float, ptr %166, align 8, !tbaa !46
  %168 = fpext float %167 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.405, double noundef %164, double noundef %168)
  %169 = load ptr, ptr %4, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.ImGuiIO, ptr %169, i32 0, i32 57
  %171 = load i32, ptr %170, align 4, !tbaa !49
  %172 = load ptr, ptr %4, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.ImGuiIO, ptr %172, i32 0, i32 58
  %174 = load i32, ptr %173, align 8, !tbaa !50
  %175 = load ptr, ptr %4, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.ImGuiIO, ptr %175, i32 0, i32 58
  %177 = load i32, ptr %176, align 8, !tbaa !50
  %178 = sdiv i32 %177, 3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.406, i32 noundef %171, i32 noundef %174, i32 noundef %178)
  %179 = load ptr, ptr %4, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.ImGuiIO, ptr %179, i32 0, i32 59
  %181 = load i32, ptr %180, align 4, !tbaa !51
  %182 = load ptr, ptr %4, align 8, !tbaa !5
  %183 = getelementptr inbounds %struct.ImGuiIO, ptr %182, i32 0, i32 61
  %184 = load i32, ptr %183, align 4, !tbaa !52
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.407, i32 noundef %181, i32 noundef %184)
  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)
  %185 = load ptr, ptr %5, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %185, i32 0, i32 9
  %187 = load i32, ptr %186, align 4, !tbaa !53
  %188 = icmp slt i32 %187, 0
  br i1 %188, label %189, label %192

189:                                              ; preds = %158
  %190 = load ptr, ptr %5, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %190, i32 0, i32 9
  store i32 4, ptr %191, align 4, !tbaa !53
  br label %192

192:                                              ; preds = %189, %158
  %193 = load ptr, ptr %5, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %193, i32 0, i32 10
  %195 = load i32, ptr %194, align 4, !tbaa !54
  %196 = icmp slt i32 %195, 0
  br i1 %196, label %197, label %200

197:                                              ; preds = %192
  %198 = load ptr, ptr %5, align 8, !tbaa !5
  %199 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %198, i32 0, i32 10
  store i32 2, ptr %199, align 4, !tbaa !54
  br label %200

200:                                              ; preds = %197, %192
  %201 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.425)
  br i1 %201, label %202, label %534

202:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #10
  %203 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.426)
  %204 = zext i1 %203 to i8
  store i8 %204, ptr %9, align 1, !tbaa !55
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.427)
  %205 = load i8, ptr %9, align 1, !tbaa !55, !range !13, !noundef !14
  %206 = trunc i8 %205 to i1
  br i1 %206, label %207, label %214

207:                                              ; preds = %202
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %208 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.428, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 100, i32 noundef 0, ptr noundef null, ptr noundef null)
  %209 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !56
  %210 = sext i8 %209 to i32
  %211 = icmp ne i32 %210, 0
  br i1 %211, label %212, label %213

212:                                              ; preds = %207
  call void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf)
  br label %213

213:                                              ; preds = %212, %207
  call void @_ZN5ImGui7TreePopEv()
  br label %214

214:                                              ; preds = %213, %202
  %215 = load ptr, ptr %3, align 8, !tbaa !5
  %216 = getelementptr inbounds %struct.ImGuiContext, ptr %215, i32 0, i32 245
  %217 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.429, ptr noundef %216)
  br i1 %217, label %218, label %224

218:                                              ; preds = %214
  %219 = load ptr, ptr %3, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.ImGuiContext, ptr %219, i32 0, i32 245
  %221 = load i8, ptr %220, align 1, !tbaa !57, !range !13, !noundef !14
  %222 = trunc i8 %221 to i1
  br i1 %222, label %223, label %224

223:                                              ; preds = %218
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %224

224:                                              ; preds = %223, %218, %214
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.430)
  %225 = load ptr, ptr %5, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %225, i32 0, i32 0
  %227 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.431, ptr noundef %226)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.432)
  %228 = load ptr, ptr %5, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %228, i32 0, i32 1
  %230 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.433, ptr noundef %229)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.434)
  %231 = load ptr, ptr %5, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %231, i32 0, i32 3
  %233 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.435, ptr noundef %232)
  %234 = load ptr, ptr %5, align 8, !tbaa !5
  %235 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %234, i32 0, i32 2
  %236 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.436, ptr noundef %235)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %237 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %238 = fmul float %237, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %238)
  %239 = load ptr, ptr %5, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %239, i32 0, i32 9
  %241 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 0
  %242 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.437, ptr noundef %240, ptr noundef %241, i32 noundef 8, i32 noundef 8)
  %243 = zext i1 %242 to i32
  %244 = load ptr, ptr %5, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %244, i32 0, i32 2
  %246 = load i8, ptr %245, align 2, !tbaa !113, !range !13, !noundef !14
  %247 = trunc i8 %246 to i1
  %248 = zext i1 %247 to i32
  %249 = or i32 %248, %243
  %250 = icmp ne i32 %249, 0
  %251 = zext i1 %250 to i8
  store i8 %251, ptr %245, align 2, !tbaa !113
  %252 = load ptr, ptr %5, align 8, !tbaa !5
  %253 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %252, i32 0, i32 2
  %254 = load i8, ptr %253, align 2, !tbaa !113, !range !13, !noundef !14
  %255 = trunc i8 %254 to i1
  br i1 %255, label %256, label %309

256:                                              ; preds = %224
  %257 = load ptr, ptr %3, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct.ImGuiContext, ptr %257, i32 0, i32 99
  %259 = load ptr, ptr %258, align 8, !tbaa !114
  %260 = icmp ne ptr %259, null
  br i1 %260, label %261, label %309

261:                                              ; preds = %256
  %262 = load ptr, ptr %3, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.ImGuiContext, ptr %262, i32 0, i32 99
  %264 = load ptr, ptr %263, align 8, !tbaa !114
  %265 = getelementptr inbounds %struct.ImGuiWindow, ptr %264, i32 0, i32 1
  %266 = load ptr, ptr %265, align 8, !tbaa !115
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.438, ptr noundef %266)
  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 !116
  br label %267

267:                                              ; preds = %305, %261
  %268 = load i32, ptr %10, align 4, !tbaa !116
  %269 = icmp slt i32 %268, 8
  br i1 %269, label %271, label %270

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

271:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #10
  %272 = load ptr, ptr %3, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.ImGuiContext, ptr %272, i32 0, i32 99
  %274 = load ptr, ptr %273, align 8, !tbaa !114
  %275 = load i32, ptr %10, align 4, !tbaa !116
  %276 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %274, i32 noundef %275)
  %277 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %11, i32 0, i32 0
  %278 = extractvalue { <2 x float>, <2 x float> } %276, 0
  store <2 x float> %278, ptr %277, align 4
  %279 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %11, i32 0, i32 1
  %280 = extractvalue { <2 x float>, <2 x float> } %276, 1
  store <2 x float> %280, ptr %279, align 4
  %281 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 0
  %282 = getelementptr inbounds %struct.ImVec2, ptr %281, i32 0, i32 0
  %283 = load float, ptr %282, align 4, !tbaa !117
  %284 = fpext float %283 to double
  %285 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 0
  %286 = getelementptr inbounds %struct.ImVec2, ptr %285, i32 0, i32 1
  %287 = load float, ptr %286, align 4, !tbaa !118
  %288 = fpext float %287 to double
  %289 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 1
  %290 = getelementptr inbounds %struct.ImVec2, ptr %289, i32 0, i32 0
  %291 = load float, ptr %290, align 4, !tbaa !119
  %292 = fpext float %291 to double
  %293 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 1
  %294 = getelementptr inbounds %struct.ImVec2, ptr %293, i32 0, i32 1
  %295 = load float, ptr %294, align 4, !tbaa !120
  %296 = fpext float %295 to double
  %297 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %298 = fpext float %297 to double
  %299 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %300 = fpext float %299 to double
  %301 = load i32, ptr %10, align 4, !tbaa !116
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 %302
  %304 = load ptr, ptr %303, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.439, double noundef %284, double noundef %288, double noundef %292, double noundef %296, double noundef %298, double noundef %300, ptr noundef %304)
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #10
  br label %305

305:                                              ; preds = %271
  %306 = load i32, ptr %10, align 4, !tbaa !116
  %307 = add nsw i32 %306, 1
  store i32 %307, ptr %10, align 4, !tbaa !116
  br label %267, !llvm.loop !121

308:                                              ; preds = %270
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %309

309:                                              ; preds = %308, %256, %224
  %310 = load ptr, ptr %5, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %310, i32 0, i32 4
  %312 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.440, ptr noundef %311)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %313 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %314 = fmul float %313, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %314)
  %315 = load ptr, ptr %5, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %315, i32 0, i32 10
  %317 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 0
  %318 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.441, ptr noundef %316, ptr noundef %317, i32 noundef 13, i32 noundef 13)
  %319 = zext i1 %318 to i32
  %320 = load ptr, ptr %5, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %320, i32 0, i32 4
  %322 = load i8, ptr %321, align 4, !tbaa !123, !range !13, !noundef !14
  %323 = trunc i8 %322 to i1
  %324 = zext i1 %323 to i32
  %325 = or i32 %324, %319
  %326 = icmp ne i32 %325, 0
  %327 = zext i1 %326 to i8
  store i8 %327, ptr %321, align 4, !tbaa !123
  %328 = load ptr, ptr %5, align 8, !tbaa !5
  %329 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %328, i32 0, i32 4
  %330 = load i8, ptr %329, align 4, !tbaa !123, !range !13, !noundef !14
  %331 = trunc i8 %330 to i1
  br i1 %331, label %332, label %530

332:                                              ; preds = %309
  %333 = load ptr, ptr %3, align 8, !tbaa !5
  %334 = getelementptr inbounds %struct.ImGuiContext, ptr %333, i32 0, i32 99
  %335 = load ptr, ptr %334, align 8, !tbaa !114
  %336 = icmp ne ptr %335, null
  br i1 %336, label %337, label %530

337:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  store i32 0, ptr %12, align 4, !tbaa !116
  br label %338

338:                                              ; preds = %526, %337
  %339 = load i32, ptr %12, align 4, !tbaa !116
  %340 = load ptr, ptr %3, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.ImGuiContext, ptr %340, i32 0, i32 172
  %342 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %341)
  %343 = icmp slt i32 %339, %342
  br i1 %343, label %345, label %344

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

345:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #10
  %346 = load ptr, ptr %3, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.ImGuiContext, ptr %346, i32 0, i32 172
  %348 = load i32, ptr %12, align 4, !tbaa !116
  %349 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %347, i32 noundef %348)
  store ptr %349, ptr %13, align 8, !tbaa !5
  %350 = load ptr, ptr %13, align 8, !tbaa !5
  %351 = icmp eq ptr %350, null
  br i1 %351, label %377, label %352

352:                                              ; preds = %345
  %353 = load ptr, ptr %13, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.ImGuiTable, ptr %353, i32 0, i32 12
  %355 = load i32, ptr %354, align 8, !tbaa !124
  %356 = load ptr, ptr %3, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.ImGuiContext, ptr %356, i32 0, i32 12
  %358 = load i32, ptr %357, align 8, !tbaa !134
  %359 = sub nsw i32 %358, 1
  %360 = icmp slt i32 %355, %359
  br i1 %360, label %377, label %361

361:                                              ; preds = %352
  %362 = load ptr, ptr %13, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.ImGuiTable, ptr %362, i32 0, i32 53
  %364 = load ptr, ptr %363, align 8, !tbaa !135
  %365 = load ptr, ptr %3, align 8, !tbaa !5
  %366 = getelementptr inbounds %struct.ImGuiContext, ptr %365, i32 0, i32 99
  %367 = load ptr, ptr %366, align 8, !tbaa !114
  %368 = icmp ne ptr %364, %367
  br i1 %368, label %369, label %378

369:                                              ; preds = %361
  %370 = load ptr, ptr %13, align 8, !tbaa !5
  %371 = getelementptr inbounds %struct.ImGuiTable, ptr %370, i32 0, i32 54
  %372 = load ptr, ptr %371, align 8, !tbaa !136
  %373 = load ptr, ptr %3, align 8, !tbaa !5
  %374 = getelementptr inbounds %struct.ImGuiContext, ptr %373, i32 0, i32 99
  %375 = load ptr, ptr %374, align 8, !tbaa !114
  %376 = icmp ne ptr %372, %375
  br i1 %376, label %377, label %378

377:                                              ; preds = %369, %352, %345
  store i32 7, ptr %6, align 4
  br label %523

378:                                              ; preds = %369, %361
  %379 = load ptr, ptr %13, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.ImGuiTable, ptr %379, i32 0, i32 0
  %381 = load i32, ptr %380, align 8, !tbaa !137
  %382 = load ptr, ptr %13, align 8, !tbaa !5
  %383 = getelementptr inbounds %struct.ImGuiTable, ptr %382, i32 0, i32 13
  %384 = load i32, ptr %383, align 4, !tbaa !138
  %385 = load ptr, ptr %13, align 8, !tbaa !5
  %386 = getelementptr inbounds %struct.ImGuiTable, ptr %385, i32 0, i32 53
  %387 = load ptr, ptr %386, align 8, !tbaa !135
  %388 = getelementptr inbounds %struct.ImGuiWindow, ptr %387, i32 0, i32 1
  %389 = load ptr, ptr %388, align 8, !tbaa !115
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.442, i32 noundef %381, i32 noundef %384, ptr noundef %389)
  %390 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %390, label %391, label %401

391:                                              ; preds = %378
  %392 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #10
  %393 = load ptr, ptr %13, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.ImGuiTable, ptr %393, i32 0, i32 44
  %395 = getelementptr inbounds %struct.ImRect, ptr %394, 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)
  %396 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %395, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %396, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %397 = load ptr, ptr %13, align 8, !tbaa !5
  %398 = getelementptr inbounds %struct.ImGuiTable, ptr %397, i32 0, i32 44
  %399 = getelementptr inbounds %struct.ImRect, ptr %398, 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)
  %400 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %399, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %400, ptr %16, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %392, 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 %401

401:                                              ; preds = %391, %378
  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 !116
  br label %402

402:                                              ; preds = %519, %401
  %403 = load i32, ptr %19, align 4, !tbaa !116
  %404 = icmp slt i32 %403, 13
  br i1 %404, label %406, label %405

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

406:                                              ; preds = %402
  %407 = load i32, ptr %19, align 4, !tbaa !116
  %408 = icmp sge i32 %407, 6
  br i1 %408, label %409, label %474

409:                                              ; preds = %406
  %410 = load i32, ptr %19, align 4, !tbaa !116
  %411 = icmp ne i32 %410, 6
  br i1 %411, label %412, label %416

412:                                              ; preds = %409
  %413 = load i32, ptr %19, align 4, !tbaa !116
  %414 = icmp ne i32 %413, 8
  br i1 %414, label %415, label %416

415:                                              ; preds = %412
  br label %519

416:                                              ; preds = %412, %409
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  store i32 0, ptr %20, align 4, !tbaa !116
  br label %417

417:                                              ; preds = %470, %416
  %418 = load i32, ptr %20, align 4, !tbaa !116
  %419 = load ptr, ptr %13, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.ImGuiTable, ptr %419, i32 0, i32 13
  %421 = load i32, ptr %420, align 4, !tbaa !138
  %422 = icmp slt i32 %418, %421
  br i1 %422, label %424, label %423

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

424:                                              ; preds = %417
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #10
  %425 = load ptr, ptr %13, align 8, !tbaa !5
  %426 = load i32, ptr %19, align 4, !tbaa !116
  %427 = load i32, ptr %20, align 4, !tbaa !116
  %428 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %425, i32 noundef %426, i32 noundef %427)
  %429 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %21, i32 0, i32 0
  %430 = extractvalue { <2 x float>, <2 x float> } %428, 0
  store <2 x float> %430, ptr %429, align 4
  %431 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %21, i32 0, i32 1
  %432 = extractvalue { <2 x float>, <2 x float> } %428, 1
  store <2 x float> %432, ptr %431, align 4
  %433 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %434 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  %435 = getelementptr inbounds %struct.ImVec2, ptr %434, i32 0, i32 0
  %436 = load float, ptr %435, align 4, !tbaa !117
  %437 = fpext float %436 to double
  %438 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  %439 = getelementptr inbounds %struct.ImVec2, ptr %438, i32 0, i32 1
  %440 = load float, ptr %439, align 4, !tbaa !118
  %441 = fpext float %440 to double
  %442 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  %443 = getelementptr inbounds %struct.ImVec2, ptr %442, i32 0, i32 0
  %444 = load float, ptr %443, align 4, !tbaa !119
  %445 = fpext float %444 to double
  %446 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  %447 = getelementptr inbounds %struct.ImVec2, ptr %446, i32 0, i32 1
  %448 = load float, ptr %447, align 4, !tbaa !120
  %449 = fpext float %448 to double
  %450 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %21)
  %451 = fpext float %450 to double
  %452 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %21)
  %453 = fpext float %452 to double
  %454 = load i32, ptr %20, align 4, !tbaa !116
  %455 = load i32, ptr %19, align 4, !tbaa !116
  %456 = sext i32 %455 to i64
  %457 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 %456
  %458 = load ptr, ptr %457, align 8, !tbaa !5
  %459 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %433, i64 noundef 128, ptr noundef @.str.443, double noundef %437, double noundef %441, double noundef %445, double noundef %449, double noundef %451, double noundef %453, i32 noundef %454, ptr noundef %458)
  %460 = 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)
  %461 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %460, 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
  %462 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %462, label %463, label %469

463:                                              ; preds = %424
  %464 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  %465 = 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)
  %466 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %465, ptr noundef nonnull align 4 dereferenceable(8) %24)
  store <2 x float> %466, ptr %23, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  %467 = 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)
  %468 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %467, ptr noundef nonnull align 4 dereferenceable(8) %26)
  store <2 x float> %468, ptr %25, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %464, 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 %469

469:                                              ; preds = %463, %424
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #10
  br label %470

470:                                              ; preds = %469
  %471 = load i32, ptr %20, align 4, !tbaa !116
  %472 = add nsw i32 %471, 1
  store i32 %472, ptr %20, align 4, !tbaa !116
  br label %417, !llvm.loop !139

473:                                              ; preds = %423
  br label %518

474:                                              ; preds = %406
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #10
  %475 = load ptr, ptr %13, align 8, !tbaa !5
  %476 = load i32, ptr %19, align 4, !tbaa !116
  %477 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %475, i32 noundef %476, i32 noundef -1)
  %478 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 0
  %479 = extractvalue { <2 x float>, <2 x float> } %477, 0
  store <2 x float> %479, ptr %478, align 4
  %480 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 1
  %481 = extractvalue { <2 x float>, <2 x float> } %477, 1
  store <2 x float> %481, ptr %480, align 4
  %482 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %483 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %484 = getelementptr inbounds %struct.ImVec2, ptr %483, i32 0, i32 0
  %485 = load float, ptr %484, align 4, !tbaa !117
  %486 = fpext float %485 to double
  %487 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %488 = getelementptr inbounds %struct.ImVec2, ptr %487, i32 0, i32 1
  %489 = load float, ptr %488, align 4, !tbaa !118
  %490 = fpext float %489 to double
  %491 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %492 = getelementptr inbounds %struct.ImVec2, ptr %491, i32 0, i32 0
  %493 = load float, ptr %492, align 4, !tbaa !119
  %494 = fpext float %493 to double
  %495 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %496 = getelementptr inbounds %struct.ImVec2, ptr %495, i32 0, i32 1
  %497 = load float, ptr %496, align 4, !tbaa !120
  %498 = fpext float %497 to double
  %499 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %500 = fpext float %499 to double
  %501 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %502 = fpext float %501 to double
  %503 = load i32, ptr %19, align 4, !tbaa !116
  %504 = sext i32 %503 to i64
  %505 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 %504
  %506 = load ptr, ptr %505, align 8, !tbaa !5
  %507 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %482, i64 noundef 128, ptr noundef @.str.439, double noundef %486, double noundef %490, double noundef %494, double noundef %498, double noundef %500, double noundef %502, ptr noundef %506)
  %508 = 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)
  %509 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %508, 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
  %510 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %510, label %511, label %517

511:                                              ; preds = %474
  %512 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  %513 = 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)
  %514 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %513, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %514, ptr %29, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %515 = 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)
  %516 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %515, ptr noundef nonnull align 4 dereferenceable(8) %32)
  store <2 x float> %516, ptr %31, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %512, 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 %517

517:                                              ; preds = %511, %474
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #10
  br label %518

518:                                              ; preds = %517, %473
  br label %519

519:                                              ; preds = %518, %415
  %520 = load i32, ptr %19, align 4, !tbaa !116
  %521 = add nsw i32 %520, 1
  store i32 %521, ptr %19, align 4, !tbaa !116
  br label %402, !llvm.loop !140

522:                                              ; preds = %405
  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 %523

523:                                              ; preds = %522, %377
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #10
  %524 = load i32, ptr %6, align 4
  switch i32 %524, label %2380 [
    i32 0, label %525
    i32 7, label %526
  ]

525:                                              ; preds = %523
  br label %526

526:                                              ; preds = %525, %523
  %527 = load i32, ptr %12, align 4, !tbaa !116
  %528 = add nsw i32 %527, 1
  store i32 %528, ptr %12, align 4, !tbaa !116
  br label %338, !llvm.loop !141

529:                                              ; preds = %344
  br label %530

530:                                              ; preds = %529, %332, %309
  %531 = load ptr, ptr %4, align 8, !tbaa !5
  %532 = getelementptr inbounds %struct.ImGuiIO, ptr %531, i32 0, i32 36
  %533 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.444, ptr noundef %532)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.445)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #10
  br label %534

534:                                              ; preds = %530, %200
  %535 = load ptr, ptr %3, align 8, !tbaa !5
  %536 = getelementptr inbounds %struct.ImGuiContext, ptr %535, i32 0, i32 26
  %537 = getelementptr inbounds %struct.ImVector.4, ptr %536, i32 0, i32 0
  %538 = load i32, ptr %537, align 8, !tbaa !142
  %539 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.446, ptr noundef @.str.447, i32 noundef %538)
  br i1 %539, label %540, label %596

540:                                              ; preds = %534
  %541 = load ptr, ptr %3, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.ImGuiContext, ptr %541, i32 0, i32 26
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %542, ptr noundef @.str.448)
  %543 = load ptr, ptr %3, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.ImGuiContext, ptr %543, i32 0, i32 27
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %544, ptr noundef @.str.449)
  %545 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.450)
  br i1 %545, label %546, label %595

546:                                              ; preds = %540
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  %547 = load ptr, ptr %3, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.ImGuiContext, ptr %547, i32 0, i32 28
  store ptr %548, ptr %33, align 8, !tbaa !5
  %549 = load ptr, ptr %33, align 8, !tbaa !5
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %549, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  store i32 0, ptr %34, align 4, !tbaa !116
  br label %550

550:                                              ; preds = %578, %546
  %551 = load i32, ptr %34, align 4, !tbaa !116
  %552 = load ptr, ptr %3, align 8, !tbaa !5
  %553 = getelementptr inbounds %struct.ImGuiContext, ptr %552, i32 0, i32 26
  %554 = getelementptr inbounds %struct.ImVector.4, ptr %553, i32 0, i32 0
  %555 = load i32, ptr %554, align 8, !tbaa !142
  %556 = icmp slt i32 %551, %555
  br i1 %556, label %558, label %557

557:                                              ; preds = %550
  store i32 14, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %581

558:                                              ; preds = %550
  %559 = load ptr, ptr %3, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.ImGuiContext, ptr %559, i32 0, i32 26
  %561 = load i32, ptr %34, align 4, !tbaa !116
  %562 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %560, i32 noundef %561)
  %563 = load ptr, ptr %562, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.ImGuiWindow, ptr %563, i32 0, i32 79
  %565 = load i32, ptr %564, align 8, !tbaa !143
  %566 = add nsw i32 %565, 1
  %567 = load ptr, ptr %3, align 8, !tbaa !5
  %568 = getelementptr inbounds %struct.ImGuiContext, ptr %567, i32 0, i32 12
  %569 = load i32, ptr %568, align 8, !tbaa !134
  %570 = icmp sge i32 %566, %569
  br i1 %570, label %571, label %577

571:                                              ; preds = %558
  %572 = load ptr, ptr %33, align 8, !tbaa !5
  %573 = load ptr, ptr %3, align 8, !tbaa !5
  %574 = getelementptr inbounds %struct.ImGuiContext, ptr %573, i32 0, i32 26
  %575 = load i32, ptr %34, align 4, !tbaa !116
  %576 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %574, i32 noundef %575)
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %572, ptr noundef nonnull align 8 dereferenceable(8) %576)
  br label %577

577:                                              ; preds = %571, %558
  br label %578

578:                                              ; preds = %577
  %579 = load i32, ptr %34, align 4, !tbaa !116
  %580 = add nsw i32 %579, 1
  store i32 %580, ptr %34, align 4, !tbaa !116
  br label %550, !llvm.loop !144

581:                                              ; preds = %557
  %582 = load ptr, ptr %33, align 8, !tbaa !5
  %583 = getelementptr inbounds %struct.ImVector.4, ptr %582, i32 0, i32 2
  %584 = load ptr, ptr %583, align 8, !tbaa !145
  %585 = load ptr, ptr %33, align 8, !tbaa !5
  %586 = getelementptr inbounds %struct.ImVector.4, ptr %585, i32 0, i32 0
  %587 = load i32, ptr %586, align 8, !tbaa !146
  %588 = sext i32 %587 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %584, i64 noundef %588, i64 noundef 8, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %589 = load ptr, ptr %33, align 8, !tbaa !5
  %590 = getelementptr inbounds %struct.ImVector.4, ptr %589, i32 0, i32 2
  %591 = load ptr, ptr %590, align 8, !tbaa !145
  %592 = load ptr, ptr %33, align 8, !tbaa !5
  %593 = getelementptr inbounds %struct.ImVector.4, ptr %592, i32 0, i32 0
  %594 = load i32, ptr %593, align 8, !tbaa !146
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %591, i32 noundef %594, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  br label %595

595:                                              ; preds = %581, %540
  call void @_ZN5ImGui7TreePopEv()
  br label %596

596:                                              ; preds = %595, %534
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  store i32 0, ptr %35, align 4, !tbaa !116
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  store i32 0, ptr %36, align 4, !tbaa !116
  br label %597

597:                                              ; preds = %617, %596
  %598 = load i32, ptr %36, align 4, !tbaa !116
  %599 = load ptr, ptr %3, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.ImGuiContext, ptr %599, i32 0, i32 89
  %601 = getelementptr inbounds %struct.ImVector.15, ptr %600, i32 0, i32 0
  %602 = load i32, ptr %601, align 8, !tbaa !147
  %603 = icmp slt i32 %598, %602
  br i1 %603, label %605, label %604

604:                                              ; preds = %597
  store i32 17, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %620

605:                                              ; preds = %597
  %606 = load ptr, ptr %3, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.ImGuiContext, ptr %606, i32 0, i32 89
  %608 = load i32, ptr %36, align 4, !tbaa !116
  %609 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %607, i32 noundef %608)
  %610 = load ptr, ptr %609, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.ImGuiViewportP, ptr %610, i32 0, i32 13
  %612 = getelementptr inbounds %struct.ImDrawData, ptr %611, i32 0, i32 4
  %613 = getelementptr inbounds %struct.ImVector.49, ptr %612, i32 0, i32 0
  %614 = load i32, ptr %613, align 8, !tbaa !148
  %615 = load i32, ptr %35, align 4, !tbaa !116
  %616 = add nsw i32 %615, %614
  store i32 %616, ptr %35, align 4, !tbaa !116
  br label %617

617:                                              ; preds = %605
  %618 = load i32, ptr %36, align 4, !tbaa !116
  %619 = add nsw i32 %618, 1
  store i32 %619, ptr %36, align 4, !tbaa !116
  br label %597, !llvm.loop !154

620:                                              ; preds = %604
  %621 = load i32, ptr %35, align 4, !tbaa !116
  %622 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.451, ptr noundef @.str.452, i32 noundef %621)
  br i1 %622, label %623, label %679

623:                                              ; preds = %620
  %624 = load ptr, ptr %5, align 8, !tbaa !5
  %625 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %624, i32 0, i32 5
  %626 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.453, ptr noundef %625)
  %627 = load ptr, ptr %5, align 8, !tbaa !5
  %628 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %627, i32 0, i32 6
  %629 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.454, ptr noundef %628)
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  store i32 0, ptr %37, align 4, !tbaa !116
  br label %630

630:                                              ; preds = %675, %623
  %631 = load i32, ptr %37, align 4, !tbaa !116
  %632 = load ptr, ptr %3, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.ImGuiContext, ptr %632, i32 0, i32 89
  %634 = getelementptr inbounds %struct.ImVector.15, ptr %633, i32 0, i32 0
  %635 = load i32, ptr %634, align 8, !tbaa !147
  %636 = icmp slt i32 %631, %635
  br i1 %636, label %638, label %637

637:                                              ; preds = %630
  store i32 20, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %678

638:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #10
  %639 = load ptr, ptr %3, align 8, !tbaa !5
  %640 = getelementptr inbounds %struct.ImGuiContext, ptr %639, i32 0, i32 89
  %641 = load i32, ptr %37, align 4, !tbaa !116
  %642 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %640, i32 noundef %641)
  %643 = load ptr, ptr %642, align 8, !tbaa !5
  store ptr %643, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #10
  store i8 0, ptr %39, align 1, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  store i32 0, ptr %40, align 4, !tbaa !116
  br label %644

644:                                              ; preds = %671, %638
  %645 = load i32, ptr %40, align 4, !tbaa !116
  %646 = load ptr, ptr %38, align 8, !tbaa !5
  %647 = getelementptr inbounds %struct.ImGuiViewportP, ptr %646, i32 0, i32 13
  %648 = getelementptr inbounds %struct.ImDrawData, ptr %647, i32 0, i32 4
  %649 = getelementptr inbounds %struct.ImVector.49, ptr %648, i32 0, i32 0
  %650 = load i32, ptr %649, align 8, !tbaa !148
  %651 = icmp slt i32 %645, %650
  br i1 %651, label %653, label %652

652:                                              ; preds = %644
  store i32 23, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %674

653:                                              ; preds = %644
  %654 = load i8, ptr %39, align 1, !tbaa !55, !range !13, !noundef !14
  %655 = trunc i8 %654 to i1
  br i1 %655, label %663, label %656

656:                                              ; preds = %653
  %657 = load ptr, ptr %38, align 8, !tbaa !5
  %658 = getelementptr inbounds %struct.ImGuiViewportP, ptr %657, i32 0, i32 2
  %659 = load i32, ptr %658, align 8, !tbaa !155
  %660 = load ptr, ptr %38, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.ImGuiViewport, ptr %660, i32 0, i32 0
  %662 = load i32, ptr %661, align 8, !tbaa !156
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.455, i32 noundef %659, i32 noundef %662)
  br label %663

663:                                              ; preds = %656, %653
  store i8 1, ptr %39, align 1, !tbaa !55
  %664 = load ptr, ptr %38, align 8, !tbaa !5
  %665 = load ptr, ptr %38, align 8, !tbaa !5
  %666 = getelementptr inbounds %struct.ImGuiViewportP, ptr %665, i32 0, i32 13
  %667 = getelementptr inbounds %struct.ImDrawData, ptr %666, i32 0, i32 4
  %668 = load i32, ptr %40, align 4, !tbaa !116
  %669 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %667, i32 noundef %668)
  %670 = load ptr, ptr %669, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef %664, ptr noundef %670, ptr noundef @.str.456)
  br label %671

671:                                              ; preds = %663
  %672 = load i32, ptr %40, align 4, !tbaa !116
  %673 = add nsw i32 %672, 1
  store i32 %673, ptr %40, align 4, !tbaa !116
  br label %644, !llvm.loop !157

674:                                              ; preds = %652
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  br label %675

675:                                              ; preds = %674
  %676 = load i32, ptr %37, align 4, !tbaa !116
  %677 = add nsw i32 %676, 1
  store i32 %677, ptr %37, align 4, !tbaa !116
  br label %630, !llvm.loop !158

678:                                              ; preds = %637
  call void @_ZN5ImGui7TreePopEv()
  br label %679

679:                                              ; preds = %678, %620
  %680 = load ptr, ptr %3, align 8, !tbaa !5
  %681 = getelementptr inbounds %struct.ImGuiContext, ptr %680, i32 0, i32 89
  %682 = getelementptr inbounds %struct.ImVector.15, ptr %681, i32 0, i32 0
  %683 = load i32, ptr %682, align 8, !tbaa !147
  %684 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.457, ptr noundef @.str.458, i32 noundef %683)
  br i1 %684, label %685, label %949

685:                                              ; preds = %679
  %686 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %686)
  call void @_ZL25RenderViewportsThumbnailsv()
  %687 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %687)
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #10
  %688 = load ptr, ptr %3, align 8, !tbaa !5
  %689 = getelementptr inbounds %struct.ImGuiContext, ptr %688, i32 0, i32 3
  %690 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %689, i32 0, i32 23
  %691 = getelementptr inbounds %struct.ImVector.0, ptr %690, i32 0, i32 0
  %692 = load i32, ptr %691, align 8, !tbaa !159
  %693 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.459, ptr noundef @.str.460, i32 noundef %692)
  %694 = zext i1 %693 to i8
  store i8 %694, ptr %41, align 1, !tbaa !55
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.461)
  %695 = load i8, ptr %41, align 1, !tbaa !55, !range !13, !noundef !14
  %696 = trunc i8 %695 to i1
  br i1 %696, label %697, label %803

697:                                              ; preds = %685
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  store i32 0, ptr %42, align 4, !tbaa !116
  br label %698

698:                                              ; preds = %799, %697
  %699 = load i32, ptr %42, align 4, !tbaa !116
  %700 = load ptr, ptr %3, align 8, !tbaa !5
  %701 = getelementptr inbounds %struct.ImGuiContext, ptr %700, i32 0, i32 3
  %702 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %701, i32 0, i32 23
  %703 = getelementptr inbounds %struct.ImVector.0, ptr %702, i32 0, i32 0
  %704 = load i32, ptr %703, align 8, !tbaa !159
  %705 = icmp slt i32 %699, %704
  br i1 %705, label %707, label %706

706:                                              ; preds = %698
  store i32 26, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %802

707:                                              ; preds = %698
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #10
  %708 = load ptr, ptr %3, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct.ImGuiContext, ptr %708, i32 0, i32 3
  %710 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %709, i32 0, i32 23
  %711 = load i32, ptr %42, align 4, !tbaa !116
  %712 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI20ImGuiPlatformMonitorEixEi(ptr noundef nonnull align 8 dereferenceable(16) %710, i32 noundef %711)
  store ptr %712, ptr %43, align 8, !tbaa !5
  %713 = load i32, ptr %42, align 4, !tbaa !116
  %714 = load ptr, ptr %43, align 8, !tbaa !5
  %715 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %714, i32 0, i32 4
  %716 = load float, ptr %715, align 8, !tbaa !160
  %717 = fmul float %716, 1.000000e+02
  %718 = fpext float %717 to double
  %719 = load ptr, ptr %43, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %719, i32 0, i32 0
  %721 = getelementptr inbounds %struct.ImVec2, ptr %720, i32 0, i32 0
  %722 = load float, ptr %721, align 8, !tbaa !161
  %723 = fpext float %722 to double
  %724 = load ptr, ptr %43, align 8, !tbaa !5
  %725 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %724, i32 0, i32 0
  %726 = getelementptr inbounds %struct.ImVec2, ptr %725, i32 0, i32 1
  %727 = load float, ptr %726, align 4, !tbaa !162
  %728 = fpext float %727 to double
  %729 = load ptr, ptr %43, align 8, !tbaa !5
  %730 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %729, i32 0, i32 0
  %731 = getelementptr inbounds %struct.ImVec2, ptr %730, i32 0, i32 0
  %732 = load float, ptr %731, align 8, !tbaa !161
  %733 = load ptr, ptr %43, align 8, !tbaa !5
  %734 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %733, i32 0, i32 1
  %735 = getelementptr inbounds %struct.ImVec2, ptr %734, i32 0, i32 0
  %736 = load float, ptr %735, align 8, !tbaa !163
  %737 = fadd float %732, %736
  %738 = fpext float %737 to double
  %739 = load ptr, ptr %43, align 8, !tbaa !5
  %740 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %739, i32 0, i32 0
  %741 = getelementptr inbounds %struct.ImVec2, ptr %740, i32 0, i32 1
  %742 = load float, ptr %741, align 4, !tbaa !162
  %743 = load ptr, ptr %43, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %743, i32 0, i32 1
  %745 = getelementptr inbounds %struct.ImVec2, ptr %744, i32 0, i32 1
  %746 = load float, ptr %745, align 4, !tbaa !164
  %747 = fadd float %742, %746
  %748 = fpext float %747 to double
  %749 = load ptr, ptr %43, align 8, !tbaa !5
  %750 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %749, i32 0, i32 1
  %751 = getelementptr inbounds %struct.ImVec2, ptr %750, i32 0, i32 0
  %752 = load float, ptr %751, align 8, !tbaa !163
  %753 = fpext float %752 to double
  %754 = load ptr, ptr %43, align 8, !tbaa !5
  %755 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %754, i32 0, i32 1
  %756 = getelementptr inbounds %struct.ImVec2, ptr %755, i32 0, i32 1
  %757 = load float, ptr %756, align 4, !tbaa !164
  %758 = fpext float %757 to double
  %759 = load ptr, ptr %43, align 8, !tbaa !5
  %760 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %759, i32 0, i32 2
  %761 = getelementptr inbounds %struct.ImVec2, ptr %760, i32 0, i32 0
  %762 = load float, ptr %761, align 8, !tbaa !165
  %763 = fpext float %762 to double
  %764 = load ptr, ptr %43, align 8, !tbaa !5
  %765 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %764, i32 0, i32 2
  %766 = getelementptr inbounds %struct.ImVec2, ptr %765, i32 0, i32 1
  %767 = load float, ptr %766, align 4, !tbaa !166
  %768 = fpext float %767 to double
  %769 = load ptr, ptr %43, align 8, !tbaa !5
  %770 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %769, i32 0, i32 2
  %771 = getelementptr inbounds %struct.ImVec2, ptr %770, i32 0, i32 0
  %772 = load float, ptr %771, align 8, !tbaa !165
  %773 = load ptr, ptr %43, align 8, !tbaa !5
  %774 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %773, i32 0, i32 3
  %775 = getelementptr inbounds %struct.ImVec2, ptr %774, i32 0, i32 0
  %776 = load float, ptr %775, align 8, !tbaa !167
  %777 = fadd float %772, %776
  %778 = fpext float %777 to double
  %779 = load ptr, ptr %43, align 8, !tbaa !5
  %780 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %779, i32 0, i32 2
  %781 = getelementptr inbounds %struct.ImVec2, ptr %780, i32 0, i32 1
  %782 = load float, ptr %781, align 4, !tbaa !166
  %783 = load ptr, ptr %43, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %783, i32 0, i32 3
  %785 = getelementptr inbounds %struct.ImVec2, ptr %784, i32 0, i32 1
  %786 = load float, ptr %785, align 4, !tbaa !168
  %787 = fadd float %782, %786
  %788 = fpext float %787 to double
  %789 = load ptr, ptr %43, align 8, !tbaa !5
  %790 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %789, i32 0, i32 3
  %791 = getelementptr inbounds %struct.ImVec2, ptr %790, i32 0, i32 0
  %792 = load float, ptr %791, align 8, !tbaa !167
  %793 = fpext float %792 to double
  %794 = load ptr, ptr %43, align 8, !tbaa !5
  %795 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %794, i32 0, i32 3
  %796 = getelementptr inbounds %struct.ImVec2, ptr %795, i32 0, i32 1
  %797 = load float, ptr %796, align 4, !tbaa !168
  %798 = fpext float %797 to double
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.462, i32 noundef %713, double noundef %718, double noundef %723, double noundef %728, double noundef %738, double noundef %748, double noundef %753, double noundef %758, double noundef %763, double noundef %768, double noundef %778, double noundef %788, double noundef %793, double noundef %798)
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #10
  br label %799

799:                                              ; preds = %707
  %800 = load i32, ptr %42, align 4, !tbaa !116
  %801 = add nsw i32 %800, 1
  store i32 %801, ptr %42, align 4, !tbaa !116
  br label %698, !llvm.loop !169

802:                                              ; preds = %706
  call void @_ZN5ImGui7TreePopEv()
  br label %803

803:                                              ; preds = %802, %685
  %804 = load ptr, ptr %3, align 8, !tbaa !5
  %805 = getelementptr inbounds %struct.ImGuiContext, ptr %804, i32 0, i32 92
  %806 = load ptr, ptr %805, align 8, !tbaa !170
  %807 = icmp ne ptr %806, null
  br i1 %807, label %808, label %814

808:                                              ; preds = %803
  %809 = load ptr, ptr %3, align 8, !tbaa !5
  %810 = getelementptr inbounds %struct.ImGuiContext, ptr %809, i32 0, i32 92
  %811 = load ptr, ptr %810, align 8, !tbaa !170
  %812 = getelementptr inbounds %struct.ImGuiViewport, ptr %811, i32 0, i32 0
  %813 = load i32, ptr %812, align 8, !tbaa !156
  br label %815

814:                                              ; preds = %803
  br label %815

815:                                              ; preds = %814, %808
  %816 = phi i32 [ %813, %808 ], [ 0, %814 ]
  %817 = load ptr, ptr %3, align 8, !tbaa !5
  %818 = getelementptr inbounds %struct.ImGuiContext, ptr %817, i32 0, i32 2
  %819 = getelementptr inbounds %struct.ImGuiIO, ptr %818, i32 0, i32 72
  %820 = load i32, ptr %819, align 4, !tbaa !171
  %821 = load ptr, ptr %3, align 8, !tbaa !5
  %822 = getelementptr inbounds %struct.ImGuiContext, ptr %821, i32 0, i32 93
  %823 = load ptr, ptr %822, align 8, !tbaa !172
  %824 = icmp ne ptr %823, null
  br i1 %824, label %825, label %831

825:                                              ; preds = %815
  %826 = load ptr, ptr %3, align 8, !tbaa !5
  %827 = getelementptr inbounds %struct.ImGuiContext, ptr %826, i32 0, i32 93
  %828 = load ptr, ptr %827, align 8, !tbaa !172
  %829 = getelementptr inbounds %struct.ImGuiViewport, ptr %828, i32 0, i32 0
  %830 = load i32, ptr %829, align 8, !tbaa !156
  br label %832

831:                                              ; preds = %815
  br label %832

832:                                              ; preds = %831, %825
  %833 = phi i32 [ %830, %825 ], [ 0, %831 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.463, i32 noundef %816, i32 noundef %820, i32 noundef %833)
  %834 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.464)
  br i1 %834, label %835, label %930

835:                                              ; preds = %832
  %836 = load atomic i8, ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports acquire, align 8
  %837 = icmp eq i8 %836, 0
  br i1 %837, label %838, label %844, !prof !173

838:                                              ; preds = %835
  %839 = call i32 @__cxa_guard_acquire(ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #10
  %840 = icmp ne i32 %839, 0
  br i1 %840, label %841, label %844

841:                                              ; preds = %838
  invoke void @_ZN8ImVectorIP14ImGuiViewportPEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
          to label %842 unwind label %864

842:                                              ; preds = %841
  %843 = call i32 @__cxa_atexit(ptr @_ZN8ImVectorIP14ImGuiViewportPED2Ev, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, ptr @__dso_handle) #10
  call void @__cxa_guard_release(ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #10
  br label %844

844:                                              ; preds = %842, %838, %835
  %845 = load ptr, ptr %3, align 8, !tbaa !5
  %846 = getelementptr inbounds %struct.ImGuiContext, ptr %845, i32 0, i32 89
  %847 = getelementptr inbounds %struct.ImVector.15, ptr %846, i32 0, i32 0
  %848 = load i32, ptr %847, align 8, !tbaa !147
  call void @_ZN8ImVectorIP14ImGuiViewportPE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 noundef %848)
  %849 = load ptr, ptr getelementptr inbounds (%struct.ImVector.15, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 0, i32 2), align 8, !tbaa !174
  %850 = load ptr, ptr %3, align 8, !tbaa !5
  %851 = getelementptr inbounds %struct.ImGuiContext, ptr %850, i32 0, i32 89
  %852 = getelementptr inbounds %struct.ImVector.15, ptr %851, i32 0, i32 2
  %853 = load ptr, ptr %852, align 8, !tbaa !175
  %854 = load ptr, ptr %3, align 8, !tbaa !5
  %855 = getelementptr inbounds %struct.ImGuiContext, ptr %854, i32 0, i32 89
  %856 = call noundef i32 @_ZNK8ImVectorIP14ImGuiViewportPE13size_in_bytesEv(ptr noundef nonnull align 8 dereferenceable(16) %855)
  %857 = sext i32 %856 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %849, ptr align 8 %853, i64 %857, i1 false)
  %858 = load i32, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, align 8, !tbaa !176
  %859 = icmp sgt i32 %858, 1
  br i1 %859, label %860, label %868

860:                                              ; preds = %844
  %861 = load ptr, ptr getelementptr inbounds (%struct.ImVector.15, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 0, i32 2), align 8, !tbaa !174
  %862 = load i32, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, align 8, !tbaa !176
  %863 = sext i32 %862 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %861, i64 noundef %863, i64 noundef 8, ptr noundef @_ZL39ViewportComparerByLastFocusedStampCountPKvS0_)
  br label %868

864:                                              ; preds = %841
  %865 = landingpad { ptr, i32 }
          cleanup
  %866 = extractvalue { ptr, i32 } %865, 0
  store ptr %866, ptr %44, align 8
  %867 = extractvalue { ptr, i32 } %865, 1
  store i32 %867, ptr %45, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #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 %2375

868:                                              ; preds = %860, %844
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #10
  store ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %869 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  store ptr %869, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  %870 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  store ptr %870, ptr %48, align 8, !tbaa !5
  br label %871

871:                                              ; preds = %926, %868
  %872 = load ptr, ptr %47, align 8, !tbaa !5
  %873 = load ptr, ptr %48, align 8, !tbaa !5
  %874 = icmp ne ptr %872, %873
  br i1 %874, label %876, label %875

875:                                              ; preds = %871
  store i32 29, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  br label %929

876:                                              ; preds = %871
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #10
  %877 = load ptr, ptr %47, align 8, !tbaa !5
  %878 = load ptr, ptr %877, align 8, !tbaa !5
  store ptr %878, ptr %49, align 8, !tbaa !5
  %879 = load ptr, ptr %49, align 8, !tbaa !5
  %880 = getelementptr inbounds %struct.ImGuiViewportP, ptr %879, i32 0, i32 2
  %881 = load i32, ptr %880, align 8, !tbaa !155
  %882 = load ptr, ptr %49, align 8, !tbaa !5
  %883 = getelementptr inbounds %struct.ImGuiViewport, ptr %882, i32 0, i32 0
  %884 = load i32, ptr %883, align 8, !tbaa !156
  %885 = load ptr, ptr %49, align 8, !tbaa !5
  %886 = getelementptr inbounds %struct.ImGuiViewportP, ptr %885, i32 0, i32 4
  %887 = load i32, ptr %886, align 8, !tbaa !177
  %888 = load ptr, ptr %3, align 8, !tbaa !5
  %889 = getelementptr inbounds %struct.ImGuiContext, ptr %888, i32 0, i32 3
  %890 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %889, i32 0, i32 8
  %891 = load ptr, ptr %890, align 8, !tbaa !178
  %892 = icmp ne ptr %891, null
  br i1 %892, label %893, label %910

893:                                              ; preds = %876
  %894 = load ptr, ptr %49, align 8, !tbaa !5
  %895 = getelementptr inbounds %struct.ImGuiViewport, ptr %894, i32 0, i32 13
  %896 = load i8, ptr %895, align 8, !tbaa !179, !range !13, !noundef !14
  %897 = trunc i8 %896 to i1
  br i1 %897, label %898, label %910

898:                                              ; preds = %893
  %899 = load ptr, ptr %3, align 8, !tbaa !5
  %900 = getelementptr inbounds %struct.ImGuiContext, ptr %899, i32 0, i32 3
  %901 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %900, i32 0, i32 8
  %902 = load ptr, ptr %901, align 8, !tbaa !178
  %903 = load ptr, ptr %49, align 8, !tbaa !5
  %904 = call noundef zeroext i1 %902(ptr noundef %903)
  br i1 %904, label %905, label %906

905:                                              ; preds = %898
  br label %907

906:                                              ; preds = %898
  br label %907

907:                                              ; preds = %906, %905
  %908 = phi ptr [ @.str.466, %905 ], [ @.str.90, %906 ]
  %909 = getelementptr inbounds [2 x i8], ptr %908, i64 0, i64 0
  br label %911

910:                                              ; preds = %893, %876
  br label %911

911:                                              ; preds = %910, %907
  %912 = phi ptr [ %909, %907 ], [ @.str.183, %910 ]
  %913 = load ptr, ptr %49, align 8, !tbaa !5
  %914 = getelementptr inbounds %struct.ImGuiViewportP, ptr %913, i32 0, i32 1
  %915 = load ptr, ptr %914, align 8, !tbaa !180
  %916 = icmp ne ptr %915, null
  br i1 %916, label %917, label %923

917:                                              ; preds = %911
  %918 = load ptr, ptr %49, align 8, !tbaa !5
  %919 = getelementptr inbounds %struct.ImGuiViewportP, ptr %918, i32 0, i32 1
  %920 = load ptr, ptr %919, align 8, !tbaa !180
  %921 = getelementptr inbounds %struct.ImGuiWindow, ptr %920, i32 0, i32 1
  %922 = load ptr, ptr %921, align 8, !tbaa !115
  br label %924

923:                                              ; preds = %911
  br label %924

924:                                              ; preds = %923, %917
  %925 = phi ptr [ %922, %917 ], [ @.str.183, %923 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.465, i32 noundef %881, i32 noundef %884, i32 noundef %887, ptr noundef %912, ptr noundef %925)
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  br label %926

926:                                              ; preds = %924
  %927 = load ptr, ptr %47, align 8, !tbaa !5
  %928 = getelementptr inbounds ptr, ptr %927, i32 1
  store ptr %928, ptr %47, align 8, !tbaa !5
  br label %871

929:                                              ; preds = %875
  call void @_ZN5ImGui7TreePopEv()
  br label %930

930:                                              ; preds = %929, %832
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  store i32 0, ptr %50, align 4, !tbaa !116
  br label %931

931:                                              ; preds = %945, %930
  %932 = load i32, ptr %50, align 4, !tbaa !116
  %933 = load ptr, ptr %3, align 8, !tbaa !5
  %934 = getelementptr inbounds %struct.ImGuiContext, ptr %933, i32 0, i32 89
  %935 = getelementptr inbounds %struct.ImVector.15, ptr %934, i32 0, i32 0
  %936 = load i32, ptr %935, align 8, !tbaa !147
  %937 = icmp slt i32 %932, %936
  br i1 %937, label %939, label %938

938:                                              ; preds = %931
  store i32 31, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %948

939:                                              ; preds = %931
  %940 = load ptr, ptr %3, align 8, !tbaa !5
  %941 = getelementptr inbounds %struct.ImGuiContext, ptr %940, i32 0, i32 89
  %942 = load i32, ptr %50, align 4, !tbaa !116
  %943 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %941, i32 noundef %942)
  %944 = load ptr, ptr %943, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %944)
  br label %945

945:                                              ; preds = %939
  %946 = load i32, ptr %50, align 4, !tbaa !116
  %947 = add nsw i32 %946, 1
  store i32 %947, ptr %50, align 4, !tbaa !116
  br label %931, !llvm.loop !181

948:                                              ; preds = %938
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #10
  br label %949

949:                                              ; preds = %948, %679
  %950 = load ptr, ptr %3, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.ImGuiContext, ptr %950, i32 0, i32 86
  %952 = getelementptr inbounds %struct.ImVector.14, ptr %951, i32 0, i32 0
  %953 = load i32, ptr %952, align 8, !tbaa !182
  %954 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.467, ptr noundef @.str.468, i32 noundef %953)
  br i1 %954, label %955, label %1041

955:                                              ; preds = %949
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  store i32 0, ptr %51, align 4, !tbaa !116
  br label %956

956:                                              ; preds = %1037, %955
  %957 = load i32, ptr %51, align 4, !tbaa !116
  %958 = load ptr, ptr %3, align 8, !tbaa !5
  %959 = getelementptr inbounds %struct.ImGuiContext, ptr %958, i32 0, i32 86
  %960 = getelementptr inbounds %struct.ImVector.14, ptr %959, i32 0, i32 0
  %961 = load i32, ptr %960, align 8, !tbaa !182
  %962 = icmp slt i32 %957, %961
  br i1 %962, label %964, label %963

963:                                              ; preds = %956
  store i32 34, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %1040

964:                                              ; preds = %956
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #10
  %965 = load ptr, ptr %3, align 8, !tbaa !5
  %966 = getelementptr inbounds %struct.ImGuiContext, ptr %965, i32 0, i32 86
  %967 = load i32, ptr %51, align 4, !tbaa !116
  %968 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %966, i32 noundef %967)
  store ptr %968, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #10
  %969 = load ptr, ptr %52, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.ImGuiPopupData, ptr %969, i32 0, i32 2
  %971 = load ptr, ptr %970, align 8, !tbaa !183
  store ptr %971, ptr %53, align 8, !tbaa !5
  %972 = load ptr, ptr %52, align 8, !tbaa !5
  %973 = getelementptr inbounds %struct.ImGuiPopupData, ptr %972, i32 0, i32 0
  %974 = load i32, ptr %973, align 8, !tbaa !185
  %975 = load ptr, ptr %53, align 8, !tbaa !5
  %976 = icmp ne ptr %975, null
  br i1 %976, label %977, label %981

977:                                              ; preds = %964
  %978 = load ptr, ptr %53, align 8, !tbaa !5
  %979 = getelementptr inbounds %struct.ImGuiWindow, ptr %978, i32 0, i32 1
  %980 = load ptr, ptr %979, align 8, !tbaa !115
  br label %982

981:                                              ; preds = %964
  br label %982

982:                                              ; preds = %981, %977
  %983 = phi ptr [ %980, %977 ], [ @.str.470, %981 ]
  %984 = load ptr, ptr %53, align 8, !tbaa !5
  %985 = icmp ne ptr %984, null
  br i1 %985, label %986, label %992

986:                                              ; preds = %982
  %987 = load ptr, ptr %53, align 8, !tbaa !5
  %988 = getelementptr inbounds %struct.ImGuiWindow, ptr %987, i32 0, i32 3
  %989 = load i32, ptr %988, align 4, !tbaa !186
  %990 = and i32 %989, 16777216
  %991 = icmp ne i32 %990, 0
  br label %992

992:                                              ; preds = %986, %982
  %993 = phi i1 [ false, %982 ], [ %991, %986 ]
  %994 = zext i1 %993 to i64
  %995 = select i1 %993, ptr @.str.471, ptr @.str.16
  %996 = load ptr, ptr %53, align 8, !tbaa !5
  %997 = icmp ne ptr %996, null
  br i1 %997, label %998, label %1004

998:                                              ; preds = %992
  %999 = load ptr, ptr %53, align 8, !tbaa !5
  %1000 = getelementptr inbounds %struct.ImGuiWindow, ptr %999, i32 0, i32 3
  %1001 = load i32, ptr %1000, align 4, !tbaa !186
  %1002 = and i32 %1001, 268435456
  %1003 = icmp ne i32 %1002, 0
  br label %1004

1004:                                             ; preds = %998, %992
  %1005 = phi i1 [ false, %992 ], [ %1003, %998 ]
  %1006 = zext i1 %1005 to i64
  %1007 = select i1 %1005, ptr @.str.472, ptr @.str.16
  %1008 = load ptr, ptr %52, align 8, !tbaa !5
  %1009 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1008, i32 0, i32 3
  %1010 = load ptr, ptr %1009, align 8, !tbaa !187
  %1011 = icmp ne ptr %1010, null
  br i1 %1011, label %1012, label %1018

1012:                                             ; preds = %1004
  %1013 = load ptr, ptr %52, align 8, !tbaa !5
  %1014 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1013, i32 0, i32 3
  %1015 = load ptr, ptr %1014, align 8, !tbaa !187
  %1016 = getelementptr inbounds %struct.ImGuiWindow, ptr %1015, i32 0, i32 1
  %1017 = load ptr, ptr %1016, align 8, !tbaa !115
  br label %1019

1018:                                             ; preds = %1004
  br label %1019

1019:                                             ; preds = %1018, %1012
  %1020 = phi ptr [ %1017, %1012 ], [ @.str.470, %1018 ]
  %1021 = load ptr, ptr %53, align 8, !tbaa !5
  %1022 = icmp ne ptr %1021, null
  br i1 %1022, label %1023, label %1034

1023:                                             ; preds = %1019
  %1024 = load ptr, ptr %53, align 8, !tbaa !5
  %1025 = getelementptr inbounds %struct.ImGuiWindow, ptr %1024, i32 0, i32 90
  %1026 = load ptr, ptr %1025, align 8, !tbaa !188
  %1027 = icmp ne ptr %1026, null
  br i1 %1027, label %1028, label %1034

1028:                                             ; preds = %1023
  %1029 = load ptr, ptr %53, align 8, !tbaa !5
  %1030 = getelementptr inbounds %struct.ImGuiWindow, ptr %1029, i32 0, i32 90
  %1031 = load ptr, ptr %1030, align 8, !tbaa !188
  %1032 = getelementptr inbounds %struct.ImGuiWindow, ptr %1031, i32 0, i32 1
  %1033 = load ptr, ptr %1032, align 8, !tbaa !115
  br label %1035

1034:                                             ; preds = %1023, %1019
  br label %1035

1035:                                             ; preds = %1034, %1028
  %1036 = phi ptr [ %1033, %1028 ], [ @.str.470, %1034 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.469, i32 noundef %974, ptr noundef %983, ptr noundef %995, ptr noundef %1007, ptr noundef %1020, ptr noundef %1036)
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  br label %1037

1037:                                             ; preds = %1035
  %1038 = load i32, ptr %51, align 4, !tbaa !116
  %1039 = add nsw i32 %1038, 1
  store i32 %1039, ptr %51, align 4, !tbaa !116
  br label %956, !llvm.loop !189

1040:                                             ; preds = %963
  call void @_ZN5ImGui7TreePopEv()
  br label %1041

1041:                                             ; preds = %1040, %949
  %1042 = load ptr, ptr %3, align 8, !tbaa !5
  %1043 = getelementptr inbounds %struct.ImGuiContext, ptr %1042, i32 0, i32 176
  %1044 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %1043)
  %1045 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.473, ptr noundef @.str.474, i32 noundef %1044)
  br i1 %1045, label %1046, label %1069

1046:                                             ; preds = %1041
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  store i32 0, ptr %54, align 4, !tbaa !116
  br label %1047

1047:                                             ; preds = %1065, %1046
  %1048 = load i32, ptr %54, align 4, !tbaa !116
  %1049 = load ptr, ptr %3, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.ImGuiContext, ptr %1049, i32 0, i32 176
  %1051 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1050)
  %1052 = icmp slt i32 %1048, %1051
  br i1 %1052, label %1054, label %1053

1053:                                             ; preds = %1047
  store i32 37, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %1068

1054:                                             ; preds = %1047
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  %1055 = load ptr, ptr %3, align 8, !tbaa !5
  %1056 = getelementptr inbounds %struct.ImGuiContext, ptr %1055, i32 0, i32 176
  %1057 = load i32, ptr %54, align 4, !tbaa !116
  %1058 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1056, i32 noundef %1057)
  store ptr %1058, ptr %55, align 8, !tbaa !5
  %1059 = load ptr, ptr %55, align 8, !tbaa !5
  %1060 = icmp ne ptr %1059, null
  br i1 %1060, label %1061, label %1064

1061:                                             ; preds = %1054
  %1062 = load ptr, ptr %55, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef %1062)
  %1063 = load ptr, ptr %55, align 8, !tbaa !5
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef %1063, ptr noundef @.str.475)
  call void @_ZN5ImGui5PopIDEv()
  br label %1064

1064:                                             ; preds = %1061, %1054
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  br label %1065

1065:                                             ; preds = %1064
  %1066 = load i32, ptr %54, align 4, !tbaa !116
  %1067 = add nsw i32 %1066, 1
  store i32 %1067, ptr %54, align 4, !tbaa !116
  br label %1047, !llvm.loop !190

1068:                                             ; preds = %1053
  call void @_ZN5ImGui7TreePopEv()
  br label %1069

1069:                                             ; preds = %1068, %1041
  %1070 = load ptr, ptr %3, align 8, !tbaa !5
  %1071 = getelementptr inbounds %struct.ImGuiContext, ptr %1070, i32 0, i32 172
  %1072 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %1071)
  %1073 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.476, ptr noundef @.str.477, i32 noundef %1072)
  br i1 %1073, label %1074, label %1096

1074:                                             ; preds = %1069
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  store i32 0, ptr %56, align 4, !tbaa !116
  br label %1075

1075:                                             ; preds = %1092, %1074
  %1076 = load i32, ptr %56, align 4, !tbaa !116
  %1077 = load ptr, ptr %3, align 8, !tbaa !5
  %1078 = getelementptr inbounds %struct.ImGuiContext, ptr %1077, i32 0, i32 172
  %1079 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1078)
  %1080 = icmp slt i32 %1076, %1079
  br i1 %1080, label %1082, label %1081

1081:                                             ; preds = %1075
  store i32 40, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %1095

1082:                                             ; preds = %1075
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #10
  %1083 = load ptr, ptr %3, align 8, !tbaa !5
  %1084 = getelementptr inbounds %struct.ImGuiContext, ptr %1083, i32 0, i32 172
  %1085 = load i32, ptr %56, align 4, !tbaa !116
  %1086 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1084, i32 noundef %1085)
  store ptr %1086, ptr %57, align 8, !tbaa !5
  %1087 = load ptr, ptr %57, align 8, !tbaa !5
  %1088 = icmp ne ptr %1087, null
  br i1 %1088, label %1089, label %1091

1089:                                             ; preds = %1082
  %1090 = load ptr, ptr %57, align 8, !tbaa !5
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef %1090)
  br label %1091

1091:                                             ; preds = %1089, %1082
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  br label %1092

1092:                                             ; preds = %1091
  %1093 = load i32, ptr %56, align 4, !tbaa !116
  %1094 = add nsw i32 %1093, 1
  store i32 %1094, ptr %56, align 4, !tbaa !116
  br label %1075, !llvm.loop !191

1095:                                             ; preds = %1081
  call void @_ZN5ImGui7TreePopEv()
  br label %1096

1096:                                             ; preds = %1095, %1069
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #10
  %1097 = load ptr, ptr %3, align 8, !tbaa !5
  %1098 = getelementptr inbounds %struct.ImGuiContext, ptr %1097, i32 0, i32 2
  %1099 = getelementptr inbounds %struct.ImGuiIO, ptr %1098, i32 0, i32 8
  %1100 = load ptr, ptr %1099, align 8, !tbaa !192
  store ptr %1100, ptr %58, align 8, !tbaa !5
  %1101 = load ptr, ptr %58, align 8, !tbaa !5
  %1102 = getelementptr inbounds %struct.ImFontAtlas, ptr %1101, i32 0, i32 17
  %1103 = getelementptr inbounds %struct.ImVector.10, ptr %1102, i32 0, i32 0
  %1104 = load i32, ptr %1103, align 8, !tbaa !193
  %1105 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.478, ptr noundef @.str.479, i32 noundef %1104)
  br i1 %1105, label %1106, label %1108

1106:                                             ; preds = %1096
  %1107 = load ptr, ptr %58, align 8, !tbaa !5
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef %1107)
  call void @_ZN5ImGui7TreePopEv()
  br label %1108

1108:                                             ; preds = %1106, %1096
  %1109 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.480)
  br i1 %1109, label %1110, label %1113

1110:                                             ; preds = %1108
  %1111 = load ptr, ptr %3, align 8, !tbaa !5
  %1112 = getelementptr inbounds %struct.ImGuiContext, ptr %1111, i32 0, i32 188
  call void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef %1112)
  call void @_ZN5ImGui7TreePopEv()
  br label %1113

1113:                                             ; preds = %1110, %1108
  %1114 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.327)
  br i1 %1114, label %1115, label %1164

1115:                                             ; preds = %1113
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #10
  %1116 = load ptr, ptr %3, align 8, !tbaa !5
  %1117 = getelementptr inbounds %struct.ImGuiContext, ptr %1116, i32 0, i32 217
  store ptr %1117, ptr %59, align 8, !tbaa !5
  %1118 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.481, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only)
  %1119 = load ptr, ptr %5, align 8, !tbaa !5
  %1120 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1119, i32 0, i32 8
  %1121 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.482, ptr noundef %1120)
  %1122 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.483)
  br i1 %1122, label %1123, label %1125

1123:                                             ; preds = %1115
  %1124 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN5ImGui21DockContextClearNodesEP12ImGuiContextjb(ptr noundef %1124, i32 noundef 0, i1 noundef zeroext true)
  br label %1125

1125:                                             ; preds = %1123, %1115
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1126 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.484)
  br i1 %1126, label %1127, label %1130

1127:                                             ; preds = %1125
  %1128 = load ptr, ptr %59, align 8, !tbaa !5
  %1129 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1128, i32 0, i32 3
  store i8 1, ptr %1129, align 8, !tbaa !197
  br label %1130

1130:                                             ; preds = %1127, %1125
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  store i32 0, ptr %60, align 4, !tbaa !116
  br label %1131

1131:                                             ; preds = %1160, %1130
  %1132 = load i32, ptr %60, align 4, !tbaa !116
  %1133 = load ptr, ptr %59, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1133, i32 0, i32 0
  %1135 = getelementptr inbounds %struct.ImGuiStorage, ptr %1134, i32 0, i32 0
  %1136 = getelementptr inbounds %struct.ImVector.6, ptr %1135, i32 0, i32 0
  %1137 = load i32, ptr %1136, align 8, !tbaa !198
  %1138 = icmp slt i32 %1132, %1137
  br i1 %1138, label %1140, label %1139

1139:                                             ; preds = %1131
  store i32 43, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %1163

1140:                                             ; preds = %1131
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #10
  %1141 = load ptr, ptr %59, align 8, !tbaa !5
  %1142 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1141, i32 0, i32 0
  %1143 = getelementptr inbounds %struct.ImGuiStorage, ptr %1142, i32 0, i32 0
  %1144 = load i32, ptr %60, align 4, !tbaa !116
  %1145 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN8ImVectorIN12ImGuiStorage16ImGuiStoragePairEEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1143, i32 noundef %1144)
  %1146 = getelementptr inbounds %"struct.ImGuiStorage::ImGuiStoragePair", ptr %1145, i32 0, i32 1
  %1147 = load ptr, ptr %1146, align 8, !tbaa !56
  store ptr %1147, ptr %61, align 8, !tbaa !5
  %1148 = load ptr, ptr %61, align 8, !tbaa !5
  %1149 = icmp ne ptr %1148, null
  br i1 %1149, label %1150, label %1159

1150:                                             ; preds = %1140
  %1151 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only, align 1, !tbaa !55, !range !13, !noundef !14
  %1152 = trunc i8 %1151 to i1
  br i1 %1152, label %1153, label %1156

1153:                                             ; preds = %1150
  %1154 = load ptr, ptr %61, align 8, !tbaa !5
  %1155 = call noundef zeroext i1 @_ZNK13ImGuiDockNode10IsRootNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %1154)
  br i1 %1155, label %1156, label %1158

1156:                                             ; preds = %1153, %1150
  %1157 = load ptr, ptr %61, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDockNodeEP13ImGuiDockNodePKc(ptr noundef %1157, ptr noundef @.str.485)
  br label %1158

1158:                                             ; preds = %1156, %1153
  br label %1159

1159:                                             ; preds = %1158, %1140
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  br label %1160

1160:                                             ; preds = %1159
  %1161 = load i32, ptr %60, align 4, !tbaa !116
  %1162 = add nsw i32 %1161, 1
  store i32 %1162, ptr %60, align 4, !tbaa !116
  br label %1131, !llvm.loop !199

1163:                                             ; preds = %1139
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  br label %1164

1164:                                             ; preds = %1163, %1113
  %1165 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.486)
  br i1 %1165, label %1166, label %1387

1166:                                             ; preds = %1164
  %1167 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.487)
  br i1 %1167, label %1168, label %1169

1168:                                             ; preds = %1166
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %1169

1169:                                             ; preds = %1168, %1166
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1170 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.488)
  br i1 %1170, label %1171, label %1173

1171:                                             ; preds = %1169
  %1172 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %1173

1173:                                             ; preds = %1171, %1169
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1174 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.489)
  br i1 %1174, label %1175, label %1180

1175:                                             ; preds = %1173
  %1176 = load ptr, ptr %3, align 8, !tbaa !5
  %1177 = getelementptr inbounds %struct.ImGuiContext, ptr %1176, i32 0, i32 2
  %1178 = getelementptr inbounds %struct.ImGuiIO, ptr %1177, i32 0, i32 5
  %1179 = load ptr, ptr %1178, align 8, !tbaa !200
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %1179)
  br label %1180

1180:                                             ; preds = %1175, %1173
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1181 = load ptr, ptr %3, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.ImGuiContext, ptr %1181, i32 0, i32 2
  %1183 = getelementptr inbounds %struct.ImGuiIO, ptr %1182, i32 0, i32 5
  %1184 = load ptr, ptr %1183, align 8, !tbaa !200
  %1185 = icmp ne ptr %1184, null
  br i1 %1185, label %1186, label %1191

1186:                                             ; preds = %1180
  %1187 = load ptr, ptr %3, align 8, !tbaa !5
  %1188 = getelementptr inbounds %struct.ImGuiContext, ptr %1187, i32 0, i32 2
  %1189 = getelementptr inbounds %struct.ImGuiIO, ptr %1188, i32 0, i32 5
  %1190 = load ptr, ptr %1189, align 8, !tbaa !200
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.490, ptr noundef %1190)
  br label %1192

1191:                                             ; preds = %1180
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef @.str.159, ptr noundef null)
  br label %1192

1192:                                             ; preds = %1191, %1186
  %1193 = load ptr, ptr %4, align 8, !tbaa !5
  %1194 = getelementptr inbounds %struct.ImGuiIO, ptr %1193, i32 0, i32 38
  %1195 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.491, ptr noundef %1194)
  %1196 = load ptr, ptr %3, align 8, !tbaa !5
  %1197 = getelementptr inbounds %struct.ImGuiContext, ptr %1196, i32 0, i32 220
  %1198 = load float, ptr %1197, align 4, !tbaa !201
  %1199 = fpext float %1198 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.492, double noundef %1199)
  %1200 = load ptr, ptr %3, align 8, !tbaa !5
  %1201 = getelementptr inbounds %struct.ImGuiContext, ptr %1200, i32 0, i32 222
  %1202 = getelementptr inbounds %struct.ImVector.30, ptr %1201, i32 0, i32 0
  %1203 = load i32, ptr %1202, align 8, !tbaa !202
  %1204 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.493, ptr noundef @.str.494, i32 noundef %1203)
  br i1 %1204, label %1205, label %1225

1205:                                             ; preds = %1192
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  store i32 0, ptr %62, align 4, !tbaa !116
  br label %1206

1206:                                             ; preds = %1221, %1205
  %1207 = load i32, ptr %62, align 4, !tbaa !116
  %1208 = load ptr, ptr %3, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.ImGuiContext, ptr %1208, i32 0, i32 222
  %1210 = getelementptr inbounds %struct.ImVector.30, ptr %1209, i32 0, i32 0
  %1211 = load i32, ptr %1210, align 8, !tbaa !202
  %1212 = icmp slt i32 %1207, %1211
  br i1 %1212, label %1214, label %1213

1213:                                             ; preds = %1206
  store i32 46, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %1224

1214:                                             ; preds = %1206
  %1215 = load ptr, ptr %3, align 8, !tbaa !5
  %1216 = getelementptr inbounds %struct.ImGuiContext, ptr %1215, i32 0, i32 222
  %1217 = load i32, ptr %62, align 4, !tbaa !116
  %1218 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1216, i32 noundef %1217)
  %1219 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %1218, i32 0, i32 0
  %1220 = load ptr, ptr %1219, align 8, !tbaa !203
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.490, ptr noundef %1220)
  br label %1221

1221:                                             ; preds = %1214
  %1222 = load i32, ptr %62, align 4, !tbaa !116
  %1223 = add nsw i32 %1222, 1
  store i32 %1223, ptr %62, align 4, !tbaa !116
  br label %1206, !llvm.loop !205

1224:                                             ; preds = %1213
  call void @_ZN5ImGui7TreePopEv()
  br label %1225

1225:                                             ; preds = %1224, %1192
  %1226 = load ptr, ptr %3, align 8, !tbaa !5
  %1227 = getelementptr inbounds %struct.ImGuiContext, ptr %1226, i32 0, i32 223
  %1228 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1227)
  %1229 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.495, ptr noundef @.str.496, i32 noundef %1228)
  br i1 %1229, label %1230, label %1246

1230:                                             ; preds = %1225
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #10
  %1231 = load ptr, ptr %3, align 8, !tbaa !5
  %1232 = getelementptr inbounds %struct.ImGuiContext, ptr %1231, i32 0, i32 223
  %1233 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1232)
  store ptr %1233, ptr %63, align 8, !tbaa !5
  br label %1234

1234:                                             ; preds = %1240, %1230
  %1235 = load ptr, ptr %63, align 8, !tbaa !5
  %1236 = icmp ne ptr %1235, null
  br i1 %1236, label %1238, label %1237

1237:                                             ; preds = %1234
  store i32 49, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  br label %1245

1238:                                             ; preds = %1234
  %1239 = load ptr, ptr %63, align 8, !tbaa !5
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef %1239)
  br label %1240

1240:                                             ; preds = %1238
  %1241 = load ptr, ptr %3, align 8, !tbaa !5
  %1242 = getelementptr inbounds %struct.ImGuiContext, ptr %1241, i32 0, i32 223
  %1243 = load ptr, ptr %63, align 8, !tbaa !5
  %1244 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %1242, ptr noundef %1243)
  store ptr %1244, ptr %63, align 8, !tbaa !5
  br label %1234, !llvm.loop !206

1245:                                             ; preds = %1237
  call void @_ZN5ImGui7TreePopEv()
  br label %1246

1246:                                             ; preds = %1245, %1225
  %1247 = load ptr, ptr %3, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.ImGuiContext, ptr %1247, i32 0, i32 224
  %1249 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1248)
  %1250 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.497, ptr noundef @.str.498, i32 noundef %1249)
  br i1 %1250, label %1251, label %1267

1251:                                             ; preds = %1246
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  %1252 = load ptr, ptr %3, align 8, !tbaa !5
  %1253 = getelementptr inbounds %struct.ImGuiContext, ptr %1252, i32 0, i32 224
  %1254 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1253)
  store ptr %1254, ptr %64, align 8, !tbaa !5
  br label %1255

1255:                                             ; preds = %1261, %1251
  %1256 = load ptr, ptr %64, align 8, !tbaa !5
  %1257 = icmp ne ptr %1256, null
  br i1 %1257, label %1259, label %1258

1258:                                             ; preds = %1255
  store i32 52, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  br label %1266

1259:                                             ; preds = %1255
  %1260 = load ptr, ptr %64, align 8, !tbaa !5
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef %1260)
  br label %1261

1261:                                             ; preds = %1259
  %1262 = load ptr, ptr %3, align 8, !tbaa !5
  %1263 = getelementptr inbounds %struct.ImGuiContext, ptr %1262, i32 0, i32 224
  %1264 = load ptr, ptr %64, align 8, !tbaa !5
  %1265 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %1263, ptr noundef %1264)
  store ptr %1265, ptr %64, align 8, !tbaa !5
  br label %1255, !llvm.loop !207

1266:                                             ; preds = %1258
  call void @_ZN5ImGui7TreePopEv()
  br label %1267

1267:                                             ; preds = %1266, %1246
  %1268 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.499, ptr noundef @.str.500)
  br i1 %1268, label %1269, label %1368

1269:                                             ; preds = %1267
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #10
  %1270 = load ptr, ptr %3, align 8, !tbaa !5
  %1271 = getelementptr inbounds %struct.ImGuiContext, ptr %1270, i32 0, i32 217
  store ptr %1271, ptr %65, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.501)
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #10
  %1272 = load ptr, ptr %3, align 8, !tbaa !5
  %1273 = getelementptr inbounds %struct.ImGuiContext, ptr %1272, i32 0, i32 223
  %1274 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1273)
  store ptr %1274, ptr %66, align 8, !tbaa !5
  br label %1275

1275:                                             ; preds = %1295, %1269
  %1276 = load ptr, ptr %66, align 8, !tbaa !5
  %1277 = icmp ne ptr %1276, null
  br i1 %1277, label %1279, label %1278

1278:                                             ; preds = %1275
  store i32 55, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #10
  br label %1300

1279:                                             ; preds = %1275
  %1280 = load ptr, ptr %66, align 8, !tbaa !5
  %1281 = getelementptr inbounds %struct.ImGuiWindowSettings, ptr %1280, i32 0, i32 5
  %1282 = load i32, ptr %1281, align 4, !tbaa !208
  %1283 = icmp ne i32 %1282, 0
  br i1 %1283, label %1284, label %1294

1284:                                             ; preds = %1279
  %1285 = load ptr, ptr %66, align 8, !tbaa !5
  %1286 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(33) %1285)
  %1287 = load ptr, ptr %66, align 8, !tbaa !5
  %1288 = getelementptr inbounds %struct.ImGuiWindowSettings, ptr %1287, i32 0, i32 5
  %1289 = load i32, ptr %1288, align 4, !tbaa !208
  %1290 = load ptr, ptr %66, align 8, !tbaa !5
  %1291 = getelementptr inbounds %struct.ImGuiWindowSettings, ptr %1290, i32 0, i32 7
  %1292 = load i16, ptr %1291, align 4, !tbaa !210
  %1293 = sext i16 %1292 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.502, ptr noundef %1286, i32 noundef %1289, i32 noundef %1293)
  br label %1294

1294:                                             ; preds = %1284, %1279
  br label %1295

1295:                                             ; preds = %1294
  %1296 = load ptr, ptr %3, align 8, !tbaa !5
  %1297 = getelementptr inbounds %struct.ImGuiContext, ptr %1296, i32 0, i32 223
  %1298 = load ptr, ptr %66, align 8, !tbaa !5
  %1299 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %1297, ptr noundef %1298)
  store ptr %1299, ptr %66, align 8, !tbaa !5
  br label %1275, !llvm.loop !211

1300:                                             ; preds = %1278
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.503)
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  store i32 0, ptr %67, align 4, !tbaa !116
  br label %1301

1301:                                             ; preds = %1364, %1300
  %1302 = load i32, ptr %67, align 4, !tbaa !116
  %1303 = load ptr, ptr %65, align 8, !tbaa !5
  %1304 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1303, i32 0, i32 2
  %1305 = getelementptr inbounds %struct.ImVector.29, ptr %1304, i32 0, i32 0
  %1306 = load i32, ptr %1305, align 8, !tbaa !212
  %1307 = icmp slt i32 %1302, %1306
  br i1 %1307, label %1309, label %1308

1308:                                             ; preds = %1301
  store i32 58, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %1367

1309:                                             ; preds = %1301
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  %1310 = load ptr, ptr %65, align 8, !tbaa !5
  %1311 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1310, i32 0, i32 2
  %1312 = load i32, ptr %67, align 4, !tbaa !116
  %1313 = call noundef nonnull align 4 dereferenceable(36) ptr @_ZN8ImVectorI21ImGuiDockNodeSettingsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1311, i32 noundef %1312)
  store ptr %1313, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #10
  store ptr null, ptr %69, align 8, !tbaa !5
  %1314 = load ptr, ptr %68, align 8, !tbaa !5
  %1315 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1314, i32 0, i32 3
  %1316 = load i32, ptr %1315, align 4, !tbaa !213
  %1317 = icmp ne i32 %1316, 0
  br i1 %1317, label %1318, label %1341

1318:                                             ; preds = %1309
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  %1319 = load ptr, ptr %68, align 8, !tbaa !5
  %1320 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1319, i32 0, i32 3
  %1321 = load i32, ptr %1320, align 4, !tbaa !213
  %1322 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %1321)
  store ptr %1322, ptr %70, align 8, !tbaa !5
  %1323 = load ptr, ptr %70, align 8, !tbaa !5
  %1324 = icmp ne ptr %1323, null
  br i1 %1324, label %1325, label %1329

1325:                                             ; preds = %1318
  %1326 = load ptr, ptr %70, align 8, !tbaa !5
  %1327 = getelementptr inbounds %struct.ImGuiWindow, ptr %1326, i32 0, i32 1
  %1328 = load ptr, ptr %1327, align 8, !tbaa !115
  store ptr %1328, ptr %69, align 8, !tbaa !5
  br label %1340

1329:                                             ; preds = %1318
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #10
  %1330 = load ptr, ptr %68, align 8, !tbaa !5
  %1331 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1330, i32 0, i32 3
  %1332 = load i32, ptr %1331, align 4, !tbaa !213
  %1333 = call noundef ptr @_ZN5ImGui22FindWindowSettingsByIDEj(i32 noundef %1332)
  store ptr %1333, ptr %71, align 8, !tbaa !5
  %1334 = load ptr, ptr %71, align 8, !tbaa !5
  %1335 = icmp ne ptr %1334, null
  br i1 %1335, label %1336, label %1339

1336:                                             ; preds = %1329
  %1337 = load ptr, ptr %71, align 8, !tbaa !5
  %1338 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(33) %1337)
  store ptr %1338, ptr %69, align 8, !tbaa !5
  br label %1339

1339:                                             ; preds = %1336, %1329
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  br label %1340

1340:                                             ; preds = %1339, %1325
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  br label %1341

1341:                                             ; preds = %1340, %1309
  %1342 = load ptr, ptr %68, align 8, !tbaa !5
  %1343 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1342, i32 0, i32 0
  %1344 = load i32, ptr %1343, align 4, !tbaa !215
  %1345 = load ptr, ptr %68, align 8, !tbaa !5
  %1346 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1345, i32 0, i32 1
  %1347 = load i32, ptr %1346, align 4, !tbaa !216
  %1348 = load ptr, ptr %68, align 8, !tbaa !5
  %1349 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1348, i32 0, i32 3
  %1350 = load i32, ptr %1349, align 4, !tbaa !213
  %1351 = load ptr, ptr %69, align 8, !tbaa !5
  %1352 = icmp ne ptr %1351, null
  br i1 %1352, label %1353, label %1355

1353:                                             ; preds = %1341
  %1354 = load ptr, ptr %69, align 8, !tbaa !5
  br label %1362

1355:                                             ; preds = %1341
  %1356 = load ptr, ptr %68, align 8, !tbaa !5
  %1357 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1356, i32 0, i32 3
  %1358 = load i32, ptr %1357, align 4, !tbaa !213
  %1359 = icmp ne i32 %1358, 0
  %1360 = zext i1 %1359 to i64
  %1361 = select i1 %1359, ptr @.str.183, ptr @.str.16
  br label %1362

1362:                                             ; preds = %1355, %1353
  %1363 = phi ptr [ %1354, %1353 ], [ %1361, %1355 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.504, i32 noundef %1344, i32 noundef %1347, i32 noundef %1350, ptr noundef %1363)
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  br label %1364

1364:                                             ; preds = %1362
  %1365 = load i32, ptr %67, align 4, !tbaa !116
  %1366 = add nsw i32 %1365, 1
  store i32 %1366, ptr %67, align 4, !tbaa !116
  br label %1301, !llvm.loop !217

1367:                                             ; preds = %1308
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  br label %1368

1368:                                             ; preds = %1367, %1267
  %1369 = load ptr, ptr %3, align 8, !tbaa !5
  %1370 = getelementptr inbounds %struct.ImGuiContext, ptr %1369, i32 0, i32 221
  %1371 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1370)
  %1372 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.505, ptr noundef @.str.506, i32 noundef %1371)
  br i1 %1372, label %1373, label %1386

1373:                                             ; preds = %1368
  %1374 = load ptr, ptr %3, align 8, !tbaa !5
  %1375 = getelementptr inbounds %struct.ImGuiContext, ptr %1374, i32 0, i32 221
  %1376 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %1375)
  %1377 = load ptr, ptr %3, align 8, !tbaa !5
  %1378 = getelementptr inbounds %struct.ImGuiContext, ptr %1377, i32 0, i32 221
  %1379 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %1378, i32 0, i32 0
  %1380 = getelementptr inbounds %struct.ImVector.26, ptr %1379, i32 0, i32 0
  %1381 = load i32, ptr %1380, align 8, !tbaa !218
  %1382 = sext i32 %1381 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #10
  %1383 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %1384 = fmul float %1383, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %72, float noundef 0xB810000000000000, float noundef %1384)
  %1385 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.507, ptr noundef %1376, i64 noundef %1382, ptr noundef nonnull align 4 dereferenceable(8) %72, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  call void @_ZN5ImGui7TreePopEv()
  br label %1386

1386:                                             ; preds = %1373, %1368
  call void @_ZN5ImGui7TreePopEv()
  br label %1387

1387:                                             ; preds = %1386, %1164
  %1388 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.508)
  br i1 %1388, label %1389, label %1781

1389:                                             ; preds = %1387
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.509)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.510)
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  store i32 0, ptr %73, align 4, !tbaa !219
  br label %1390

1390:                                             ; preds = %1414, %1389
  %1391 = load i32, ptr %73, align 4, !tbaa !219
  %1392 = icmp slt i32 %1391, 652
  br i1 %1392, label %1394, label %1393

1393:                                             ; preds = %1390
  store i32 61, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %1417

1394:                                             ; preds = %1390
  %1395 = load i32, ptr %73, align 4, !tbaa !219
  %1396 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1395)
  br i1 %1396, label %1400, label %1397

1397:                                             ; preds = %1394
  %1398 = load i32, ptr %73, align 4, !tbaa !219
  %1399 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %1398)
  br i1 %1399, label %1401, label %1400

1400:                                             ; preds = %1397, %1394
  br label %1414

1401:                                             ; preds = %1397
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1402 = load i32, ptr %73, align 4, !tbaa !219
  %1403 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1402)
  %1404 = zext i1 %1403 to i64
  %1405 = select i1 %1403, ptr @.str.490, ptr @.str.511
  %1406 = load i32, ptr %73, align 4, !tbaa !219
  %1407 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1406)
  %1408 = load i32, ptr %73, align 4, !tbaa !219
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1405, ptr noundef %1407, i32 noundef %1408)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1409 = load i32, ptr %73, align 4, !tbaa !219
  %1410 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %1409)
  %1411 = getelementptr inbounds %struct.ImGuiKeyData, ptr %1410, i32 0, i32 1
  %1412 = load float, ptr %1411, align 4, !tbaa !221
  %1413 = fpext float %1412 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.512, double noundef %1413)
  br label %1414

1414:                                             ; preds = %1401, %1400
  %1415 = load i32, ptr %73, align 4, !tbaa !219
  %1416 = add nsw i32 %1415, 1
  store i32 %1416, ptr %73, align 4, !tbaa !219
  br label %1390, !llvm.loop !223

1417:                                             ; preds = %1393
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.513)
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #10
  store i32 0, ptr %74, align 4, !tbaa !219
  br label %1418

1418:                                             ; preds = %1437, %1417
  %1419 = load i32, ptr %74, align 4, !tbaa !219
  %1420 = icmp slt i32 %1419, 652
  br i1 %1420, label %1422, label %1421

1421:                                             ; preds = %1418
  store i32 64, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #10
  br label %1440

1422:                                             ; preds = %1418
  %1423 = load i32, ptr %74, align 4, !tbaa !219
  %1424 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1423)
  br i1 %1424, label %1428, label %1425

1425:                                             ; preds = %1422
  %1426 = load i32, ptr %74, align 4, !tbaa !219
  %1427 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %1426, i1 noundef zeroext true)
  br i1 %1427, label %1429, label %1428

1428:                                             ; preds = %1425, %1422
  br label %1437

1429:                                             ; preds = %1425
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1430 = load i32, ptr %74, align 4, !tbaa !219
  %1431 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1430)
  %1432 = zext i1 %1431 to i64
  %1433 = select i1 %1431, ptr @.str.490, ptr @.str.511
  %1434 = load i32, ptr %74, align 4, !tbaa !219
  %1435 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1434)
  %1436 = load i32, ptr %74, align 4, !tbaa !219
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1433, ptr noundef %1435, i32 noundef %1436)
  br label %1437

1437:                                             ; preds = %1429, %1428
  %1438 = load i32, ptr %74, align 4, !tbaa !219
  %1439 = add nsw i32 %1438, 1
  store i32 %1439, ptr %74, align 4, !tbaa !219
  br label %1418, !llvm.loop !224

1440:                                             ; preds = %1421
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.514)
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  store i32 0, ptr %75, align 4, !tbaa !219
  br label %1441

1441:                                             ; preds = %1460, %1440
  %1442 = load i32, ptr %75, align 4, !tbaa !219
  %1443 = icmp slt i32 %1442, 652
  br i1 %1443, label %1445, label %1444

1444:                                             ; preds = %1441
  store i32 67, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %1463

1445:                                             ; preds = %1441
  %1446 = load i32, ptr %75, align 4, !tbaa !219
  %1447 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1446)
  br i1 %1447, label %1451, label %1448

1448:                                             ; preds = %1445
  %1449 = load i32, ptr %75, align 4, !tbaa !219
  %1450 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %1449)
  br i1 %1450, label %1452, label %1451

1451:                                             ; preds = %1448, %1445
  br label %1460

1452:                                             ; preds = %1448
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1453 = load i32, ptr %75, align 4, !tbaa !219
  %1454 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1453)
  %1455 = zext i1 %1454 to i64
  %1456 = select i1 %1454, ptr @.str.490, ptr @.str.511
  %1457 = load i32, ptr %75, align 4, !tbaa !219
  %1458 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1457)
  %1459 = load i32, ptr %75, align 4, !tbaa !219
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1456, ptr noundef %1458, i32 noundef %1459)
  br label %1460

1460:                                             ; preds = %1452, %1451
  %1461 = load i32, ptr %75, align 4, !tbaa !219
  %1462 = add nsw i32 %1461, 1
  store i32 %1462, ptr %75, align 4, !tbaa !219
  br label %1441, !llvm.loop !225

1463:                                             ; preds = %1444
  %1464 = load ptr, ptr %4, align 8, !tbaa !5
  %1465 = getelementptr inbounds %struct.ImGuiIO, ptr %1464, i32 0, i32 73
  %1466 = load i8, ptr %1465, align 8, !tbaa !226, !range !13, !noundef !14
  %1467 = trunc i8 %1466 to i1
  %1468 = zext i1 %1467 to i64
  %1469 = select i1 %1467, ptr @.str.516, ptr @.str.16
  %1470 = load ptr, ptr %4, align 8, !tbaa !5
  %1471 = getelementptr inbounds %struct.ImGuiIO, ptr %1470, i32 0, i32 74
  %1472 = load i8, ptr %1471, align 1, !tbaa !227, !range !13, !noundef !14
  %1473 = trunc i8 %1472 to i1
  %1474 = zext i1 %1473 to i64
  %1475 = select i1 %1473, ptr @.str.517, ptr @.str.16
  %1476 = load ptr, ptr %4, align 8, !tbaa !5
  %1477 = getelementptr inbounds %struct.ImGuiIO, ptr %1476, i32 0, i32 75
  %1478 = load i8, ptr %1477, align 2, !tbaa !228, !range !13, !noundef !14
  %1479 = trunc i8 %1478 to i1
  %1480 = zext i1 %1479 to i64
  %1481 = select i1 %1479, ptr @.str.518, ptr @.str.16
  %1482 = load ptr, ptr %4, align 8, !tbaa !5
  %1483 = getelementptr inbounds %struct.ImGuiIO, ptr %1482, i32 0, i32 76
  %1484 = load i8, ptr %1483, align 1, !tbaa !229, !range !13, !noundef !14
  %1485 = trunc i8 %1484 to i1
  %1486 = zext i1 %1485 to i64
  %1487 = select i1 %1485, ptr @.str.519, ptr @.str.16
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.515, ptr noundef %1469, ptr noundef %1475, ptr noundef %1481, ptr noundef %1487)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.520)
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  store i32 0, ptr %76, align 4, !tbaa !116
  br label %1488

1488:                                             ; preds = %1518, %1463
  %1489 = load i32, ptr %76, align 4, !tbaa !116
  %1490 = load ptr, ptr %4, align 8, !tbaa !5
  %1491 = getelementptr inbounds %struct.ImGuiIO, ptr %1490, i32 0, i32 101
  %1492 = getelementptr inbounds %struct.ImVector, ptr %1491, i32 0, i32 0
  %1493 = load i32, ptr %1492, align 8, !tbaa !230
  %1494 = icmp slt i32 %1489, %1493
  br i1 %1494, label %1496, label %1495

1495:                                             ; preds = %1488
  store i32 70, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %1521

1496:                                             ; preds = %1488
  call void @llvm.lifetime.start.p0(i64 2, ptr %77) #10
  %1497 = load ptr, ptr %4, align 8, !tbaa !5
  %1498 = getelementptr inbounds %struct.ImGuiIO, ptr %1497, i32 0, i32 101
  %1499 = load i32, ptr %76, align 4, !tbaa !116
  %1500 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1498, i32 noundef %1499)
  %1501 = load i16, ptr %1500, align 2, !tbaa !231
  store i16 %1501, ptr %77, align 2, !tbaa !231
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1502 = load i16, ptr %77, align 2, !tbaa !231
  %1503 = zext i16 %1502 to i32
  %1504 = icmp sgt i32 %1503, 32
  br i1 %1504, label %1505, label %1512

1505:                                             ; preds = %1496
  %1506 = load i16, ptr %77, align 2, !tbaa !231
  %1507 = zext i16 %1506 to i32
  %1508 = icmp sle i32 %1507, 255
  br i1 %1508, label %1509, label %1512

1509:                                             ; preds = %1505
  %1510 = load i16, ptr %77, align 2, !tbaa !231
  %1511 = trunc i16 %1510 to i8
  br label %1513

1512:                                             ; preds = %1505, %1496
  br label %1513

1513:                                             ; preds = %1512, %1509
  %1514 = phi i8 [ %1511, %1509 ], [ 63, %1512 ]
  %1515 = sext i8 %1514 to i32
  %1516 = load i16, ptr %77, align 2, !tbaa !231
  %1517 = zext i16 %1516 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.521, i32 noundef %1515, i32 noundef %1517)
  call void @llvm.lifetime.end.p0(i64 2, ptr %77) #10
  br label %1518

1518:                                             ; preds = %1513
  %1519 = load i32, ptr %76, align 4, !tbaa !116
  %1520 = add nsw i32 %1519, 1
  store i32 %1520, ptr %76, align 4, !tbaa !116
  br label %1488, !llvm.loop !232

1521:                                             ; preds = %1495
  %1522 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %1522)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.522)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1523 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %1523, label %1524, label %1535

1524:                                             ; preds = %1521
  %1525 = load ptr, ptr %4, align 8, !tbaa !5
  %1526 = getelementptr inbounds %struct.ImGuiIO, ptr %1525, i32 0, i32 67
  %1527 = getelementptr inbounds %struct.ImVec2, ptr %1526, i32 0, i32 0
  %1528 = load float, ptr %1527, align 8, !tbaa !233
  %1529 = fpext float %1528 to double
  %1530 = load ptr, ptr %4, align 8, !tbaa !5
  %1531 = getelementptr inbounds %struct.ImGuiIO, ptr %1530, i32 0, i32 67
  %1532 = getelementptr inbounds %struct.ImVec2, ptr %1531, i32 0, i32 1
  %1533 = load float, ptr %1532, align 4, !tbaa !234
  %1534 = fpext float %1533 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.523, double noundef %1529, double noundef %1534)
  br label %1536

1535:                                             ; preds = %1521
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.524)
  br label %1536

1536:                                             ; preds = %1535, %1524
  %1537 = load ptr, ptr %4, align 8, !tbaa !5
  %1538 = getelementptr inbounds %struct.ImGuiIO, ptr %1537, i32 0, i32 62
  %1539 = getelementptr inbounds %struct.ImVec2, ptr %1538, i32 0, i32 0
  %1540 = load float, ptr %1539, align 8, !tbaa !235
  %1541 = fpext float %1540 to double
  %1542 = load ptr, ptr %4, align 8, !tbaa !5
  %1543 = getelementptr inbounds %struct.ImGuiIO, ptr %1542, i32 0, i32 62
  %1544 = getelementptr inbounds %struct.ImVec2, ptr %1543, i32 0, i32 1
  %1545 = load float, ptr %1544, align 4, !tbaa !236
  %1546 = fpext float %1545 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.525, double noundef %1541, double noundef %1546)
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #10
  store i32 5, ptr %78, align 4, !tbaa !116
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.526)
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  store i32 0, ptr %79, align 4, !tbaa !116
  br label %1547

1547:                                             ; preds = %1565, %1536
  %1548 = load i32, ptr %79, align 4, !tbaa !116
  %1549 = load i32, ptr %78, align 4, !tbaa !116
  %1550 = icmp slt i32 %1548, %1549
  br i1 %1550, label %1552, label %1551

1551:                                             ; preds = %1547
  store i32 73, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %1568

1552:                                             ; preds = %1547
  %1553 = load i32, ptr %79, align 4, !tbaa !116
  %1554 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef %1553)
  br i1 %1554, label %1555, label %1564

1555:                                             ; preds = %1552
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1556 = load i32, ptr %79, align 4, !tbaa !116
  %1557 = load ptr, ptr %4, align 8, !tbaa !5
  %1558 = getelementptr inbounds %struct.ImGuiIO, ptr %1557, i32 0, i32 91
  %1559 = load i32, ptr %79, align 4, !tbaa !116
  %1560 = sext i32 %1559 to i64
  %1561 = getelementptr inbounds [5 x float], ptr %1558, i64 0, i64 %1560
  %1562 = load float, ptr %1561, align 4, !tbaa !237
  %1563 = fpext float %1562 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.527, i32 noundef %1556, double noundef %1563)
  br label %1564

1564:                                             ; preds = %1555, %1552
  br label %1565

1565:                                             ; preds = %1564
  %1566 = load i32, ptr %79, align 4, !tbaa !116
  %1567 = add nsw i32 %1566, 1
  store i32 %1567, ptr %79, align 4, !tbaa !116
  br label %1547, !llvm.loop !238

1568:                                             ; preds = %1551
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.528)
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  store i32 0, ptr %80, align 4, !tbaa !116
  br label %1569

1569:                                             ; preds = %1587, %1568
  %1570 = load i32, ptr %80, align 4, !tbaa !116
  %1571 = load i32, ptr %78, align 4, !tbaa !116
  %1572 = icmp slt i32 %1570, %1571
  br i1 %1572, label %1574, label %1573

1573:                                             ; preds = %1569
  store i32 76, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %1590

1574:                                             ; preds = %1569
  %1575 = load i32, ptr %80, align 4, !tbaa !116
  %1576 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef %1575, i1 noundef zeroext false)
  br i1 %1576, label %1577, label %1586

1577:                                             ; preds = %1574
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1578 = load i32, ptr %80, align 4, !tbaa !116
  %1579 = load ptr, ptr %4, align 8, !tbaa !5
  %1580 = getelementptr inbounds %struct.ImGuiIO, ptr %1579, i32 0, i32 85
  %1581 = load i32, ptr %80, align 4, !tbaa !116
  %1582 = sext i32 %1581 to i64
  %1583 = getelementptr inbounds [5 x i16], ptr %1580, i64 0, i64 %1582
  %1584 = load i16, ptr %1583, align 2, !tbaa !231
  %1585 = zext i16 %1584 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.529, i32 noundef %1578, i32 noundef %1585)
  br label %1586

1586:                                             ; preds = %1577, %1574
  br label %1587

1587:                                             ; preds = %1586
  %1588 = load i32, ptr %80, align 4, !tbaa !116
  %1589 = add nsw i32 %1588, 1
  store i32 %1589, ptr %80, align 4, !tbaa !116
  br label %1569, !llvm.loop !239

1590:                                             ; preds = %1573
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.530)
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  store i32 0, ptr %81, align 4, !tbaa !116
  br label %1591

1591:                                             ; preds = %1602, %1590
  %1592 = load i32, ptr %81, align 4, !tbaa !116
  %1593 = load i32, ptr %78, align 4, !tbaa !116
  %1594 = icmp slt i32 %1592, %1593
  br i1 %1594, label %1596, label %1595

1595:                                             ; preds = %1591
  store i32 79, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %1605

1596:                                             ; preds = %1591
  %1597 = load i32, ptr %81, align 4, !tbaa !116
  %1598 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef %1597)
  br i1 %1598, label %1599, label %1601

1599:                                             ; preds = %1596
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1600 = load i32, ptr %81, align 4, !tbaa !116
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.531, i32 noundef %1600)
  br label %1601

1601:                                             ; preds = %1599, %1596
  br label %1602

1602:                                             ; preds = %1601
  %1603 = load i32, ptr %81, align 4, !tbaa !116
  %1604 = add nsw i32 %1603, 1
  store i32 %1604, ptr %81, align 4, !tbaa !116
  br label %1591, !llvm.loop !240

1605:                                             ; preds = %1595
  %1606 = load ptr, ptr %4, align 8, !tbaa !5
  %1607 = getelementptr inbounds %struct.ImGuiIO, ptr %1606, i32 0, i32 69
  %1608 = load float, ptr %1607, align 8, !tbaa !241
  %1609 = fpext float %1608 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.532, double noundef %1609)
  %1610 = load ptr, ptr %3, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.ImGuiContext, ptr %1610, i32 0, i32 186
  %1612 = load float, ptr %1611, align 4, !tbaa !242
  %1613 = fpext float %1612 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.533, double noundef %1613)
  %1614 = load ptr, ptr %4, align 8, !tbaa !5
  %1615 = getelementptr inbounds %struct.ImGuiIO, ptr %1614, i32 0, i32 71
  %1616 = load i32, ptr %1615, align 8, !tbaa !243
  %1617 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %1616)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.534, ptr noundef %1617)
  %1618 = load ptr, ptr %4, align 8, !tbaa !5
  %1619 = getelementptr inbounds %struct.ImGuiIO, ptr %1618, i32 0, i32 95
  %1620 = load float, ptr %1619, align 4, !tbaa !244
  %1621 = fpext float %1620 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.535, double noundef %1621)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.536)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1622 = load ptr, ptr %3, align 8, !tbaa !5
  %1623 = getelementptr inbounds %struct.ImGuiContext, ptr %1622, i32 0, i32 37
  %1624 = load ptr, ptr %1623, align 8, !tbaa !245
  %1625 = icmp ne ptr %1624, null
  br i1 %1625, label %1626, label %1632

1626:                                             ; preds = %1605
  %1627 = load ptr, ptr %3, align 8, !tbaa !5
  %1628 = getelementptr inbounds %struct.ImGuiContext, ptr %1627, i32 0, i32 37
  %1629 = load ptr, ptr %1628, align 8, !tbaa !245
  %1630 = getelementptr inbounds %struct.ImGuiWindow, ptr %1629, i32 0, i32 1
  %1631 = load ptr, ptr %1630, align 8, !tbaa !115
  br label %1633

1632:                                             ; preds = %1605
  br label %1633

1633:                                             ; preds = %1632, %1626
  %1634 = phi ptr [ %1631, %1626 ], [ @.str.470, %1632 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.537, ptr noundef %1634)
  %1635 = load ptr, ptr %3, align 8, !tbaa !5
  %1636 = getelementptr inbounds %struct.ImGuiContext, ptr %1635, i32 0, i32 40
  %1637 = load float, ptr %1636, align 4, !tbaa !246
  %1638 = fpext float %1637 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.538, double noundef %1638)
  %1639 = load ptr, ptr %3, align 8, !tbaa !5
  %1640 = getelementptr inbounds %struct.ImGuiContext, ptr %1639, i32 0, i32 42
  %1641 = getelementptr inbounds %struct.ImVec2, ptr %1640, i32 0, i32 0
  %1642 = load float, ptr %1641, align 8, !tbaa !247
  %1643 = fpext float %1642 to double
  %1644 = load ptr, ptr %3, align 8, !tbaa !5
  %1645 = getelementptr inbounds %struct.ImGuiContext, ptr %1644, i32 0, i32 42
  %1646 = getelementptr inbounds %struct.ImVec2, ptr %1645, i32 0, i32 1
  %1647 = load float, ptr %1646, align 4, !tbaa !248
  %1648 = fpext float %1647 to double
  %1649 = load ptr, ptr %3, align 8, !tbaa !5
  %1650 = getelementptr inbounds %struct.ImGuiContext, ptr %1649, i32 0, i32 42
  %1651 = getelementptr inbounds %struct.ImVec2, ptr %1650, i32 0, i32 0
  %1652 = load float, ptr %1651, align 8, !tbaa !247
  %1653 = load ptr, ptr %3, align 8, !tbaa !5
  %1654 = getelementptr inbounds %struct.ImGuiContext, ptr %1653, i32 0, i32 42
  %1655 = getelementptr inbounds %struct.ImVec2, ptr %1654, i32 0, i32 1
  %1656 = load float, ptr %1655, align 4, !tbaa !248
  %1657 = fcmp ogt float %1652, %1656
  br i1 %1657, label %1658, label %1659

1658:                                             ; preds = %1633
  br label %1671

1659:                                             ; preds = %1633
  %1660 = load ptr, ptr %3, align 8, !tbaa !5
  %1661 = getelementptr inbounds %struct.ImGuiContext, ptr %1660, i32 0, i32 42
  %1662 = getelementptr inbounds %struct.ImVec2, ptr %1661, i32 0, i32 0
  %1663 = load float, ptr %1662, align 8, !tbaa !247
  %1664 = load ptr, ptr %3, align 8, !tbaa !5
  %1665 = getelementptr inbounds %struct.ImGuiContext, ptr %1664, i32 0, i32 42
  %1666 = getelementptr inbounds %struct.ImVec2, ptr %1665, i32 0, i32 1
  %1667 = load float, ptr %1666, align 4, !tbaa !248
  %1668 = fcmp olt float %1663, %1667
  %1669 = zext i1 %1668 to i64
  %1670 = select i1 %1668, ptr @.str.540, ptr @.str.541
  br label %1671

1671:                                             ; preds = %1659, %1658
  %1672 = phi ptr [ @.str.386, %1658 ], [ %1670, %1659 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.539, double noundef %1643, double noundef %1648, ptr noundef %1672)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.542)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #10
  %1673 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1674 = fmul float %1673, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %82, float noundef 0xB810000000000000, float noundef %1674)
  %1675 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef @.str.543, ptr noundef nonnull align 4 dereferenceable(8) %82)
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #10
  br i1 %1675, label %1676, label %1720

1676:                                             ; preds = %1671
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #10
  store i32 512, ptr %83, align 4, !tbaa !219
  br label %1677

1677:                                             ; preds = %1716, %1676
  %1678 = load i32, ptr %83, align 4, !tbaa !219
  %1679 = icmp slt i32 %1678, 652
  br i1 %1679, label %1681, label %1680

1680:                                             ; preds = %1677
  store i32 82, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #10
  br label %1719

1681:                                             ; preds = %1677
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #10
  %1682 = load ptr, ptr %3, align 8, !tbaa !5
  %1683 = load i32, ptr %83, align 4, !tbaa !219
  %1684 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %1682, i32 noundef %1683)
  store ptr %1684, ptr %84, align 8, !tbaa !5
  %1685 = load ptr, ptr %84, align 8, !tbaa !5
  %1686 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1685, i32 0, i32 0
  %1687 = load i32, ptr %1686, align 4, !tbaa !249
  %1688 = icmp eq i32 %1687, -1
  br i1 %1688, label %1689, label %1690

1689:                                             ; preds = %1681
  store i32 84, ptr %6, align 4
  br label %1713

1690:                                             ; preds = %1681
  %1691 = load i32, ptr %83, align 4, !tbaa !219
  %1692 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1691)
  %1693 = load ptr, ptr %84, align 8, !tbaa !5
  %1694 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1693, i32 0, i32 0
  %1695 = load i32, ptr %1694, align 4, !tbaa !249
  %1696 = load ptr, ptr %84, align 8, !tbaa !5
  %1697 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1696, i32 0, i32 3
  %1698 = load i8, ptr %1697, align 1, !tbaa !251, !range !13, !noundef !14
  %1699 = trunc i8 %1698 to i1
  br i1 %1699, label %1700, label %1701

1700:                                             ; preds = %1690
  br label %1708

1701:                                             ; preds = %1690
  %1702 = load ptr, ptr %84, align 8, !tbaa !5
  %1703 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1702, i32 0, i32 2
  %1704 = load i8, ptr %1703, align 4, !tbaa !252, !range !13, !noundef !14
  %1705 = trunc i8 %1704 to i1
  %1706 = zext i1 %1705 to i64
  %1707 = select i1 %1705, ptr @.str.546, ptr @.str.16
  br label %1708

1708:                                             ; preds = %1701, %1700
  %1709 = phi ptr [ @.str.545, %1700 ], [ %1707, %1701 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.544, ptr noundef %1692, i32 noundef %1695, ptr noundef %1709)
  %1710 = load ptr, ptr %84, align 8, !tbaa !5
  %1711 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1710, i32 0, i32 0
  %1712 = load i32, ptr %1711, align 4, !tbaa !249
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1712)
  store i32 0, ptr %6, align 4
  br label %1713

1713:                                             ; preds = %1708, %1689
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #10
  %1714 = load i32, ptr %6, align 4
  switch i32 %1714, label %2380 [
    i32 0, label %1715
    i32 84, label %1716
  ]

1715:                                             ; preds = %1713
  br label %1716

1716:                                             ; preds = %1715, %1713
  %1717 = load i32, ptr %83, align 4, !tbaa !219
  %1718 = add nsw i32 %1717, 1
  store i32 %1718, ptr %83, align 4, !tbaa !219
  br label %1677, !llvm.loop !253

1719:                                             ; preds = %1680
  call void @_ZN5ImGui10EndListBoxEv()
  br label %1720

1720:                                             ; preds = %1719, %1671
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.547)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  %1721 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1722 = fmul float %1721, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %85, float noundef 0xB810000000000000, float noundef %1722)
  %1723 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef @.str.548, ptr noundef nonnull align 4 dereferenceable(8) %85)
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  br i1 %1723, label %1724, label %1772

1724:                                             ; preds = %1720
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  store i32 512, ptr %86, align 4, !tbaa !219
  br label %1725

1725:                                             ; preds = %1768, %1724
  %1726 = load i32, ptr %86, align 4, !tbaa !219
  %1727 = icmp slt i32 %1726, 652
  br i1 %1727, label %1729, label %1728

1728:                                             ; preds = %1725
  store i32 85, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  br label %1771

1729:                                             ; preds = %1725
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #10
  %1730 = load ptr, ptr %3, align 8, !tbaa !5
  %1731 = getelementptr inbounds %struct.ImGuiContext, ptr %1730, i32 0, i32 70
  store ptr %1731, ptr %87, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %88) #10
  %1732 = load ptr, ptr %87, align 8, !tbaa !5
  %1733 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1732, i32 0, i32 0
  %1734 = load i32, ptr %86, align 4, !tbaa !219
  %1735 = sub nsw i32 %1734, 512
  %1736 = sext i32 %1735 to i64
  %1737 = getelementptr inbounds [140 x i16], ptr %1733, i64 0, i64 %1736
  %1738 = load i16, ptr %1737, align 2, !tbaa !231
  store i16 %1738, ptr %88, align 2, !tbaa !231
  br label %1739

1739:                                             ; preds = %1744, %1729
  %1740 = load i16, ptr %88, align 2, !tbaa !231
  %1741 = sext i16 %1740 to i32
  %1742 = icmp ne i32 %1741, -1
  br i1 %1742, label %1744, label %1743

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

1744:                                             ; preds = %1739
  call void @llvm.lifetime.start.p0(i64 64, ptr %89) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #10
  %1745 = load ptr, ptr %87, align 8, !tbaa !5
  %1746 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1745, i32 0, i32 1
  %1747 = load i16, ptr %88, align 2, !tbaa !231
  %1748 = sext i16 %1747 to i32
  %1749 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1746, i32 noundef %1748)
  store ptr %1749, ptr %90, align 8, !tbaa !5
  %1750 = load i32, ptr %86, align 4, !tbaa !219
  %1751 = load ptr, ptr %90, align 8, !tbaa !5
  %1752 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1751, i32 0, i32 1
  %1753 = load i16, ptr %1752, align 2, !tbaa !254
  %1754 = zext i16 %1753 to i32
  %1755 = or i32 %1750, %1754
  %1756 = getelementptr inbounds [64 x i8], ptr %89, i64 0, i64 0
  call void @_ZN5ImGui15GetKeyChordNameEiPci(i32 noundef %1755, ptr noundef %1756, i32 noundef 64)
  %1757 = getelementptr inbounds [64 x i8], ptr %89, i64 0, i64 0
  %1758 = load ptr, ptr %90, align 8, !tbaa !5
  %1759 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1758, i32 0, i32 3
  %1760 = load i32, ptr %1759, align 4, !tbaa !256
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.549, ptr noundef %1757, i32 noundef %1760)
  %1761 = load ptr, ptr %90, align 8, !tbaa !5
  %1762 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1761, i32 0, i32 3
  %1763 = load i32, ptr %1762, align 4, !tbaa !256
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1763)
  %1764 = load ptr, ptr %90, align 8, !tbaa !5
  %1765 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1764, i32 0, i32 0
  %1766 = load i16, ptr %1765, align 4, !tbaa !257
  store i16 %1766, ptr %88, align 2, !tbaa !231
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %89) #10
  br label %1739, !llvm.loop !258

1767:                                             ; preds = %1743
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  br label %1768

1768:                                             ; preds = %1767
  %1769 = load i32, ptr %86, align 4, !tbaa !219
  %1770 = add nsw i32 %1769, 1
  store i32 %1770, ptr %86, align 4, !tbaa !219
  br label %1725, !llvm.loop !259

1771:                                             ; preds = %1728
  call void @_ZN5ImGui10EndListBoxEv()
  br label %1772

1772:                                             ; preds = %1771, %1720
  %1773 = load ptr, ptr %3, align 8, !tbaa !5
  %1774 = getelementptr inbounds %struct.ImGuiContext, ptr %1773, i32 0, i32 72
  %1775 = load i8, ptr %1774, align 4, !tbaa !260, !range !13, !noundef !14
  %1776 = trunc i8 %1775 to i1
  %1777 = zext i1 %1776 to i32
  %1778 = load ptr, ptr %3, align 8, !tbaa !5
  %1779 = getelementptr inbounds %struct.ImGuiContext, ptr %1778, i32 0, i32 71
  %1780 = load i32, ptr %1779, align 8, !tbaa !261
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.550, i32 noundef %1777, i32 noundef %1780)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1781

1781:                                             ; preds = %1772, %1387
  %1782 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.551)
  br i1 %1782, label %1783, label %2036

1783:                                             ; preds = %1781
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.552)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1784 = load ptr, ptr %3, align 8, !tbaa !5
  %1785 = getelementptr inbounds %struct.ImGuiContext, ptr %1784, i32 0, i32 34
  %1786 = load ptr, ptr %1785, align 8, !tbaa !262
  %1787 = icmp ne ptr %1786, null
  br i1 %1787, label %1788, label %1794

1788:                                             ; preds = %1783
  %1789 = load ptr, ptr %3, align 8, !tbaa !5
  %1790 = getelementptr inbounds %struct.ImGuiContext, ptr %1789, i32 0, i32 34
  %1791 = load ptr, ptr %1790, align 8, !tbaa !262
  %1792 = getelementptr inbounds %struct.ImGuiWindow, ptr %1791, i32 0, i32 1
  %1793 = load ptr, ptr %1792, align 8, !tbaa !115
  br label %1795

1794:                                             ; preds = %1783
  br label %1795

1795:                                             ; preds = %1794, %1788
  %1796 = phi ptr [ %1793, %1788 ], [ @.str.470, %1794 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.553, ptr noundef %1796)
  %1797 = load ptr, ptr %3, align 8, !tbaa !5
  %1798 = getelementptr inbounds %struct.ImGuiContext, ptr %1797, i32 0, i32 34
  %1799 = load ptr, ptr %1798, align 8, !tbaa !262
  %1800 = icmp ne ptr %1799, null
  br i1 %1800, label %1801, label %1809

1801:                                             ; preds = %1795
  %1802 = load ptr, ptr %3, align 8, !tbaa !5
  %1803 = getelementptr inbounds %struct.ImGuiContext, ptr %1802, i32 0, i32 34
  %1804 = load ptr, ptr %1803, align 8, !tbaa !262
  %1805 = getelementptr inbounds %struct.ImGuiWindow, ptr %1804, i32 0, i32 94
  %1806 = load ptr, ptr %1805, align 8, !tbaa !263
  %1807 = getelementptr inbounds %struct.ImGuiWindow, ptr %1806, i32 0, i32 1
  %1808 = load ptr, ptr %1807, align 8, !tbaa !115
  br label %1810

1809:                                             ; preds = %1795
  br label %1810

1810:                                             ; preds = %1809, %1801
  %1811 = phi ptr [ %1808, %1801 ], [ @.str.470, %1809 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.554, ptr noundef %1811)
  %1812 = load ptr, ptr %3, align 8, !tbaa !5
  %1813 = getelementptr inbounds %struct.ImGuiContext, ptr %1812, i32 0, i32 35
  %1814 = load ptr, ptr %1813, align 8, !tbaa !264
  %1815 = icmp ne ptr %1814, null
  br i1 %1815, label %1816, label %1822

1816:                                             ; preds = %1810
  %1817 = load ptr, ptr %3, align 8, !tbaa !5
  %1818 = getelementptr inbounds %struct.ImGuiContext, ptr %1817, i32 0, i32 35
  %1819 = load ptr, ptr %1818, align 8, !tbaa !264
  %1820 = getelementptr inbounds %struct.ImGuiWindow, ptr %1819, i32 0, i32 1
  %1821 = load ptr, ptr %1820, align 8, !tbaa !115
  br label %1823

1822:                                             ; preds = %1810
  br label %1823

1823:                                             ; preds = %1822, %1816
  %1824 = phi ptr [ %1821, %1816 ], [ @.str.470, %1822 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.555, ptr noundef %1824)
  %1825 = load ptr, ptr %3, align 8, !tbaa !5
  %1826 = getelementptr inbounds %struct.ImGuiContext, ptr %1825, i32 0, i32 250
  %1827 = load ptr, ptr %1826, align 8, !tbaa !265
  %1828 = icmp ne ptr %1827, null
  br i1 %1828, label %1829, label %1835

1829:                                             ; preds = %1823
  %1830 = load ptr, ptr %3, align 8, !tbaa !5
  %1831 = getelementptr inbounds %struct.ImGuiContext, ptr %1830, i32 0, i32 250
  %1832 = load ptr, ptr %1831, align 8, !tbaa !265
  %1833 = getelementptr inbounds %struct.ImGuiDockNode, ptr %1832, i32 0, i32 0
  %1834 = load i32, ptr %1833, align 8, !tbaa !266
  br label %1836

1835:                                             ; preds = %1823
  br label %1836

1836:                                             ; preds = %1835, %1829
  %1837 = phi i32 [ %1834, %1829 ], [ 0, %1835 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.556, i32 noundef %1837)
  %1838 = load ptr, ptr %3, align 8, !tbaa !5
  %1839 = getelementptr inbounds %struct.ImGuiContext, ptr %1838, i32 0, i32 36
  %1840 = load ptr, ptr %1839, align 8, !tbaa !270
  %1841 = icmp ne ptr %1840, null
  br i1 %1841, label %1842, label %1848

1842:                                             ; preds = %1836
  %1843 = load ptr, ptr %3, align 8, !tbaa !5
  %1844 = getelementptr inbounds %struct.ImGuiContext, ptr %1843, i32 0, i32 36
  %1845 = load ptr, ptr %1844, align 8, !tbaa !270
  %1846 = getelementptr inbounds %struct.ImGuiWindow, ptr %1845, i32 0, i32 1
  %1847 = load ptr, ptr %1846, align 8, !tbaa !115
  br label %1849

1848:                                             ; preds = %1836
  br label %1849

1849:                                             ; preds = %1848, %1842
  %1850 = phi ptr [ %1847, %1842 ], [ @.str.470, %1848 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.557, ptr noundef %1850)
  %1851 = load ptr, ptr %3, align 8, !tbaa !5
  %1852 = getelementptr inbounds %struct.ImGuiContext, ptr %1851, i32 0, i32 92
  %1853 = load ptr, ptr %1852, align 8, !tbaa !170
  %1854 = getelementptr inbounds %struct.ImGuiViewport, ptr %1853, i32 0, i32 0
  %1855 = load i32, ptr %1854, align 8, !tbaa !156
  %1856 = load ptr, ptr %3, align 8, !tbaa !5
  %1857 = getelementptr inbounds %struct.ImGuiContext, ptr %1856, i32 0, i32 2
  %1858 = getelementptr inbounds %struct.ImGuiIO, ptr %1857, i32 0, i32 72
  %1859 = load i32, ptr %1858, align 4, !tbaa !171
  %1860 = load ptr, ptr %3, align 8, !tbaa !5
  %1861 = getelementptr inbounds %struct.ImGuiContext, ptr %1860, i32 0, i32 93
  %1862 = load ptr, ptr %1861, align 8, !tbaa !172
  %1863 = icmp ne ptr %1862, null
  br i1 %1863, label %1864, label %1870

1864:                                             ; preds = %1849
  %1865 = load ptr, ptr %3, align 8, !tbaa !5
  %1866 = getelementptr inbounds %struct.ImGuiContext, ptr %1865, i32 0, i32 93
  %1867 = load ptr, ptr %1866, align 8, !tbaa !172
  %1868 = getelementptr inbounds %struct.ImGuiViewport, ptr %1867, i32 0, i32 0
  %1869 = load i32, ptr %1868, align 8, !tbaa !156
  br label %1871

1870:                                             ; preds = %1849
  br label %1871

1871:                                             ; preds = %1870, %1864
  %1872 = phi i32 [ %1869, %1864 ], [ 0, %1870 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.463, i32 noundef %1855, i32 noundef %1859, i32 noundef %1872)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.558)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1873 = load ptr, ptr %3, align 8, !tbaa !5
  %1874 = getelementptr inbounds %struct.ImGuiContext, ptr %1873, i32 0, i32 50
  %1875 = load i32, ptr %1874, align 8, !tbaa !271
  %1876 = load ptr, ptr %3, align 8, !tbaa !5
  %1877 = getelementptr inbounds %struct.ImGuiContext, ptr %1876, i32 0, i32 63
  %1878 = load i32, ptr %1877, align 8, !tbaa !272
  %1879 = load ptr, ptr %3, align 8, !tbaa !5
  %1880 = getelementptr inbounds %struct.ImGuiContext, ptr %1879, i32 0, i32 52
  %1881 = load float, ptr %1880, align 8, !tbaa !273
  %1882 = fpext float %1881 to double
  %1883 = load ptr, ptr %3, align 8, !tbaa !5
  %1884 = getelementptr inbounds %struct.ImGuiContext, ptr %1883, i32 0, i32 54
  %1885 = load i8, ptr %1884, align 1, !tbaa !274, !range !13, !noundef !14
  %1886 = trunc i8 %1885 to i1
  %1887 = zext i1 %1886 to i32
  %1888 = load ptr, ptr %3, align 8, !tbaa !5
  %1889 = getelementptr inbounds %struct.ImGuiContext, ptr %1888, i32 0, i32 61
  %1890 = load i32, ptr %1889, align 8, !tbaa !275
  %1891 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1890)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.559, i32 noundef %1875, i32 noundef %1878, double noundef %1882, i32 noundef %1887, ptr noundef %1891)
  %1892 = load ptr, ptr %3, align 8, !tbaa !5
  %1893 = getelementptr inbounds %struct.ImGuiContext, ptr %1892, i32 0, i32 50
  %1894 = load i32, ptr %1893, align 8, !tbaa !271
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1894)
  %1895 = load ptr, ptr %3, align 8, !tbaa !5
  %1896 = getelementptr inbounds %struct.ImGuiContext, ptr %1895, i32 0, i32 60
  %1897 = load ptr, ptr %1896, align 8, !tbaa !276
  %1898 = icmp ne ptr %1897, null
  br i1 %1898, label %1899, label %1905

1899:                                             ; preds = %1871
  %1900 = load ptr, ptr %3, align 8, !tbaa !5
  %1901 = getelementptr inbounds %struct.ImGuiContext, ptr %1900, i32 0, i32 60
  %1902 = load ptr, ptr %1901, align 8, !tbaa !276
  %1903 = getelementptr inbounds %struct.ImGuiWindow, ptr %1902, i32 0, i32 1
  %1904 = load ptr, ptr %1903, align 8, !tbaa !115
  br label %1906

1905:                                             ; preds = %1871
  br label %1906

1906:                                             ; preds = %1905, %1899
  %1907 = phi ptr [ %1904, %1899 ], [ @.str.470, %1905 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.560, ptr noundef %1907)
  %1908 = load ptr, ptr %3, align 8, !tbaa !5
  %1909 = getelementptr inbounds %struct.ImGuiContext, ptr %1908, i32 0, i32 72
  %1910 = load i8, ptr %1909, align 4, !tbaa !260, !range !13, !noundef !14
  %1911 = trunc i8 %1910 to i1
  %1912 = zext i1 %1911 to i32
  %1913 = load ptr, ptr %3, align 8, !tbaa !5
  %1914 = getelementptr inbounds %struct.ImGuiContext, ptr %1913, i32 0, i32 71
  %1915 = load i32, ptr %1914, align 8, !tbaa !261
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.561, i32 noundef %1912, i32 noundef %1915)
  %1916 = load ptr, ptr %3, align 8, !tbaa !5
  %1917 = getelementptr inbounds %struct.ImGuiContext, ptr %1916, i32 0, i32 45
  %1918 = load i32, ptr %1917, align 8, !tbaa !277
  %1919 = load ptr, ptr %3, align 8, !tbaa !5
  %1920 = getelementptr inbounds %struct.ImGuiContext, ptr %1919, i32 0, i32 48
  %1921 = load float, ptr %1920, align 8, !tbaa !278
  %1922 = fpext float %1921 to double
  %1923 = load ptr, ptr %3, align 8, !tbaa !5
  %1924 = getelementptr inbounds %struct.ImGuiContext, ptr %1923, i32 0, i32 46
  %1925 = load i8, ptr %1924, align 4, !tbaa !279, !range !13, !noundef !14
  %1926 = trunc i8 %1925 to i1
  %1927 = zext i1 %1926 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.562, i32 noundef %1918, double noundef %1922, i32 noundef %1927)
  %1928 = load ptr, ptr %3, align 8, !tbaa !5
  %1929 = getelementptr inbounds %struct.ImGuiContext, ptr %1928, i32 0, i32 179
  %1930 = load i32, ptr %1929, align 8, !tbaa !280
  %1931 = load ptr, ptr %3, align 8, !tbaa !5
  %1932 = getelementptr inbounds %struct.ImGuiContext, ptr %1931, i32 0, i32 181
  %1933 = load float, ptr %1932, align 8, !tbaa !281
  %1934 = fpext float %1933 to double
  %1935 = load ptr, ptr %3, align 8, !tbaa !5
  %1936 = getelementptr inbounds %struct.ImGuiContext, ptr %1935, i32 0, i32 182
  %1937 = load float, ptr %1936, align 4, !tbaa !282
  %1938 = fpext float %1937 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.563, i32 noundef %1930, double noundef %1934, double noundef %1938)
  %1939 = load ptr, ptr %3, align 8, !tbaa !5
  %1940 = getelementptr inbounds %struct.ImGuiContext, ptr %1939, i32 0, i32 150
  %1941 = load i8, ptr %1940, align 8, !tbaa !283, !range !13, !noundef !14
  %1942 = trunc i8 %1941 to i1
  %1943 = zext i1 %1942 to i32
  %1944 = load ptr, ptr %3, align 8, !tbaa !5
  %1945 = getelementptr inbounds %struct.ImGuiContext, ptr %1944, i32 0, i32 156
  %1946 = getelementptr inbounds %struct.ImGuiPayload, ptr %1945, i32 0, i32 2
  %1947 = load i32, ptr %1946, align 4, !tbaa !284
  %1948 = load ptr, ptr %3, align 8, !tbaa !5
  %1949 = getelementptr inbounds %struct.ImGuiContext, ptr %1948, i32 0, i32 156
  %1950 = getelementptr inbounds %struct.ImGuiPayload, ptr %1949, i32 0, i32 5
  %1951 = getelementptr inbounds [33 x i8], ptr %1950, i64 0, i64 0
  %1952 = load ptr, ptr %3, align 8, !tbaa !5
  %1953 = getelementptr inbounds %struct.ImGuiContext, ptr %1952, i32 0, i32 156
  %1954 = getelementptr inbounds %struct.ImGuiPayload, ptr %1953, i32 0, i32 1
  %1955 = load i32, ptr %1954, align 8, !tbaa !285
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.564, i32 noundef %1943, i32 noundef %1947, ptr noundef %1951, i32 noundef %1955)
  %1956 = load ptr, ptr %3, align 8, !tbaa !5
  %1957 = getelementptr inbounds %struct.ImGuiContext, ptr %1956, i32 0, i32 156
  %1958 = getelementptr inbounds %struct.ImGuiPayload, ptr %1957, i32 0, i32 2
  %1959 = load i32, ptr %1958, align 4, !tbaa !284
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1959)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.565)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1960 = load ptr, ptr %3, align 8, !tbaa !5
  %1961 = getelementptr inbounds %struct.ImGuiContext, ptr %1960, i32 0, i32 99
  %1962 = load ptr, ptr %1961, align 8, !tbaa !114
  %1963 = icmp ne ptr %1962, null
  br i1 %1963, label %1964, label %1970

1964:                                             ; preds = %1906
  %1965 = load ptr, ptr %3, align 8, !tbaa !5
  %1966 = getelementptr inbounds %struct.ImGuiContext, ptr %1965, i32 0, i32 99
  %1967 = load ptr, ptr %1966, align 8, !tbaa !114
  %1968 = getelementptr inbounds %struct.ImGuiWindow, ptr %1967, i32 0, i32 1
  %1969 = load ptr, ptr %1968, align 8, !tbaa !115
  br label %1971

1970:                                             ; preds = %1906
  br label %1971

1971:                                             ; preds = %1970, %1964
  %1972 = phi ptr [ %1969, %1964 ], [ @.str.470, %1970 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.566, ptr noundef %1972)
  %1973 = load ptr, ptr %3, align 8, !tbaa !5
  %1974 = getelementptr inbounds %struct.ImGuiContext, ptr %1973, i32 0, i32 100
  %1975 = load i32, ptr %1974, align 8, !tbaa !286
  %1976 = load ptr, ptr %3, align 8, !tbaa !5
  %1977 = getelementptr inbounds %struct.ImGuiContext, ptr %1976, i32 0, i32 112
  %1978 = load i32, ptr %1977, align 8, !tbaa !287
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.567, i32 noundef %1975, i32 noundef %1978)
  %1979 = load ptr, ptr %3, align 8, !tbaa !5
  %1980 = getelementptr inbounds %struct.ImGuiContext, ptr %1979, i32 0, i32 100
  %1981 = load i32, ptr %1980, align 8, !tbaa !286
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1981)
  %1982 = load ptr, ptr %3, align 8, !tbaa !5
  %1983 = getelementptr inbounds %struct.ImGuiContext, ptr %1982, i32 0, i32 111
  %1984 = load i32, ptr %1983, align 4, !tbaa !288
  %1985 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1984)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.568, ptr noundef %1985)
  %1986 = load ptr, ptr %3, align 8, !tbaa !5
  %1987 = getelementptr inbounds %struct.ImGuiContext, ptr %1986, i32 0, i32 2
  %1988 = getelementptr inbounds %struct.ImGuiIO, ptr %1987, i32 0, i32 54
  %1989 = load i8, ptr %1988, align 1, !tbaa !289, !range !13, !noundef !14
  %1990 = trunc i8 %1989 to i1
  %1991 = zext i1 %1990 to i32
  %1992 = load ptr, ptr %3, align 8, !tbaa !5
  %1993 = getelementptr inbounds %struct.ImGuiContext, ptr %1992, i32 0, i32 2
  %1994 = getelementptr inbounds %struct.ImGuiIO, ptr %1993, i32 0, i32 55
  %1995 = load i8, ptr %1994, align 2, !tbaa !290, !range !13, !noundef !14
  %1996 = trunc i8 %1995 to i1
  %1997 = zext i1 %1996 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.569, i32 noundef %1991, i32 noundef %1997)
  %1998 = load ptr, ptr %3, align 8, !tbaa !5
  %1999 = getelementptr inbounds %struct.ImGuiContext, ptr %1998, i32 0, i32 102
  %2000 = load i32, ptr %1999, align 8, !tbaa !291
  %2001 = load ptr, ptr %3, align 8, !tbaa !5
  %2002 = getelementptr inbounds %struct.ImGuiContext, ptr %2001, i32 0, i32 103
  %2003 = load i32, ptr %2002, align 4, !tbaa !292
  %2004 = load ptr, ptr %3, align 8, !tbaa !5
  %2005 = getelementptr inbounds %struct.ImGuiContext, ptr %2004, i32 0, i32 104
  %2006 = load i32, ptr %2005, align 8, !tbaa !293
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.570, i32 noundef %2000, i32 noundef %2003, i32 noundef %2006)
  %2007 = load ptr, ptr %3, align 8, !tbaa !5
  %2008 = getelementptr inbounds %struct.ImGuiContext, ptr %2007, i32 0, i32 105
  %2009 = load i32, ptr %2008, align 4, !tbaa !294
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.571, i32 noundef %2009)
  %2010 = load ptr, ptr %3, align 8, !tbaa !5
  %2011 = getelementptr inbounds %struct.ImGuiContext, ptr %2010, i32 0, i32 115
  %2012 = load i8, ptr %2011, align 2, !tbaa !295, !range !13, !noundef !14
  %2013 = trunc i8 %2012 to i1
  %2014 = zext i1 %2013 to i32
  %2015 = load ptr, ptr %3, align 8, !tbaa !5
  %2016 = getelementptr inbounds %struct.ImGuiContext, ptr %2015, i32 0, i32 116
  %2017 = load i8, ptr %2016, align 1, !tbaa !296, !range !13, !noundef !14
  %2018 = trunc i8 %2017 to i1
  %2019 = zext i1 %2018 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.572, i32 noundef %2014, i32 noundef %2019)
  %2020 = load ptr, ptr %3, align 8, !tbaa !5
  %2021 = getelementptr inbounds %struct.ImGuiContext, ptr %2020, i32 0, i32 101
  %2022 = load i32, ptr %2021, align 4, !tbaa !297
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.573, i32 noundef %2022)
  %2023 = load ptr, ptr %3, align 8, !tbaa !5
  %2024 = getelementptr inbounds %struct.ImGuiContext, ptr %2023, i32 0, i32 141
  %2025 = load ptr, ptr %2024, align 8, !tbaa !298
  %2026 = icmp ne ptr %2025, null
  br i1 %2026, label %2027, label %2033

2027:                                             ; preds = %1971
  %2028 = load ptr, ptr %3, align 8, !tbaa !5
  %2029 = getelementptr inbounds %struct.ImGuiContext, ptr %2028, i32 0, i32 141
  %2030 = load ptr, ptr %2029, align 8, !tbaa !298
  %2031 = getelementptr inbounds %struct.ImGuiWindow, ptr %2030, i32 0, i32 1
  %2032 = load ptr, ptr %2031, align 8, !tbaa !115
  br label %2034

2033:                                             ; preds = %1971
  br label %2034

2034:                                             ; preds = %2033, %2027
  %2035 = phi ptr [ %2032, %2027 ], [ @.str.470, %2033 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.574, ptr noundef %2035)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %2036

2036:                                             ; preds = %2034, %1781
  %2037 = load ptr, ptr %5, align 8, !tbaa !5
  %2038 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2037, i32 0, i32 2
  %2039 = load i8, ptr %2038, align 2, !tbaa !113, !range !13, !noundef !14
  %2040 = trunc i8 %2039 to i1
  br i1 %2040, label %2046, label %2041

2041:                                             ; preds = %2036
  %2042 = load ptr, ptr %5, align 8, !tbaa !5
  %2043 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2042, i32 0, i32 3
  %2044 = load i8, ptr %2043, align 1, !tbaa !299, !range !13, !noundef !14
  %2045 = trunc i8 %2044 to i1
  br i1 %2045, label %2046, label %2125

2046:                                             ; preds = %2041, %2036
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  store i32 0, ptr %91, align 4, !tbaa !116
  br label %2047

2047:                                             ; preds = %2121, %2046
  %2048 = load i32, ptr %91, align 4, !tbaa !116
  %2049 = load ptr, ptr %3, align 8, !tbaa !5
  %2050 = getelementptr inbounds %struct.ImGuiContext, ptr %2049, i32 0, i32 26
  %2051 = getelementptr inbounds %struct.ImVector.4, ptr %2050, i32 0, i32 0
  %2052 = load i32, ptr %2051, align 8, !tbaa !142
  %2053 = icmp slt i32 %2048, %2052
  br i1 %2053, label %2055, label %2054

2054:                                             ; preds = %2047
  store i32 90, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %2124

2055:                                             ; preds = %2047
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #10
  %2056 = load ptr, ptr %3, align 8, !tbaa !5
  %2057 = getelementptr inbounds %struct.ImGuiContext, ptr %2056, i32 0, i32 26
  %2058 = load i32, ptr %91, align 4, !tbaa !116
  %2059 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %2057, i32 noundef %2058)
  %2060 = load ptr, ptr %2059, align 8, !tbaa !5
  store ptr %2060, ptr %92, align 8, !tbaa !5
  %2061 = load ptr, ptr %92, align 8, !tbaa !5
  %2062 = getelementptr inbounds %struct.ImGuiWindow, ptr %2061, i32 0, i32 39
  %2063 = load i8, ptr %2062, align 4, !tbaa !300, !range !13, !noundef !14
  %2064 = trunc i8 %2063 to i1
  br i1 %2064, label %2066, label %2065

2065:                                             ; preds = %2055
  store i32 92, ptr %6, align 4
  br label %2118

2066:                                             ; preds = %2055
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #10
  %2067 = load ptr, ptr %92, align 8, !tbaa !5
  %2068 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %2067)
  store ptr %2068, ptr %93, align 8, !tbaa !5
  %2069 = load ptr, ptr %5, align 8, !tbaa !5
  %2070 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2069, i32 0, i32 2
  %2071 = load i8, ptr %2070, align 2, !tbaa !113, !range !13, !noundef !14
  %2072 = trunc i8 %2071 to i1
  br i1 %2072, label %2073, label %2086

2073:                                             ; preds = %2066
  call void @llvm.lifetime.start.p0(i64 16, ptr %94) #10
  %2074 = load ptr, ptr %92, align 8, !tbaa !5
  %2075 = load ptr, ptr %5, align 8, !tbaa !5
  %2076 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2075, i32 0, i32 9
  %2077 = load i32, ptr %2076, align 4, !tbaa !53
  %2078 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %2074, i32 noundef %2077)
  %2079 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %94, i32 0, i32 0
  %2080 = extractvalue { <2 x float>, <2 x float> } %2078, 0
  store <2 x float> %2080, ptr %2079, align 4
  %2081 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %94, i32 0, i32 1
  %2082 = extractvalue { <2 x float>, <2 x float> } %2078, 1
  store <2 x float> %2082, ptr %2081, align 4
  %2083 = load ptr, ptr %93, align 8, !tbaa !5
  %2084 = getelementptr inbounds %struct.ImRect, ptr %94, i32 0, i32 0
  %2085 = getelementptr inbounds %struct.ImRect, ptr %94, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %2083, ptr noundef nonnull align 4 dereferenceable(8) %2084, ptr noundef nonnull align 4 dereferenceable(8) %2085, 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 %94) #10
  br label %2086

2086:                                             ; preds = %2073, %2066
  %2087 = load ptr, ptr %5, align 8, !tbaa !5
  %2088 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2087, i32 0, i32 3
  %2089 = load i8, ptr %2088, align 1, !tbaa !299, !range !13, !noundef !14
  %2090 = trunc i8 %2089 to i1
  br i1 %2090, label %2091, label %2117

2091:                                             ; preds = %2086
  %2092 = load ptr, ptr %92, align 8, !tbaa !5
  %2093 = getelementptr inbounds %struct.ImGuiWindow, ptr %2092, i32 0, i32 3
  %2094 = load i32, ptr %2093, align 4, !tbaa !186
  %2095 = and i32 %2094, 16777216
  %2096 = icmp ne i32 %2095, 0
  br i1 %2096, label %2117, label %2097

2097:                                             ; preds = %2091
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #10
  %2098 = getelementptr inbounds [32 x i8], ptr %95, i64 0, i64 0
  %2099 = load ptr, ptr %92, align 8, !tbaa !5
  %2100 = getelementptr inbounds %struct.ImGuiWindow, ptr %2099, i32 0, i32 53
  %2101 = load i16, ptr %2100, align 2, !tbaa !301
  %2102 = sext i16 %2101 to i32
  %2103 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2098, i64 noundef 32, ptr noundef @.str.395, i32 noundef %2102)
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #10
  %2104 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  store float %2104, ptr %96, align 4, !tbaa !237
  %2105 = load ptr, ptr %93, align 8, !tbaa !5
  %2106 = load ptr, ptr %92, align 8, !tbaa !5
  %2107 = getelementptr inbounds %struct.ImGuiWindow, ptr %2106, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #10
  %2108 = load ptr, ptr %92, align 8, !tbaa !5
  %2109 = getelementptr inbounds %struct.ImGuiWindow, ptr %2108, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #10
  %2110 = load float, ptr %96, align 4, !tbaa !237
  %2111 = load float, ptr %96, align 4, !tbaa !237
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %98, float noundef %2110, float noundef %2111)
  %2112 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2109, ptr noundef nonnull align 4 dereferenceable(8) %98)
  store <2 x float> %2112, ptr %97, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %2105, ptr noundef nonnull align 4 dereferenceable(8) %2107, ptr noundef nonnull align 4 dereferenceable(8) %97, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  %2113 = load ptr, ptr %93, align 8, !tbaa !5
  %2114 = load ptr, ptr %92, align 8, !tbaa !5
  %2115 = getelementptr inbounds %struct.ImGuiWindow, ptr %2114, i32 0, i32 10
  %2116 = getelementptr inbounds [32 x i8], ptr %95, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %2113, ptr noundef nonnull align 4 dereferenceable(8) %2115, i32 noundef -1, ptr noundef %2116, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #10
  br label %2117

2117:                                             ; preds = %2097, %2091, %2086
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #10
  store i32 0, ptr %6, align 4
  br label %2118

2118:                                             ; preds = %2117, %2065
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #10
  %2119 = load i32, ptr %6, align 4
  switch i32 %2119, label %2380 [
    i32 0, label %2120
    i32 92, label %2121
  ]

2120:                                             ; preds = %2118
  br label %2121

2121:                                             ; preds = %2120, %2118
  %2122 = load i32, ptr %91, align 4, !tbaa !116
  %2123 = add nsw i32 %2122, 1
  store i32 %2123, ptr %91, align 4, !tbaa !116
  br label %2047, !llvm.loop !302

2124:                                             ; preds = %2054
  br label %2125

2125:                                             ; preds = %2124, %2041
  %2126 = load ptr, ptr %5, align 8, !tbaa !5
  %2127 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2126, i32 0, i32 4
  %2128 = load i8, ptr %2127, align 4, !tbaa !123, !range !13, !noundef !14
  %2129 = trunc i8 %2128 to i1
  br i1 %2129, label %2130, label %2229

2130:                                             ; preds = %2125
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #10
  store i32 0, ptr %99, align 4, !tbaa !116
  br label %2131

2131:                                             ; preds = %2225, %2130
  %2132 = load i32, ptr %99, align 4, !tbaa !116
  %2133 = load ptr, ptr %3, align 8, !tbaa !5
  %2134 = getelementptr inbounds %struct.ImGuiContext, ptr %2133, i32 0, i32 172
  %2135 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %2134)
  %2136 = icmp slt i32 %2132, %2135
  br i1 %2136, label %2138, label %2137

2137:                                             ; preds = %2131
  store i32 93, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #10
  br label %2228

2138:                                             ; preds = %2131
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #10
  %2139 = load ptr, ptr %3, align 8, !tbaa !5
  %2140 = getelementptr inbounds %struct.ImGuiContext, ptr %2139, i32 0, i32 172
  %2141 = load i32, ptr %99, align 4, !tbaa !116
  %2142 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %2140, i32 noundef %2141)
  store ptr %2142, ptr %100, align 8, !tbaa !5
  %2143 = load ptr, ptr %100, align 8, !tbaa !5
  %2144 = icmp eq ptr %2143, null
  br i1 %2144, label %2154, label %2145

2145:                                             ; preds = %2138
  %2146 = load ptr, ptr %100, align 8, !tbaa !5
  %2147 = getelementptr inbounds %struct.ImGuiTable, ptr %2146, i32 0, i32 12
  %2148 = load i32, ptr %2147, align 8, !tbaa !124
  %2149 = load ptr, ptr %3, align 8, !tbaa !5
  %2150 = getelementptr inbounds %struct.ImGuiContext, ptr %2149, i32 0, i32 12
  %2151 = load i32, ptr %2150, align 8, !tbaa !134
  %2152 = sub nsw i32 %2151, 1
  %2153 = icmp slt i32 %2148, %2152
  br i1 %2153, label %2154, label %2155

2154:                                             ; preds = %2145, %2138
  store i32 95, ptr %6, align 4
  br label %2222

2155:                                             ; preds = %2145
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #10
  %2156 = load ptr, ptr %100, align 8, !tbaa !5
  %2157 = getelementptr inbounds %struct.ImGuiTable, ptr %2156, i32 0, i32 53
  %2158 = load ptr, ptr %2157, align 8, !tbaa !135
  %2159 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %2158)
  store ptr %2159, ptr %101, align 8, !tbaa !5
  %2160 = load ptr, ptr %5, align 8, !tbaa !5
  %2161 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2160, i32 0, i32 10
  %2162 = load i32, ptr %2161, align 4, !tbaa !54
  %2163 = icmp sge i32 %2162, 6
  br i1 %2163, label %2164, label %2208

2164:                                             ; preds = %2155
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  store i32 0, ptr %102, align 4, !tbaa !116
  br label %2165

2165:                                             ; preds = %2204, %2164
  %2166 = load i32, ptr %102, align 4, !tbaa !116
  %2167 = load ptr, ptr %100, align 8, !tbaa !5
  %2168 = getelementptr inbounds %struct.ImGuiTable, ptr %2167, i32 0, i32 13
  %2169 = load i32, ptr %2168, align 4, !tbaa !138
  %2170 = icmp slt i32 %2166, %2169
  br i1 %2170, label %2172, label %2171

2171:                                             ; preds = %2165
  store i32 96, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %2207

2172:                                             ; preds = %2165
  call void @llvm.lifetime.start.p0(i64 16, ptr %103) #10
  %2173 = load ptr, ptr %100, align 8, !tbaa !5
  %2174 = load ptr, ptr %5, align 8, !tbaa !5
  %2175 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2174, i32 0, i32 10
  %2176 = load i32, ptr %2175, align 4, !tbaa !54
  %2177 = load i32, ptr %102, align 4, !tbaa !116
  %2178 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %2173, i32 noundef %2176, i32 noundef %2177)
  %2179 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %103, i32 0, i32 0
  %2180 = extractvalue { <2 x float>, <2 x float> } %2178, 0
  store <2 x float> %2180, ptr %2179, align 4
  %2181 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %103, i32 0, i32 1
  %2182 = extractvalue { <2 x float>, <2 x float> } %2178, 1
  store <2 x float> %2182, ptr %2181, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #10
  %2183 = load ptr, ptr %100, align 8, !tbaa !5
  %2184 = getelementptr inbounds %struct.ImGuiTable, ptr %2183, i32 0, i32 67
  %2185 = load i16, ptr %2184, align 8, !tbaa !303
  %2186 = sext i16 %2185 to i32
  %2187 = load i32, ptr %102, align 4, !tbaa !116
  %2188 = icmp eq i32 %2186, %2187
  %2189 = zext i1 %2188 to i64
  %2190 = select i1 %2188, i32 -8323073, i32 -8388353
  store i32 %2190, ptr %104, align 4, !tbaa !116
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  %2191 = load ptr, ptr %100, align 8, !tbaa !5
  %2192 = getelementptr inbounds %struct.ImGuiTable, ptr %2191, i32 0, i32 67
  %2193 = load i16, ptr %2192, align 8, !tbaa !303
  %2194 = sext i16 %2193 to i32
  %2195 = load i32, ptr %102, align 4, !tbaa !116
  %2196 = icmp eq i32 %2194, %2195
  %2197 = zext i1 %2196 to i64
  %2198 = select i1 %2196, float 3.000000e+00, float 1.000000e+00
  store float %2198, ptr %105, align 4, !tbaa !237
  %2199 = load ptr, ptr %101, align 8, !tbaa !5
  %2200 = getelementptr inbounds %struct.ImRect, ptr %103, i32 0, i32 0
  %2201 = getelementptr inbounds %struct.ImRect, ptr %103, i32 0, i32 1
  %2202 = load i32, ptr %104, align 4, !tbaa !116
  %2203 = load float, ptr %105, align 4, !tbaa !237
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %2199, ptr noundef nonnull align 4 dereferenceable(8) %2200, ptr noundef nonnull align 4 dereferenceable(8) %2201, i32 noundef %2202, float noundef 0.000000e+00, i32 noundef 0, float noundef %2203)
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %103) #10
  br label %2204

2204:                                             ; preds = %2172
  %2205 = load i32, ptr %102, align 4, !tbaa !116
  %2206 = add nsw i32 %2205, 1
  store i32 %2206, ptr %102, align 4, !tbaa !116
  br label %2165, !llvm.loop !304

2207:                                             ; preds = %2171
  br label %2221

2208:                                             ; preds = %2155
  call void @llvm.lifetime.start.p0(i64 16, ptr %106) #10
  %2209 = load ptr, ptr %100, align 8, !tbaa !5
  %2210 = load ptr, ptr %5, align 8, !tbaa !5
  %2211 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2210, i32 0, i32 10
  %2212 = load i32, ptr %2211, align 4, !tbaa !54
  %2213 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %2209, i32 noundef %2212, i32 noundef -1)
  %2214 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %106, i32 0, i32 0
  %2215 = extractvalue { <2 x float>, <2 x float> } %2213, 0
  store <2 x float> %2215, ptr %2214, align 4
  %2216 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %106, i32 0, i32 1
  %2217 = extractvalue { <2 x float>, <2 x float> } %2213, 1
  store <2 x float> %2217, ptr %2216, align 4
  %2218 = load ptr, ptr %101, align 8, !tbaa !5
  %2219 = getelementptr inbounds %struct.ImRect, ptr %106, i32 0, i32 0
  %2220 = getelementptr inbounds %struct.ImRect, ptr %106, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %2218, ptr noundef nonnull align 4 dereferenceable(8) %2219, ptr noundef nonnull align 4 dereferenceable(8) %2220, 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 %106) #10
  br label %2221

2221:                                             ; preds = %2208, %2207
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #10
  store i32 0, ptr %6, align 4
  br label %2222

2222:                                             ; preds = %2221, %2154
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #10
  %2223 = load i32, ptr %6, align 4
  switch i32 %2223, label %2380 [
    i32 0, label %2224
    i32 95, label %2225
  ]

2224:                                             ; preds = %2222
  br label %2225

2225:                                             ; preds = %2224, %2222
  %2226 = load i32, ptr %99, align 4, !tbaa !116
  %2227 = add nsw i32 %2226, 1
  store i32 %2227, ptr %99, align 4, !tbaa !116
  br label %2131, !llvm.loop !305

2228:                                             ; preds = %2137
  br label %2229

2229:                                             ; preds = %2228, %2125
  %2230 = load ptr, ptr %5, align 8, !tbaa !5
  %2231 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2230, i32 0, i32 8
  %2232 = load i8, ptr %2231, align 4, !tbaa !306, !range !13, !noundef !14
  %2233 = trunc i8 %2232 to i1
  br i1 %2233, label %2234, label %2371

2234:                                             ; preds = %2229
  %2235 = load ptr, ptr %3, align 8, !tbaa !5
  %2236 = getelementptr inbounds %struct.ImGuiContext, ptr %2235, i32 0, i32 2
  %2237 = getelementptr inbounds %struct.ImGuiIO, ptr %2236, i32 0, i32 73
  %2238 = load i8, ptr %2237, align 8, !tbaa !307, !range !13, !noundef !14
  %2239 = trunc i8 %2238 to i1
  br i1 %2239, label %2240, label %2371

2240:                                             ; preds = %2234
  %2241 = load ptr, ptr %3, align 8, !tbaa !5
  %2242 = getelementptr inbounds %struct.ImGuiContext, ptr %2241, i32 0, i32 250
  %2243 = load ptr, ptr %2242, align 8, !tbaa !265
  %2244 = icmp ne ptr %2243, null
  br i1 %2244, label %2245, label %2371

2245:                                             ; preds = %2240
  call void @llvm.lifetime.start.p0(i64 64, ptr %107) #10
  call void @llvm.memset.p0.i64(ptr align 16 %107, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #10
  %2246 = getelementptr inbounds [64 x i8], ptr %107, i64 0, i64 0
  store ptr %2246, ptr %108, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #10
  %2247 = load ptr, ptr %3, align 8, !tbaa !5
  %2248 = getelementptr inbounds %struct.ImGuiContext, ptr %2247, i32 0, i32 250
  %2249 = load ptr, ptr %2248, align 8, !tbaa !265
  store ptr %2249, ptr %109, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #10
  %2250 = load ptr, ptr %109, align 8, !tbaa !5
  %2251 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2250, i32 0, i32 17
  %2252 = load ptr, ptr %2251, align 8, !tbaa !308
  %2253 = icmp ne ptr %2252, null
  br i1 %2253, label %2254, label %2259

2254:                                             ; preds = %2245
  %2255 = load ptr, ptr %109, align 8, !tbaa !5
  %2256 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2255, i32 0, i32 17
  %2257 = load ptr, ptr %2256, align 8, !tbaa !308
  %2258 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %2257)
  br label %2262

2259:                                             ; preds = %2245
  %2260 = call noundef ptr @_ZN5ImGui15GetMainViewportEv()
  %2261 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef %2260)
  br label %2262

2262:                                             ; preds = %2259, %2254
  %2263 = phi ptr [ %2258, %2254 ], [ %2261, %2259 ]
  store ptr %2263, ptr %110, align 8, !tbaa !5
  %2264 = load ptr, ptr %108, align 8, !tbaa !5
  %2265 = getelementptr inbounds [64 x i8], ptr %107, i64 0, i64 0
  %2266 = getelementptr inbounds i8, ptr %2265, i64 64
  %2267 = load ptr, ptr %108, align 8, !tbaa !5
  %2268 = ptrtoint ptr %2266 to i64
  %2269 = ptrtoint ptr %2267 to i64
  %2270 = sub i64 %2268, %2269
  %2271 = load ptr, ptr %109, align 8, !tbaa !5
  %2272 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2271, i32 0, i32 0
  %2273 = load i32, ptr %2272, align 8, !tbaa !266
  %2274 = load ptr, ptr %109, align 8, !tbaa !5
  %2275 = call noundef zeroext i1 @_ZNK13ImGuiDockNode13IsCentralNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %2274)
  %2276 = zext i1 %2275 to i64
  %2277 = select i1 %2275, ptr @.str.576, ptr @.str.16
  %2278 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2264, i64 noundef %2270, ptr noundef @.str.575, i32 noundef %2273, ptr noundef %2277)
  %2279 = load ptr, ptr %108, align 8, !tbaa !5
  %2280 = sext i32 %2278 to i64
  %2281 = getelementptr inbounds i8, ptr %2279, i64 %2280
  store ptr %2281, ptr %108, align 8, !tbaa !5
  %2282 = load ptr, ptr %108, align 8, !tbaa !5
  %2283 = getelementptr inbounds [64 x i8], ptr %107, i64 0, i64 0
  %2284 = getelementptr inbounds i8, ptr %2283, i64 64
  %2285 = load ptr, ptr %108, align 8, !tbaa !5
  %2286 = ptrtoint ptr %2284 to i64
  %2287 = ptrtoint ptr %2285 to i64
  %2288 = sub i64 %2286, %2287
  %2289 = load ptr, ptr %109, align 8, !tbaa !5
  %2290 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2289, i32 0, i32 14
  %2291 = getelementptr inbounds %struct.ImGuiWindowClass, ptr %2290, i32 0, i32 0
  %2292 = load i32, ptr %2291, align 4, !tbaa !309
  %2293 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2282, i64 noundef %2288, ptr noundef @.str.577, i32 noundef %2292)
  %2294 = load ptr, ptr %108, align 8, !tbaa !5
  %2295 = sext i32 %2293 to i64
  %2296 = getelementptr inbounds i8, ptr %2294, i64 %2295
  store ptr %2296, ptr %108, align 8, !tbaa !5
  %2297 = load ptr, ptr %108, align 8, !tbaa !5
  %2298 = getelementptr inbounds [64 x i8], ptr %107, i64 0, i64 0
  %2299 = getelementptr inbounds i8, ptr %2298, i64 64
  %2300 = load ptr, ptr %108, align 8, !tbaa !5
  %2301 = ptrtoint ptr %2299 to i64
  %2302 = ptrtoint ptr %2300 to i64
  %2303 = sub i64 %2301, %2302
  %2304 = load ptr, ptr %109, align 8, !tbaa !5
  %2305 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2304, i32 0, i32 11
  %2306 = getelementptr inbounds %struct.ImVec2, ptr %2305, i32 0, i32 0
  %2307 = load float, ptr %2306, align 8, !tbaa !310
  %2308 = fpext float %2307 to double
  %2309 = load ptr, ptr %109, align 8, !tbaa !5
  %2310 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2309, i32 0, i32 11
  %2311 = getelementptr inbounds %struct.ImVec2, ptr %2310, i32 0, i32 1
  %2312 = load float, ptr %2311, align 4, !tbaa !311
  %2313 = fpext float %2312 to double
  %2314 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2297, i64 noundef %2303, ptr noundef @.str.578, double noundef %2308, double noundef %2313)
  %2315 = load ptr, ptr %108, align 8, !tbaa !5
  %2316 = sext i32 %2314 to i64
  %2317 = getelementptr inbounds i8, ptr %2315, i64 %2316
  store ptr %2317, ptr %108, align 8, !tbaa !5
  %2318 = load ptr, ptr %108, align 8, !tbaa !5
  %2319 = getelementptr inbounds [64 x i8], ptr %107, i64 0, i64 0
  %2320 = getelementptr inbounds i8, ptr %2319, i64 64
  %2321 = load ptr, ptr %108, align 8, !tbaa !5
  %2322 = ptrtoint ptr %2320 to i64
  %2323 = ptrtoint ptr %2321 to i64
  %2324 = sub i64 %2322, %2323
  %2325 = load ptr, ptr %109, align 8, !tbaa !5
  %2326 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2325, i32 0, i32 12
  %2327 = getelementptr inbounds %struct.ImVec2, ptr %2326, i32 0, i32 0
  %2328 = load float, ptr %2327, align 8, !tbaa !312
  %2329 = fpext float %2328 to double
  %2330 = load ptr, ptr %109, align 8, !tbaa !5
  %2331 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2330, i32 0, i32 12
  %2332 = getelementptr inbounds %struct.ImVec2, ptr %2331, i32 0, i32 1
  %2333 = load float, ptr %2332, align 4, !tbaa !313
  %2334 = fpext float %2333 to double
  %2335 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2318, i64 noundef %2324, ptr noundef @.str.579, double noundef %2329, double noundef %2334)
  %2336 = load ptr, ptr %108, align 8, !tbaa !5
  %2337 = sext i32 %2335 to i64
  %2338 = getelementptr inbounds i8, ptr %2336, i64 %2337
  store ptr %2338, ptr %108, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #10
  %2339 = load ptr, ptr %109, align 8, !tbaa !5
  %2340 = call noundef i32 @_ZN5ImGui16DockNodeGetDepthEPK13ImGuiDockNode(ptr noundef %2339)
  store i32 %2340, ptr %111, align 4, !tbaa !116
  %2341 = load ptr, ptr %110, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #10
  %2342 = load ptr, ptr %109, align 8, !tbaa !5
  %2343 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2342, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %114, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %2344 = load i32, ptr %111, align 4, !tbaa !116
  %2345 = sitofp i32 %2344 to float
  %2346 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %114, float noundef %2345)
  store <2 x float> %2346, ptr %113, align 4
  %2347 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2343, ptr noundef nonnull align 4 dereferenceable(8) %113)
  store <2 x float> %2347, ptr %112, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #10
  %2348 = load ptr, ptr %109, align 8, !tbaa !5
  %2349 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2348, i32 0, i32 10
  %2350 = load ptr, ptr %109, align 8, !tbaa !5
  %2351 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2350, i32 0, i32 11
  %2352 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2349, ptr noundef nonnull align 4 dereferenceable(8) %2351)
  store <2 x float> %2352, ptr %116, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %118, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %2353 = load i32, ptr %111, align 4, !tbaa !116
  %2354 = sitofp i32 %2353 to float
  %2355 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %118, float noundef %2354)
  store <2 x float> %2355, ptr %117, align 4
  %2356 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %116, ptr noundef nonnull align 4 dereferenceable(8) %117)
  store <2 x float> %2356, ptr %115, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %2341, ptr noundef nonnull align 4 dereferenceable(8) %112, ptr noundef nonnull align 4 dereferenceable(8) %115, 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 %118) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #10
  %2357 = load ptr, ptr %109, align 8, !tbaa !5
  %2358 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2357, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %121, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %2359 = load i32, ptr %111, align 4, !tbaa !116
  %2360 = sitofp i32 %2359 to float
  %2361 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %121, float noundef %2360)
  store <2 x float> %2361, ptr %120, align 4
  %2362 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2358, ptr noundef nonnull align 4 dereferenceable(8) %120)
  store <2 x float> %2362, ptr %119, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #10
  %2363 = load ptr, ptr %110, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %123, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %2364 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %119, ptr noundef nonnull align 4 dereferenceable(8) %123)
  store <2 x float> %2364, ptr %122, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #10
  %2365 = getelementptr inbounds [64 x i8], ptr %107, i64 0, i64 0
  %2366 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %2365, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %2366, ptr %126, align 4
  %2367 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %119, ptr noundef nonnull align 4 dereferenceable(8) %126)
  store <2 x float> %2367, ptr %125, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %127, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %2368 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %125, ptr noundef nonnull align 4 dereferenceable(8) %127)
  store <2 x float> %2368, ptr %124, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %2363, ptr noundef nonnull align 4 dereferenceable(8) %122, 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 %127) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  %2369 = load ptr, ptr %110, align 8, !tbaa !5
  %2370 = getelementptr inbounds [64 x i8], ptr %107, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %2369, ptr noundef null, float noundef 0.000000e+00, ptr noundef nonnull align 4 dereferenceable(8) %119, i32 noundef -1, ptr noundef %2370, ptr noundef null, float noundef 0.000000e+00, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %107) #10
  br label %2371

2371:                                             ; preds = %2262, %2240, %2234, %2229
  call void @_ZN5ImGui3EndEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #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 %2372

2372:                                             ; preds = %2371, %157
  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
  %2373 = load i32, ptr %6, align 4
  switch i32 %2373, label %2380 [
    i32 0, label %2374
    i32 1, label %2374
  ]

2374:                                             ; preds = %2372, %2372
  ret void

2375:                                             ; preds = %864
  %2376 = load ptr, ptr %44, align 8
  %2377 = load i32, ptr %45, align 4
  %2378 = insertvalue { ptr, i32 } poison, ptr %2376, 0
  %2379 = insertvalue { ptr, i32 } %2378, i32 %2377, 1
  resume { ptr, i32 } %2379

2380:                                             ; preds = %2372, %2222, %2118, %1713, %523
  unreachable
}

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

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

declare void @_ZN5ImGui9SeparatorEv() #7

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr 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 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: 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 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 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

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

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

declare void @_ZN5ImGui10EndListBoxEv() #7

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

; 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, !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 248}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !18, i64 28, !6, i64 56, !12, i64 64, !19, i64 68, !12, i64 76, !19, i64 80, !19, i64 88, !19, i64 96, !19, i64 104, !19, i64 112, !19, i64 120, !19, i64 128, !20, i64 136, !20, i64 140, !20, i64 144, !20, i64 148, !20, i64 152, !20, i64 156, !20, i64 160, !20, i64 164, !12, i64 168, !12, i64 172, !12, i64 176, !12, i64 180, !19, i64 184, !19, i64 192, !19, i64 200, !19, i64 208, !19, i64 216, !19, i64 224, !11, i64 232, !11, i64 233, !11, i64 234, !11, i64 235, !11, i64 236, !11, i64 237, !11, i64 238, !11, i64 239, !11, i64 240, !11, i64 241, !11, i64 242, !11, i64 243, !11, i64 244, !11, i64 245, !7, i64 246, !21, i64 248, !21, i64 250, !21, i64 252, !21, i64 254, !21, i64 256, !12, i64 260, !7, i64 264, !7, i64 265, !7, i64 266, !11, i64 267, !12, i64 268, !7, i64 272, !7, i64 273, !7, i64 274, !7, i64 275, !12, i64 276, !12, i64 277, !12, i64 278, !12, i64 279, !19, i64 280, !19, i64 288, !22, i64 296, !23, i64 312, !29, i64 544, !29, i64 560, !29, i64 576, !29, i64 592, !29, i64 608, !29, i64 624, !29, i64 640, !30, i64 656, !30, i64 660, !12, i64 664, !12, i64 668, !20, i64 672, !20, i64 676, !31, i64 680, !33, i64 696, !20, i64 712, !20, i64 716, !12, i64 720, !6, i64 728, !34, i64 736, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !7, i64 1000, !7, i64 1008, !7, i64 1040, !12, i64 1056, !12, i64 1060, !12, i64 1064, !11, i64 1068, !11, i64 1069, !11, i64 1069, !11, i64 1069, !11, i64 1069, !21, i64 1070, !45, i64 1072, !6, i64 1096, !6, i64 1104, !12, i64 1112, !12, i64 1116, !29, i64 1120}
!18 = !{!"_ZTS16ImGuiWindowClass", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !11, i64 24, !11, i64 25}
!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 216}
!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, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !11, i64 214, !20, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !12, i64 232, !12, i64 236, !19, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !19, i64 3584, !7, i64 3592, !20, i64 3600, !20, i64 3604, !48, i64 3608, !12, i64 3612, !11, i64 3616, !11, i64 3617, !11, i64 3618, !11, i64 3619, !12, i64 3620, !7, i64 3624, !11, i64 14056, !19, i64 14060, !7, i64 14068, !7, i64 14112, !7, i64 14152, !7, i64 14157, !7, i64 14162, !7, i64 14172, !7, i64 14182, !7, i64 14187, !7, i64 14192, !11, i64 14197, !7, i64 14200, !7, i64 14220, !7, i64 14240, !7, i64 14280, !20, i64 14300, !11, i64 14304, !11, i64 14305, !7, i64 14306, !11, i64 14307, !21, i64 14308, !36, i64 14312}
!48 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!49 = !{!47, !12, i64 220}
!50 = !{!47, !12, i64 224}
!51 = !{!47, !12, i64 228}
!52 = !{!47, !12, i64 236}
!53 = !{!10, !12, i64 12}
!54 = !{!10, !12, i64 16}
!55 = !{!11, !11, i64 0}
!56 = !{!7, !7, i64 0}
!57 = !{!58, !11, i64 24355}
!58 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !47, i64 8, !59, i64 14336, !62, i64 14552, !12, i64 15676, !12, i64 15680, !6, i64 15688, !20, i64 15696, !20, i64 15700, !63, i64 15704, !64, i64 16232, !12, i64 16240, !12, i64 16244, !12, i64 16248, !12, i64 16252, !11, i64 16256, !11, i64 16257, !11, i64 16258, !11, i64 16259, !11, i64 16260, !6, i64 16264, !65, i64 16272, !65, i64 16288, !48, i64 16304, !12, i64 16308, !27, i64 16312, !27, i64 16328, !27, i64 16344, !66, i64 16360, !31, i64 16376, !12, i64 16392, !19, i64 16396, !6, i64 16408, !6, i64 16416, !6, i64 16424, !6, i64 16432, !6, i64 16440, !19, i64 16448, !12, i64 16456, !20, i64 16460, !19, i64 16464, !19, i64 16472, !12, i64 16480, !12, i64 16484, !12, i64 16488, !11, i64 16492, !11, i64 16493, !20, i64 16496, !20, i64 16500, !12, i64 16504, !12, i64 16508, !20, i64 16512, !11, i64 16516, !11, i64 16517, !11, i64 16518, !11, i64 16519, !11, i64 16520, !11, i64 16521, !19, i64 16524, !6, i64 16536, !67, i64 16544, !12, i64 16548, !12, i64 16552, !11, i64 16556, !11, i64 16557, !6, i64 16560, !12, i64 16568, !20, i64 16572, !7, i64 16576, !68, i64 18256, !12, i64 18568, !11, i64 18572, !12, i64 18576, !12, i64 18580, !12, i64 18584, !12, i64 18588, !70, i64 18592, !71, i64 18616, !72, i64 18680, !73, i64 18824, !74, i64 18840, !75, i64 18856, !22, i64 18872, !76, i64 18888, !77, i64 18904, !78, i64 18920, !78, i64 18936, !12, i64 18952, !79, i64 18960, !20, i64 18976, !6, i64 18984, !6, i64 18992, !6, i64 19000, !12, i64 19008, !80, i64 19016, !12, i64 19064, !12, i64 19068, !12, i64 19072, !6, i64 19080, !12, i64 19088, !12, i64 19092, !12, i64 19096, !12, i64 19100, !12, i64 19104, !12, i64 19108, !12, i64 19112, !12, i64 19116, !12, i64 19120, !12, i64 19124, !12, i64 19128, !67, i64 19132, !25, i64 19136, !11, i64 19140, !11, i64 19141, !11, i64 19142, !11, i64 19143, !11, i64 19144, !11, i64 19145, !11, i64 19146, !81, i64 19152, !11, i64 19200, !11, i64 19201, !11, i64 19202, !12, i64 19204, !12, i64 19208, !12, i64 19212, !12, i64 19216, !12, i64 19220, !12, i64 19224, !29, i64 19228, !29, i64 19244, !12, i64 19260, !12, i64 19264, !12, i64 19268, !81, i64 19272, !81, i64 19320, !81, i64 19368, !81, i64 19416, !12, i64 19464, !12, i64 19468, !6, i64 19472, !6, i64 19480, !6, i64 19488, !20, i64 19496, !20, i64 19500, !11, i64 19504, !19, i64 19508, !19, i64 19516, !20, i64 19524, !11, i64 19528, !11, i64 19529, !11, i64 19530, !12, i64 19532, !12, i64 19536, !12, i64 19540, !82, i64 19544, !29, i64 19608, !12, i64 19624, !12, i64 19628, !20, i64 19632, !12, i64 19636, !12, i64 19640, !12, i64 19644, !12, i64 19648, !83, i64 19656, !7, i64 19672, !12, i64 19688, !84, i64 19696, !6, i64 19712, !12, i64 19720, !85, i64 19728, !86, i64 19744, !28, i64 19784, !44, i64 19800, !6, i64 19816, !88, i64 19824, !90, i64 19864, !91, i64 19880, !12, i64 19896, !12, i64 19900, !20, i64 19904, !20, i64 19908, !12, i64 19912, !12, i64 19916, !12, i64 19920, !20, i64 19924, !19, i64 19928, !92, i64 19936, !96, i64 23664, !97, i64 23688, !12, i64 23808, !12, i64 23812, !12, i64 23816, !12, i64 23820, !20, i64 23824, !20, i64 23828, !12, i64 23832, !42, i64 23836, !99, i64 23852, !20, i64 23900, !20, i64 23904, !11, i64 23908, !11, i64 23909, !20, i64 23912, !20, i64 23916, !20, i64 23920, !20, i64 23924, !21, i64 23928, !21, i64 23930, !93, i64 23936, !22, i64 23952, !100, i64 23968, !100, i64 23984, !12, i64 24000, !7, i64 24004, !101, i64 24008, !6, i64 24064, !11, i64 24072, !20, i64 24076, !104, i64 24080, !105, i64 24096, !106, i64 24112, !107, i64 24128, !108, i64 24144, !12, i64 24160, !7, i64 24168, !11, i64 24240, !109, i64 24244, !6, i64 24248, !104, i64 24256, !6, i64 24272, !6, i64 24280, !20, i64 24288, !11, i64 24292, !12, i64 24296, !12, i64 24300, !12, i64 24304, !12, i64 24308, !104, i64 24312, !110, i64 24328, !7, i64 24352, !7, i64 24353, !7, i64 24354, !11, i64 24355, !7, i64 24356, !12, i64 24360, !10, i64 24364, !111, i64 24384, !6, i64 24424, !7, i64 24432, !12, i64 24672, !12, i64 24676, !20, i64 24680, !12, i64 24684, !12, i64 24688, !12, i64 24692, !93, i64 24696}
!59 = !{!"_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, !60, i64 184, !61, i64 200}
!60 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !12, i64 0, !12, i64 4, !6, i64 8}
!62 = !{!"_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, !12, i64 148, !19, i64 152, !19, i64 160, !20, i64 168, !19, i64 172, !19, i64 180, !19, i64 188, !19, i64 196, !20, i64 204, !20, i64 208, !11, i64 212, !11, i64 213, !11, i64 214, !20, i64 216, !20, i64 220, !7, i64 224, !20, i64 1104, !20, i64 1108, !20, i64 1112, !12, i64 1116, !12, i64 1120}
!63 = !{!"_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}
!64 = !{!"double", !7, i64 0}
!65 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!67 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!68 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !69, i64 280, !69, i64 296}
!69 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !20, i64 8, !12, i64 12, !12, i64 16, !11, i64 20}
!71 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !29, i64 12, !29, i64 28, !29, i64 44}
!72 = !{!"_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, !11, i64 60, !11, i64 61, !29, i64 64, !6, i64 80, !6, i64 88, !20, i64 96, !12, i64 100, !12, i64 104, !18, i64 108, !19, i64 136}
!73 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!80 = !{!"_ZTS20ImGuiPlatformMonitor", !19, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !20, i64 32, !6, i64 40}
!81 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !29, i64 16, !12, i64 32, !20, i64 36, !20, i64 40, !20, i64 44}
!82 = !{!"_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}
!83 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!86 = !{!"_ZTS6ImPoolI10ImGuiTableE", !87, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!87 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!88 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !89, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!89 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!90 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!91 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!92 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !36, i64 24, !93, i64 40, !93, i64 56, !11, i64 72, !12, i64 76, !20, i64 80, !94, i64 84, !20, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !12, i64 3720}
!93 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!94 = !{!"_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, !95, i64 32}
!95 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !21, i64 3582, !21, i64 3584, !12, i64 3588, !12, i64 3592}
!96 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !93, i64 8}
!97 = !{!"_ZTS6ImFont", !28, i64 0, !20, i64 16, !20, i64 20, !36, i64 24, !98, 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}
!98 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!99 = !{!"_ZTS21ImGuiComboPreviewData", !29, i64 0, !19, i64 16, !19, i64 24, !19, i64 32, !20, i64 40, !12, i64 44}
!100 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !19, i64 4, !20, i64 12}
!101 = !{!"_ZTS16ImGuiDockContext", !31, i64 0, !102, i64 16, !103, i64 32, !11, i64 48}
!102 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !12, i64 0, !12, i64 4, !6, i64 8}
!103 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !12, i64 0, !12, i64 4, !6, i64 8}
!104 = !{!"_ZTS15ImGuiTextBuffer", !93, i64 0}
!105 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!106 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !93, i64 0}
!107 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !93, i64 0}
!108 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!109 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!110 = !{!"_ZTS14ImGuiTextIndex", !76, i64 0, !12, i64 16}
!111 = !{!"_ZTS14ImGuiStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !112, i64 16, !11, i64 32, !20, i64 36}
!112 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!113 = !{!10, !11, i64 2}
!114 = !{!58, !6, i64 19080}
!115 = !{!17, !6, i64 8}
!116 = !{!12, !12, i64 0}
!117 = !{!29, !20, i64 0}
!118 = !{!29, !20, i64 4}
!119 = !{!29, !20, i64 8}
!120 = !{!29, !20, i64 12}
!121 = distinct !{!121, !122}
!122 = !{!"llvm.loop.mustprogress"}
!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, !12, i64 144, !12, i64 146, !12, i64 148, !7, i64 152, !12, i64 160, !12, i64 164, !20, 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, !29, i64 232, !29, i64 248, !29, i64 264, !29, i64 280, !29, i64 296, !29, i64 312, !29, i64 328, !29, i64 344, !29, i64 360, !6, i64 376, !6, i64 384, !104, i64 392, !6, i64 408, !129, i64 416, !130, i64 440, !131, i64 456, !132, i64 472, !133, i64 488, !21, i64 504, !21, i64 506, !21, i64 508, !21, i64 510, !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, !11, i64 554, !11, i64 555, !11, i64 556, !11, i64 557, !11, i64 558, !11, i64 559, !11, i64 560, !11, i64 561, !11, i64 562, !11, i64 563, !11, i64 564, !11, i64 565, !11, i64 566, !11, i64 567, !11, i64 568, !11, i64 569, !11, i64 570}
!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 = !{!58, !12, i64 16240}
!135 = !{!125, !6, i64 376}
!136 = !{!125, !6, i64 384}
!137 = !{!125, !12, i64 0}
!138 = !{!125, !12, i64 108}
!139 = distinct !{!139, !122}
!140 = distinct !{!140, !122}
!141 = distinct !{!141, !122}
!142 = !{!58, !12, i64 16312}
!143 = !{!17, !12, i64 664}
!144 = distinct !{!144, !122}
!145 = !{!27, !6, i64 8}
!146 = !{!27, !12, i64 0}
!147 = !{!58, !12, i64 18960}
!148 = !{!149, !12, i64 184}
!149 = !{!"_ZTS14ImGuiViewportP", !150, 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, !151, i64 168, !153, i64 232, !19, i64 264, !19, i64 272, !19, i64 280, !19, i64 288, !19, i64 296, !19, i64 304, !19, i64 312}
!150 = !{!"_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}
!151 = !{!"_ZTS10ImDrawData", !11, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !152, i64 16, !19, i64 32, !19, i64 40, !19, i64 48, !6, i64 56}
!152 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!153 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0, !152, i64 16}
!154 = distinct !{!154, !122}
!155 = !{!149, !12, i64 104}
!156 = !{!150, !12, i64 0}
!157 = distinct !{!157, !122}
!158 = distinct !{!158, !122}
!159 = !{!58, !12, i64 14520}
!160 = !{!80, !20, i64 32}
!161 = !{!80, !20, i64 0}
!162 = !{!80, !20, i64 4}
!163 = !{!80, !20, i64 8}
!164 = !{!80, !20, i64 12}
!165 = !{!80, !20, i64 16}
!166 = !{!80, !20, i64 20}
!167 = !{!80, !20, i64 24}
!168 = !{!80, !20, i64 28}
!169 = distinct !{!169, !122}
!170 = !{!58, !6, i64 18992}
!171 = !{!58, !12, i64 3620}
!172 = !{!58, !6, i64 19000}
!173 = !{!"branch_weights", i32 1, i32 1048575}
!174 = !{!79, !6, i64 8}
!175 = !{!58, !6, i64 18968}
!176 = !{!79, !12, i64 0}
!177 = !{!149, !12, i64 112}
!178 = !{!58, !6, i64 14400}
!179 = !{!150, !11, i64 88}
!180 = !{!149, !6, i64 96}
!181 = distinct !{!181, !122}
!182 = !{!58, !12, i64 18920}
!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 936}
!189 = distinct !{!189, !122}
!190 = distinct !{!190, !122}
!191 = distinct !{!191, !122}
!192 = !{!58, !6, i64 56}
!193 = !{!194, !12, i64 88}
!194 = !{!"_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, !75, i64 88, !195, i64 104, !196, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!195 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!196 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!197 = !{!101, !11, i64 48}
!198 = !{!101, !12, i64 0}
!199 = distinct !{!199, !122}
!200 = !{!58, !6, i64 32}
!201 = !{!58, !20, i64 24076}
!202 = !{!58, !12, i64 24096}
!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, !122}
!206 = distinct !{!206, !122}
!207 = distinct !{!207, !122}
!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}
!210 = !{!209, !21, i64 28}
!211 = distinct !{!211, !122}
!212 = !{!101, !12, i64 32}
!213 = !{!214, !12, i64 12}
!214 = !{!"_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}
!215 = !{!214, !12, i64 0}
!216 = !{!214, !12, i64 4}
!217 = distinct !{!217, !122}
!218 = !{!58, !12, i64 24080}
!219 = !{!220, !220, i64 0}
!220 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!221 = !{!222, !20, i64 4}
!222 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !20, i64 4, !20, i64 8, !20, i64 12}
!223 = distinct !{!223, !122}
!224 = distinct !{!224, !122}
!225 = distinct !{!225, !122}
!226 = !{!47, !11, i64 3616}
!227 = !{!47, !11, i64 3617}
!228 = !{!47, !11, i64 3618}
!229 = !{!47, !11, i64 3619}
!230 = !{!47, !12, i64 14312}
!231 = !{!21, !21, i64 0}
!232 = distinct !{!232, !122}
!233 = !{!47, !20, i64 3584}
!234 = !{!47, !20, i64 3588}
!235 = !{!47, !20, i64 240}
!236 = !{!47, !20, i64 244}
!237 = !{!20, !20, i64 0}
!238 = distinct !{!238, !122}
!239 = distinct !{!239, !122}
!240 = distinct !{!240, !122}
!241 = !{!47, !20, i64 3600}
!242 = !{!58, !20, i64 19924}
!243 = !{!47, !48, i64 3608}
!244 = !{!47, !20, i64 14300}
!245 = !{!58, !6, i64 16440}
!246 = !{!58, !20, i64 16460}
!247 = !{!58, !20, i64 16472}
!248 = !{!58, !20, i64 16476}
!249 = !{!250, !12, i64 0}
!250 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!251 = !{!250, !11, i64 9}
!252 = !{!250, !11, i64 8}
!253 = distinct !{!253, !122}
!254 = !{!255, !21, i64 2}
!255 = !{!"_ZTS19ImGuiKeyRoutingData", !21, i64 0, !21, i64 2, !7, i64 4, !12, i64 8, !12, i64 12}
!256 = !{!255, !12, i64 8}
!257 = !{!255, !21, i64 0}
!258 = distinct !{!258, !122}
!259 = distinct !{!259, !122}
!260 = !{!58, !11, i64 18572}
!261 = !{!58, !12, i64 18568}
!262 = !{!58, !6, i64 16416}
!263 = !{!17, !6, i64 968}
!264 = !{!58, !6, i64 16424}
!265 = !{!58, !6, i64 24424}
!266 = !{!267, !12, i64 0}
!267 = !{!"_ZTS13ImGuiDockNode", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !268, i64 20, !6, i64 24, !7, i64 32, !27, i64 48, !6, i64 64, !19, i64 72, !19, i64 80, !19, i64 88, !269, i64 96, !18, i64 100, !12, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !12, i64 168, !12, i64 172, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !12, i64 192, !12, i64 196, !12, i64 200, !12, i64 200, !12, i64 200, !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}
!268 = !{!"_ZTS18ImGuiDockNodeState", !7, i64 0}
!269 = !{!"_ZTS9ImGuiAxis", !7, i64 0}
!270 = !{!58, !6, i64 16432}
!271 = !{!58, !12, i64 16504}
!272 = !{!58, !12, i64 16552}
!273 = !{!58, !20, i64 16512}
!274 = !{!58, !11, i64 16517}
!275 = !{!58, !67, i64 16544}
!276 = !{!58, !6, i64 16536}
!277 = !{!58, !12, i64 16488}
!278 = !{!58, !20, i64 16496}
!279 = !{!58, !11, i64 16492}
!280 = !{!58, !12, i64 19896}
!281 = !{!58, !20, i64 19904}
!282 = !{!58, !20, i64 19908}
!283 = !{!58, !11, i64 19528}
!284 = !{!58, !12, i64 19556}
!285 = !{!58, !12, i64 19552}
!286 = !{!58, !12, i64 19088}
!287 = !{!58, !25, i64 19136}
!288 = !{!58, !67, i64 19132}
!289 = !{!58, !11, i64 221}
!290 = !{!58, !11, i64 222}
!291 = !{!58, !12, i64 19096}
!292 = !{!58, !12, i64 19100}
!293 = !{!58, !12, i64 19104}
!294 = !{!58, !12, i64 19108}
!295 = !{!58, !11, i64 19142}
!296 = !{!58, !11, i64 19143}
!297 = !{!58, !12, i64 19092}
!298 = !{!58, !6, i64 19472}
!299 = !{!10, !11, i64 3}
!300 = !{!17, !11, i64 236}
!301 = !{!17, !21, i64 254}
!302 = distinct !{!302, !122}
!303 = !{!125, !21, i64 512}
!304 = distinct !{!304, !122}
!305 = distinct !{!305, !122}
!306 = !{!10, !11, i64 8}
!307 = !{!58, !11, i64 3624}
!308 = !{!267, !6, i64 136}
!309 = !{!267, !12, i64 100}
!310 = !{!267, !20, i64 80}
!311 = !{!267, !20, i64 84}
!312 = !{!267, !20, i64 88}
!313 = !{!267, !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.15 = type { i32, i32, ptr }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }

@GImGui = external dso_local local_unnamed_addr global ptr, align 8
@.str.16 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [42 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.425 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [100 x i8], align 16
@.str.428 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [9 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 [9 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [33 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE9viewports = external hidden global %struct.ImVector.15, align 8
@_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports = external hidden global i64, align 8
@__dso_handle = external hidden global i8
@.str.465 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only = external hidden global i8, align 1
@.str.481 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.494 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.520 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.529 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.530 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.531 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.532 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.533 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.535 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.536 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.537 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.538 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.539 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.540 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.541 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.542 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.543 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.544 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.545 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.546 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.547 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.548 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.549 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.550 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.551 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.552 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.553 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.554 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.555 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.556 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.557 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.558 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.560 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.561 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.562 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.563 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.564 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.565 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.566 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.567 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.568 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.569 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.570 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.571 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.572 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.573 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.574 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.575 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.576 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.577 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.578 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.579 = 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 nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) 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 nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(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 @_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 nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #5 align 2

; 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 nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) 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 void @_ZN5ImGui15GetKeyChordNameEiPci(i32 noundef, ptr noundef, 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: 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 nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) 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(33)) 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 %struct.ImVec2, align 4
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca [64 x i8], align 16
  %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 24364
  %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 24365
  %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 @_ZN5ImGui19ShowStackToolWindowEPb(ptr noundef nonnull %55)
  br label %59

59:                                               ; preds = %58, %54
  %60 = tail call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.403, 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 248
  %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 %1335

67:                                               ; preds = %61
  %68 = tail call noundef ptr @_ZN5ImGui10GetVersionEv()
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, ptr noundef %68)
  %69 = getelementptr inbounds i8, ptr %49, i64 224
  %70 = load float, ptr %69, align 8, !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.405, double noundef %72, double noundef %73)
  %74 = getelementptr inbounds i8, ptr %49, i64 228
  %75 = load i32, ptr %74, align 4, !tbaa !49
  %76 = getelementptr inbounds i8, ptr %49, i64 232
  %77 = load i32, ptr %76, align 8, !tbaa !50
  %78 = sdiv i32 %77, 3
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.406, i32 noundef %75, i32 noundef %77, i32 noundef %78)
  %79 = getelementptr inbounds i8, ptr %49, i64 236
  %80 = load i32, ptr %79, align 4, !tbaa !51
  %81 = getelementptr inbounds i8, ptr %49, i64 244
  %82 = load i32, ptr %81, align 4, !tbaa !52
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.407, i32 noundef %80, i32 noundef %82)
  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)
  %83 = getelementptr inbounds i8, ptr %49, i64 24376
  %84 = load i32, ptr %83, align 4, !tbaa !53
  %85 = icmp slt i32 %84, 0
  br i1 %85, label %86, label %87

86:                                               ; preds = %67
  store i32 4, ptr %83, align 4, !tbaa !53
  br label %87

87:                                               ; preds = %86, %67
  %88 = getelementptr inbounds i8, ptr %49, i64 24380
  %89 = load i32, ptr %88, align 4, !tbaa !54
  %90 = icmp slt i32 %89, 0
  br i1 %90, label %91, label %92

91:                                               ; preds = %87
  store i32 2, ptr %88, align 4, !tbaa !54
  br label %92

92:                                               ; preds = %91, %87
  %93 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.425)
  br i1 %93, label %94, label %389

94:                                               ; preds = %92
  %95 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.426)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.427)
  br i1 %95, label %96, label %101

96:                                               ; preds = %94
  tail call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %97 = tail call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.428, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 100, i32 noundef 0, ptr noundef null, ptr noundef null)
  %98 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !55
  %.not = icmp eq i8 %98, 0
  br i1 %.not, label %100, label %99

99:                                               ; preds = %96
  tail call void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE3buf)
  br label %100

100:                                              ; preds = %99, %96
  tail call void @_ZN5ImGui7TreePopEv()
  br label %101

101:                                              ; preds = %100, %94
  %102 = getelementptr inbounds i8, ptr %49, i64 24355
  %103 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.429, ptr noundef nonnull %102)
  br i1 %103, label %104, label %108

104:                                              ; preds = %101
  %105 = load i8, ptr %102, align 1, !tbaa !56, !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, %101
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.430)
  %109 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.431, 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.432)
  %110 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.433, 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.434)
  %111 = getelementptr inbounds i8, ptr %49, i64 24367
  %112 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.435, ptr noundef nonnull %111)
  %113 = getelementptr inbounds i8, ptr %49, i64 24366
  %114 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.436, ptr noundef nonnull %113)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %115 = tail call noundef float @_ZN5ImGui11GetFontSizeEv()
  %116 = fmul float %115, 1.200000e+01
  tail call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %116)
  %117 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.437, ptr noundef nonnull %83, ptr noundef nonnull %2, i32 noundef 8, i32 noundef 8)
  %118 = load i8, ptr %113, align 2, !tbaa !112, !range !13, !noundef !14
  %119 = zext i1 %117 to i8
  %120 = or i8 %118, %119
  %.not579 = icmp eq i8 %120, 0
  store i8 %120, ptr %113, align 2, !tbaa !112
  br i1 %.not579, label %271, label %121

121:                                              ; preds = %108
  %122 = getelementptr inbounds i8, ptr %49, i64 19080
  %123 = load ptr, ptr %122, align 8, !tbaa !113
  %.not580 = icmp eq ptr %123, null
  br i1 %.not580, label %271, label %124

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

271:                                              ; preds = %124, %121, %108
  %272 = getelementptr inbounds i8, ptr %49, i64 24368
  %273 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.440, ptr noundef nonnull %272)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %274 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %275 = fmul float %274, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %275)
  %276 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.441, ptr noundef nonnull %88, ptr noundef nonnull %3, i32 noundef 13, i32 noundef 13)
  %277 = load i8, ptr %272, align 4, !tbaa !115, !range !13, !noundef !14
  %278 = zext i1 %276 to i8
  %279 = or i8 %277, %278
  %.not581 = icmp eq i8 %279, 0
  store i8 %279, ptr %272, align 4, !tbaa !115
  br i1 %.not581, label %.loopexit645, label %280

280:                                              ; preds = %271
  %281 = getelementptr inbounds i8, ptr %49, i64 19080
  %282 = load ptr, ptr %281, align 8, !tbaa !113
  %.not582 = icmp eq ptr %282, null
  br i1 %.not582, label %.loopexit645, label %.preheader644

.preheader644:                                    ; preds = %280
  %283 = getelementptr inbounds i8, ptr %49, i64 19744
  %284 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %283)
  %285 = icmp sgt i32 %284, 0
  br i1 %285, label %.lr.ph651, label %.loopexit645

.lr.ph651:                                        ; preds = %.preheader644
  %286 = getelementptr inbounds i8, ptr %49, i64 16240
  %287 = getelementptr inbounds i8, ptr %16, i64 8
  %288 = getelementptr inbounds i8, ptr %10, i64 8
  br label %289

289:                                              ; preds = %.lr.ph651, %383
  %.0509650 = phi i32 [ 0, %.lr.ph651 ], [ %384, %383 ]
  %290 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %283, i32 noundef %.0509650)
  %291 = icmp eq ptr %290, null
  br i1 %291, label %383, label %292

292:                                              ; preds = %289
  %293 = getelementptr inbounds i8, ptr %290, i64 104
  %294 = load i32, ptr %293, align 8, !tbaa !116
  %295 = load i32, ptr %286, align 8, !tbaa !126
  %296 = add nsw i32 %295, -1
  %297 = icmp slt i32 %294, %296
  br i1 %297, label %383, label %298

298:                                              ; preds = %292
  %299 = getelementptr inbounds i8, ptr %290, i64 376
  %300 = load ptr, ptr %299, align 8, !tbaa !127
  %301 = load ptr, ptr %281, align 8, !tbaa !113
  %.not620 = icmp eq ptr %300, %301
  br i1 %.not620, label %305, label %302

302:                                              ; preds = %298
  %303 = getelementptr inbounds i8, ptr %290, i64 384
  %304 = load ptr, ptr %303, align 8, !tbaa !128
  %.not621 = icmp eq ptr %304, %301
  br i1 %.not621, label %305, label %383

305:                                              ; preds = %302, %298
  %306 = load i32, ptr %290, align 8, !tbaa !129
  %307 = getelementptr inbounds i8, ptr %290, i64 108
  %308 = load i32, ptr %307, align 4, !tbaa !130
  %309 = getelementptr inbounds i8, ptr %300, i64 8
  %310 = load ptr, ptr %309, align 8, !tbaa !114
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.442, i32 noundef %306, i32 noundef %308, ptr noundef %310)
  %311 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %311, label %312, label %318

312:                                              ; preds = %305
  %313 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #11
  %314 = getelementptr inbounds i8, ptr %290, i64 232
  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)
  %315 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %314, ptr noundef nonnull align 4 dereferenceable(8) %6)
  store <2 x float> %315, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #11
  %316 = getelementptr inbounds i8, ptr %290, i64 240
  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)
  %317 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %316, ptr noundef nonnull align 4 dereferenceable(8) %8)
  store <2 x float> %317, ptr %7, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %313, 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 %318

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

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

320:                                              ; preds = %318, %.loopexit643
  %indvars.iv = phi i64 [ 0, %318 ], [ %indvars.iv.next, %.loopexit643 ]
  %321 = icmp ugt i64 %indvars.iv, 5
  br i1 %321, label %322, label %356

322:                                              ; preds = %320
  %323 = trunc nuw nsw i64 %indvars.iv to i32
  switch i32 %323, label %.loopexit643 [
    i32 8, label %324
    i32 6, label %324
  ]

324:                                              ; preds = %322, %322
  %325 = load i32, ptr %307, align 4, !tbaa !130
  %326 = icmp sgt i32 %325, 0
  br i1 %326, label %.lr.ph, label %.loopexit643

.lr.ph:                                           ; preds = %324
  %327 = getelementptr inbounds [13 x ptr], ptr %3, i64 0, i64 %indvars.iv
  br label %328

328:                                              ; preds = %.lr.ph, %352
  %.0511647 = phi i32 [ 0, %.lr.ph ], [ %353, %352 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #11
  %329 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %290, i32 noundef %323, i32 noundef %.0511647)
  %330 = extractvalue { <2 x float>, <2 x float> } %329, 0
  store <2 x float> %330, ptr %10, align 8
  %331 = extractvalue { <2 x float>, <2 x float> } %329, 1
  store <2 x float> %331, ptr %288, align 8
  %332 = extractelement <2 x float> %330, i64 0
  %333 = fpext float %332 to double
  %334 = extractelement <2 x float> %330, i64 1
  %335 = fpext float %334 to double
  %336 = extractelement <2 x float> %331, i64 0
  %337 = fpext float %336 to double
  %338 = extractelement <2 x float> %331, i64 1
  %339 = fpext float %338 to double
  %340 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %341 = fpext float %340 to double
  %342 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %343 = fpext float %342 to double
  %344 = load ptr, ptr %327, align 8, !tbaa !5
  %345 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %9, i64 noundef 128, ptr noundef nonnull @.str.443, double noundef %333, double noundef %335, double noundef %337, double noundef %339, double noundef %341, double noundef %343, i32 noundef %.0511647, ptr noundef %344)
  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)
  %346 = 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
  %347 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %347, label %348, label %352

348:                                              ; preds = %328
  %349 = 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)
  %350 = 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> %350, 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)
  %351 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %288, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %351, ptr %14, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %349, 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 %352

352:                                              ; preds = %348, %328
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #11
  %353 = add nuw nsw i32 %.0511647, 1
  %354 = load i32, ptr %307, align 4, !tbaa !130
  %355 = icmp slt i32 %353, %354
  br i1 %355, label %328, label %.loopexit643, !llvm.loop !131

356:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #11
  %357 = trunc nuw nsw i64 %indvars.iv to i32
  %358 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %290, i32 noundef %357, i32 noundef -1)
  %359 = extractvalue { <2 x float>, <2 x float> } %358, 0
  store <2 x float> %359, ptr %16, align 8
  %360 = extractvalue { <2 x float>, <2 x float> } %358, 1
  store <2 x float> %360, ptr %287, align 8
  %361 = extractelement <2 x float> %359, i64 0
  %362 = fpext float %361 to double
  %363 = extractelement <2 x float> %359, i64 1
  %364 = fpext float %363 to double
  %365 = extractelement <2 x float> %360, i64 0
  %366 = fpext float %365 to double
  %367 = extractelement <2 x float> %360, i64 1
  %368 = fpext float %367 to double
  %369 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %16)
  %370 = fpext float %369 to double
  %371 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %16)
  %372 = fpext float %371 to double
  %373 = getelementptr inbounds [13 x ptr], ptr %3, i64 0, i64 %indvars.iv
  %374 = load ptr, ptr %373, align 8, !tbaa !5
  %375 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %9, i64 noundef 128, ptr noundef nonnull @.str.439, double noundef %362, double noundef %364, double noundef %366, double noundef %368, double noundef %370, double noundef %372, ptr noundef %374)
  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)
  %376 = 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
  %377 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %377, label %378, label %382

378:                                              ; preds = %356
  %379 = 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)
  %380 = 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> %380, 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)
  %381 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %287, ptr noundef nonnull align 4 dereferenceable(8) %21)
  store <2 x float> %381, ptr %20, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %379, 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 %382

382:                                              ; preds = %378, %356
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #11
  br label %.loopexit643

.loopexit643:                                     ; preds = %352, %324, %322, %382
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 13
  br i1 %exitcond.not, label %319, label %320, !llvm.loop !133

383:                                              ; preds = %289, %292, %302, %319
  %384 = add nuw nsw i32 %.0509650, 1
  %385 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %283)
  %386 = icmp slt i32 %384, %385
  br i1 %386, label %289, label %.loopexit645, !llvm.loop !134

.loopexit645:                                     ; preds = %383, %.preheader644, %280, %271
  %387 = getelementptr inbounds i8, ptr %49, i64 129
  %388 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.444, ptr noundef nonnull %387)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.445)
  call void @_ZN5ImGui7TreePopEv()
  br label %389

389:                                              ; preds = %.loopexit645, %92
  %390 = getelementptr inbounds i8, ptr %49, i64 16312
  %391 = load i32, ptr %390, align 8, !tbaa !135
  %392 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.446, ptr noundef nonnull @.str.447, i32 noundef %391)
  br i1 %392, label %393, label %421

393:                                              ; preds = %389
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %390, ptr noundef nonnull @.str.448)
  %394 = getelementptr inbounds i8, ptr %49, i64 16328
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %394, ptr noundef nonnull @.str.449)
  %395 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.450)
  br i1 %395, label %396, label %420

396:                                              ; preds = %393
  %397 = getelementptr inbounds i8, ptr %49, i64 16344
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %397, i32 noundef 0)
  %398 = load i32, ptr %390, align 8, !tbaa !135
  %399 = icmp sgt i32 %398, 0
  br i1 %399, label %.lr.ph653, label %._crit_edge

.lr.ph653:                                        ; preds = %396
  %400 = getelementptr inbounds i8, ptr %49, i64 16240
  br label %407

._crit_edge:                                      ; preds = %416, %396
  %401 = getelementptr inbounds i8, ptr %49, i64 16352
  %402 = load ptr, ptr %401, align 8, !tbaa !136
  %403 = load i32, ptr %397, align 8, !tbaa !137
  %404 = sext i32 %403 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %402, i64 noundef %404, i64 noundef 8, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %405 = load ptr, ptr %401, align 8, !tbaa !136
  %406 = load i32, ptr %397, align 8, !tbaa !137
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %405, i32 noundef %406, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %420

407:                                              ; preds = %.lr.ph653, %416
  %.0513652 = phi i32 [ 0, %.lr.ph653 ], [ %417, %416 ]
  %408 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %390, i32 noundef %.0513652)
  %409 = load ptr, ptr %408, align 8, !tbaa !5
  %410 = getelementptr inbounds i8, ptr %409, i64 664
  %411 = load i32, ptr %410, align 8, !tbaa !138
  %412 = add nsw i32 %411, 1
  %413 = load i32, ptr %400, align 8, !tbaa !126
  %.not619 = icmp slt i32 %412, %413
  br i1 %.not619, label %416, label %414

414:                                              ; preds = %407
  %415 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %390, i32 noundef %.0513652)
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %397, ptr noundef nonnull align 8 dereferenceable(8) %415)
  br label %416

416:                                              ; preds = %407, %414
  %417 = add nuw nsw i32 %.0513652, 1
  %418 = load i32, ptr %390, align 8, !tbaa !135
  %419 = icmp slt i32 %417, %418
  br i1 %419, label %407, label %._crit_edge, !llvm.loop !139

420:                                              ; preds = %._crit_edge, %393
  call void @_ZN5ImGui7TreePopEv()
  br label %421

421:                                              ; preds = %420, %389
  %422 = getelementptr inbounds i8, ptr %49, i64 18960
  %423 = load i32, ptr %422, align 8, !tbaa !140
  %424 = icmp sgt i32 %423, 0
  br i1 %424, label %.lr.ph657, label %._crit_edge658

._crit_edge658:                                   ; preds = %.lr.ph657, %421
  %.0514.lcssa = phi i32 [ 0, %421 ], [ %430, %.lr.ph657 ]
  %425 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.451, ptr noundef nonnull @.str.452, i32 noundef %.0514.lcssa)
  br i1 %425, label %434, label %462

.lr.ph657:                                        ; preds = %421, %.lr.ph657
  %.0514655 = phi i32 [ %430, %.lr.ph657 ], [ 0, %421 ]
  %.0516654 = phi i32 [ %431, %.lr.ph657 ], [ 0, %421 ]
  %426 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %422, i32 noundef %.0516654)
  %427 = load ptr, ptr %426, align 8, !tbaa !5
  %428 = getelementptr inbounds i8, ptr %427, i64 184
  %429 = load i32, ptr %428, align 8, !tbaa !141
  %430 = add nsw i32 %429, %.0514655
  %431 = add nuw nsw i32 %.0516654, 1
  %432 = load i32, ptr %422, align 8, !tbaa !140
  %433 = icmp slt i32 %431, %432
  br i1 %433, label %.lr.ph657, label %._crit_edge658, !llvm.loop !147

434:                                              ; preds = %._crit_edge658
  %435 = getelementptr inbounds i8, ptr %49, i64 24369
  %436 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.453, ptr noundef nonnull %435)
  %437 = getelementptr inbounds i8, ptr %49, i64 24370
  %438 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.454, ptr noundef nonnull %437)
  %439 = load i32, ptr %422, align 8, !tbaa !140
  %440 = icmp sgt i32 %439, 0
  br i1 %440, label %.lr.ph667, label %._crit_edge668

._crit_edge668:                                   ; preds = %._crit_edge664, %434
  call void @_ZN5ImGui7TreePopEv()
  br label %462

.lr.ph667:                                        ; preds = %434, %._crit_edge664
  %.0517665 = phi i32 [ %454, %._crit_edge664 ], [ 0, %434 ]
  %441 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %422, i32 noundef %.0517665)
  %442 = load ptr, ptr %441, align 8, !tbaa !5
  %443 = getelementptr inbounds i8, ptr %442, i64 184
  %444 = load i32, ptr %443, align 8, !tbaa !141
  %445 = icmp sgt i32 %444, 0
  br i1 %445, label %446, label %._crit_edge664

446:                                              ; preds = %.lr.ph667
  %447 = getelementptr inbounds i8, ptr %442, i64 104
  %448 = load i32, ptr %447, align 8, !tbaa !148
  %449 = load i32, ptr %442, align 8, !tbaa !149
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.455, i32 noundef %448, i32 noundef %449)
  %450 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %443, i32 noundef 0)
  %451 = load ptr, ptr %450, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef nonnull %442, ptr noundef %451, ptr noundef nonnull @.str.456)
  %452 = load i32, ptr %443, align 8, !tbaa !141
  %453 = icmp sgt i32 %452, 1
  br i1 %453, label %.peel.next, label %._crit_edge664

._crit_edge664:                                   ; preds = %.peel.next, %446, %.lr.ph667
  %454 = add nuw nsw i32 %.0517665, 1
  %455 = load i32, ptr %422, align 8, !tbaa !140
  %456 = icmp slt i32 %454, %455
  br i1 %456, label %.lr.ph667, label %._crit_edge668, !llvm.loop !150

.peel.next:                                       ; preds = %446, %.peel.next
  %.0520660 = phi i32 [ %459, %.peel.next ], [ 1, %446 ]
  %457 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %443, i32 noundef %.0520660)
  %458 = load ptr, ptr %457, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef nonnull %442, ptr noundef %458, ptr noundef nonnull @.str.456)
  %459 = add nuw nsw i32 %.0520660, 1
  %460 = load i32, ptr %443, align 8, !tbaa !141
  %461 = icmp slt i32 %459, %460
  br i1 %461, label %.peel.next, label %._crit_edge664, !llvm.loop !151

462:                                              ; preds = %._crit_edge668, %._crit_edge658
  %463 = load i32, ptr %422, align 8, !tbaa !140
  %464 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.457, ptr noundef nonnull @.str.458, i32 noundef %463)
  br i1 %464, label %465, label %583

465:                                              ; preds = %462
  %466 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %466)
  call void @_ZL25RenderViewportsThumbnailsv()
  %467 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %467)
  %468 = getelementptr inbounds i8, ptr %49, i64 14520
  %469 = load i32, ptr %468, align 8, !tbaa !153
  %470 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.459, ptr noundef nonnull @.str.460, i32 noundef %469)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.461)
  br i1 %470, label %.preheader642, label %512

.preheader642:                                    ; preds = %465
  %471 = load i32, ptr %468, align 8, !tbaa !153
  %472 = icmp sgt i32 %471, 0
  br i1 %472, label %.lr.ph670, label %._crit_edge671

._crit_edge671:                                   ; preds = %.lr.ph670, %.preheader642
  call void @_ZN5ImGui7TreePopEv()
  br label %512

.lr.ph670:                                        ; preds = %.preheader642, %.lr.ph670
  %.0522669 = phi i32 [ %509, %.lr.ph670 ], [ 0, %.preheader642 ]
  %473 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI20ImGuiPlatformMonitorEixEi(ptr noundef nonnull align 8 dereferenceable(16) %468, i32 noundef %.0522669)
  %474 = getelementptr inbounds i8, ptr %473, i64 32
  %475 = load float, ptr %474, align 8, !tbaa !154
  %476 = fmul float %475, 1.000000e+02
  %477 = fpext float %476 to double
  %478 = load float, ptr %473, align 8, !tbaa !155
  %479 = fpext float %478 to double
  %480 = getelementptr inbounds i8, ptr %473, i64 4
  %481 = load float, ptr %480, align 4, !tbaa !156
  %482 = fpext float %481 to double
  %483 = getelementptr inbounds i8, ptr %473, i64 8
  %484 = load float, ptr %483, align 8, !tbaa !157
  %485 = fadd float %478, %484
  %486 = fpext float %485 to double
  %487 = getelementptr inbounds i8, ptr %473, i64 12
  %488 = load float, ptr %487, align 4, !tbaa !158
  %489 = fadd float %481, %488
  %490 = fpext float %489 to double
  %491 = fpext float %484 to double
  %492 = fpext float %488 to double
  %493 = getelementptr inbounds i8, ptr %473, i64 16
  %494 = load float, ptr %493, align 8, !tbaa !159
  %495 = fpext float %494 to double
  %496 = getelementptr inbounds i8, ptr %473, i64 20
  %497 = load float, ptr %496, align 4, !tbaa !160
  %498 = fpext float %497 to double
  %499 = getelementptr inbounds i8, ptr %473, i64 24
  %500 = load float, ptr %499, align 8, !tbaa !161
  %501 = fadd float %494, %500
  %502 = fpext float %501 to double
  %503 = getelementptr inbounds i8, ptr %473, i64 28
  %504 = load float, ptr %503, align 4, !tbaa !162
  %505 = fadd float %497, %504
  %506 = fpext float %505 to double
  %507 = fpext float %500 to double
  %508 = fpext float %504 to double
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.462, i32 noundef %.0522669, double noundef %477, double noundef %479, double noundef %482, double noundef %486, double noundef %490, double noundef %491, double noundef %492, double noundef %495, double noundef %498, double noundef %502, double noundef %506, double noundef %507, double noundef %508)
  %509 = add nuw nsw i32 %.0522669, 1
  %510 = load i32, ptr %468, align 8, !tbaa !153
  %511 = icmp slt i32 %509, %510
  br i1 %511, label %.lr.ph670, label %._crit_edge671, !llvm.loop !163

512:                                              ; preds = %._crit_edge671, %465
  %513 = getelementptr inbounds i8, ptr %49, i64 18992
  %514 = load ptr, ptr %513, align 8, !tbaa !164
  %.not583 = icmp eq ptr %514, null
  br i1 %.not583, label %517, label %515

515:                                              ; preds = %512
  %516 = load i32, ptr %514, align 8, !tbaa !149
  br label %517

517:                                              ; preds = %512, %515
  %518 = phi i32 [ %516, %515 ], [ 0, %512 ]
  %519 = getelementptr inbounds i8, ptr %49, i64 3620
  %520 = load i32, ptr %519, align 4, !tbaa !165
  %521 = getelementptr inbounds i8, ptr %49, i64 19000
  %522 = load ptr, ptr %521, align 8, !tbaa !166
  %.not584 = icmp eq ptr %522, null
  br i1 %.not584, label %525, label %523

523:                                              ; preds = %517
  %524 = load i32, ptr %522, align 8, !tbaa !149
  br label %525

525:                                              ; preds = %517, %523
  %526 = phi i32 [ %524, %523 ], [ 0, %517 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.463, i32 noundef %518, i32 noundef %520, i32 noundef %526)
  %527 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.464)
  br i1 %527, label %528, label %575

528:                                              ; preds = %525
  %529 = load atomic i8, ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports acquire, align 8
  %530 = icmp eq i8 %529, 0
  br i1 %530, label %531, label %535, !prof !167

531:                                              ; preds = %528
  %532 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #11
  %.not585 = icmp eq i32 %532, 0
  br i1 %.not585, label %535, label %533

533:                                              ; preds = %531
  call void @_ZN8ImVectorIP14ImGuiViewportPEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  %534 = 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 %535

535:                                              ; preds = %533, %531, %528
  %536 = load i32, ptr %422, align 8, !tbaa !140
  call void @_ZN8ImVectorIP14ImGuiViewportPE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 noundef %536)
  %537 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i64 8), align 8, !tbaa !168
  %538 = getelementptr inbounds i8, ptr %49, i64 18968
  %539 = load ptr, ptr %538, align 8, !tbaa !169
  %540 = call noundef i32 @_ZNK8ImVectorIP14ImGuiViewportPE13size_in_bytesEv(ptr noundef nonnull align 8 dereferenceable(16) %422)
  %541 = sext i32 %540 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %537, ptr align 8 %539, i64 %541, i1 false)
  %542 = load i32, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, align 8, !tbaa !170
  %543 = icmp sgt i32 %542, 1
  br i1 %543, label %544, label %547

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

547:                                              ; preds = %544, %535
  %548 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  %549 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  %.not586672 = icmp eq ptr %548, %549
  br i1 %.not586672, label %._crit_edge676, label %.lr.ph675

.lr.ph675:                                        ; preds = %547
  %550 = getelementptr inbounds i8, ptr %49, i64 14400
  br label %551

._crit_edge676:                                   ; preds = %572, %547
  call void @_ZN5ImGui7TreePopEv()
  br label %575

551:                                              ; preds = %.lr.ph675, %572
  %.0524673 = phi ptr [ %548, %.lr.ph675 ], [ %574, %572 ]
  %552 = load ptr, ptr %.0524673, align 8, !tbaa !5
  %553 = getelementptr inbounds i8, ptr %552, i64 104
  %554 = load i32, ptr %553, align 8, !tbaa !148
  %555 = load i32, ptr %552, align 8, !tbaa !149
  %556 = getelementptr inbounds i8, ptr %552, i64 112
  %557 = load i32, ptr %556, align 8, !tbaa !171
  %558 = load ptr, ptr %550, align 8, !tbaa !172
  %.not617 = icmp eq ptr %558, null
  br i1 %.not617, label %565, label %559

559:                                              ; preds = %551
  %560 = getelementptr inbounds i8, ptr %552, i64 88
  %561 = load i8, ptr %560, align 8, !tbaa !173, !range !13, !noundef !14
  %562 = trunc nuw i8 %561 to i1
  br i1 %562, label %563, label %565

563:                                              ; preds = %559
  %564 = call noundef zeroext i1 %558(ptr noundef nonnull %552)
  %.str.466..str.90 = select i1 %564, ptr @.str.466, ptr @.str.90
  br label %565

565:                                              ; preds = %551, %559, %563
  %566 = phi ptr [ %.str.466..str.90, %563 ], [ @.str.183, %559 ], [ @.str.183, %551 ]
  %567 = getelementptr inbounds i8, ptr %552, i64 96
  %568 = load ptr, ptr %567, align 8, !tbaa !174
  %.not618 = icmp eq ptr %568, null
  br i1 %.not618, label %572, label %569

569:                                              ; preds = %565
  %570 = getelementptr inbounds i8, ptr %568, i64 8
  %571 = load ptr, ptr %570, align 8, !tbaa !114
  br label %572

572:                                              ; preds = %565, %569
  %573 = phi ptr [ %571, %569 ], [ @.str.183, %565 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.465, i32 noundef %554, i32 noundef %555, i32 noundef %557, ptr noundef nonnull %566, ptr noundef %573)
  %574 = getelementptr inbounds i8, ptr %.0524673, i64 8
  %.not586 = icmp eq ptr %574, %549
  br i1 %.not586, label %._crit_edge676, label %551

575:                                              ; preds = %._crit_edge676, %525
  %576 = load i32, ptr %422, align 8, !tbaa !140
  %577 = icmp sgt i32 %576, 0
  br i1 %577, label %.lr.ph679, label %._crit_edge680

._crit_edge680:                                   ; preds = %.lr.ph679, %575
  call void @_ZN5ImGui7TreePopEv()
  br label %583

.lr.ph679:                                        ; preds = %575, %.lr.ph679
  %.0529677 = phi i32 [ %580, %.lr.ph679 ], [ 0, %575 ]
  %578 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %422, i32 noundef %.0529677)
  %579 = load ptr, ptr %578, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %579)
  %580 = add nuw nsw i32 %.0529677, 1
  %581 = load i32, ptr %422, align 8, !tbaa !140
  %582 = icmp slt i32 %580, %581
  br i1 %582, label %.lr.ph679, label %._crit_edge680, !llvm.loop !175

583:                                              ; preds = %._crit_edge680, %462
  %584 = getelementptr inbounds i8, ptr %49, i64 18920
  %585 = load i32, ptr %584, align 8, !tbaa !176
  %586 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.467, ptr noundef nonnull @.str.468, i32 noundef %585)
  br i1 %586, label %.preheader641, label %621

.preheader641:                                    ; preds = %583
  %587 = load i32, ptr %584, align 8, !tbaa !176
  %588 = icmp sgt i32 %587, 0
  br i1 %588, label %.lr.ph682, label %._crit_edge683

._crit_edge683:                                   ; preds = %616, %.preheader641
  call void @_ZN5ImGui7TreePopEv()
  br label %621

.lr.ph682:                                        ; preds = %.preheader641, %616
  %.0530681 = phi i32 [ %618, %616 ], [ 0, %.preheader641 ]
  %589 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %584, i32 noundef %.0530681)
  %590 = getelementptr inbounds i8, ptr %589, i64 8
  %591 = load ptr, ptr %590, align 8, !tbaa !177
  %592 = load i32, ptr %589, align 8, !tbaa !179
  %.not614 = icmp eq ptr %591, null
  br i1 %.not614, label %.thread626, label %593

593:                                              ; preds = %.lr.ph682
  %594 = getelementptr inbounds i8, ptr %591, i64 8
  %595 = load ptr, ptr %594, align 8, !tbaa !114
  %596 = getelementptr inbounds i8, ptr %591, i64 20
  %597 = load i32, ptr %596, align 4, !tbaa !180
  %.fr631 = freeze i32 %597
  %598 = and i32 %.fr631, 16777216
  %.not630 = icmp eq i32 %598, 0
  %spec.select = select i1 %.not630, ptr @.str.16, ptr @.str.471
  %599 = and i32 %.fr631, 268435456
  %.not632 = icmp eq i32 %599, 0
  %spec.select628 = select i1 %.not632, ptr @.str.16, ptr @.str.472
  br label %.thread626

.thread626:                                       ; preds = %593, %.lr.ph682
  %600 = phi ptr [ @.str.470, %.lr.ph682 ], [ %595, %593 ]
  %601 = phi ptr [ @.str.16, %.lr.ph682 ], [ %spec.select, %593 ]
  %602 = phi ptr [ @.str.16, %.lr.ph682 ], [ %spec.select628, %593 ]
  %603 = getelementptr inbounds i8, ptr %589, i64 16
  %604 = load ptr, ptr %603, align 8, !tbaa !181
  %.not615 = icmp eq ptr %604, null
  br i1 %.not615, label %608, label %605

605:                                              ; preds = %.thread626
  %606 = getelementptr inbounds i8, ptr %604, i64 8
  %607 = load ptr, ptr %606, align 8, !tbaa !114
  br label %608

608:                                              ; preds = %.thread626, %605
  %609 = phi ptr [ %607, %605 ], [ @.str.470, %.thread626 ]
  br i1 %.not614, label %616, label %610

610:                                              ; preds = %608
  %611 = getelementptr inbounds i8, ptr %591, i64 936
  %612 = load ptr, ptr %611, align 8, !tbaa !182
  %.not616 = icmp eq ptr %612, null
  br i1 %.not616, label %616, label %613

613:                                              ; preds = %610
  %614 = getelementptr inbounds i8, ptr %612, i64 8
  %615 = load ptr, ptr %614, align 8, !tbaa !114
  br label %616

616:                                              ; preds = %608, %610, %613
  %617 = phi ptr [ %615, %613 ], [ @.str.470, %610 ], [ @.str.470, %608 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.469, i32 noundef %592, ptr noundef %600, ptr noundef nonnull %601, ptr noundef nonnull %602, ptr noundef %609, ptr noundef %617)
  %618 = add nuw nsw i32 %.0530681, 1
  %619 = load i32, ptr %584, align 8, !tbaa !176
  %620 = icmp slt i32 %618, %619
  br i1 %620, label %.lr.ph682, label %._crit_edge683, !llvm.loop !183

621:                                              ; preds = %._crit_edge683, %583
  %622 = getelementptr inbounds i8, ptr %49, i64 19824
  %623 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %622)
  %624 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.473, ptr noundef nonnull @.str.474, i32 noundef %623)
  br i1 %624, label %.preheader640, label %633

.preheader640:                                    ; preds = %621
  %625 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %622)
  %626 = icmp sgt i32 %625, 0
  br i1 %626, label %.lr.ph685, label %._crit_edge686

._crit_edge686:                                   ; preds = %629, %.preheader640
  call void @_ZN5ImGui7TreePopEv()
  br label %633

.lr.ph685:                                        ; preds = %.preheader640, %629
  %.0535684 = phi i32 [ %630, %629 ], [ 0, %.preheader640 ]
  %627 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %622, i32 noundef %.0535684)
  %.not613 = icmp eq ptr %627, null
  br i1 %.not613, label %629, label %628

628:                                              ; preds = %.lr.ph685
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef nonnull %627)
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef nonnull %627, ptr noundef nonnull @.str.475)
  call void @_ZN5ImGui5PopIDEv()
  br label %629

629:                                              ; preds = %628, %.lr.ph685
  %630 = add nuw nsw i32 %.0535684, 1
  %631 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %622)
  %632 = icmp slt i32 %630, %631
  br i1 %632, label %.lr.ph685, label %._crit_edge686, !llvm.loop !184

633:                                              ; preds = %._crit_edge686, %621
  %634 = getelementptr inbounds i8, ptr %49, i64 19744
  %635 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %634)
  %636 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.476, ptr noundef nonnull @.str.477, i32 noundef %635)
  br i1 %636, label %.preheader639, label %645

.preheader639:                                    ; preds = %633
  %637 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %634)
  %638 = icmp sgt i32 %637, 0
  br i1 %638, label %.lr.ph688, label %._crit_edge689

._crit_edge689:                                   ; preds = %641, %.preheader639
  call void @_ZN5ImGui7TreePopEv()
  br label %645

.lr.ph688:                                        ; preds = %.preheader639, %641
  %.0536687 = phi i32 [ %642, %641 ], [ 0, %.preheader639 ]
  %639 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %634, i32 noundef %.0536687)
  %.not612 = icmp eq ptr %639, null
  br i1 %.not612, label %641, label %640

640:                                              ; preds = %.lr.ph688
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef nonnull %639)
  br label %641

641:                                              ; preds = %640, %.lr.ph688
  %642 = add nuw nsw i32 %.0536687, 1
  %643 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %634)
  %644 = icmp slt i32 %642, %643
  br i1 %644, label %.lr.ph688, label %._crit_edge689, !llvm.loop !185

645:                                              ; preds = %._crit_edge689, %633
  %646 = getelementptr inbounds i8, ptr %49, i64 56
  %647 = load ptr, ptr %646, align 8, !tbaa !186
  %648 = getelementptr inbounds i8, ptr %647, i64 88
  %649 = load i32, ptr %648, align 8, !tbaa !187
  %650 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.478, ptr noundef nonnull @.str.479, i32 noundef %649)
  br i1 %650, label %651, label %652

651:                                              ; preds = %645
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef nonnull %647)
  call void @_ZN5ImGui7TreePopEv()
  br label %652

652:                                              ; preds = %651, %645
  %653 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.480)
  br i1 %653, label %654, label %656

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

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

658:                                              ; preds = %656
  %659 = getelementptr inbounds i8, ptr %49, i64 24008
  %660 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.481, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only)
  %661 = getelementptr inbounds i8, ptr %49, i64 24372
  %662 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.482, ptr noundef nonnull %661)
  %663 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.483)
  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.484)
  br i1 %666, label %667, label %669

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

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

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

.lr.ph692:                                        ; preds = %669, %681
  %.0538690 = 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 %.0538690)
  %673 = getelementptr inbounds i8, ptr %672, i64 8
  %674 = load ptr, ptr %673, align 8, !tbaa !55
  %.not611 = icmp eq ptr %674, null
  br i1 %.not611, label %681, label %675

675:                                              ; preds = %.lr.ph692
  %676 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only, align 1, !tbaa !193, !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.485)
  br label %681

681:                                              ; preds = %678, %680, %.lr.ph692
  %682 = add nuw nsw i32 %.0538690, 1
  %683 = load i32, ptr %659, align 8, !tbaa !192
  %684 = icmp slt i32 %682, %683
  br i1 %684, label %.lr.ph692, label %._crit_edge693, !llvm.loop !194

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

687:                                              ; preds = %685
  %688 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.487)
  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.488)
  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.489)
  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 !195
  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 !195
  %.not587 = icmp eq ptr %701, null
  br i1 %.not587, label %703, label %702

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

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

704:                                              ; preds = %703, %702
  %705 = getelementptr inbounds i8, ptr %49, i64 131
  %706 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.491, ptr noundef nonnull %705)
  %707 = getelementptr inbounds i8, ptr %49, i64 24076
  %708 = load float, ptr %707, align 4, !tbaa !196
  %709 = fpext float %708 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.492, double noundef %709)
  %710 = getelementptr inbounds i8, ptr %49, i64 24096
  %711 = load i32, ptr %710, align 8, !tbaa !197
  %712 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.493, ptr noundef nonnull @.str.494, i32 noundef %711)
  br i1 %712, label %.preheader638, label %720

.preheader638:                                    ; preds = %704
  %713 = load i32, ptr %710, align 8, !tbaa !197
  %714 = icmp sgt i32 %713, 0
  br i1 %714, label %.lr.ph695, label %._crit_edge696

._crit_edge696:                                   ; preds = %.lr.ph695, %.preheader638
  call void @_ZN5ImGui7TreePopEv()
  br label %720

.lr.ph695:                                        ; preds = %.preheader638, %.lr.ph695
  %.0541694 = phi i32 [ %717, %.lr.ph695 ], [ 0, %.preheader638 ]
  %715 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %710, i32 noundef %.0541694)
  %716 = load ptr, ptr %715, align 8, !tbaa !198
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.490, ptr noundef %716)
  %717 = add nuw nsw i32 %.0541694, 1
  %718 = load i32, ptr %710, align 8, !tbaa !197
  %719 = icmp slt i32 %717, %718
  br i1 %719, label %.lr.ph695, label %._crit_edge696, !llvm.loop !200

720:                                              ; preds = %._crit_edge696, %704
  %721 = getelementptr inbounds i8, ptr %49, i64 24112
  %722 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %721)
  %723 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.495, ptr noundef nonnull @.str.496, i32 noundef %722)
  br i1 %723, label %724, label %727

724:                                              ; preds = %720
  %725 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %721)
  %.not588697 = icmp eq ptr %725, null
  br i1 %.not588697, label %._crit_edge701, label %.lr.ph700

._crit_edge701:                                   ; preds = %.lr.ph700, %724
  call void @_ZN5ImGui7TreePopEv()
  br label %727

.lr.ph700:                                        ; preds = %724, %.lr.ph700
  %.0543698 = phi ptr [ %726, %.lr.ph700 ], [ %725, %724 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0543698)
  %726 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %721, ptr noundef nonnull %.0543698)
  %.not588 = icmp eq ptr %726, null
  br i1 %.not588, label %._crit_edge701, label %.lr.ph700, !llvm.loop !201

727:                                              ; preds = %._crit_edge701, %720
  %728 = getelementptr inbounds i8, ptr %49, i64 24128
  %729 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %728)
  %730 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.497, ptr noundef nonnull @.str.498, i32 noundef %729)
  br i1 %730, label %731, label %734

731:                                              ; preds = %727
  %732 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %728)
  %.not589702 = icmp eq ptr %732, null
  br i1 %.not589702, label %._crit_edge706, label %.lr.ph705

._crit_edge706:                                   ; preds = %.lr.ph705, %731
  call void @_ZN5ImGui7TreePopEv()
  br label %734

.lr.ph705:                                        ; preds = %731, %.lr.ph705
  %.0542703 = phi ptr [ %733, %.lr.ph705 ], [ %732, %731 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0542703)
  %733 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %728, ptr noundef nonnull %.0542703)
  %.not589 = icmp eq ptr %733, null
  br i1 %.not589, label %._crit_edge706, label %.lr.ph705, !llvm.loop !202

734:                                              ; preds = %._crit_edge706, %727
  %735 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.499, ptr noundef nonnull @.str.500)
  br i1 %735, label %736, label %774

736:                                              ; preds = %734
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.501)
  %737 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %721)
  %.not590707 = icmp eq ptr %737, null
  br i1 %.not590707, label %._crit_edge711, label %.lr.ph710

._crit_edge711:                                   ; preds = %749, %736
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.503)
  %738 = getelementptr inbounds i8, ptr %49, i64 24040
  %739 = load i32, ptr %738, align 8, !tbaa !203
  %740 = icmp sgt i32 %739, 0
  br i1 %740, label %.lr.ph714, label %._crit_edge715

.lr.ph710:                                        ; preds = %736, %749
  %.0540708 = phi ptr [ %750, %749 ], [ %737, %736 ]
  %741 = getelementptr inbounds i8, ptr %.0540708, i64 20
  %742 = load i32, ptr %741, align 4, !tbaa !204
  %.not610 = icmp eq i32 %742, 0
  br i1 %.not610, label %749, label %743

743:                                              ; preds = %.lr.ph710
  %744 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(33) %.0540708)
  %745 = load i32, ptr %741, align 4, !tbaa !204
  %746 = getelementptr inbounds i8, ptr %.0540708, i64 28
  %747 = load i16, ptr %746, align 4, !tbaa !206
  %748 = sext i16 %747 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.502, ptr noundef %744, i32 noundef %745, i32 noundef %748)
  br label %749

749:                                              ; preds = %.lr.ph710, %743
  %750 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %721, ptr noundef nonnull %.0540708)
  %.not590 = icmp eq ptr %750, null
  br i1 %.not590, label %._crit_edge711, label %.lr.ph710, !llvm.loop !207

._crit_edge715:                                   ; preds = %764, %._crit_edge711
  call void @_ZN5ImGui7TreePopEv()
  br label %774

.lr.ph714:                                        ; preds = %._crit_edge711, %764
  %.0539712 = phi i32 [ %771, %764 ], [ 0, %._crit_edge711 ]
  %751 = call noundef nonnull align 4 dereferenceable(36) ptr @_ZN8ImVectorI21ImGuiDockNodeSettingsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %738, i32 noundef %.0539712)
  %752 = getelementptr inbounds i8, ptr %751, i64 12
  %753 = load i32, ptr %752, align 4, !tbaa !208
  %.not605 = icmp eq i32 %753, 0
  br i1 %.not605, label %764, label %754

754:                                              ; preds = %.lr.ph714
  %755 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %753)
  %.not606 = icmp eq ptr %755, null
  br i1 %.not606, label %759, label %756

756:                                              ; preds = %754
  %757 = getelementptr inbounds i8, ptr %755, i64 8
  %758 = load ptr, ptr %757, align 8, !tbaa !114
  br label %764

759:                                              ; preds = %754
  %760 = load i32, ptr %752, align 4, !tbaa !208
  %761 = call noundef ptr @_ZN5ImGui22FindWindowSettingsByIDEj(i32 noundef %760)
  %.not607 = icmp eq ptr %761, null
  br i1 %.not607, label %764, label %762

762:                                              ; preds = %759
  %763 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(33) %761)
  br label %764

764:                                              ; preds = %756, %762, %759, %.lr.ph714
  %.2 = phi ptr [ null, %.lr.ph714 ], [ %758, %756 ], [ %763, %762 ], [ null, %759 ]
  %765 = load i32, ptr %751, align 4, !tbaa !210
  %766 = getelementptr inbounds i8, ptr %751, i64 4
  %767 = load i32, ptr %766, align 4, !tbaa !211
  %768 = load i32, ptr %752, align 4, !tbaa !208
  %.not608 = icmp eq ptr %.2, null
  %.not609 = icmp eq i32 %768, 0
  %769 = select i1 %.not609, ptr @.str.16, ptr @.str.183
  %770 = select i1 %.not608, ptr %769, ptr %.2
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.504, i32 noundef %765, i32 noundef %767, i32 noundef %768, ptr noundef nonnull %770)
  %771 = add nuw nsw i32 %.0539712, 1
  %772 = load i32, ptr %738, align 8, !tbaa !203
  %773 = icmp slt i32 %771, %772
  br i1 %773, label %.lr.ph714, label %._crit_edge715, !llvm.loop !212

774:                                              ; preds = %._crit_edge715, %734
  %775 = getelementptr inbounds i8, ptr %49, i64 24080
  %776 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %775)
  %777 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.505, ptr noundef nonnull @.str.506, i32 noundef %776)
  br i1 %777, label %778, label %785

778:                                              ; preds = %774
  %779 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %775)
  %780 = load i32, ptr %775, align 8, !tbaa !213
  %781 = sext i32 %780 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %782 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %783 = fmul float %782, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %22, float noundef 0xB810000000000000, float noundef %783)
  %784 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.507, ptr noundef %779, i64 noundef %781, ptr noundef nonnull align 4 dereferenceable(8) %22, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  call void @_ZN5ImGui7TreePopEv()
  br label %785

785:                                              ; preds = %778, %774
  call void @_ZN5ImGui7TreePopEv()
  br label %786

786:                                              ; preds = %785, %685
  %787 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.508)
  br i1 %787, label %788, label %1029

788:                                              ; preds = %786
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.509)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.510)
  br label %790

789:                                              ; preds = %802
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.513)
  br label %805

790:                                              ; preds = %788, %802
  %.0534716 = phi i32 [ 0, %788 ], [ %803, %802 ]
  %791 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0534716)
  br i1 %791, label %802, label %792

792:                                              ; preds = %790
  %793 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %.0534716)
  br i1 %793, label %794, label %802

794:                                              ; preds = %792
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %795 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0534716)
  %796 = select i1 %795, ptr @.str.490, ptr @.str.511
  %797 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0534716)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %796, ptr noundef %797, i32 noundef %.0534716)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %798 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %.0534716)
  %799 = getelementptr inbounds i8, ptr %798, i64 4
  %800 = load float, ptr %799, align 4, !tbaa !214
  %801 = fpext float %800 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.512, double noundef %801)
  br label %802

802:                                              ; preds = %790, %792, %794
  %803 = add nuw nsw i32 %.0534716, 1
  %exitcond743.not = icmp eq i32 %803, 652
  br i1 %exitcond743.not, label %789, label %790, !llvm.loop !216

804:                                              ; preds = %813
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.514)
  br label %835

805:                                              ; preds = %789, %813
  %.0533717 = phi i32 [ 0, %789 ], [ %814, %813 ]
  %806 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0533717)
  br i1 %806, label %813, label %807

807:                                              ; preds = %805
  %808 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %.0533717, i1 noundef zeroext true)
  br i1 %808, label %809, label %813

809:                                              ; preds = %807
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %810 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0533717)
  %811 = select i1 %810, ptr @.str.490, ptr @.str.511
  %812 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0533717)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %811, ptr noundef %812, i32 noundef %.0533717)
  br label %813

813:                                              ; preds = %805, %807, %809
  %814 = add nuw nsw i32 %.0533717, 1
  %exitcond744.not = icmp eq i32 %814, 652
  br i1 %exitcond744.not, label %804, label %805, !llvm.loop !217

815:                                              ; preds = %843
  %816 = getelementptr inbounds i8, ptr %49, i64 3624
  %817 = load i8, ptr %816, align 8, !tbaa !218, !range !13, !noundef !14
  %818 = trunc nuw i8 %817 to i1
  %819 = select i1 %818, ptr @.str.516, ptr @.str.16
  %820 = getelementptr inbounds i8, ptr %49, i64 3625
  %821 = load i8, ptr %820, align 1, !tbaa !219, !range !13, !noundef !14
  %822 = trunc nuw i8 %821 to i1
  %823 = select i1 %822, ptr @.str.517, ptr @.str.16
  %824 = getelementptr inbounds i8, ptr %49, i64 3626
  %825 = load i8, ptr %824, align 2, !tbaa !220, !range !13, !noundef !14
  %826 = trunc nuw i8 %825 to i1
  %827 = select i1 %826, ptr @.str.518, ptr @.str.16
  %828 = getelementptr inbounds i8, ptr %49, i64 3627
  %829 = load i8, ptr %828, align 1, !tbaa !221, !range !13, !noundef !14
  %830 = trunc nuw i8 %829 to i1
  %831 = select i1 %830, ptr @.str.519, ptr @.str.16
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.515, ptr noundef nonnull %819, ptr noundef nonnull %823, ptr noundef nonnull %827, ptr noundef nonnull %831)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.520)
  %832 = getelementptr inbounds i8, ptr %49, i64 14320
  %833 = load i32, ptr %832, align 8, !tbaa !222
  %834 = icmp sgt i32 %833, 0
  br i1 %834, label %.lr.ph721, label %._crit_edge722

835:                                              ; preds = %804, %843
  %.0532718 = phi i32 [ 0, %804 ], [ %844, %843 ]
  %836 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0532718)
  br i1 %836, label %843, label %837

837:                                              ; preds = %835
  %838 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %.0532718)
  br i1 %838, label %839, label %843

839:                                              ; preds = %837
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %840 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0532718)
  %841 = select i1 %840, ptr @.str.490, ptr @.str.511
  %842 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0532718)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %841, ptr noundef %842, i32 noundef %.0532718)
  br label %843

843:                                              ; preds = %835, %837, %839
  %844 = add nuw nsw i32 %.0532718, 1
  %exitcond745.not = icmp eq i32 %844, 652
  br i1 %exitcond745.not, label %815, label %835, !llvm.loop !223

._crit_edge722:                                   ; preds = %.lr.ph721, %815
  %845 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %845)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.522)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %846 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %846, label %856, label %863

.lr.ph721:                                        ; preds = %815, %.lr.ph721
  %.0531719 = phi i32 [ %853, %.lr.ph721 ], [ 0, %815 ]
  %847 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %832, i32 noundef %.0531719)
  %848 = load i16, ptr %847, align 2, !tbaa !224
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %849 = zext i16 %848 to i32
  %850 = add i16 %848, -33
  %or.cond4 = icmp ult i16 %850, 223
  %sext = shl i32 %849, 24
  %851 = ashr exact i32 %sext, 24
  %852 = select i1 %or.cond4, i32 %851, i32 63
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.521, i32 noundef %852, i32 noundef %849)
  %853 = add nuw nsw i32 %.0531719, 1
  %854 = load i32, ptr %832, align 8, !tbaa !222
  %855 = icmp slt i32 %853, %854
  br i1 %855, label %.lr.ph721, label %._crit_edge722, !llvm.loop !225

856:                                              ; preds = %._crit_edge722
  %857 = getelementptr inbounds i8, ptr %49, i64 3592
  %858 = load float, ptr %857, align 8, !tbaa !226
  %859 = fpext float %858 to double
  %860 = getelementptr inbounds i8, ptr %49, i64 3596
  %861 = load float, ptr %860, align 4, !tbaa !227
  %862 = fpext float %861 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.523, double noundef %859, double noundef %862)
  br label %864

863:                                              ; preds = %._crit_edge722
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.524)
  br label %864

864:                                              ; preds = %863, %856
  %865 = getelementptr inbounds i8, ptr %49, i64 248
  %866 = load float, ptr %865, align 8, !tbaa !228
  %867 = fpext float %866 to double
  %868 = getelementptr inbounds i8, ptr %49, i64 252
  %869 = load float, ptr %868, align 4, !tbaa !229
  %870 = fpext float %869 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.525, double noundef %867, double noundef %870)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.526)
  %871 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 0)
  br i1 %871, label %872, label %876

872:                                              ; preds = %864
  %873 = getelementptr inbounds i8, ptr %49, i64 14208
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %874 = load float, ptr %873, align 4, !tbaa !230
  %875 = fpext float %874 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.527, i32 noundef 0, double noundef %875)
  br label %876

876:                                              ; preds = %864, %872
  %877 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 1)
  br i1 %877, label %878, label %882

878:                                              ; preds = %876
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %879 = getelementptr inbounds i8, ptr %49, i64 14212
  %880 = load float, ptr %879, align 4, !tbaa !230
  %881 = fpext float %880 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.527, i32 noundef 1, double noundef %881)
  br label %882

882:                                              ; preds = %878, %876
  %883 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 2)
  br i1 %883, label %884, label %888

884:                                              ; preds = %882
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %885 = getelementptr inbounds i8, ptr %49, i64 14216
  %886 = load float, ptr %885, align 4, !tbaa !230
  %887 = fpext float %886 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.527, i32 noundef 2, double noundef %887)
  br label %888

888:                                              ; preds = %884, %882
  %889 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 3)
  br i1 %889, label %890, label %894

890:                                              ; preds = %888
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %891 = getelementptr inbounds i8, ptr %49, i64 14220
  %892 = load float, ptr %891, align 4, !tbaa !230
  %893 = fpext float %892 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.527, i32 noundef 3, double noundef %893)
  br label %894

894:                                              ; preds = %890, %888
  %895 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 4)
  br i1 %895, label %896, label %900

896:                                              ; preds = %894
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %897 = getelementptr inbounds i8, ptr %49, i64 14224
  %898 = load float, ptr %897, align 4, !tbaa !230
  %899 = fpext float %898 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.527, i32 noundef 4, double noundef %899)
  br label %900

900:                                              ; preds = %896, %894
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.528)
  %901 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
  br i1 %901, label %902, label %906

902:                                              ; preds = %900
  %903 = getelementptr inbounds i8, ptr %49, i64 14170
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %904 = load i16, ptr %903, align 2, !tbaa !224
  %905 = zext i16 %904 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.529, i32 noundef 0, i32 noundef %905)
  br label %906

906:                                              ; preds = %900, %902
  %907 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 1, i1 noundef zeroext false)
  br i1 %907, label %908, label %912

908:                                              ; preds = %906
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %909 = getelementptr inbounds i8, ptr %49, i64 14172
  %910 = load i16, ptr %909, align 2, !tbaa !224
  %911 = zext i16 %910 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.529, i32 noundef 1, i32 noundef %911)
  br label %912

912:                                              ; preds = %908, %906
  %913 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 2, i1 noundef zeroext false)
  br i1 %913, label %914, label %918

914:                                              ; preds = %912
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %915 = getelementptr inbounds i8, ptr %49, i64 14174
  %916 = load i16, ptr %915, align 2, !tbaa !224
  %917 = zext i16 %916 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.529, i32 noundef 2, i32 noundef %917)
  br label %918

918:                                              ; preds = %914, %912
  %919 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 3, i1 noundef zeroext false)
  br i1 %919, label %920, label %924

920:                                              ; preds = %918
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %921 = getelementptr inbounds i8, ptr %49, i64 14176
  %922 = load i16, ptr %921, align 2, !tbaa !224
  %923 = zext i16 %922 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.529, i32 noundef 3, i32 noundef %923)
  br label %924

924:                                              ; preds = %920, %918
  %925 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 4, i1 noundef zeroext false)
  br i1 %925, label %926, label %930

926:                                              ; preds = %924
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %927 = getelementptr inbounds i8, ptr %49, i64 14178
  %928 = load i16, ptr %927, align 2, !tbaa !224
  %929 = zext i16 %928 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.529, i32 noundef 4, i32 noundef %929)
  br label %930

930:                                              ; preds = %926, %924
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.530)
  %931 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 0)
  br i1 %931, label %932, label %933

932:                                              ; preds = %930
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.531, i32 noundef 0)
  br label %933

933:                                              ; preds = %930, %932
  %934 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 1)
  br i1 %934, label %935, label %936

935:                                              ; preds = %933
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.531, i32 noundef 1)
  br label %936

936:                                              ; preds = %935, %933
  %937 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 2)
  br i1 %937, label %938, label %939

938:                                              ; preds = %936
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.531, i32 noundef 2)
  br label %939

939:                                              ; preds = %938, %936
  %940 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 3)
  br i1 %940, label %941, label %942

941:                                              ; preds = %939
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.531, i32 noundef 3)
  br label %942

942:                                              ; preds = %941, %939
  %943 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 4)
  br i1 %943, label %944, label %945

944:                                              ; preds = %942
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.531, i32 noundef 4)
  br label %945

945:                                              ; preds = %944, %942
  %946 = getelementptr inbounds i8, ptr %49, i64 3608
  %947 = load float, ptr %946, align 8, !tbaa !231
  %948 = fpext float %947 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.532, double noundef %948)
  %949 = getelementptr inbounds i8, ptr %49, i64 19924
  %950 = load float, ptr %949, align 4, !tbaa !232
  %951 = fpext float %950 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.533, double noundef %951)
  %952 = getelementptr inbounds i8, ptr %49, i64 3616
  %953 = load i32, ptr %952, align 8, !tbaa !233
  %954 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %953)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.534, ptr noundef %954)
  %955 = getelementptr inbounds i8, ptr %49, i64 14308
  %956 = load float, ptr %955, align 4, !tbaa !234
  %957 = fpext float %956 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.535, double noundef %957)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.536)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %958 = getelementptr inbounds i8, ptr %49, i64 16440
  %959 = load ptr, ptr %958, align 8, !tbaa !235
  %.not591 = icmp eq ptr %959, null
  br i1 %.not591, label %963, label %960

960:                                              ; preds = %945
  %961 = getelementptr inbounds i8, ptr %959, i64 8
  %962 = load ptr, ptr %961, align 8, !tbaa !114
  br label %963

963:                                              ; preds = %945, %960
  %964 = phi ptr [ %962, %960 ], [ @.str.470, %945 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.537, ptr noundef %964)
  %965 = getelementptr inbounds i8, ptr %49, i64 16460
  %966 = load float, ptr %965, align 4, !tbaa !236
  %967 = fpext float %966 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.538, double noundef %967)
  %968 = getelementptr inbounds i8, ptr %49, i64 16472
  %969 = load float, ptr %968, align 8, !tbaa !237
  %970 = fpext float %969 to double
  %971 = getelementptr inbounds i8, ptr %49, i64 16476
  %972 = load float, ptr %971, align 4, !tbaa !238
  %973 = fpext float %972 to double
  %974 = fcmp ogt float %969, %972
  %975 = fcmp olt float %969, %972
  %976 = select i1 %975, ptr @.str.540, ptr @.str.541
  %977 = select i1 %974, ptr @.str.386, ptr %976
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.539, double noundef %970, double noundef %973, ptr noundef nonnull %977)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.542)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #11
  %978 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %979 = fmul float %978, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0xB810000000000000, float noundef %979)
  %980 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef nonnull @.str.543, ptr noundef nonnull align 4 dereferenceable(8) %23)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  br i1 %980, label %.preheader637, label %1001

981:                                              ; preds = %999
  call void @_ZN5ImGui10EndListBoxEv()
  br label %1001

.preheader637:                                    ; preds = %963, %999
  %.0525726 = phi i32 [ %1000, %999 ], [ 512, %963 ]
  %982 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %49, i32 noundef %.0525726)
  %983 = load i32, ptr %982, align 4, !tbaa !239
  %984 = icmp eq i32 %983, -1
  br i1 %984, label %999, label %985

985:                                              ; preds = %.preheader637
  %986 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0525726)
  %987 = load i32, ptr %982, align 4, !tbaa !239
  %988 = getelementptr inbounds i8, ptr %982, i64 9
  %989 = load i8, ptr %988, align 1, !tbaa !241, !range !13, !noundef !14
  %990 = trunc nuw i8 %989 to i1
  br i1 %990, label %996, label %991

991:                                              ; preds = %985
  %992 = getelementptr inbounds i8, ptr %982, i64 8
  %993 = load i8, ptr %992, align 4, !tbaa !242, !range !13, !noundef !14
  %994 = trunc nuw i8 %993 to i1
  %995 = select i1 %994, ptr @.str.546, ptr @.str.16
  br label %996

996:                                              ; preds = %985, %991
  %997 = phi ptr [ %995, %991 ], [ @.str.545, %985 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.544, ptr noundef %986, i32 noundef %987, ptr noundef nonnull %997)
  %998 = load i32, ptr %982, align 4, !tbaa !239
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %998)
  br label %999

999:                                              ; preds = %.preheader637, %996
  %1000 = add nuw nsw i32 %.0525726, 1
  %exitcond755.not = icmp eq i32 %1000, 652
  br i1 %exitcond755.not, label %981, label %.preheader637, !llvm.loop !243

1001:                                             ; preds = %981, %963
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.547)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #11
  %1002 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1003 = fmul float %1002, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 0xB810000000000000, float noundef %1003)
  %1004 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef nonnull @.str.548, ptr noundef nonnull align 4 dereferenceable(8) %24)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #11
  br i1 %1004, label %.preheader636, label %1023

.preheader636:                                    ; preds = %1001
  %1005 = getelementptr inbounds i8, ptr %49, i64 18256
  %1006 = getelementptr inbounds i8, ptr %49, i64 18536
  br label %1008

1007:                                             ; preds = %._crit_edge731
  call void @_ZN5ImGui10EndListBoxEv()
  br label %1023

1008:                                             ; preds = %.preheader636, %._crit_edge731
  %indvars.iv756 = phi i64 [ 512, %.preheader636 ], [ %indvars.iv.next757, %._crit_edge731 ]
  %1009 = add nsw i64 %indvars.iv756, -512
  %1010 = getelementptr inbounds [140 x i16], ptr %1005, i64 0, i64 %1009
  %1011 = load i16, ptr %1010, align 2, !tbaa !224
  %.not604727 = icmp eq i16 %1011, -1
  br i1 %.not604727, label %._crit_edge731, label %.lr.ph730.preheader

.lr.ph730.preheader:                              ; preds = %1008
  %1012 = trunc nuw nsw i64 %indvars.iv756 to i32
  br label %.lr.ph730

._crit_edge731:                                   ; preds = %.lr.ph730, %1008
  %indvars.iv.next757 = add nuw nsw i64 %indvars.iv756, 1
  %exitcond759.not = icmp eq i64 %indvars.iv.next757, 652
  br i1 %exitcond759.not, label %1007, label %1008, !llvm.loop !244

.lr.ph730:                                        ; preds = %.lr.ph730.preheader, %.lr.ph730
  %.0521728 = phi i16 [ %1022, %.lr.ph730 ], [ %1011, %.lr.ph730.preheader ]
  %1013 = sext i16 %.0521728 to i32
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %25) #11
  %1014 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1006, i32 noundef %1013)
  %1015 = getelementptr inbounds i8, ptr %1014, i64 2
  %1016 = load i16, ptr %1015, align 2, !tbaa !245
  %1017 = zext i16 %1016 to i32
  %1018 = or i32 %1012, %1017
  call void @_ZN5ImGui15GetKeyChordNameEiPci(i32 noundef %1018, ptr noundef nonnull %25, i32 noundef 64)
  %1019 = getelementptr inbounds i8, ptr %1014, i64 8
  %1020 = load i32, ptr %1019, align 4, !tbaa !247
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.549, ptr noundef nonnull %25, i32 noundef %1020)
  %1021 = load i32, ptr %1019, align 4, !tbaa !247
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1021)
  %1022 = load i16, ptr %1014, align 4, !tbaa !248
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %25) #11
  %.not604 = icmp eq i16 %1022, -1
  br i1 %.not604, label %._crit_edge731, label %.lr.ph730, !llvm.loop !249

1023:                                             ; preds = %1007, %1001
  %1024 = getelementptr inbounds i8, ptr %49, i64 18572
  %1025 = load i8, ptr %1024, align 4, !tbaa !250, !range !13, !noundef !14
  %1026 = zext nneg i8 %1025 to i32
  %1027 = getelementptr inbounds i8, ptr %49, i64 18568
  %1028 = load i32, ptr %1027, align 8, !tbaa !251
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.550, i32 noundef %1026, i32 noundef %1028)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1029

1029:                                             ; preds = %1023, %786
  %1030 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.551)
  br i1 %1030, label %1031, label %1173

1031:                                             ; preds = %1029
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.552)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1032 = getelementptr inbounds i8, ptr %49, i64 16416
  %1033 = load ptr, ptr %1032, align 8, !tbaa !252
  %.not592 = icmp eq ptr %1033, null
  br i1 %.not592, label %1037, label %1034

1034:                                             ; preds = %1031
  %1035 = getelementptr inbounds i8, ptr %1033, i64 8
  %1036 = load ptr, ptr %1035, align 8, !tbaa !114
  br label %1037

1037:                                             ; preds = %1031, %1034
  %1038 = phi ptr [ %1036, %1034 ], [ @.str.470, %1031 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.553, ptr noundef %1038)
  %1039 = load ptr, ptr %1032, align 8, !tbaa !252
  %.not593 = icmp eq ptr %1039, null
  br i1 %.not593, label %1045, label %1040

1040:                                             ; preds = %1037
  %1041 = getelementptr inbounds i8, ptr %1039, i64 968
  %1042 = load ptr, ptr %1041, align 8, !tbaa !253
  %1043 = getelementptr inbounds i8, ptr %1042, i64 8
  %1044 = load ptr, ptr %1043, align 8, !tbaa !114
  br label %1045

1045:                                             ; preds = %1037, %1040
  %1046 = phi ptr [ %1044, %1040 ], [ @.str.470, %1037 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.554, ptr noundef %1046)
  %1047 = getelementptr inbounds i8, ptr %49, i64 16424
  %1048 = load ptr, ptr %1047, align 8, !tbaa !254
  %.not594 = icmp eq ptr %1048, null
  br i1 %.not594, label %1052, label %1049

1049:                                             ; preds = %1045
  %1050 = getelementptr inbounds i8, ptr %1048, i64 8
  %1051 = load ptr, ptr %1050, align 8, !tbaa !114
  br label %1052

1052:                                             ; preds = %1045, %1049
  %1053 = phi ptr [ %1051, %1049 ], [ @.str.470, %1045 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.555, ptr noundef %1053)
  %1054 = getelementptr inbounds i8, ptr %49, i64 24424
  %1055 = load ptr, ptr %1054, align 8, !tbaa !255
  %.not595 = icmp eq ptr %1055, null
  br i1 %.not595, label %1058, label %1056

1056:                                             ; preds = %1052
  %1057 = load i32, ptr %1055, align 8, !tbaa !256
  br label %1058

1058:                                             ; preds = %1052, %1056
  %1059 = phi i32 [ %1057, %1056 ], [ 0, %1052 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.556, i32 noundef %1059)
  %1060 = getelementptr inbounds i8, ptr %49, i64 16432
  %1061 = load ptr, ptr %1060, align 8, !tbaa !260
  %.not596 = icmp eq ptr %1061, null
  br i1 %.not596, label %1065, label %1062

1062:                                             ; preds = %1058
  %1063 = getelementptr inbounds i8, ptr %1061, i64 8
  %1064 = load ptr, ptr %1063, align 8, !tbaa !114
  br label %1065

1065:                                             ; preds = %1058, %1062
  %1066 = phi ptr [ %1064, %1062 ], [ @.str.470, %1058 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.557, ptr noundef %1066)
  %1067 = getelementptr inbounds i8, ptr %49, i64 18992
  %1068 = load ptr, ptr %1067, align 8, !tbaa !164
  %1069 = load i32, ptr %1068, align 8, !tbaa !149
  %1070 = getelementptr inbounds i8, ptr %49, i64 3620
  %1071 = load i32, ptr %1070, align 4, !tbaa !165
  %1072 = getelementptr inbounds i8, ptr %49, i64 19000
  %1073 = load ptr, ptr %1072, align 8, !tbaa !166
  %.not597 = icmp eq ptr %1073, null
  br i1 %.not597, label %1076, label %1074

1074:                                             ; preds = %1065
  %1075 = load i32, ptr %1073, align 8, !tbaa !149
  br label %1076

1076:                                             ; preds = %1065, %1074
  %1077 = phi i32 [ %1075, %1074 ], [ 0, %1065 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.463, i32 noundef %1069, i32 noundef %1071, i32 noundef %1077)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.558)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1078 = getelementptr inbounds i8, ptr %49, i64 16504
  %1079 = load i32, ptr %1078, align 8, !tbaa !261
  %1080 = getelementptr inbounds i8, ptr %49, i64 16552
  %1081 = load i32, ptr %1080, align 8, !tbaa !262
  %1082 = getelementptr inbounds i8, ptr %49, i64 16512
  %1083 = load float, ptr %1082, align 8, !tbaa !263
  %1084 = fpext float %1083 to double
  %1085 = getelementptr inbounds i8, ptr %49, i64 16517
  %1086 = load i8, ptr %1085, align 1, !tbaa !264, !range !13, !noundef !14
  %1087 = zext nneg i8 %1086 to i32
  %1088 = getelementptr inbounds i8, ptr %49, i64 16544
  %1089 = load i32, ptr %1088, align 8, !tbaa !265
  %1090 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1089)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.559, i32 noundef %1079, i32 noundef %1081, double noundef %1084, i32 noundef %1087, ptr noundef %1090)
  %1091 = load i32, ptr %1078, align 8, !tbaa !261
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1091)
  %1092 = getelementptr inbounds i8, ptr %49, i64 16536
  %1093 = load ptr, ptr %1092, align 8, !tbaa !266
  %.not598 = icmp eq ptr %1093, null
  br i1 %.not598, label %1097, label %1094

1094:                                             ; preds = %1076
  %1095 = getelementptr inbounds i8, ptr %1093, i64 8
  %1096 = load ptr, ptr %1095, align 8, !tbaa !114
  br label %1097

1097:                                             ; preds = %1076, %1094
  %1098 = phi ptr [ %1096, %1094 ], [ @.str.470, %1076 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.560, ptr noundef %1098)
  %1099 = getelementptr inbounds i8, ptr %49, i64 18572
  %1100 = load i8, ptr %1099, align 4, !tbaa !250, !range !13, !noundef !14
  %1101 = zext nneg i8 %1100 to i32
  %1102 = getelementptr inbounds i8, ptr %49, i64 18568
  %1103 = load i32, ptr %1102, align 8, !tbaa !251
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.561, i32 noundef %1101, i32 noundef %1103)
  %1104 = getelementptr inbounds i8, ptr %49, i64 16488
  %1105 = load i32, ptr %1104, align 8, !tbaa !267
  %1106 = getelementptr inbounds i8, ptr %49, i64 16496
  %1107 = load float, ptr %1106, align 8, !tbaa !268
  %1108 = fpext float %1107 to double
  %1109 = getelementptr inbounds i8, ptr %49, i64 16492
  %1110 = load i8, ptr %1109, align 4, !tbaa !269, !range !13, !noundef !14
  %1111 = zext nneg i8 %1110 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.562, i32 noundef %1105, double noundef %1108, i32 noundef %1111)
  %1112 = getelementptr inbounds i8, ptr %49, i64 19896
  %1113 = load i32, ptr %1112, align 8, !tbaa !270
  %1114 = getelementptr inbounds i8, ptr %49, i64 19904
  %1115 = load float, ptr %1114, align 8, !tbaa !271
  %1116 = fpext float %1115 to double
  %1117 = getelementptr inbounds i8, ptr %49, i64 19908
  %1118 = load float, ptr %1117, align 4, !tbaa !272
  %1119 = fpext float %1118 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.563, i32 noundef %1113, double noundef %1116, double noundef %1119)
  %1120 = getelementptr inbounds i8, ptr %49, i64 19528
  %1121 = load i8, ptr %1120, align 8, !tbaa !273, !range !13, !noundef !14
  %1122 = zext nneg i8 %1121 to i32
  %1123 = getelementptr inbounds i8, ptr %49, i64 19556
  %1124 = load i32, ptr %1123, align 4, !tbaa !274
  %1125 = getelementptr inbounds i8, ptr %49, i64 19568
  %1126 = getelementptr inbounds i8, ptr %49, i64 19552
  %1127 = load i32, ptr %1126, align 8, !tbaa !275
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.564, i32 noundef %1122, i32 noundef %1124, ptr noundef nonnull %1125, i32 noundef %1127)
  %1128 = load i32, ptr %1123, align 4, !tbaa !274
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1128)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.565)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1129 = getelementptr inbounds i8, ptr %49, i64 19080
  %1130 = load ptr, ptr %1129, align 8, !tbaa !113
  %.not599 = icmp eq ptr %1130, null
  br i1 %.not599, label %1134, label %1131

1131:                                             ; preds = %1097
  %1132 = getelementptr inbounds i8, ptr %1130, i64 8
  %1133 = load ptr, ptr %1132, align 8, !tbaa !114
  br label %1134

1134:                                             ; preds = %1097, %1131
  %1135 = phi ptr [ %1133, %1131 ], [ @.str.470, %1097 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.566, ptr noundef %1135)
  %1136 = getelementptr inbounds i8, ptr %49, i64 19088
  %1137 = load i32, ptr %1136, align 8, !tbaa !276
  %1138 = getelementptr inbounds i8, ptr %49, i64 19136
  %1139 = load i32, ptr %1138, align 8, !tbaa !277
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.567, i32 noundef %1137, i32 noundef %1139)
  %1140 = load i32, ptr %1136, align 8, !tbaa !276
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1140)
  %1141 = getelementptr inbounds i8, ptr %49, i64 19132
  %1142 = load i32, ptr %1141, align 4, !tbaa !278
  %1143 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1142)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.568, ptr noundef %1143)
  %1144 = getelementptr inbounds i8, ptr %49, i64 221
  %1145 = load i8, ptr %1144, align 1, !tbaa !279, !range !13, !noundef !14
  %1146 = zext nneg i8 %1145 to i32
  %1147 = getelementptr inbounds i8, ptr %49, i64 222
  %1148 = load i8, ptr %1147, align 2, !tbaa !280, !range !13, !noundef !14
  %1149 = zext nneg i8 %1148 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.569, i32 noundef %1146, i32 noundef %1149)
  %1150 = getelementptr inbounds i8, ptr %49, i64 19096
  %1151 = load i32, ptr %1150, align 8, !tbaa !281
  %1152 = getelementptr inbounds i8, ptr %49, i64 19100
  %1153 = load i32, ptr %1152, align 4, !tbaa !282
  %1154 = getelementptr inbounds i8, ptr %49, i64 19104
  %1155 = load i32, ptr %1154, align 8, !tbaa !283
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.570, i32 noundef %1151, i32 noundef %1153, i32 noundef %1155)
  %1156 = getelementptr inbounds i8, ptr %49, i64 19108
  %1157 = load i32, ptr %1156, align 4, !tbaa !284
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.571, i32 noundef %1157)
  %1158 = getelementptr inbounds i8, ptr %49, i64 19142
  %1159 = load i8, ptr %1158, align 2, !tbaa !285, !range !13, !noundef !14
  %1160 = zext nneg i8 %1159 to i32
  %1161 = getelementptr inbounds i8, ptr %49, i64 19143
  %1162 = load i8, ptr %1161, align 1, !tbaa !286, !range !13, !noundef !14
  %1163 = zext nneg i8 %1162 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.572, i32 noundef %1160, i32 noundef %1163)
  %1164 = getelementptr inbounds i8, ptr %49, i64 19092
  %1165 = load i32, ptr %1164, align 4, !tbaa !287
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.573, i32 noundef %1165)
  %1166 = getelementptr inbounds i8, ptr %49, i64 19472
  %1167 = load ptr, ptr %1166, align 8, !tbaa !288
  %.not600 = icmp eq ptr %1167, null
  br i1 %.not600, label %1171, label %1168

1168:                                             ; preds = %1134
  %1169 = getelementptr inbounds i8, ptr %1167, i64 8
  %1170 = load ptr, ptr %1169, align 8, !tbaa !114
  br label %1171

1171:                                             ; preds = %1134, %1168
  %1172 = phi ptr [ %1170, %1168 ], [ @.str.470, %1134 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.574, ptr noundef %1172)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1173

1173:                                             ; preds = %1171, %1029
  %1174 = getelementptr inbounds i8, ptr %49, i64 24366
  %1175 = load i8, ptr %1174, align 2, !tbaa !112, !range !13, !noundef !14
  %1176 = trunc nuw i8 %1175 to i1
  br i1 %1176, label %1181, label %1177

1177:                                             ; preds = %1173
  %1178 = getelementptr inbounds i8, ptr %49, i64 24367
  %1179 = load i8, ptr %1178, align 1, !tbaa !289, !range !13, !noundef !14
  %1180 = trunc nuw i8 %1179 to i1
  br i1 %1180, label %1181, label %.loopexit635

1181:                                             ; preds = %1177, %1173
  %1182 = load i32, ptr %390, align 8, !tbaa !135
  %1183 = icmp sgt i32 %1182, 0
  br i1 %1183, label %.lr.ph735, label %.loopexit635

.lr.ph735:                                        ; preds = %1181
  %1184 = getelementptr inbounds i8, ptr %26, i64 8
  %1185 = getelementptr inbounds i8, ptr %49, i64 24367
  br label %1186

1186:                                             ; preds = %.lr.ph735, %1216
  %.0519733 = phi i32 [ 0, %.lr.ph735 ], [ %1217, %1216 ]
  %1187 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %390, i32 noundef %.0519733)
  %1188 = load ptr, ptr %1187, align 8, !tbaa !5
  %1189 = getelementptr inbounds i8, ptr %1188, i64 236
  %1190 = load i8, ptr %1189, align 4, !tbaa !290, !range !13, !noundef !14
  %1191 = trunc nuw i8 %1190 to i1
  br i1 %1191, label %1192, label %1216

1192:                                             ; preds = %1186
  %1193 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %1188)
  %1194 = load i8, ptr %1174, align 2, !tbaa !112, !range !13, !noundef !14
  %1195 = trunc nuw i8 %1194 to i1
  br i1 %1195, label %1196, label %1201

1196:                                             ; preds = %1192
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #11
  %1197 = load i32, ptr %83, align 4, !tbaa !53
  %1198 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef nonnull %1188, i32 noundef %1197)
  %1199 = extractvalue { <2 x float>, <2 x float> } %1198, 0
  store <2 x float> %1199, ptr %26, align 8
  %1200 = extractvalue { <2 x float>, <2 x float> } %1198, 1
  store <2 x float> %1200, ptr %1184, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1193, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %1184, 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 %1201

1201:                                             ; preds = %1196, %1192
  %1202 = load i8, ptr %1185, align 1, !tbaa !289, !range !13, !noundef !14
  %1203 = trunc nuw i8 %1202 to i1
  br i1 %1203, label %1204, label %1216

1204:                                             ; preds = %1201
  %1205 = getelementptr inbounds i8, ptr %1188, i64 20
  %1206 = load i32, ptr %1205, align 4, !tbaa !180
  %1207 = and i32 %1206, 16777216
  %.not603 = icmp eq i32 %1207, 0
  br i1 %.not603, label %1208, label %1216

1208:                                             ; preds = %1204
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #11
  %1209 = getelementptr inbounds i8, ptr %1188, i64 254
  %1210 = load i16, ptr %1209, align 2, !tbaa !291
  %1211 = sext i16 %1210 to i32
  %1212 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %27, i64 noundef 32, ptr noundef nonnull @.str.395, i32 noundef %1211)
  %1213 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %1214 = getelementptr inbounds i8, ptr %1188, i64 80
  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 %1213, float noundef %1213)
  %1215 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1214, ptr noundef nonnull align 4 dereferenceable(8) %29)
  store <2 x float> %1215, ptr %28, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1193, ptr noundef nonnull align 4 dereferenceable(8) %1214, 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) %1193, ptr noundef nonnull align 4 dereferenceable(8) %1214, i32 noundef -1, ptr noundef nonnull %27, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #11
  br label %1216

1216:                                             ; preds = %1201, %1204, %1208, %1186
  %1217 = add nuw nsw i32 %.0519733, 1
  %1218 = load i32, ptr %390, align 8, !tbaa !135
  %1219 = icmp slt i32 %1217, %1218
  br i1 %1219, label %1186, label %.loopexit635, !llvm.loop !292

.loopexit635:                                     ; preds = %1216, %1181, %1177
  %1220 = getelementptr inbounds i8, ptr %49, i64 24368
  %1221 = load i8, ptr %1220, align 4, !tbaa !115, !range !13, !noundef !14
  %1222 = trunc nuw i8 %1221 to i1
  br i1 %1222, label %.preheader633, label %.loopexit634

.preheader633:                                    ; preds = %.loopexit635
  %1223 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %634)
  %1224 = icmp sgt i32 %1223, 0
  br i1 %1224, label %.lr.ph739, label %.loopexit634

.lr.ph739:                                        ; preds = %.preheader633
  %1225 = getelementptr inbounds i8, ptr %49, i64 16240
  %1226 = getelementptr inbounds i8, ptr %31, i64 8
  %1227 = getelementptr inbounds i8, ptr %30, i64 8
  br label %1228

1228:                                             ; preds = %.lr.ph739, %.loopexit
  %.0515738 = phi i32 [ 0, %.lr.ph739 ], [ %1264, %.loopexit ]
  %1229 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %634, i32 noundef %.0515738)
  %1230 = icmp eq ptr %1229, null
  br i1 %1230, label %.loopexit, label %1231

1231:                                             ; preds = %1228
  %1232 = getelementptr inbounds i8, ptr %1229, i64 104
  %1233 = load i32, ptr %1232, align 8, !tbaa !116
  %1234 = load i32, ptr %1225, align 8, !tbaa !126
  %1235 = add nsw i32 %1234, -1
  %1236 = icmp slt i32 %1233, %1235
  br i1 %1236, label %.loopexit, label %1237

1237:                                             ; preds = %1231
  %1238 = getelementptr inbounds i8, ptr %1229, i64 376
  %1239 = load ptr, ptr %1238, align 8, !tbaa !127
  %1240 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1239)
  %1241 = load i32, ptr %88, align 4, !tbaa !54
  %1242 = icmp sgt i32 %1241, 5
  br i1 %1242, label %.preheader, label %1260

.preheader:                                       ; preds = %1237
  %1243 = getelementptr inbounds i8, ptr %1229, i64 108
  %1244 = load i32, ptr %1243, align 4, !tbaa !130
  %1245 = icmp sgt i32 %1244, 0
  br i1 %1245, label %.lr.ph737, label %.loopexit

.lr.ph737:                                        ; preds = %.preheader
  %1246 = getelementptr inbounds i8, ptr %1229, i64 512
  br label %1247

1247:                                             ; preds = %.lr.ph737, %1247
  %.0512736 = phi i32 [ 0, %.lr.ph737 ], [ %1257, %1247 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #11
  %1248 = load i32, ptr %88, align 4, !tbaa !54
  %1249 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1229, i32 noundef %1248, i32 noundef %.0512736)
  %1250 = extractvalue { <2 x float>, <2 x float> } %1249, 0
  store <2 x float> %1250, ptr %30, align 8
  %1251 = extractvalue { <2 x float>, <2 x float> } %1249, 1
  store <2 x float> %1251, ptr %1227, align 8
  %1252 = load i16, ptr %1246, align 8, !tbaa !293
  %1253 = sext i16 %1252 to i32
  %1254 = icmp eq i32 %.0512736, %1253
  %1255 = select i1 %1254, i32 -8323073, i32 -8388353
  %1256 = select i1 %1254, float 3.000000e+00, float 1.000000e+00
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1240, ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %1227, i32 noundef %1255, float noundef 0.000000e+00, i32 noundef 0, float noundef %1256)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #11
  %1257 = add nuw nsw i32 %.0512736, 1
  %1258 = load i32, ptr %1243, align 4, !tbaa !130
  %1259 = icmp slt i32 %1257, %1258
  br i1 %1259, label %1247, label %.loopexit, !llvm.loop !294

1260:                                             ; preds = %1237
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #11
  %1261 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1229, i32 noundef %1241, i32 noundef -1)
  %1262 = extractvalue { <2 x float>, <2 x float> } %1261, 0
  store <2 x float> %1262, ptr %31, align 8
  %1263 = extractvalue { <2 x float>, <2 x float> } %1261, 1
  store <2 x float> %1263, ptr %1226, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1240, ptr noundef nonnull align 4 dereferenceable(8) %31, ptr noundef nonnull align 4 dereferenceable(8) %1226, 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 = %1247, %.preheader, %1260, %1228, %1231
  %1264 = add nuw nsw i32 %.0515738, 1
  %1265 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %634)
  %1266 = icmp slt i32 %1264, %1265
  br i1 %1266, label %1228, label %.loopexit634, !llvm.loop !295

.loopexit634:                                     ; preds = %.loopexit, %.preheader633, %.loopexit635
  %1267 = getelementptr inbounds i8, ptr %49, i64 24372
  %1268 = load i8, ptr %1267, align 4, !tbaa !296, !range !13, !noundef !14
  %1269 = trunc nuw i8 %1268 to i1
  br i1 %1269, label %1270, label %1334

1270:                                             ; preds = %.loopexit634
  %1271 = getelementptr inbounds i8, ptr %49, i64 3624
  %1272 = load i8, ptr %1271, align 8, !tbaa !297, !range !13, !noundef !14
  %1273 = trunc nuw i8 %1272 to i1
  br i1 %1273, label %1274, label %1334

1274:                                             ; preds = %1270
  %1275 = getelementptr inbounds i8, ptr %49, i64 24424
  %1276 = load ptr, ptr %1275, align 8, !tbaa !255
  %.not601 = icmp eq ptr %1276, null
  br i1 %.not601, label %1334, label %1277

1277:                                             ; preds = %1274
  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)
  %1278 = getelementptr inbounds i8, ptr %1276, i64 136
  %1279 = load ptr, ptr %1278, align 8, !tbaa !298
  %.not602 = icmp eq ptr %1279, null
  br i1 %.not602, label %1282, label %1280

1280:                                             ; preds = %1277
  %1281 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %1279)
  br label %1285

1282:                                             ; preds = %1277
  %1283 = call noundef ptr @_ZN5ImGui15GetMainViewportEv()
  %1284 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef %1283)
  br label %1285

1285:                                             ; preds = %1282, %1280
  %1286 = phi ptr [ %1281, %1280 ], [ %1284, %1282 ]
  %1287 = getelementptr inbounds i8, ptr %32, i64 64
  %1288 = ptrtoint ptr %1287 to i64
  %1289 = load i32, ptr %1276, align 8, !tbaa !256
  %1290 = call noundef zeroext i1 @_ZNK13ImGuiDockNode13IsCentralNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %1276)
  %1291 = select i1 %1290, ptr @.str.576, ptr @.str.16
  %1292 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %32, i64 noundef 64, ptr noundef nonnull @.str.575, i32 noundef %1289, ptr noundef nonnull %1291)
  %1293 = sext i32 %1292 to i64
  %1294 = getelementptr inbounds i8, ptr %32, i64 %1293
  %gepdiff = sub nsw i64 64, %1293
  %1295 = getelementptr inbounds i8, ptr %1276, i64 100
  %1296 = load i32, ptr %1295, align 4, !tbaa !299
  %1297 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %1294, i64 noundef %gepdiff, ptr noundef nonnull @.str.577, i32 noundef %1296)
  %1298 = sext i32 %1297 to i64
  %1299 = getelementptr inbounds i8, ptr %1294, i64 %1298
  %1300 = ptrtoint ptr %1299 to i64
  %1301 = sub i64 %1288, %1300
  %1302 = getelementptr inbounds i8, ptr %1276, i64 80
  %1303 = load float, ptr %1302, align 8, !tbaa !300
  %1304 = fpext float %1303 to double
  %1305 = getelementptr inbounds i8, ptr %1276, i64 84
  %1306 = load float, ptr %1305, align 4, !tbaa !301
  %1307 = fpext float %1306 to double
  %1308 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %1299, i64 noundef %1301, ptr noundef nonnull @.str.578, double noundef %1304, double noundef %1307)
  %1309 = sext i32 %1308 to i64
  %1310 = getelementptr inbounds i8, ptr %1299, i64 %1309
  %1311 = ptrtoint ptr %1310 to i64
  %1312 = sub i64 %1288, %1311
  %1313 = getelementptr inbounds i8, ptr %1276, i64 88
  %1314 = load float, ptr %1313, align 8, !tbaa !302
  %1315 = fpext float %1314 to double
  %1316 = getelementptr inbounds i8, ptr %1276, i64 92
  %1317 = load float, ptr %1316, align 4, !tbaa !303
  %1318 = fpext float %1317 to double
  %1319 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %1310, i64 noundef %1312, ptr noundef nonnull @.str.579, double noundef %1315, double noundef %1318)
  %1320 = call noundef i32 @_ZN5ImGui16DockNodeGetDepthEPK13ImGuiDockNode(ptr noundef nonnull %1276)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #11
  %1321 = getelementptr inbounds i8, ptr %1276, 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)
  %1322 = sitofp i32 %1320 to float
  %1323 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %35, float noundef %1322)
  store <2 x float> %1323, ptr %34, align 8
  %1324 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1321, ptr noundef nonnull align 4 dereferenceable(8) %34)
  store <2 x float> %1324, 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
  %1325 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1321, ptr noundef nonnull align 4 dereferenceable(8) %1302)
  store <2 x float> %1325, 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)
  %1326 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef %1322)
  store <2 x float> %1326, ptr %38, align 8
  %1327 = 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> %1327, ptr %36, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1286, 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)
  %1328 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %42, float noundef %1322)
  store <2 x float> %1328, ptr %41, align 8
  %1329 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1321, ptr noundef nonnull align 4 dereferenceable(8) %41)
  store <2 x float> %1329, 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)
  %1330 = 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> %1330, 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
  %1331 = 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> %1331, ptr %47, align 8
  %1332 = 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> %1332, 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)
  %1333 = 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> %1333, ptr %45, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1286, 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) %1286, 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 %1334

1334:                                             ; preds = %1285, %1274, %1270, %.loopexit634
  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 %1335

1335:                                             ; preds = %1334, %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 @_ZN5ImGui19ShowStackToolWindowEPb(ptr noundef) local_unnamed_addr #8

declare void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #7

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr 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 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: 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 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 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

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

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

declare void @_ZN5ImGui10EndListBoxEv() local_unnamed_addr #7

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

; 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, !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 248}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !18, i64 28, !6, i64 56, !12, i64 64, !19, i64 68, !12, i64 76, !19, i64 80, !19, i64 88, !19, i64 96, !19, i64 104, !19, i64 112, !19, i64 120, !19, i64 128, !20, i64 136, !20, i64 140, !20, i64 144, !20, i64 148, !20, i64 152, !20, i64 156, !20, i64 160, !20, i64 164, !12, i64 168, !12, i64 172, !12, i64 176, !12, i64 180, !19, i64 184, !19, i64 192, !19, i64 200, !19, i64 208, !19, i64 216, !19, i64 224, !11, i64 232, !11, i64 233, !11, i64 234, !11, i64 235, !11, i64 236, !11, i64 237, !11, i64 238, !11, i64 239, !11, i64 240, !11, i64 241, !11, i64 242, !11, i64 243, !11, i64 244, !11, i64 245, !7, i64 246, !21, i64 248, !21, i64 250, !21, i64 252, !21, i64 254, !21, i64 256, !12, i64 260, !7, i64 264, !7, i64 265, !7, i64 266, !11, i64 267, !12, i64 268, !7, i64 272, !7, i64 273, !7, i64 274, !7, i64 275, !12, i64 276, !12, i64 277, !12, i64 278, !12, i64 279, !19, i64 280, !19, i64 288, !22, i64 296, !23, i64 312, !29, i64 544, !29, i64 560, !29, i64 576, !29, i64 592, !29, i64 608, !29, i64 624, !29, i64 640, !30, i64 656, !30, i64 660, !12, i64 664, !12, i64 668, !20, i64 672, !20, i64 676, !31, i64 680, !33, i64 696, !20, i64 712, !20, i64 716, !12, i64 720, !6, i64 728, !34, i64 736, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !7, i64 1000, !7, i64 1008, !7, i64 1040, !12, i64 1056, !12, i64 1060, !12, i64 1064, !11, i64 1068, !11, i64 1069, !11, i64 1069, !11, i64 1069, !11, i64 1069, !21, i64 1070, !45, i64 1072, !6, i64 1096, !6, i64 1104, !12, i64 1112, !12, i64 1116, !29, i64 1120}
!18 = !{!"_ZTS16ImGuiWindowClass", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !11, i64 24, !11, i64 25}
!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 216}
!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, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !11, i64 214, !20, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !12, i64 232, !12, i64 236, !19, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !19, i64 3584, !7, i64 3592, !20, i64 3600, !20, i64 3604, !48, i64 3608, !12, i64 3612, !11, i64 3616, !11, i64 3617, !11, i64 3618, !11, i64 3619, !12, i64 3620, !7, i64 3624, !11, i64 14056, !19, i64 14060, !7, i64 14068, !7, i64 14112, !7, i64 14152, !7, i64 14157, !7, i64 14162, !7, i64 14172, !7, i64 14182, !7, i64 14187, !7, i64 14192, !11, i64 14197, !7, i64 14200, !7, i64 14220, !7, i64 14240, !7, i64 14280, !20, i64 14300, !11, i64 14304, !11, i64 14305, !7, i64 14306, !11, i64 14307, !21, i64 14308, !36, i64 14312}
!48 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!49 = !{!47, !12, i64 220}
!50 = !{!47, !12, i64 224}
!51 = !{!47, !12, i64 228}
!52 = !{!47, !12, i64 236}
!53 = !{!10, !12, i64 12}
!54 = !{!10, !12, i64 16}
!55 = !{!7, !7, i64 0}
!56 = !{!57, !11, i64 24355}
!57 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !47, i64 8, !58, i64 14336, !61, i64 14552, !12, i64 15676, !12, i64 15680, !6, i64 15688, !20, i64 15696, !20, i64 15700, !62, i64 15704, !63, i64 16232, !12, i64 16240, !12, i64 16244, !12, i64 16248, !12, i64 16252, !11, i64 16256, !11, i64 16257, !11, i64 16258, !11, i64 16259, !11, i64 16260, !6, i64 16264, !64, i64 16272, !64, i64 16288, !48, i64 16304, !12, i64 16308, !27, i64 16312, !27, i64 16328, !27, i64 16344, !65, i64 16360, !31, i64 16376, !12, i64 16392, !19, i64 16396, !6, i64 16408, !6, i64 16416, !6, i64 16424, !6, i64 16432, !6, i64 16440, !19, i64 16448, !12, i64 16456, !20, i64 16460, !19, i64 16464, !19, i64 16472, !12, i64 16480, !12, i64 16484, !12, i64 16488, !11, i64 16492, !11, i64 16493, !20, i64 16496, !20, i64 16500, !12, i64 16504, !12, i64 16508, !20, i64 16512, !11, i64 16516, !11, i64 16517, !11, i64 16518, !11, i64 16519, !11, i64 16520, !11, i64 16521, !19, i64 16524, !6, i64 16536, !66, i64 16544, !12, i64 16548, !12, i64 16552, !11, i64 16556, !11, i64 16557, !6, i64 16560, !12, i64 16568, !20, i64 16572, !7, i64 16576, !67, i64 18256, !12, i64 18568, !11, i64 18572, !12, i64 18576, !12, i64 18580, !12, i64 18584, !12, i64 18588, !69, i64 18592, !70, i64 18616, !71, i64 18680, !72, i64 18824, !73, i64 18840, !74, i64 18856, !22, i64 18872, !75, i64 18888, !76, i64 18904, !77, i64 18920, !77, i64 18936, !12, i64 18952, !78, i64 18960, !20, i64 18976, !6, i64 18984, !6, i64 18992, !6, i64 19000, !12, i64 19008, !79, i64 19016, !12, i64 19064, !12, i64 19068, !12, i64 19072, !6, i64 19080, !12, i64 19088, !12, i64 19092, !12, i64 19096, !12, i64 19100, !12, i64 19104, !12, i64 19108, !12, i64 19112, !12, i64 19116, !12, i64 19120, !12, i64 19124, !12, i64 19128, !66, i64 19132, !25, i64 19136, !11, i64 19140, !11, i64 19141, !11, i64 19142, !11, i64 19143, !11, i64 19144, !11, i64 19145, !11, i64 19146, !80, i64 19152, !11, i64 19200, !11, i64 19201, !11, i64 19202, !12, i64 19204, !12, i64 19208, !12, i64 19212, !12, i64 19216, !12, i64 19220, !12, i64 19224, !29, i64 19228, !29, i64 19244, !12, i64 19260, !12, i64 19264, !12, i64 19268, !80, i64 19272, !80, i64 19320, !80, i64 19368, !80, i64 19416, !12, i64 19464, !12, i64 19468, !6, i64 19472, !6, i64 19480, !6, i64 19488, !20, i64 19496, !20, i64 19500, !11, i64 19504, !19, i64 19508, !19, i64 19516, !20, i64 19524, !11, i64 19528, !11, i64 19529, !11, i64 19530, !12, i64 19532, !12, i64 19536, !12, i64 19540, !81, i64 19544, !29, i64 19608, !12, i64 19624, !12, i64 19628, !20, i64 19632, !12, i64 19636, !12, i64 19640, !12, i64 19644, !12, i64 19648, !82, i64 19656, !7, i64 19672, !12, i64 19688, !83, i64 19696, !6, i64 19712, !12, i64 19720, !84, i64 19728, !85, i64 19744, !28, i64 19784, !44, i64 19800, !6, i64 19816, !87, i64 19824, !89, i64 19864, !90, i64 19880, !12, i64 19896, !12, i64 19900, !20, i64 19904, !20, i64 19908, !12, i64 19912, !12, i64 19916, !12, i64 19920, !20, i64 19924, !19, i64 19928, !91, i64 19936, !95, i64 23664, !96, i64 23688, !12, i64 23808, !12, i64 23812, !12, i64 23816, !12, i64 23820, !20, i64 23824, !20, i64 23828, !12, i64 23832, !42, i64 23836, !98, i64 23852, !20, i64 23900, !20, i64 23904, !11, i64 23908, !11, i64 23909, !20, i64 23912, !20, i64 23916, !20, i64 23920, !20, i64 23924, !21, i64 23928, !21, i64 23930, !92, i64 23936, !22, i64 23952, !99, i64 23968, !99, i64 23984, !12, i64 24000, !7, i64 24004, !100, i64 24008, !6, i64 24064, !11, i64 24072, !20, i64 24076, !103, i64 24080, !104, i64 24096, !105, i64 24112, !106, i64 24128, !107, i64 24144, !12, i64 24160, !7, i64 24168, !11, i64 24240, !108, i64 24244, !6, i64 24248, !103, i64 24256, !6, i64 24272, !6, i64 24280, !20, i64 24288, !11, i64 24292, !12, i64 24296, !12, i64 24300, !12, i64 24304, !12, i64 24308, !103, i64 24312, !109, i64 24328, !7, i64 24352, !7, i64 24353, !7, i64 24354, !11, i64 24355, !7, i64 24356, !12, i64 24360, !10, i64 24364, !110, i64 24384, !6, i64 24424, !7, i64 24432, !12, i64 24672, !12, i64 24676, !20, i64 24680, !12, i64 24684, !12, i64 24688, !12, i64 24692, !92, i64 24696}
!58 = !{!"_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, !59, i64 184, !60, i64 200}
!59 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !12, i64 0, !12, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_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, !12, i64 148, !19, i64 152, !19, i64 160, !20, i64 168, !19, i64 172, !19, i64 180, !19, i64 188, !19, i64 196, !20, i64 204, !20, i64 208, !11, i64 212, !11, i64 213, !11, i64 214, !20, i64 216, !20, i64 220, !7, i64 224, !20, i64 1104, !20, i64 1108, !20, i64 1112, !12, i64 1116, !12, i64 1120}
!62 = !{!"_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}
!63 = !{!"double", !7, i64 0}
!64 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!66 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!67 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !68, i64 280, !68, i64 296}
!68 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!69 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !20, i64 8, !12, i64 12, !12, i64 16, !11, i64 20}
!70 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !29, i64 12, !29, i64 28, !29, i64 44}
!71 = !{!"_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, !11, i64 60, !11, i64 61, !29, i64 64, !6, i64 80, !6, i64 88, !20, i64 96, !12, i64 100, !12, i64 104, !18, i64 108, !19, i64 136}
!72 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !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, !20, i64 36, !20, i64 40, !20, i64 44}
!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 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !19, i64 4, !20, i64 12}
!100 = !{!"_ZTS16ImGuiDockContext", !31, i64 0, !101, i64 16, !102, i64 32, !11, i64 48}
!101 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !12, i64 0, !12, i64 4, !6, i64 8}
!102 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !12, i64 0, !12, i64 4, !6, i64 8}
!103 = !{!"_ZTS15ImGuiTextBuffer", !92, i64 0}
!104 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!105 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !92, i64 0}
!106 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !92, i64 0}
!107 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!108 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!109 = !{!"_ZTS14ImGuiTextIndex", !75, i64 0, !12, i64 16}
!110 = !{!"_ZTS14ImGuiStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !111, i64 16, !11, i64 32, !20, i64 36}
!111 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!112 = !{!10, !11, i64 2}
!113 = !{!57, !6, i64 19080}
!114 = !{!17, !6, i64 8}
!115 = !{!10, !11, i64 4}
!116 = !{!117, !12, i64 104}
!117 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !118, i64 24, !119, i64 40, !120, 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, !12, i64 144, !12, i64 146, !12, i64 148, !7, i64 152, !12, i64 160, !12, i64 164, !20, 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, !29, i64 232, !29, i64 248, !29, i64 264, !29, i64 280, !29, i64 296, !29, i64 312, !29, i64 328, !29, i64 344, !29, i64 360, !6, i64 376, !6, i64 384, !103, i64 392, !6, i64 408, !121, i64 416, !122, i64 440, !123, i64 456, !124, i64 472, !125, i64 488, !21, i64 504, !21, i64 506, !21, i64 508, !21, i64 510, !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, !11, i64 554, !11, i64 555, !11, i64 556, !11, i64 557, !11, i64 558, !11, i64 559, !11, i64 560, !11, i64 561, !11, i64 562, !11, i64 563, !11, i64 564, !11, i64 565, !11, i64 566, !11, i64 567, !11, i64 568, !11, i64 569, !11, i64 570}
!118 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!119 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!120 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!121 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !20, i64 4, !20, i64 8, !20, i64 12, !12, i64 16, !12, i64 20}
!122 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!123 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !21, i64 4, !21, i64 6, !12, i64 8}
!124 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!125 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!126 = !{!57, !12, i64 16240}
!127 = !{!117, !6, i64 376}
!128 = !{!117, !6, i64 384}
!129 = !{!117, !12, i64 0}
!130 = !{!117, !12, i64 108}
!131 = distinct !{!131, !132}
!132 = !{!"llvm.loop.mustprogress"}
!133 = distinct !{!133, !132}
!134 = distinct !{!134, !132}
!135 = !{!57, !12, i64 16312}
!136 = !{!27, !6, i64 8}
!137 = !{!27, !12, i64 0}
!138 = !{!17, !12, i64 664}
!139 = distinct !{!139, !132}
!140 = !{!57, !12, i64 18960}
!141 = !{!142, !12, i64 184}
!142 = !{!"_ZTS14ImGuiViewportP", !143, 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, !144, i64 168, !146, i64 232, !19, i64 264, !19, i64 272, !19, i64 280, !19, i64 288, !19, i64 296, !19, i64 304, !19, i64 312}
!143 = !{!"_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}
!144 = !{!"_ZTS10ImDrawData", !11, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !145, i64 16, !19, i64 32, !19, i64 40, !19, i64 48, !6, i64 56}
!145 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!146 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0, !145, i64 16}
!147 = distinct !{!147, !132}
!148 = !{!142, !12, i64 104}
!149 = !{!143, !12, i64 0}
!150 = distinct !{!150, !132}
!151 = distinct !{!151, !132, !152}
!152 = !{!"llvm.loop.peeled.count", i32 1}
!153 = !{!57, !12, i64 14520}
!154 = !{!79, !20, i64 32}
!155 = !{!79, !20, i64 0}
!156 = !{!79, !20, i64 4}
!157 = !{!79, !20, i64 8}
!158 = !{!79, !20, i64 12}
!159 = !{!79, !20, i64 16}
!160 = !{!79, !20, i64 20}
!161 = !{!79, !20, i64 24}
!162 = !{!79, !20, i64 28}
!163 = distinct !{!163, !132}
!164 = !{!57, !6, i64 18992}
!165 = !{!57, !12, i64 3620}
!166 = !{!57, !6, i64 19000}
!167 = !{!"branch_weights", i32 1, i32 1048575}
!168 = !{!78, !6, i64 8}
!169 = !{!57, !6, i64 18968}
!170 = !{!78, !12, i64 0}
!171 = !{!142, !12, i64 112}
!172 = !{!57, !6, i64 14400}
!173 = !{!143, !11, i64 88}
!174 = !{!142, !6, i64 96}
!175 = distinct !{!175, !132}
!176 = !{!57, !12, i64 18920}
!177 = !{!178, !6, i64 8}
!178 = !{!"_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}
!179 = !{!178, !12, i64 0}
!180 = !{!17, !12, i64 20}
!181 = !{!178, !6, i64 16}
!182 = !{!17, !6, i64 936}
!183 = distinct !{!183, !132}
!184 = distinct !{!184, !132}
!185 = distinct !{!185, !132}
!186 = !{!57, !6, i64 56}
!187 = !{!188, !12, i64 88}
!188 = !{!"_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, !74, i64 88, !189, i64 104, !190, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!189 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!190 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!191 = !{!100, !11, i64 48}
!192 = !{!100, !12, i64 0}
!193 = !{!11, !11, i64 0}
!194 = distinct !{!194, !132}
!195 = !{!57, !6, i64 32}
!196 = !{!57, !20, i64 24076}
!197 = !{!57, !12, i64 24096}
!198 = !{!199, !6, i64 0}
!199 = !{!"_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}
!200 = distinct !{!200, !132}
!201 = distinct !{!201, !132}
!202 = distinct !{!202, !132}
!203 = !{!100, !12, i64 32}
!204 = !{!205, !12, i64 20}
!205 = !{!"_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}
!206 = !{!205, !21, i64 28}
!207 = distinct !{!207, !132}
!208 = !{!209, !12, i64 12}
!209 = !{!"_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}
!210 = !{!209, !12, i64 0}
!211 = !{!209, !12, i64 4}
!212 = distinct !{!212, !132}
!213 = !{!57, !12, i64 24080}
!214 = !{!215, !20, i64 4}
!215 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !20, i64 4, !20, i64 8, !20, i64 12}
!216 = distinct !{!216, !132}
!217 = distinct !{!217, !132}
!218 = !{!47, !11, i64 3616}
!219 = !{!47, !11, i64 3617}
!220 = !{!47, !11, i64 3618}
!221 = !{!47, !11, i64 3619}
!222 = !{!47, !12, i64 14312}
!223 = distinct !{!223, !132}
!224 = !{!21, !21, i64 0}
!225 = distinct !{!225, !132}
!226 = !{!47, !20, i64 3584}
!227 = !{!47, !20, i64 3588}
!228 = !{!47, !20, i64 240}
!229 = !{!47, !20, i64 244}
!230 = !{!20, !20, i64 0}
!231 = !{!47, !20, i64 3600}
!232 = !{!57, !20, i64 19924}
!233 = !{!47, !48, i64 3608}
!234 = !{!47, !20, i64 14300}
!235 = !{!57, !6, i64 16440}
!236 = !{!57, !20, i64 16460}
!237 = !{!57, !20, i64 16472}
!238 = !{!57, !20, i64 16476}
!239 = !{!240, !12, i64 0}
!240 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!241 = !{!240, !11, i64 9}
!242 = !{!240, !11, i64 8}
!243 = distinct !{!243, !132}
!244 = distinct !{!244, !132}
!245 = !{!246, !21, i64 2}
!246 = !{!"_ZTS19ImGuiKeyRoutingData", !21, i64 0, !21, i64 2, !7, i64 4, !12, i64 8, !12, i64 12}
!247 = !{!246, !12, i64 8}
!248 = !{!246, !21, i64 0}
!249 = distinct !{!249, !132}
!250 = !{!57, !11, i64 18572}
!251 = !{!57, !12, i64 18568}
!252 = !{!57, !6, i64 16416}
!253 = !{!17, !6, i64 968}
!254 = !{!57, !6, i64 16424}
!255 = !{!57, !6, i64 24424}
!256 = !{!257, !12, i64 0}
!257 = !{!"_ZTS13ImGuiDockNode", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !258, i64 20, !6, i64 24, !7, i64 32, !27, i64 48, !6, i64 64, !19, i64 72, !19, i64 80, !19, i64 88, !259, i64 96, !18, i64 100, !12, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !12, i64 168, !12, i64 172, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !12, i64 192, !12, i64 196, !12, i64 200, !12, i64 200, !12, i64 200, !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}
!258 = !{!"_ZTS18ImGuiDockNodeState", !7, i64 0}
!259 = !{!"_ZTS9ImGuiAxis", !7, i64 0}
!260 = !{!57, !6, i64 16432}
!261 = !{!57, !12, i64 16504}
!262 = !{!57, !12, i64 16552}
!263 = !{!57, !20, i64 16512}
!264 = !{!57, !11, i64 16517}
!265 = !{!57, !66, i64 16544}
!266 = !{!57, !6, i64 16536}
!267 = !{!57, !12, i64 16488}
!268 = !{!57, !20, i64 16496}
!269 = !{!57, !11, i64 16492}
!270 = !{!57, !12, i64 19896}
!271 = !{!57, !20, i64 19904}
!272 = !{!57, !20, i64 19908}
!273 = !{!57, !11, i64 19528}
!274 = !{!57, !12, i64 19556}
!275 = !{!57, !12, i64 19552}
!276 = !{!57, !12, i64 19088}
!277 = !{!57, !25, i64 19136}
!278 = !{!57, !66, i64 19132}
!279 = !{!57, !11, i64 221}
!280 = !{!57, !11, i64 222}
!281 = !{!57, !12, i64 19096}
!282 = !{!57, !12, i64 19100}
!283 = !{!57, !12, i64 19104}
!284 = !{!57, !12, i64 19108}
!285 = !{!57, !11, i64 19142}
!286 = !{!57, !11, i64 19143}
!287 = !{!57, !12, i64 19092}
!288 = !{!57, !6, i64 19472}
!289 = !{!10, !11, i64 3}
!290 = !{!17, !11, i64 236}
!291 = !{!17, !21, i64 254}
!292 = distinct !{!292, !132}
!293 = !{!117, !21, i64 512}
!294 = distinct !{!294, !132}
!295 = distinct !{!295, !132}
!296 = !{!10, !11, i64 8}
!297 = !{!57, !11, i64 3624}
!298 = !{!257, !6, i64 136}
!299 = !{!257, !12, i64 100}
!300 = !{!257, !20, i64 80}
!301 = !{!257, !20, i64 84}
!302 = !{!257, !20, i64 88}
!303 = !{!257, !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