; LLVM IR from khushmmehta/Scorch-V :: src/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.16 = 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, 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, [154 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, i8, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImVector.12, %struct.ImVector.13, %struct.ImVector.14, %struct.ImVector.14, %struct.ImVector.15, i32, %struct.ImVector.16, float, ptr, ptr, ptr, i32, %struct.ImGuiPlatformMonitor, i32, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i8, i8, i8, i8, i8, i8, i8, i8, %struct.ImGuiNavItemData, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, ptr, ptr, ptr, float, float, i8, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, i32, i32, i32, %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.17, [16 x i8], i32, %struct.ImVector.18, ptr, i32, %struct.ImVector.19, %struct.ImPool, %struct.ImVector.21, %struct.ImVector.22, ptr, %struct.ImPool.23, %struct.ImVector.25, %struct.ImVector.26, i32, i32, float, float, i32, i32, i32, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, %struct.ImRect, i8, float, float, i8, i8, float, float, float, float, i16, i16, i16, %struct.ImVector.27, %struct.ImVector.11, %struct.ImGuiTypingSelectState, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i32, [4 x i8], %struct.ImGuiDockContext, ptr, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.31, %struct.ImChunkStream, %struct.ImChunkStream.32, %struct.ImVector.33, i32, [11 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.ImGuiIDStackTool, %struct.ImGuiDebugAllocInfo, ptr, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.27 }
%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, i16, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, %struct.ImVec2, [666 x i32], [666 x i8], [16 x float], ptr, ptr, %struct.ImVec2, [5 x i8], float, float, i32, i32, i8, i8, i8, i8, i32, [666 x %struct.ImGuiKeyData], i8, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x i8], [5 x i8], i8, [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], float, i8, i8, i8, i8, i16, %struct.ImVector }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiPlatformIO = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVector.0, %struct.ImVector.1 }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, i8, float, float, [55 x %struct.ImVec4], float, float, float, i32, i32 }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, %struct.ImVector.2, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.6 }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [154 x i16], %struct.ImVector.7, %struct.ImVector.7 }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, i32, float, [4 x i8], i64, 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, i32, 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.ImVector.15 = 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, [4 x i8], i64, float, float, float, [4 x i8] }>
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.20, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImPool.23 = type { %struct.ImVector.24, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, i32, i32, i32, [4 x i8], %struct.ImVector, %struct.ImVector.27, %struct.ImVector.27, i8, [3 x i8], i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ImStb::STB_TexteditState" = type { i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, float, %"struct.ImStb::StbUndoState" }
%"struct.ImStb::StbUndoState" = type { [99 x %"struct.ImStb::StbUndoRecord"], [999 x i16], i16, i16, i32, i32 }
%"struct.ImStb::StbUndoRecord" = type { i32, i32, i32, i32 }
%struct.ImGuiInputTextDeactivatedState = type { i32, %struct.ImVector.27 }
%struct.ImFont = type <{ %struct.ImVector.21, float, float, %struct.ImVector, %struct.ImVector.28, ptr, ptr, ptr, i16, i16, i16, i16, float, float, i8, [3 x i8], float, float, float, i32, [2 x i8], [2 x i8] }>
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.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.ImGuiTypingSelectState = type <{ %struct.ImGuiTypingSelectRequest, [64 x i8], i32, i32, float, i8, [3 x i8] }>
%struct.ImGuiTypingSelectRequest = type { i32, i32, ptr, i8, i8, i8 }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImGuiDockContext = type <{ %struct.ImGuiStorage, %struct.ImVector.29, %struct.ImVector.30, i8, [7 x i8] }>
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.27 }
%struct.ImChunkStream.32 = type { %struct.ImVector.27 }
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.27 }
%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.ImGuiIDStackTool = type { i32, i32, i32, %struct.ImVector.34, i8, float }
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImGuiDebugAllocInfo = type { i32, i32, i16, [6 x %struct.ImGuiDebugAllocEntry] }
%struct.ImGuiDebugAllocEntry = type { i32, i16, i16 }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImGuiWindow = type { ptr, ptr, i32, i32, i32, i32, %struct.ImGuiWindowClass, ptr, i32, %struct.ImVec2, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, i16, i32, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.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.37, 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.21, %struct.ImVector.21 }
%struct.ImVec1 = type { float }
%struct.ImGuiMenuColumns = type <{ i32, i32, i16, i16, i16, i16, i16, [4 x i16], [2 x i8] }>
%struct.ImVec2ih = type { i16, i16 }
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.38, %struct.ImVector, %struct.ImVector.39, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.40, %struct.ImVector.41, %struct.ImVector.2, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImVector.40 = type { i32, i32, ptr }
%struct.ImVector.41 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.22 }
%struct.ImGuiWindowDockStyle = type { [6 x i32] }
%struct.ImGuiTable = type <{ i32, i32, ptr, ptr, %struct.ImSpan, %struct.ImSpan.42, %struct.ImSpan.43, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i16, i16, float, float, float, float, float, float, i32, i32, [2 x i32], i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, ptr, ptr, %struct.ImGuiTextBuffer, ptr, %struct.ImGuiTableInstanceData, %struct.ImVector.44, %struct.ImGuiTableColumnSortSpecs, [4 x i8], %struct.ImVector.45, %struct.ImGuiTableSortSpecs, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [6 x i8] }>
%struct.ImSpan = type { ptr, ptr }
%struct.ImSpan.42 = type { ptr, ptr }
%struct.ImSpan.43 = type { ptr, ptr }
%struct.ImGuiTableInstanceData = type { i32, float, float, float, i32, i32 }
%struct.ImVector.44 = type { i32, i32, ptr }
%struct.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.45 = 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.50, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, ptr }
%struct.ImVector.50 = type { i32, i32, ptr }
%struct.ImDrawDataBuilder = type { [2 x ptr], %struct.ImVector.50 }
%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.48, %struct.ImVector.49, [64 x %struct.ImVec4], ptr, i32, i32, i32, [4 x i8] }>
%struct.ImVector.48 = type { i32, i32, ptr }
%struct.ImVector.49 = type { i32, i32, ptr }
%"struct.ImGuiStorage::ImGuiStoragePair" = type { i32, %union.anon.35 }
%union.anon.35 = type { ptr }
%struct.ImGuiSettingsHandler = type { ptr, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.ImGuiWindowSettings = type <{ i32, %struct.ImVec2ih, %struct.ImVec2ih, %struct.ImVec2ih, i32, i32, i32, i16, i8, i8, i8, i8, [2 x i8] }>
%struct.ImGuiDockNodeSettings = type { i32, i32, i32, i32, i8, i8, i32, %struct.ImVec2ih, %struct.ImVec2ih, %struct.ImVec2ih }
%struct.ImGuiKeyRoutingData = type { i16, i16, i8, 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.167 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.191 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [43 x i8], align 1
@__const._ZN5ImGui17ShowMetricsWindowEPb.wrt_rects_names = external hidden unnamed_addr constant [8 x ptr], align 16
@__const._ZN5ImGui17ShowMetricsWindowEPb.trt_rects_names = external hidden unnamed_addr constant [13 x ptr], align 16
@.str.435 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [100 x i8], align 16
@.str.438 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [33 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE9viewports = external hidden global %struct.ImVector.16, align 8
@_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports = external hidden global i64, align 8
@__dso_handle = external hidden global i8
@.str.476 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only = external hidden global i8, align 1
@.str.494 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.520 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.529 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.530 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.531 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.532 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.533 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.535 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.536 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.537 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.538 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.539 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.540 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.541 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.542 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.543 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.544 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.545 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.546 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.547 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.548 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.549 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.550 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.551 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.552 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.553 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.554 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.555 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.556 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.557 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.558 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.560 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.561 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.562 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.563 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.564 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.565 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.566 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.567 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.568 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.569 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.570 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.571 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.572 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.573 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.574 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.575 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.576 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.577 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.578 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.579 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.580 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.581 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.582 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.583 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.584 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.585 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.586 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.587 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.588 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.589 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.590 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.591 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.592 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.593 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.594 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.595 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.596 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.597 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.598 = external hidden unnamed_addr constant [23 x i8], align 1

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

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local 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 ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE5beginEv(ptr noundef nonnull align 8 dereferenceable(16)) #5 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

173:                                              ; preds = %170, %165
  %174 = load ptr, ptr %2, align 8, !tbaa !5
  %175 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.413, ptr noundef %174, i32 noundef 0)
  br i1 %175, label %176, label %182

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

182:                                              ; preds = %176, %173
  call void @_ZN5ImGui3EndEv()
  store i32 1, ptr %6, align 4
  br label %2487

183:                                              ; preds = %176
  %184 = call noundef ptr @_ZN5ImGui10GetVersionEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.414, ptr noundef %184)
  %185 = load ptr, ptr %4, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.ImGuiIO, ptr %185, i32 0, i32 56
  %187 = load float, ptr %186, align 4, !tbaa !46
  %188 = fdiv float 1.000000e+03, %187
  %189 = fpext float %188 to double
  %190 = load ptr, ptr %4, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.ImGuiIO, ptr %190, i32 0, i32 56
  %192 = load float, ptr %191, align 4, !tbaa !46
  %193 = fpext float %192 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.415, double noundef %189, double noundef %193)
  %194 = load ptr, ptr %4, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.ImGuiIO, ptr %194, i32 0, i32 57
  %196 = load i32, ptr %195, align 8, !tbaa !49
  %197 = load ptr, ptr %4, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.ImGuiIO, ptr %197, i32 0, i32 58
  %199 = load i32, ptr %198, align 4, !tbaa !50
  %200 = load ptr, ptr %4, align 8, !tbaa !5
  %201 = getelementptr inbounds %struct.ImGuiIO, ptr %200, i32 0, i32 58
  %202 = load i32, ptr %201, align 4, !tbaa !50
  %203 = sdiv i32 %202, 3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.416, i32 noundef %196, i32 noundef %199, i32 noundef %203)
  %204 = load ptr, ptr %4, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.ImGuiIO, ptr %204, i32 0, i32 59
  %206 = load i32, ptr %205, align 8, !tbaa !51
  %207 = load ptr, ptr %3, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.ImGuiContext, ptr %207, i32 0, i32 258
  %209 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %208, i32 0, i32 0
  %210 = load i32, ptr %209, align 8, !tbaa !52
  %211 = load ptr, ptr %3, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.ImGuiContext, ptr %211, i32 0, i32 258
  %213 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %212, i32 0, i32 1
  %214 = load i32, ptr %213, align 4, !tbaa !113
  %215 = sub nsw i32 %210, %214
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.417, i32 noundef %206, i32 noundef %215)
  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)
  %216 = load ptr, ptr %5, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %216, i32 0, i32 9
  %218 = load i32, ptr %217, align 4, !tbaa !114
  %219 = icmp slt i32 %218, 0
  br i1 %219, label %220, label %223

220:                                              ; preds = %183
  %221 = load ptr, ptr %5, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %221, i32 0, i32 9
  store i32 4, ptr %222, align 4, !tbaa !114
  br label %223

223:                                              ; preds = %220, %183
  %224 = load ptr, ptr %5, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %224, i32 0, i32 10
  %226 = load i32, ptr %225, align 4, !tbaa !115
  %227 = icmp slt i32 %226, 0
  br i1 %227, label %228, label %231

228:                                              ; preds = %223
  %229 = load ptr, ptr %5, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %229, i32 0, i32 10
  store i32 2, ptr %230, align 4, !tbaa !115
  br label %231

231:                                              ; preds = %228, %223
  %232 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.435)
  br i1 %232, label %233, label %568

233:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #10
  %234 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.436)
  %235 = zext i1 %234 to i8
  store i8 %235, ptr %9, align 1, !tbaa !116
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.437)
  %236 = load i8, ptr %9, align 1, !tbaa !116, !range !13, !noundef !14
  %237 = trunc i8 %236 to i1
  br i1 %237, label %238, label %245

238:                                              ; preds = %233
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %239 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.438, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 100, i32 noundef 0, ptr noundef null, ptr noundef null)
  %240 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !117
  %241 = sext i8 %240 to i32
  %242 = icmp ne i32 %241, 0
  br i1 %242, label %243, label %244

243:                                              ; preds = %238
  call void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf)
  br label %244

244:                                              ; preds = %243, %238
  call void @_ZN5ImGui7TreePopEv()
  br label %245

245:                                              ; preds = %244, %233
  %246 = load ptr, ptr %3, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.ImGuiContext, ptr %246, i32 0, i32 253
  %248 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.439, ptr noundef %247)
  br i1 %248, label %249, label %255

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

254:                                              ; preds = %249
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %255

255:                                              ; preds = %254, %249, %245
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.440)
  %256 = load ptr, ptr %5, align 8, !tbaa !5
  %257 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %256, i32 0, i32 0
  %258 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.441, ptr noundef %257)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.442)
  %259 = load ptr, ptr %5, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %259, i32 0, i32 1
  %261 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.443, ptr noundef %260)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.444)
  %262 = load ptr, ptr %5, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %262, i32 0, i32 3
  %264 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.445, ptr noundef %263)
  %265 = load ptr, ptr %5, align 8, !tbaa !5
  %266 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %265, i32 0, i32 2
  %267 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.446, ptr noundef %266)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %268 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %269 = fmul float %268, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %269)
  %270 = load ptr, ptr %5, align 8, !tbaa !5
  %271 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %270, i32 0, i32 9
  %272 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 0
  %273 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.447, ptr noundef %271, ptr noundef %272, i32 noundef 8, i32 noundef 8)
  %274 = zext i1 %273 to i32
  %275 = load ptr, ptr %5, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %275, i32 0, i32 2
  %277 = load i8, ptr %276, align 2, !tbaa !119, !range !13, !noundef !14
  %278 = trunc i8 %277 to i1
  %279 = zext i1 %278 to i32
  %280 = or i32 %279, %274
  %281 = icmp ne i32 %280, 0
  %282 = zext i1 %281 to i8
  store i8 %282, ptr %276, align 2, !tbaa !119
  %283 = load ptr, ptr %5, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %283, i32 0, i32 2
  %285 = load i8, ptr %284, align 2, !tbaa !119, !range !13, !noundef !14
  %286 = trunc i8 %285 to i1
  br i1 %286, label %287, label %340

287:                                              ; preds = %255
  %288 = load ptr, ptr %3, align 8, !tbaa !5
  %289 = getelementptr inbounds %struct.ImGuiContext, ptr %288, i32 0, i32 102
  %290 = load ptr, ptr %289, align 8, !tbaa !120
  %291 = icmp ne ptr %290, null
  br i1 %291, label %292, label %340

292:                                              ; preds = %287
  %293 = load ptr, ptr %3, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.ImGuiContext, ptr %293, i32 0, i32 102
  %295 = load ptr, ptr %294, align 8, !tbaa !120
  %296 = getelementptr inbounds %struct.ImGuiWindow, ptr %295, i32 0, i32 1
  %297 = load ptr, ptr %296, align 8, !tbaa !121
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.448, ptr noundef %297)
  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 !122
  br label %298

298:                                              ; preds = %336, %292
  %299 = load i32, ptr %10, align 4, !tbaa !122
  %300 = icmp slt i32 %299, 8
  br i1 %300, label %302, label %301

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

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

336:                                              ; preds = %302
  %337 = load i32, ptr %10, align 4, !tbaa !122
  %338 = add nsw i32 %337, 1
  store i32 %338, ptr %10, align 4, !tbaa !122
  br label %298, !llvm.loop !127

339:                                              ; preds = %301
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %340

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

363:                                              ; preds = %340
  %364 = load ptr, ptr %3, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.ImGuiContext, ptr %364, i32 0, i32 102
  %366 = load ptr, ptr %365, align 8, !tbaa !120
  %367 = icmp ne ptr %366, null
  br i1 %367, label %368, label %561

368:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  store i32 0, ptr %12, align 4, !tbaa !122
  br label %369

369:                                              ; preds = %557, %368
  %370 = load i32, ptr %12, align 4, !tbaa !122
  %371 = load ptr, ptr %3, align 8, !tbaa !5
  %372 = getelementptr inbounds %struct.ImGuiContext, ptr %371, i32 0, i32 177
  %373 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %372)
  %374 = icmp slt i32 %370, %373
  br i1 %374, label %376, label %375

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

376:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #10
  %377 = load ptr, ptr %3, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.ImGuiContext, ptr %377, i32 0, i32 177
  %379 = load i32, ptr %12, align 4, !tbaa !122
  %380 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %378, i32 noundef %379)
  store ptr %380, ptr %13, align 8, !tbaa !5
  %381 = load ptr, ptr %13, align 8, !tbaa !5
  %382 = icmp eq ptr %381, null
  br i1 %382, label %408, label %383

383:                                              ; preds = %376
  %384 = load ptr, ptr %13, align 8, !tbaa !5
  %385 = getelementptr inbounds %struct.ImGuiTable, ptr %384, i32 0, i32 12
  %386 = load i32, ptr %385, align 8, !tbaa !130
  %387 = load ptr, ptr %3, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.ImGuiContext, ptr %387, i32 0, i32 12
  %389 = load i32, ptr %388, align 8, !tbaa !140
  %390 = sub nsw i32 %389, 1
  %391 = icmp slt i32 %386, %390
  br i1 %391, label %408, label %392

392:                                              ; preds = %383
  %393 = load ptr, ptr %13, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.ImGuiTable, ptr %393, i32 0, i32 55
  %395 = load ptr, ptr %394, align 8, !tbaa !141
  %396 = load ptr, ptr %3, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.ImGuiContext, ptr %396, i32 0, i32 102
  %398 = load ptr, ptr %397, align 8, !tbaa !120
  %399 = icmp ne ptr %395, %398
  br i1 %399, label %400, label %409

400:                                              ; preds = %392
  %401 = load ptr, ptr %13, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.ImGuiTable, ptr %401, i32 0, i32 56
  %403 = load ptr, ptr %402, align 8, !tbaa !142
  %404 = load ptr, ptr %3, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.ImGuiContext, ptr %404, i32 0, i32 102
  %406 = load ptr, ptr %405, align 8, !tbaa !120
  %407 = icmp ne ptr %403, %406
  br i1 %407, label %408, label %409

408:                                              ; preds = %400, %383, %376
  store i32 7, ptr %6, align 4
  br label %554

409:                                              ; preds = %400, %392
  %410 = load ptr, ptr %13, align 8, !tbaa !5
  %411 = getelementptr inbounds %struct.ImGuiTable, ptr %410, i32 0, i32 0
  %412 = load i32, ptr %411, align 8, !tbaa !143
  %413 = load ptr, ptr %13, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.ImGuiTable, ptr %413, i32 0, i32 13
  %415 = load i32, ptr %414, align 4, !tbaa !144
  %416 = load ptr, ptr %13, align 8, !tbaa !5
  %417 = getelementptr inbounds %struct.ImGuiTable, ptr %416, i32 0, i32 55
  %418 = load ptr, ptr %417, align 8, !tbaa !141
  %419 = getelementptr inbounds %struct.ImGuiWindow, ptr %418, i32 0, i32 1
  %420 = load ptr, ptr %419, align 8, !tbaa !121
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.452, i32 noundef %412, i32 noundef %415, ptr noundef %420)
  %421 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %421, label %422, label %432

422:                                              ; preds = %409
  %423 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #10
  %424 = load ptr, ptr %13, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.ImGuiTable, ptr %424, i32 0, i32 46
  %426 = getelementptr inbounds %struct.ImRect, ptr %425, 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)
  %427 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %426, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %427, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %428 = load ptr, ptr %13, align 8, !tbaa !5
  %429 = getelementptr inbounds %struct.ImGuiTable, ptr %428, i32 0, i32 46
  %430 = getelementptr inbounds %struct.ImRect, ptr %429, 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)
  %431 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %430, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %431, ptr %16, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %423, 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 %432

432:                                              ; preds = %422, %409
  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 !122
  br label %433

433:                                              ; preds = %550, %432
  %434 = load i32, ptr %19, align 4, !tbaa !122
  %435 = icmp slt i32 %434, 13
  br i1 %435, label %437, label %436

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

437:                                              ; preds = %433
  %438 = load i32, ptr %19, align 4, !tbaa !122
  %439 = icmp sge i32 %438, 6
  br i1 %439, label %440, label %505

440:                                              ; preds = %437
  %441 = load i32, ptr %19, align 4, !tbaa !122
  %442 = icmp ne i32 %441, 6
  br i1 %442, label %443, label %447

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

446:                                              ; preds = %443
  br label %550

447:                                              ; preds = %443, %440
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  store i32 0, ptr %20, align 4, !tbaa !122
  br label %448

448:                                              ; preds = %501, %447
  %449 = load i32, ptr %20, align 4, !tbaa !122
  %450 = load ptr, ptr %13, align 8, !tbaa !5
  %451 = getelementptr inbounds %struct.ImGuiTable, ptr %450, i32 0, i32 13
  %452 = load i32, ptr %451, align 4, !tbaa !144
  %453 = icmp slt i32 %449, %452
  br i1 %453, label %455, label %454

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

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

494:                                              ; preds = %455
  %495 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  %496 = 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)
  %497 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %496, ptr noundef nonnull align 4 dereferenceable(8) %24)
  store <2 x float> %497, ptr %23, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  %498 = 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)
  %499 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %498, ptr noundef nonnull align 4 dereferenceable(8) %26)
  store <2 x float> %499, ptr %25, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %495, 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 %500

500:                                              ; preds = %494, %455
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #10
  br label %501

501:                                              ; preds = %500
  %502 = load i32, ptr %20, align 4, !tbaa !122
  %503 = add nsw i32 %502, 1
  store i32 %503, ptr %20, align 4, !tbaa !122
  br label %448, !llvm.loop !145

504:                                              ; preds = %454
  br label %549

505:                                              ; preds = %437
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #10
  %506 = load ptr, ptr %13, align 8, !tbaa !5
  %507 = load i32, ptr %19, align 4, !tbaa !122
  %508 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %506, i32 noundef %507, i32 noundef -1)
  %509 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 0
  %510 = extractvalue { <2 x float>, <2 x float> } %508, 0
  store <2 x float> %510, ptr %509, align 4
  %511 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 1
  %512 = extractvalue { <2 x float>, <2 x float> } %508, 1
  store <2 x float> %512, ptr %511, align 4
  %513 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %514 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %515 = getelementptr inbounds %struct.ImVec2, ptr %514, i32 0, i32 0
  %516 = load float, ptr %515, align 4, !tbaa !123
  %517 = fpext float %516 to double
  %518 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %519 = getelementptr inbounds %struct.ImVec2, ptr %518, i32 0, i32 1
  %520 = load float, ptr %519, align 4, !tbaa !124
  %521 = fpext float %520 to double
  %522 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %523 = getelementptr inbounds %struct.ImVec2, ptr %522, i32 0, i32 0
  %524 = load float, ptr %523, align 4, !tbaa !125
  %525 = fpext float %524 to double
  %526 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %527 = getelementptr inbounds %struct.ImVec2, ptr %526, i32 0, i32 1
  %528 = load float, ptr %527, align 4, !tbaa !126
  %529 = fpext float %528 to double
  %530 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %531 = fpext float %530 to double
  %532 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %533 = fpext float %532 to double
  %534 = load i32, ptr %19, align 4, !tbaa !122
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 %535
  %537 = load ptr, ptr %536, align 8, !tbaa !5
  %538 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %513, i64 noundef 128, ptr noundef @.str.449, double noundef %517, double noundef %521, double noundef %525, double noundef %529, double noundef %531, double noundef %533, ptr noundef %537)
  %539 = 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)
  %540 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %539, 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
  %541 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %541, label %542, label %548

542:                                              ; preds = %505
  %543 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  %544 = 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)
  %545 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %544, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %545, ptr %29, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %546 = 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)
  %547 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %546, ptr noundef nonnull align 4 dereferenceable(8) %32)
  store <2 x float> %547, ptr %31, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %543, 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 %548

548:                                              ; preds = %542, %505
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #10
  br label %549

549:                                              ; preds = %548, %504
  br label %550

550:                                              ; preds = %549, %446
  %551 = load i32, ptr %19, align 4, !tbaa !122
  %552 = add nsw i32 %551, 1
  store i32 %552, ptr %19, align 4, !tbaa !122
  br label %433, !llvm.loop !146

553:                                              ; preds = %436
  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 %554

554:                                              ; preds = %553, %408
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #10
  %555 = load i32, ptr %6, align 4
  switch i32 %555, label %2495 [
    i32 0, label %556
    i32 7, label %557
  ]

556:                                              ; preds = %554
  br label %557

557:                                              ; preds = %556, %554
  %558 = load i32, ptr %12, align 4, !tbaa !122
  %559 = add nsw i32 %558, 1
  store i32 %559, ptr %12, align 4, !tbaa !122
  br label %369, !llvm.loop !147

560:                                              ; preds = %375
  br label %561

561:                                              ; preds = %560, %363, %340
  %562 = load ptr, ptr %3, align 8, !tbaa !5
  %563 = getelementptr inbounds %struct.ImGuiContext, ptr %562, i32 0, i32 81
  %564 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.454, ptr noundef %563)
  %565 = load ptr, ptr %4, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.ImGuiIO, ptr %565, i32 0, i32 36
  %567 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.455, ptr noundef %566)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.456)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #10
  br label %568

568:                                              ; preds = %561, %231
  %569 = load ptr, ptr %3, align 8, !tbaa !5
  %570 = getelementptr inbounds %struct.ImGuiContext, ptr %569, i32 0, i32 26
  %571 = getelementptr inbounds %struct.ImVector.4, ptr %570, i32 0, i32 0
  %572 = load i32, ptr %571, align 8, !tbaa !148
  %573 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.457, ptr noundef @.str.458, i32 noundef %572)
  br i1 %573, label %574, label %627

574:                                              ; preds = %568
  %575 = load ptr, ptr %3, align 8, !tbaa !5
  %576 = getelementptr inbounds %struct.ImGuiContext, ptr %575, i32 0, i32 26
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %576, ptr noundef @.str.459)
  %577 = load ptr, ptr %3, align 8, !tbaa !5
  %578 = getelementptr inbounds %struct.ImGuiContext, ptr %577, i32 0, i32 27
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %578, ptr noundef @.str.460)
  %579 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.461)
  br i1 %579, label %580, label %626

580:                                              ; preds = %574
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  %581 = load ptr, ptr %3, align 8, !tbaa !5
  %582 = getelementptr inbounds %struct.ImGuiContext, ptr %581, i32 0, i32 28
  store ptr %582, ptr %33, align 8, !tbaa !5
  %583 = load ptr, ptr %33, align 8, !tbaa !5
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %583, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %584 = load ptr, ptr %3, align 8, !tbaa !5
  %585 = getelementptr inbounds %struct.ImGuiContext, ptr %584, i32 0, i32 26
  store ptr %585, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  %586 = load ptr, ptr %34, align 8, !tbaa !5
  %587 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %586)
  store ptr %587, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #10
  %588 = load ptr, ptr %34, align 8, !tbaa !5
  %589 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %588)
  store ptr %589, ptr %36, align 8, !tbaa !5
  br label %590

590:                                              ; preds = %609, %580
  %591 = load ptr, ptr %35, align 8, !tbaa !5
  %592 = load ptr, ptr %36, align 8, !tbaa !5
  %593 = icmp ne ptr %591, %592
  br i1 %593, label %595, label %594

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

595:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #10
  %596 = load ptr, ptr %35, align 8, !tbaa !5
  %597 = load ptr, ptr %596, align 8, !tbaa !5
  store ptr %597, ptr %37, align 8, !tbaa !5
  %598 = load ptr, ptr %37, align 8, !tbaa !5
  %599 = getelementptr inbounds %struct.ImGuiWindow, ptr %598, i32 0, i32 80
  %600 = load i32, ptr %599, align 8, !tbaa !149
  %601 = add nsw i32 %600, 1
  %602 = load ptr, ptr %3, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.ImGuiContext, ptr %602, i32 0, i32 12
  %604 = load i32, ptr %603, align 8, !tbaa !140
  %605 = icmp sge i32 %601, %604
  br i1 %605, label %606, label %608

606:                                              ; preds = %595
  %607 = load ptr, ptr %33, align 8, !tbaa !5
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %607, ptr noundef nonnull align 8 dereferenceable(8) %37)
  br label %608

608:                                              ; preds = %606, %595
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  br label %609

609:                                              ; preds = %608
  %610 = load ptr, ptr %35, align 8, !tbaa !5
  %611 = getelementptr inbounds ptr, ptr %610, i32 1
  store ptr %611, ptr %35, align 8, !tbaa !5
  br label %590

612:                                              ; preds = %594
  %613 = load ptr, ptr %33, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.ImVector.4, ptr %613, i32 0, i32 2
  %615 = load ptr, ptr %614, align 8, !tbaa !150
  %616 = load ptr, ptr %33, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.ImVector.4, ptr %616, i32 0, i32 0
  %618 = load i32, ptr %617, align 8, !tbaa !151
  %619 = sext i32 %618 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %615, i64 noundef %619, i64 noundef 8, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %620 = load ptr, ptr %33, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.ImVector.4, ptr %620, i32 0, i32 2
  %622 = load ptr, ptr %621, align 8, !tbaa !150
  %623 = load ptr, ptr %33, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.ImVector.4, ptr %623, i32 0, i32 0
  %625 = load i32, ptr %624, align 8, !tbaa !151
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %622, i32 noundef %625, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  br label %626

626:                                              ; preds = %612, %574
  call void @_ZN5ImGui7TreePopEv()
  br label %627

627:                                              ; preds = %626, %568
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  store i32 0, ptr %38, align 4, !tbaa !122
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  %628 = load ptr, ptr %3, align 8, !tbaa !5
  %629 = getelementptr inbounds %struct.ImGuiContext, ptr %628, i32 0, i32 92
  store ptr %629, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #10
  %630 = load ptr, ptr %39, align 8, !tbaa !5
  %631 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %630)
  store ptr %631, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  %632 = load ptr, ptr %39, align 8, !tbaa !5
  %633 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %632)
  store ptr %633, ptr %41, align 8, !tbaa !5
  br label %634

634:                                              ; preds = %649, %627
  %635 = load ptr, ptr %40, align 8, !tbaa !5
  %636 = load ptr, ptr %41, align 8, !tbaa !5
  %637 = icmp ne ptr %635, %636
  br i1 %637, label %639, label %638

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

639:                                              ; preds = %634
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  %640 = load ptr, ptr %40, align 8, !tbaa !5
  %641 = load ptr, ptr %640, align 8, !tbaa !5
  store ptr %641, ptr %42, align 8, !tbaa !5
  %642 = load ptr, ptr %42, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.ImGuiViewportP, ptr %642, i32 0, i32 13
  %644 = getelementptr inbounds %struct.ImDrawData, ptr %643, i32 0, i32 4
  %645 = getelementptr inbounds %struct.ImVector.50, ptr %644, i32 0, i32 0
  %646 = load i32, ptr %645, align 8, !tbaa !152
  %647 = load i32, ptr %38, align 4, !tbaa !122
  %648 = add nsw i32 %647, %646
  store i32 %648, ptr %38, align 4, !tbaa !122
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  br label %649

649:                                              ; preds = %639
  %650 = load ptr, ptr %40, align 8, !tbaa !5
  %651 = getelementptr inbounds ptr, ptr %650, i32 1
  store ptr %651, ptr %40, align 8, !tbaa !5
  br label %634

652:                                              ; preds = %638
  %653 = load i32, ptr %38, align 4, !tbaa !122
  %654 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.462, ptr noundef @.str.463, i32 noundef %653)
  br i1 %654, label %655, label %711

655:                                              ; preds = %652
  %656 = load ptr, ptr %5, align 8, !tbaa !5
  %657 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %656, i32 0, i32 5
  %658 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.464, ptr noundef %657)
  %659 = load ptr, ptr %5, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %659, i32 0, i32 6
  %661 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.465, ptr noundef %660)
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #10
  %662 = load ptr, ptr %3, align 8, !tbaa !5
  %663 = getelementptr inbounds %struct.ImGuiContext, ptr %662, i32 0, i32 92
  store ptr %663, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #10
  %664 = load ptr, ptr %43, align 8, !tbaa !5
  %665 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %664)
  store ptr %665, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  %666 = load ptr, ptr %43, align 8, !tbaa !5
  %667 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %666)
  store ptr %667, ptr %45, align 8, !tbaa !5
  br label %668

668:                                              ; preds = %707, %655
  %669 = load ptr, ptr %44, align 8, !tbaa !5
  %670 = load ptr, ptr %45, align 8, !tbaa !5
  %671 = icmp ne ptr %669, %670
  br i1 %671, label %673, label %672

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

673:                                              ; preds = %668
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #10
  %674 = load ptr, ptr %44, align 8, !tbaa !5
  %675 = load ptr, ptr %674, align 8, !tbaa !5
  store ptr %675, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #10
  store i8 0, ptr %47, align 1, !tbaa !116
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  %676 = load ptr, ptr %46, align 8, !tbaa !5
  %677 = getelementptr inbounds %struct.ImGuiViewportP, ptr %676, i32 0, i32 13
  %678 = getelementptr inbounds %struct.ImDrawData, ptr %677, i32 0, i32 4
  store ptr %678, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #10
  %679 = load ptr, ptr %48, align 8, !tbaa !5
  %680 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %679)
  store ptr %680, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #10
  %681 = load ptr, ptr %48, align 8, !tbaa !5
  %682 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %681)
  store ptr %682, ptr %50, align 8, !tbaa !5
  br label %683

683:                                              ; preds = %703, %673
  %684 = load ptr, ptr %49, align 8, !tbaa !5
  %685 = load ptr, ptr %50, align 8, !tbaa !5
  %686 = icmp ne ptr %684, %685
  br i1 %686, label %688, label %687

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

688:                                              ; preds = %683
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #10
  %689 = load ptr, ptr %49, align 8, !tbaa !5
  %690 = load ptr, ptr %689, align 8, !tbaa !5
  store ptr %690, ptr %51, align 8, !tbaa !5
  %691 = load i8, ptr %47, align 1, !tbaa !116, !range !13, !noundef !14
  %692 = trunc i8 %691 to i1
  br i1 %692, label %700, label %693

693:                                              ; preds = %688
  %694 = load ptr, ptr %46, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.ImGuiViewportP, ptr %694, i32 0, i32 2
  %696 = load i32, ptr %695, align 8, !tbaa !158
  %697 = load ptr, ptr %46, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.ImGuiViewport, ptr %697, i32 0, i32 0
  %699 = load i32, ptr %698, align 8, !tbaa !159
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.466, i32 noundef %696, i32 noundef %699)
  br label %700

700:                                              ; preds = %693, %688
  store i8 1, ptr %47, align 1, !tbaa !116
  %701 = load ptr, ptr %46, align 8, !tbaa !5
  %702 = load ptr, ptr %51, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef %701, ptr noundef %702, ptr noundef @.str.467)
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  br label %703

703:                                              ; preds = %700
  %704 = load ptr, ptr %49, align 8, !tbaa !5
  %705 = getelementptr inbounds ptr, ptr %704, i32 1
  store ptr %705, ptr %49, align 8, !tbaa !5
  br label %683

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

707:                                              ; preds = %706
  %708 = load ptr, ptr %44, align 8, !tbaa !5
  %709 = getelementptr inbounds ptr, ptr %708, i32 1
  store ptr %709, ptr %44, align 8, !tbaa !5
  br label %668

710:                                              ; preds = %672
  call void @_ZN5ImGui7TreePopEv()
  br label %711

711:                                              ; preds = %710, %652
  %712 = load ptr, ptr %3, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.ImGuiContext, ptr %712, i32 0, i32 92
  %714 = getelementptr inbounds %struct.ImVector.16, ptr %713, i32 0, i32 0
  %715 = load i32, ptr %714, align 8, !tbaa !160
  %716 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.468, ptr noundef @.str.469, i32 noundef %715)
  br i1 %716, label %717, label %982

717:                                              ; preds = %711
  %718 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %718)
  call void @_ZL25RenderViewportsThumbnailsv()
  %719 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %719)
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #10
  %720 = load ptr, ptr %3, align 8, !tbaa !5
  %721 = getelementptr inbounds %struct.ImGuiContext, ptr %720, i32 0, i32 3
  %722 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %721, i32 0, i32 23
  %723 = getelementptr inbounds %struct.ImVector.0, ptr %722, i32 0, i32 0
  %724 = load i32, ptr %723, align 8, !tbaa !161
  %725 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.470, ptr noundef @.str.471, i32 noundef %724)
  %726 = zext i1 %725 to i8
  store i8 %726, ptr %52, align 1, !tbaa !116
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.472)
  %727 = load i8, ptr %52, align 1, !tbaa !116, !range !13, !noundef !14
  %728 = trunc i8 %727 to i1
  br i1 %728, label %729, label %835

729:                                              ; preds = %717
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #10
  store i32 0, ptr %53, align 4, !tbaa !122
  br label %730

730:                                              ; preds = %831, %729
  %731 = load i32, ptr %53, align 4, !tbaa !122
  %732 = load ptr, ptr %3, align 8, !tbaa !5
  %733 = getelementptr inbounds %struct.ImGuiContext, ptr %732, i32 0, i32 3
  %734 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %733, i32 0, i32 23
  %735 = getelementptr inbounds %struct.ImVector.0, ptr %734, i32 0, i32 0
  %736 = load i32, ptr %735, align 8, !tbaa !161
  %737 = icmp slt i32 %731, %736
  br i1 %737, label %739, label %738

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

739:                                              ; preds = %730
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #10
  %740 = load ptr, ptr %3, align 8, !tbaa !5
  %741 = getelementptr inbounds %struct.ImGuiContext, ptr %740, i32 0, i32 3
  %742 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %741, i32 0, i32 23
  %743 = load i32, ptr %53, align 4, !tbaa !122
  %744 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI20ImGuiPlatformMonitorEixEi(ptr noundef nonnull align 8 dereferenceable(16) %742, i32 noundef %743)
  store ptr %744, ptr %54, align 8, !tbaa !5
  %745 = load i32, ptr %53, align 4, !tbaa !122
  %746 = load ptr, ptr %54, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %746, i32 0, i32 4
  %748 = load float, ptr %747, align 8, !tbaa !162
  %749 = fmul float %748, 1.000000e+02
  %750 = fpext float %749 to double
  %751 = load ptr, ptr %54, align 8, !tbaa !5
  %752 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %751, i32 0, i32 0
  %753 = getelementptr inbounds %struct.ImVec2, ptr %752, i32 0, i32 0
  %754 = load float, ptr %753, align 8, !tbaa !163
  %755 = fpext float %754 to double
  %756 = load ptr, ptr %54, align 8, !tbaa !5
  %757 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %756, i32 0, i32 0
  %758 = getelementptr inbounds %struct.ImVec2, ptr %757, i32 0, i32 1
  %759 = load float, ptr %758, align 4, !tbaa !164
  %760 = fpext float %759 to double
  %761 = load ptr, ptr %54, align 8, !tbaa !5
  %762 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %761, i32 0, i32 0
  %763 = getelementptr inbounds %struct.ImVec2, ptr %762, i32 0, i32 0
  %764 = load float, ptr %763, align 8, !tbaa !163
  %765 = load ptr, ptr %54, align 8, !tbaa !5
  %766 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %765, i32 0, i32 1
  %767 = getelementptr inbounds %struct.ImVec2, ptr %766, i32 0, i32 0
  %768 = load float, ptr %767, align 8, !tbaa !165
  %769 = fadd float %764, %768
  %770 = fpext float %769 to double
  %771 = load ptr, ptr %54, align 8, !tbaa !5
  %772 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %771, i32 0, i32 0
  %773 = getelementptr inbounds %struct.ImVec2, ptr %772, i32 0, i32 1
  %774 = load float, ptr %773, align 4, !tbaa !164
  %775 = load ptr, ptr %54, align 8, !tbaa !5
  %776 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %775, i32 0, i32 1
  %777 = getelementptr inbounds %struct.ImVec2, ptr %776, i32 0, i32 1
  %778 = load float, ptr %777, align 4, !tbaa !166
  %779 = fadd float %774, %778
  %780 = fpext float %779 to double
  %781 = load ptr, ptr %54, align 8, !tbaa !5
  %782 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %781, i32 0, i32 1
  %783 = getelementptr inbounds %struct.ImVec2, ptr %782, i32 0, i32 0
  %784 = load float, ptr %783, align 8, !tbaa !165
  %785 = fpext float %784 to double
  %786 = load ptr, ptr %54, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %786, i32 0, i32 1
  %788 = getelementptr inbounds %struct.ImVec2, ptr %787, i32 0, i32 1
  %789 = load float, ptr %788, align 4, !tbaa !166
  %790 = fpext float %789 to double
  %791 = load ptr, ptr %54, align 8, !tbaa !5
  %792 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %791, i32 0, i32 2
  %793 = getelementptr inbounds %struct.ImVec2, ptr %792, i32 0, i32 0
  %794 = load float, ptr %793, align 8, !tbaa !167
  %795 = fpext float %794 to double
  %796 = load ptr, ptr %54, align 8, !tbaa !5
  %797 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %796, i32 0, i32 2
  %798 = getelementptr inbounds %struct.ImVec2, ptr %797, i32 0, i32 1
  %799 = load float, ptr %798, align 4, !tbaa !168
  %800 = fpext float %799 to double
  %801 = load ptr, ptr %54, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %801, i32 0, i32 2
  %803 = getelementptr inbounds %struct.ImVec2, ptr %802, i32 0, i32 0
  %804 = load float, ptr %803, align 8, !tbaa !167
  %805 = load ptr, ptr %54, align 8, !tbaa !5
  %806 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %805, i32 0, i32 3
  %807 = getelementptr inbounds %struct.ImVec2, ptr %806, i32 0, i32 0
  %808 = load float, ptr %807, align 8, !tbaa !169
  %809 = fadd float %804, %808
  %810 = fpext float %809 to double
  %811 = load ptr, ptr %54, align 8, !tbaa !5
  %812 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %811, i32 0, i32 2
  %813 = getelementptr inbounds %struct.ImVec2, ptr %812, i32 0, i32 1
  %814 = load float, ptr %813, align 4, !tbaa !168
  %815 = load ptr, ptr %54, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %815, i32 0, i32 3
  %817 = getelementptr inbounds %struct.ImVec2, ptr %816, i32 0, i32 1
  %818 = load float, ptr %817, align 4, !tbaa !170
  %819 = fadd float %814, %818
  %820 = fpext float %819 to double
  %821 = load ptr, ptr %54, align 8, !tbaa !5
  %822 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %821, i32 0, i32 3
  %823 = getelementptr inbounds %struct.ImVec2, ptr %822, i32 0, i32 0
  %824 = load float, ptr %823, align 8, !tbaa !169
  %825 = fpext float %824 to double
  %826 = load ptr, ptr %54, align 8, !tbaa !5
  %827 = getelementptr inbounds %struct.ImGuiPlatformMonitor, ptr %826, i32 0, i32 3
  %828 = getelementptr inbounds %struct.ImVec2, ptr %827, i32 0, i32 1
  %829 = load float, ptr %828, align 4, !tbaa !170
  %830 = fpext float %829 to double
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.473, i32 noundef %745, double noundef %750, double noundef %755, double noundef %760, double noundef %770, double noundef %780, double noundef %785, double noundef %790, double noundef %795, double noundef %800, double noundef %810, double noundef %820, double noundef %825, double noundef %830)
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  br label %831

831:                                              ; preds = %739
  %832 = load i32, ptr %53, align 4, !tbaa !122
  %833 = add nsw i32 %832, 1
  store i32 %833, ptr %53, align 4, !tbaa !122
  br label %730, !llvm.loop !171

834:                                              ; preds = %738
  call void @_ZN5ImGui7TreePopEv()
  br label %835

835:                                              ; preds = %834, %717
  %836 = load ptr, ptr %3, align 8, !tbaa !5
  %837 = getelementptr inbounds %struct.ImGuiContext, ptr %836, i32 0, i32 95
  %838 = load ptr, ptr %837, align 8, !tbaa !172
  %839 = icmp ne ptr %838, null
  br i1 %839, label %840, label %846

840:                                              ; preds = %835
  %841 = load ptr, ptr %3, align 8, !tbaa !5
  %842 = getelementptr inbounds %struct.ImGuiContext, ptr %841, i32 0, i32 95
  %843 = load ptr, ptr %842, align 8, !tbaa !172
  %844 = getelementptr inbounds %struct.ImGuiViewport, ptr %843, i32 0, i32 0
  %845 = load i32, ptr %844, align 8, !tbaa !159
  br label %847

846:                                              ; preds = %835
  br label %847

847:                                              ; preds = %846, %840
  %848 = phi i32 [ %845, %840 ], [ 0, %846 ]
  %849 = load ptr, ptr %3, align 8, !tbaa !5
  %850 = getelementptr inbounds %struct.ImGuiContext, ptr %849, i32 0, i32 2
  %851 = getelementptr inbounds %struct.ImGuiIO, ptr %850, i32 0, i32 72
  %852 = load i32, ptr %851, align 4, !tbaa !173
  %853 = load ptr, ptr %3, align 8, !tbaa !5
  %854 = getelementptr inbounds %struct.ImGuiContext, ptr %853, i32 0, i32 96
  %855 = load ptr, ptr %854, align 8, !tbaa !174
  %856 = icmp ne ptr %855, null
  br i1 %856, label %857, label %863

857:                                              ; preds = %847
  %858 = load ptr, ptr %3, align 8, !tbaa !5
  %859 = getelementptr inbounds %struct.ImGuiContext, ptr %858, i32 0, i32 96
  %860 = load ptr, ptr %859, align 8, !tbaa !174
  %861 = getelementptr inbounds %struct.ImGuiViewport, ptr %860, i32 0, i32 0
  %862 = load i32, ptr %861, align 8, !tbaa !159
  br label %864

863:                                              ; preds = %847
  br label %864

864:                                              ; preds = %863, %857
  %865 = phi i32 [ %862, %857 ], [ 0, %863 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.474, i32 noundef %848, i32 noundef %852, i32 noundef %865)
  %866 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.475)
  br i1 %866, label %867, label %962

867:                                              ; preds = %864
  %868 = load atomic i8, ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports acquire, align 8
  %869 = icmp eq i8 %868, 0
  br i1 %869, label %870, label %876, !prof !175

870:                                              ; preds = %867
  %871 = call i32 @__cxa_guard_acquire(ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #10
  %872 = icmp ne i32 %871, 0
  br i1 %872, label %873, label %876

873:                                              ; preds = %870
  invoke void @_ZN8ImVectorIP14ImGuiViewportPEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
          to label %874 unwind label %896

874:                                              ; preds = %873
  %875 = call i32 @__cxa_atexit(ptr @_ZN8ImVectorIP14ImGuiViewportPED2Ev, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, ptr @__dso_handle) #10
  call void @__cxa_guard_release(ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #10
  br label %876

876:                                              ; preds = %874, %870, %867
  %877 = load ptr, ptr %3, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.ImGuiContext, ptr %877, i32 0, i32 92
  %879 = getelementptr inbounds %struct.ImVector.16, ptr %878, i32 0, i32 0
  %880 = load i32, ptr %879, align 8, !tbaa !160
  call void @_ZN8ImVectorIP14ImGuiViewportPE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 noundef %880)
  %881 = load ptr, ptr getelementptr inbounds (%struct.ImVector.16, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 0, i32 2), align 8, !tbaa !176
  %882 = load ptr, ptr %3, align 8, !tbaa !5
  %883 = getelementptr inbounds %struct.ImGuiContext, ptr %882, i32 0, i32 92
  %884 = getelementptr inbounds %struct.ImVector.16, ptr %883, i32 0, i32 2
  %885 = load ptr, ptr %884, align 8, !tbaa !177
  %886 = load ptr, ptr %3, align 8, !tbaa !5
  %887 = getelementptr inbounds %struct.ImGuiContext, ptr %886, i32 0, i32 92
  %888 = call noundef i32 @_ZNK8ImVectorIP14ImGuiViewportPE13size_in_bytesEv(ptr noundef nonnull align 8 dereferenceable(16) %887)
  %889 = sext i32 %888 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %881, ptr align 8 %885, i64 %889, i1 false)
  %890 = load i32, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, align 8, !tbaa !178
  %891 = icmp sgt i32 %890, 1
  br i1 %891, label %892, label %900

892:                                              ; preds = %876
  %893 = load ptr, ptr getelementptr inbounds (%struct.ImVector.16, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 0, i32 2), align 8, !tbaa !176
  %894 = load i32, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, align 8, !tbaa !178
  %895 = sext i32 %894 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %893, i64 noundef %895, i64 noundef 8, ptr noundef @_ZL39ViewportComparerByLastFocusedStampCountPKvS0_)
  br label %900

896:                                              ; preds = %873
  %897 = landingpad { ptr, i32 }
          cleanup
  %898 = extractvalue { ptr, i32 } %897, 0
  store ptr %898, ptr %55, align 8
  %899 = extractvalue { ptr, i32 } %897, 1
  store i32 %899, ptr %56, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #10
  br label %2490

900:                                              ; preds = %892, %876
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #10
  store ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #10
  %901 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  store ptr %901, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #10
  %902 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  store ptr %902, ptr %59, align 8, !tbaa !5
  br label %903

903:                                              ; preds = %958, %900
  %904 = load ptr, ptr %58, align 8, !tbaa !5
  %905 = load ptr, ptr %59, align 8, !tbaa !5
  %906 = icmp ne ptr %904, %905
  br i1 %906, label %908, label %907

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

908:                                              ; preds = %903
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  %909 = load ptr, ptr %58, align 8, !tbaa !5
  %910 = load ptr, ptr %909, align 8, !tbaa !5
  store ptr %910, ptr %60, align 8, !tbaa !5
  %911 = load ptr, ptr %60, align 8, !tbaa !5
  %912 = getelementptr inbounds %struct.ImGuiViewportP, ptr %911, i32 0, i32 2
  %913 = load i32, ptr %912, align 8, !tbaa !158
  %914 = load ptr, ptr %60, align 8, !tbaa !5
  %915 = getelementptr inbounds %struct.ImGuiViewport, ptr %914, i32 0, i32 0
  %916 = load i32, ptr %915, align 8, !tbaa !159
  %917 = load ptr, ptr %60, align 8, !tbaa !5
  %918 = getelementptr inbounds %struct.ImGuiViewportP, ptr %917, i32 0, i32 4
  %919 = load i32, ptr %918, align 8, !tbaa !179
  %920 = load ptr, ptr %3, align 8, !tbaa !5
  %921 = getelementptr inbounds %struct.ImGuiContext, ptr %920, i32 0, i32 3
  %922 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %921, i32 0, i32 8
  %923 = load ptr, ptr %922, align 8, !tbaa !180
  %924 = icmp ne ptr %923, null
  br i1 %924, label %925, label %942

925:                                              ; preds = %908
  %926 = load ptr, ptr %60, align 8, !tbaa !5
  %927 = getelementptr inbounds %struct.ImGuiViewport, ptr %926, i32 0, i32 13
  %928 = load i8, ptr %927, align 8, !tbaa !181, !range !13, !noundef !14
  %929 = trunc i8 %928 to i1
  br i1 %929, label %930, label %942

930:                                              ; preds = %925
  %931 = load ptr, ptr %3, align 8, !tbaa !5
  %932 = getelementptr inbounds %struct.ImGuiContext, ptr %931, i32 0, i32 3
  %933 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %932, i32 0, i32 8
  %934 = load ptr, ptr %933, align 8, !tbaa !180
  %935 = load ptr, ptr %60, align 8, !tbaa !5
  %936 = call noundef zeroext i1 %934(ptr noundef %935)
  br i1 %936, label %937, label %938

937:                                              ; preds = %930
  br label %939

938:                                              ; preds = %930
  br label %939

939:                                              ; preds = %938, %937
  %940 = phi ptr [ @.str.477, %937 ], [ @.str.90, %938 ]
  %941 = getelementptr inbounds [2 x i8], ptr %940, i64 0, i64 0
  br label %943

942:                                              ; preds = %925, %908
  br label %943

943:                                              ; preds = %942, %939
  %944 = phi ptr [ %941, %939 ], [ @.str.191, %942 ]
  %945 = load ptr, ptr %60, align 8, !tbaa !5
  %946 = getelementptr inbounds %struct.ImGuiViewportP, ptr %945, i32 0, i32 1
  %947 = load ptr, ptr %946, align 8, !tbaa !182
  %948 = icmp ne ptr %947, null
  br i1 %948, label %949, label %955

949:                                              ; preds = %943
  %950 = load ptr, ptr %60, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.ImGuiViewportP, ptr %950, i32 0, i32 1
  %952 = load ptr, ptr %951, align 8, !tbaa !182
  %953 = getelementptr inbounds %struct.ImGuiWindow, ptr %952, i32 0, i32 1
  %954 = load ptr, ptr %953, align 8, !tbaa !121
  br label %956

955:                                              ; preds = %943
  br label %956

956:                                              ; preds = %955, %949
  %957 = phi ptr [ %954, %949 ], [ @.str.191, %955 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.476, i32 noundef %913, i32 noundef %916, i32 noundef %919, ptr noundef %944, ptr noundef %957)
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  br label %958

958:                                              ; preds = %956
  %959 = load ptr, ptr %58, align 8, !tbaa !5
  %960 = getelementptr inbounds ptr, ptr %959, i32 1
  store ptr %960, ptr %58, align 8, !tbaa !5
  br label %903

961:                                              ; preds = %907
  call void @_ZN5ImGui7TreePopEv()
  br label %962

962:                                              ; preds = %961, %864
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #10
  %963 = load ptr, ptr %3, align 8, !tbaa !5
  %964 = getelementptr inbounds %struct.ImGuiContext, ptr %963, i32 0, i32 92
  store ptr %964, ptr %61, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #10
  %965 = load ptr, ptr %61, align 8, !tbaa !5
  %966 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %965)
  store ptr %966, ptr %62, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #10
  %967 = load ptr, ptr %61, align 8, !tbaa !5
  %968 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %967)
  store ptr %968, ptr %63, align 8, !tbaa !5
  br label %969

969:                                              ; preds = %978, %962
  %970 = load ptr, ptr %62, align 8, !tbaa !5
  %971 = load ptr, ptr %63, align 8, !tbaa !5
  %972 = icmp ne ptr %970, %971
  br i1 %972, label %974, label %973

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

974:                                              ; preds = %969
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  %975 = load ptr, ptr %62, align 8, !tbaa !5
  %976 = load ptr, ptr %975, align 8, !tbaa !5
  store ptr %976, ptr %64, align 8, !tbaa !5
  %977 = load ptr, ptr %64, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %977)
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  br label %978

978:                                              ; preds = %974
  %979 = load ptr, ptr %62, align 8, !tbaa !5
  %980 = getelementptr inbounds ptr, ptr %979, i32 1
  store ptr %980, ptr %62, align 8, !tbaa !5
  br label %969

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

982:                                              ; preds = %981, %711
  %983 = load ptr, ptr %3, align 8, !tbaa !5
  %984 = getelementptr inbounds %struct.ImGuiContext, ptr %983, i32 0, i32 88
  %985 = getelementptr inbounds %struct.ImVector.14, ptr %984, i32 0, i32 0
  %986 = load i32, ptr %985, align 8, !tbaa !183
  %987 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.478, ptr noundef @.str.479, i32 noundef %986)
  br i1 %987, label %988, label %1074

988:                                              ; preds = %982
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #10
  %989 = load ptr, ptr %3, align 8, !tbaa !5
  %990 = getelementptr inbounds %struct.ImGuiContext, ptr %989, i32 0, i32 88
  store ptr %990, ptr %65, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #10
  %991 = load ptr, ptr %65, align 8, !tbaa !5
  %992 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %991)
  store ptr %992, ptr %66, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #10
  %993 = load ptr, ptr %65, align 8, !tbaa !5
  %994 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %993)
  store ptr %994, ptr %67, align 8, !tbaa !5
  br label %995

995:                                              ; preds = %1070, %988
  %996 = load ptr, ptr %66, align 8, !tbaa !5
  %997 = load ptr, ptr %67, align 8, !tbaa !5
  %998 = icmp ne ptr %996, %997
  br i1 %998, label %1000, label %999

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

1000:                                             ; preds = %995
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  %1001 = load ptr, ptr %66, align 8, !tbaa !5
  store ptr %1001, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #10
  %1002 = load ptr, ptr %68, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1002, i32 0, i32 2
  %1004 = load ptr, ptr %1003, align 8, !tbaa !184
  store ptr %1004, ptr %69, align 8, !tbaa !5
  %1005 = load ptr, ptr %68, align 8, !tbaa !5
  %1006 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1005, i32 0, i32 0
  %1007 = load i32, ptr %1006, align 8, !tbaa !186
  %1008 = load ptr, ptr %69, align 8, !tbaa !5
  %1009 = icmp ne ptr %1008, null
  br i1 %1009, label %1010, label %1014

1010:                                             ; preds = %1000
  %1011 = load ptr, ptr %69, align 8, !tbaa !5
  %1012 = getelementptr inbounds %struct.ImGuiWindow, ptr %1011, i32 0, i32 1
  %1013 = load ptr, ptr %1012, align 8, !tbaa !121
  br label %1015

1014:                                             ; preds = %1000
  br label %1015

1015:                                             ; preds = %1014, %1010
  %1016 = phi ptr [ %1013, %1010 ], [ @.str.481, %1014 ]
  %1017 = load ptr, ptr %69, align 8, !tbaa !5
  %1018 = icmp ne ptr %1017, null
  br i1 %1018, label %1019, label %1025

1019:                                             ; preds = %1015
  %1020 = load ptr, ptr %69, align 8, !tbaa !5
  %1021 = getelementptr inbounds %struct.ImGuiWindow, ptr %1020, i32 0, i32 3
  %1022 = load i32, ptr %1021, align 4, !tbaa !187
  %1023 = and i32 %1022, 16777216
  %1024 = icmp ne i32 %1023, 0
  br label %1025

1025:                                             ; preds = %1019, %1015
  %1026 = phi i1 [ false, %1015 ], [ %1024, %1019 ]
  %1027 = zext i1 %1026 to i64
  %1028 = select i1 %1026, ptr @.str.482, ptr @.str.16
  %1029 = load ptr, ptr %69, align 8, !tbaa !5
  %1030 = icmp ne ptr %1029, null
  br i1 %1030, label %1031, label %1037

1031:                                             ; preds = %1025
  %1032 = load ptr, ptr %69, align 8, !tbaa !5
  %1033 = getelementptr inbounds %struct.ImGuiWindow, ptr %1032, i32 0, i32 3
  %1034 = load i32, ptr %1033, align 4, !tbaa !187
  %1035 = and i32 %1034, 268435456
  %1036 = icmp ne i32 %1035, 0
  br label %1037

1037:                                             ; preds = %1031, %1025
  %1038 = phi i1 [ false, %1025 ], [ %1036, %1031 ]
  %1039 = zext i1 %1038 to i64
  %1040 = select i1 %1038, ptr @.str.483, ptr @.str.16
  %1041 = load ptr, ptr %68, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1041, i32 0, i32 3
  %1043 = load ptr, ptr %1042, align 8, !tbaa !188
  %1044 = icmp ne ptr %1043, null
  br i1 %1044, label %1045, label %1051

1045:                                             ; preds = %1037
  %1046 = load ptr, ptr %68, align 8, !tbaa !5
  %1047 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1046, i32 0, i32 3
  %1048 = load ptr, ptr %1047, align 8, !tbaa !188
  %1049 = getelementptr inbounds %struct.ImGuiWindow, ptr %1048, i32 0, i32 1
  %1050 = load ptr, ptr %1049, align 8, !tbaa !121
  br label %1052

1051:                                             ; preds = %1037
  br label %1052

1052:                                             ; preds = %1051, %1045
  %1053 = phi ptr [ %1050, %1045 ], [ @.str.481, %1051 ]
  %1054 = load ptr, ptr %69, align 8, !tbaa !5
  %1055 = icmp ne ptr %1054, null
  br i1 %1055, label %1056, label %1067

1056:                                             ; preds = %1052
  %1057 = load ptr, ptr %69, align 8, !tbaa !5
  %1058 = getelementptr inbounds %struct.ImGuiWindow, ptr %1057, i32 0, i32 91
  %1059 = load ptr, ptr %1058, align 8, !tbaa !189
  %1060 = icmp ne ptr %1059, null
  br i1 %1060, label %1061, label %1067

1061:                                             ; preds = %1056
  %1062 = load ptr, ptr %69, align 8, !tbaa !5
  %1063 = getelementptr inbounds %struct.ImGuiWindow, ptr %1062, i32 0, i32 91
  %1064 = load ptr, ptr %1063, align 8, !tbaa !189
  %1065 = getelementptr inbounds %struct.ImGuiWindow, ptr %1064, i32 0, i32 1
  %1066 = load ptr, ptr %1065, align 8, !tbaa !121
  br label %1068

1067:                                             ; preds = %1056, %1052
  br label %1068

1068:                                             ; preds = %1067, %1061
  %1069 = phi ptr [ %1066, %1061 ], [ @.str.481, %1067 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.480, i32 noundef %1007, ptr noundef %1016, ptr noundef %1028, ptr noundef %1040, ptr noundef %1053, ptr noundef %1069)
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  br label %1070

1070:                                             ; preds = %1068
  %1071 = load ptr, ptr %66, align 8, !tbaa !5
  %1072 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1071, i32 1
  store ptr %1072, ptr %66, align 8, !tbaa !5
  br label %995

1073:                                             ; preds = %999
  call void @_ZN5ImGui7TreePopEv()
  br label %1074

1074:                                             ; preds = %1073, %982
  %1075 = load ptr, ptr %3, align 8, !tbaa !5
  %1076 = getelementptr inbounds %struct.ImGuiContext, ptr %1075, i32 0, i32 181
  %1077 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %1076)
  %1078 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.484, ptr noundef @.str.485, i32 noundef %1077)
  br i1 %1078, label %1079, label %1102

1079:                                             ; preds = %1074
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  store i32 0, ptr %70, align 4, !tbaa !122
  br label %1080

1080:                                             ; preds = %1098, %1079
  %1081 = load i32, ptr %70, align 4, !tbaa !122
  %1082 = load ptr, ptr %3, align 8, !tbaa !5
  %1083 = getelementptr inbounds %struct.ImGuiContext, ptr %1082, i32 0, i32 181
  %1084 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1083)
  %1085 = icmp slt i32 %1081, %1084
  br i1 %1085, label %1087, label %1086

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

1087:                                             ; preds = %1080
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #10
  %1088 = load ptr, ptr %3, align 8, !tbaa !5
  %1089 = getelementptr inbounds %struct.ImGuiContext, ptr %1088, i32 0, i32 181
  %1090 = load i32, ptr %70, align 4, !tbaa !122
  %1091 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1089, i32 noundef %1090)
  store ptr %1091, ptr %71, align 8, !tbaa !5
  %1092 = load ptr, ptr %71, align 8, !tbaa !5
  %1093 = icmp ne ptr %1092, null
  br i1 %1093, label %1094, label %1097

1094:                                             ; preds = %1087
  %1095 = load ptr, ptr %71, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef %1095)
  %1096 = load ptr, ptr %71, align 8, !tbaa !5
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef %1096, ptr noundef @.str.486)
  call void @_ZN5ImGui5PopIDEv()
  br label %1097

1097:                                             ; preds = %1094, %1087
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  br label %1098

1098:                                             ; preds = %1097
  %1099 = load i32, ptr %70, align 4, !tbaa !122
  %1100 = add nsw i32 %1099, 1
  store i32 %1100, ptr %70, align 4, !tbaa !122
  br label %1080, !llvm.loop !190

1101:                                             ; preds = %1086
  call void @_ZN5ImGui7TreePopEv()
  br label %1102

1102:                                             ; preds = %1101, %1074
  %1103 = load ptr, ptr %3, align 8, !tbaa !5
  %1104 = getelementptr inbounds %struct.ImGuiContext, ptr %1103, i32 0, i32 177
  %1105 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %1104)
  %1106 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.487, ptr noundef @.str.488, i32 noundef %1105)
  br i1 %1106, label %1107, label %1129

1107:                                             ; preds = %1102
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  store i32 0, ptr %72, align 4, !tbaa !122
  br label %1108

1108:                                             ; preds = %1125, %1107
  %1109 = load i32, ptr %72, align 4, !tbaa !122
  %1110 = load ptr, ptr %3, align 8, !tbaa !5
  %1111 = getelementptr inbounds %struct.ImGuiContext, ptr %1110, i32 0, i32 177
  %1112 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1111)
  %1113 = icmp slt i32 %1109, %1112
  br i1 %1113, label %1115, label %1114

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

1115:                                             ; preds = %1108
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #10
  %1116 = load ptr, ptr %3, align 8, !tbaa !5
  %1117 = getelementptr inbounds %struct.ImGuiContext, ptr %1116, i32 0, i32 177
  %1118 = load i32, ptr %72, align 4, !tbaa !122
  %1119 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1117, i32 noundef %1118)
  store ptr %1119, ptr %73, align 8, !tbaa !5
  %1120 = load ptr, ptr %73, align 8, !tbaa !5
  %1121 = icmp ne ptr %1120, null
  br i1 %1121, label %1122, label %1124

1122:                                             ; preds = %1115
  %1123 = load ptr, ptr %73, align 8, !tbaa !5
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef %1123)
  br label %1124

1124:                                             ; preds = %1122, %1115
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  br label %1125

1125:                                             ; preds = %1124
  %1126 = load i32, ptr %72, align 4, !tbaa !122
  %1127 = add nsw i32 %1126, 1
  store i32 %1127, ptr %72, align 4, !tbaa !122
  br label %1108, !llvm.loop !191

1128:                                             ; preds = %1114
  call void @_ZN5ImGui7TreePopEv()
  br label %1129

1129:                                             ; preds = %1128, %1102
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  %1130 = load ptr, ptr %3, align 8, !tbaa !5
  %1131 = getelementptr inbounds %struct.ImGuiContext, ptr %1130, i32 0, i32 2
  %1132 = getelementptr inbounds %struct.ImGuiIO, ptr %1131, i32 0, i32 8
  %1133 = load ptr, ptr %1132, align 8, !tbaa !192
  store ptr %1133, ptr %74, align 8, !tbaa !5
  %1134 = load ptr, ptr %74, align 8, !tbaa !5
  %1135 = getelementptr inbounds %struct.ImFontAtlas, ptr %1134, i32 0, i32 17
  %1136 = getelementptr inbounds %struct.ImVector.10, ptr %1135, i32 0, i32 0
  %1137 = load i32, ptr %1136, align 8, !tbaa !193
  %1138 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.489, ptr noundef @.str.490, i32 noundef %1137)
  br i1 %1138, label %1139, label %1141

1139:                                             ; preds = %1129
  %1140 = load ptr, ptr %74, align 8, !tbaa !5
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef %1140)
  call void @_ZN5ImGui7TreePopEv()
  br label %1141

1141:                                             ; preds = %1139, %1129
  %1142 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.491)
  br i1 %1142, label %1143, label %1146

1143:                                             ; preds = %1141
  %1144 = load ptr, ptr %3, align 8, !tbaa !5
  %1145 = getelementptr inbounds %struct.ImGuiContext, ptr %1144, i32 0, i32 193
  call void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef %1145)
  call void @_ZN5ImGui7TreePopEv()
  br label %1146

1146:                                             ; preds = %1143, %1141
  %1147 = load ptr, ptr %3, align 8, !tbaa !5
  %1148 = getelementptr inbounds %struct.ImGuiContext, ptr %1147, i32 0, i32 220
  %1149 = getelementptr inbounds %struct.ImGuiTypingSelectState, ptr %1148, i32 0, i32 1
  %1150 = getelementptr inbounds [64 x i8], ptr %1149, i64 0, i64 0
  %1151 = load i8, ptr %1150, align 8, !tbaa !117
  %1152 = sext i8 %1151 to i32
  %1153 = icmp ne i32 %1152, 0
  %1154 = zext i1 %1153 to i64
  %1155 = select i1 %1153, i32 1, i32 0
  %1156 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.492, ptr noundef @.str.493, i32 noundef %1155)
  br i1 %1156, label %1157, label %1160

1157:                                             ; preds = %1146
  %1158 = load ptr, ptr %3, align 8, !tbaa !5
  %1159 = getelementptr inbounds %struct.ImGuiContext, ptr %1158, i32 0, i32 220
  call void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef %1159)
  call void @_ZN5ImGui7TreePopEv()
  br label %1160

1160:                                             ; preds = %1157, %1146
  %1161 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.336)
  br i1 %1161, label %1162, label %1211

1162:                                             ; preds = %1160
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #10
  %1163 = load ptr, ptr %3, align 8, !tbaa !5
  %1164 = getelementptr inbounds %struct.ImGuiContext, ptr %1163, i32 0, i32 225
  store ptr %1164, ptr %75, align 8, !tbaa !5
  %1165 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.494, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only)
  %1166 = load ptr, ptr %5, align 8, !tbaa !5
  %1167 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1166, i32 0, i32 8
  %1168 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.495, ptr noundef %1167)
  %1169 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.496)
  br i1 %1169, label %1170, label %1172

1170:                                             ; preds = %1162
  %1171 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN5ImGui21DockContextClearNodesEP12ImGuiContextjb(ptr noundef %1171, i32 noundef 0, i1 noundef zeroext true)
  br label %1172

1172:                                             ; preds = %1170, %1162
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1173 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.497)
  br i1 %1173, label %1174, label %1177

1174:                                             ; preds = %1172
  %1175 = load ptr, ptr %75, align 8, !tbaa !5
  %1176 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1175, i32 0, i32 3
  store i8 1, ptr %1176, align 8, !tbaa !197
  br label %1177

1177:                                             ; preds = %1174, %1172
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  store i32 0, ptr %76, align 4, !tbaa !122
  br label %1178

1178:                                             ; preds = %1207, %1177
  %1179 = load i32, ptr %76, align 4, !tbaa !122
  %1180 = load ptr, ptr %75, align 8, !tbaa !5
  %1181 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1180, i32 0, i32 0
  %1182 = getelementptr inbounds %struct.ImGuiStorage, ptr %1181, i32 0, i32 0
  %1183 = getelementptr inbounds %struct.ImVector.6, ptr %1182, i32 0, i32 0
  %1184 = load i32, ptr %1183, align 8, !tbaa !198
  %1185 = icmp slt i32 %1179, %1184
  br i1 %1185, label %1187, label %1186

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

1187:                                             ; preds = %1178
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #10
  %1188 = load ptr, ptr %75, align 8, !tbaa !5
  %1189 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1188, i32 0, i32 0
  %1190 = getelementptr inbounds %struct.ImGuiStorage, ptr %1189, i32 0, i32 0
  %1191 = load i32, ptr %76, align 4, !tbaa !122
  %1192 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN8ImVectorIN12ImGuiStorage16ImGuiStoragePairEEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1190, i32 noundef %1191)
  %1193 = getelementptr inbounds %"struct.ImGuiStorage::ImGuiStoragePair", ptr %1192, i32 0, i32 1
  %1194 = load ptr, ptr %1193, align 8, !tbaa !117
  store ptr %1194, ptr %77, align 8, !tbaa !5
  %1195 = load ptr, ptr %77, align 8, !tbaa !5
  %1196 = icmp ne ptr %1195, null
  br i1 %1196, label %1197, label %1206

1197:                                             ; preds = %1187
  %1198 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only, align 1, !tbaa !116, !range !13, !noundef !14
  %1199 = trunc i8 %1198 to i1
  br i1 %1199, label %1200, label %1203

1200:                                             ; preds = %1197
  %1201 = load ptr, ptr %77, align 8, !tbaa !5
  %1202 = call noundef zeroext i1 @_ZNK13ImGuiDockNode10IsRootNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %1201)
  br i1 %1202, label %1203, label %1205

1203:                                             ; preds = %1200, %1197
  %1204 = load ptr, ptr %77, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDockNodeEP13ImGuiDockNodePKc(ptr noundef %1204, ptr noundef @.str.498)
  br label %1205

1205:                                             ; preds = %1203, %1200
  br label %1206

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

1207:                                             ; preds = %1206
  %1208 = load i32, ptr %76, align 4, !tbaa !122
  %1209 = add nsw i32 %1208, 1
  store i32 %1209, ptr %76, align 4, !tbaa !122
  br label %1178, !llvm.loop !199

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

1211:                                             ; preds = %1210, %1160
  %1212 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.499)
  br i1 %1212, label %1213, label %1435

1213:                                             ; preds = %1211
  %1214 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.500)
  br i1 %1214, label %1215, label %1216

1215:                                             ; preds = %1213
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %1216

1216:                                             ; preds = %1215, %1213
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1217 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.501)
  br i1 %1217, label %1218, label %1220

1218:                                             ; preds = %1216
  %1219 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %1220

1220:                                             ; preds = %1218, %1216
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1221 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.502)
  br i1 %1221, label %1222, label %1227

1222:                                             ; preds = %1220
  %1223 = load ptr, ptr %3, align 8, !tbaa !5
  %1224 = getelementptr inbounds %struct.ImGuiContext, ptr %1223, i32 0, i32 2
  %1225 = getelementptr inbounds %struct.ImGuiIO, ptr %1224, i32 0, i32 5
  %1226 = load ptr, ptr %1225, align 8, !tbaa !200
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %1226)
  br label %1227

1227:                                             ; preds = %1222, %1220
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1228 = load ptr, ptr %3, align 8, !tbaa !5
  %1229 = getelementptr inbounds %struct.ImGuiContext, ptr %1228, i32 0, i32 2
  %1230 = getelementptr inbounds %struct.ImGuiIO, ptr %1229, i32 0, i32 5
  %1231 = load ptr, ptr %1230, align 8, !tbaa !200
  %1232 = icmp ne ptr %1231, null
  br i1 %1232, label %1233, label %1238

1233:                                             ; preds = %1227
  %1234 = load ptr, ptr %3, align 8, !tbaa !5
  %1235 = getelementptr inbounds %struct.ImGuiContext, ptr %1234, i32 0, i32 2
  %1236 = getelementptr inbounds %struct.ImGuiIO, ptr %1235, i32 0, i32 5
  %1237 = load ptr, ptr %1236, align 8, !tbaa !200
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.503, ptr noundef %1237)
  br label %1239

1238:                                             ; preds = %1227
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef @.str.167, ptr noundef null)
  br label %1239

1239:                                             ; preds = %1238, %1233
  %1240 = load ptr, ptr %4, align 8, !tbaa !5
  %1241 = getelementptr inbounds %struct.ImGuiIO, ptr %1240, i32 0, i32 38
  %1242 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.504, ptr noundef %1241)
  %1243 = load ptr, ptr %3, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.ImGuiContext, ptr %1243, i32 0, i32 228
  %1245 = load float, ptr %1244, align 4, !tbaa !201
  %1246 = fpext float %1245 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.505, double noundef %1246)
  %1247 = load ptr, ptr %3, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.ImGuiContext, ptr %1247, i32 0, i32 230
  %1249 = getelementptr inbounds %struct.ImVector.31, ptr %1248, i32 0, i32 0
  %1250 = load i32, ptr %1249, align 8, !tbaa !202
  %1251 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.506, ptr noundef @.str.507, i32 noundef %1250)
  br i1 %1251, label %1252, label %1273

1252:                                             ; preds = %1239
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #10
  %1253 = load ptr, ptr %3, align 8, !tbaa !5
  %1254 = getelementptr inbounds %struct.ImGuiContext, ptr %1253, i32 0, i32 230
  store ptr %1254, ptr %78, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #10
  %1255 = load ptr, ptr %78, align 8, !tbaa !5
  %1256 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1255)
  store ptr %1256, ptr %79, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #10
  %1257 = load ptr, ptr %78, align 8, !tbaa !5
  %1258 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %1257)
  store ptr %1258, ptr %80, align 8, !tbaa !5
  br label %1259

1259:                                             ; preds = %1269, %1252
  %1260 = load ptr, ptr %79, align 8, !tbaa !5
  %1261 = load ptr, ptr %80, align 8, !tbaa !5
  %1262 = icmp ne ptr %1260, %1261
  br i1 %1262, label %1264, label %1263

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

1264:                                             ; preds = %1259
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #10
  %1265 = load ptr, ptr %79, align 8, !tbaa !5
  store ptr %1265, ptr %81, align 8, !tbaa !5
  %1266 = load ptr, ptr %81, align 8, !tbaa !5
  %1267 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %1266, i32 0, i32 0
  %1268 = load ptr, ptr %1267, align 8, !tbaa !203
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.503, ptr noundef %1268)
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #10
  br label %1269

1269:                                             ; preds = %1264
  %1270 = load ptr, ptr %79, align 8, !tbaa !5
  %1271 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %1270, i32 1
  store ptr %1271, ptr %79, align 8, !tbaa !5
  br label %1259

1272:                                             ; preds = %1263
  call void @_ZN5ImGui7TreePopEv()
  br label %1273

1273:                                             ; preds = %1272, %1239
  %1274 = load ptr, ptr %3, align 8, !tbaa !5
  %1275 = getelementptr inbounds %struct.ImGuiContext, ptr %1274, i32 0, i32 231
  %1276 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1275)
  %1277 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.508, ptr noundef @.str.509, i32 noundef %1276)
  br i1 %1277, label %1278, label %1294

1278:                                             ; preds = %1273
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #10
  %1279 = load ptr, ptr %3, align 8, !tbaa !5
  %1280 = getelementptr inbounds %struct.ImGuiContext, ptr %1279, i32 0, i32 231
  %1281 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1280)
  store ptr %1281, ptr %82, align 8, !tbaa !5
  br label %1282

1282:                                             ; preds = %1288, %1278
  %1283 = load ptr, ptr %82, align 8, !tbaa !5
  %1284 = icmp ne ptr %1283, null
  br i1 %1284, label %1286, label %1285

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

1286:                                             ; preds = %1282
  %1287 = load ptr, ptr %82, align 8, !tbaa !5
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef %1287)
  br label %1288

1288:                                             ; preds = %1286
  %1289 = load ptr, ptr %3, align 8, !tbaa !5
  %1290 = getelementptr inbounds %struct.ImGuiContext, ptr %1289, i32 0, i32 231
  %1291 = load ptr, ptr %82, align 8, !tbaa !5
  %1292 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %1290, ptr noundef %1291)
  store ptr %1292, ptr %82, align 8, !tbaa !5
  br label %1282, !llvm.loop !205

1293:                                             ; preds = %1285
  call void @_ZN5ImGui7TreePopEv()
  br label %1294

1294:                                             ; preds = %1293, %1273
  %1295 = load ptr, ptr %3, align 8, !tbaa !5
  %1296 = getelementptr inbounds %struct.ImGuiContext, ptr %1295, i32 0, i32 232
  %1297 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1296)
  %1298 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.510, ptr noundef @.str.511, i32 noundef %1297)
  br i1 %1298, label %1299, label %1315

1299:                                             ; preds = %1294
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  %1300 = load ptr, ptr %3, align 8, !tbaa !5
  %1301 = getelementptr inbounds %struct.ImGuiContext, ptr %1300, i32 0, i32 232
  %1302 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1301)
  store ptr %1302, ptr %83, align 8, !tbaa !5
  br label %1303

1303:                                             ; preds = %1309, %1299
  %1304 = load ptr, ptr %83, align 8, !tbaa !5
  %1305 = icmp ne ptr %1304, null
  br i1 %1305, label %1307, label %1306

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

1307:                                             ; preds = %1303
  %1308 = load ptr, ptr %83, align 8, !tbaa !5
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef %1308)
  br label %1309

1309:                                             ; preds = %1307
  %1310 = load ptr, ptr %3, align 8, !tbaa !5
  %1311 = getelementptr inbounds %struct.ImGuiContext, ptr %1310, i32 0, i32 232
  %1312 = load ptr, ptr %83, align 8, !tbaa !5
  %1313 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %1311, ptr noundef %1312)
  store ptr %1313, ptr %83, align 8, !tbaa !5
  br label %1303, !llvm.loop !206

1314:                                             ; preds = %1306
  call void @_ZN5ImGui7TreePopEv()
  br label %1315

1315:                                             ; preds = %1314, %1294
  %1316 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.512, ptr noundef @.str.513)
  br i1 %1316, label %1317, label %1416

1317:                                             ; preds = %1315
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #10
  %1318 = load ptr, ptr %3, align 8, !tbaa !5
  %1319 = getelementptr inbounds %struct.ImGuiContext, ptr %1318, i32 0, i32 225
  store ptr %1319, ptr %84, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.514)
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  %1320 = load ptr, ptr %3, align 8, !tbaa !5
  %1321 = getelementptr inbounds %struct.ImGuiContext, ptr %1320, i32 0, i32 231
  %1322 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1321)
  store ptr %1322, ptr %85, align 8, !tbaa !5
  br label %1323

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

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

1327:                                             ; preds = %1323
  %1328 = load ptr, ptr %85, align 8, !tbaa !5
  %1329 = getelementptr inbounds %struct.ImGuiWindowSettings, ptr %1328, i32 0, i32 5
  %1330 = load i32, ptr %1329, align 4, !tbaa !207
  %1331 = icmp ne i32 %1330, 0
  br i1 %1331, label %1332, label %1342

1332:                                             ; preds = %1327
  %1333 = load ptr, ptr %85, align 8, !tbaa !5
  %1334 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(34) %1333)
  %1335 = load ptr, ptr %85, align 8, !tbaa !5
  %1336 = getelementptr inbounds %struct.ImGuiWindowSettings, ptr %1335, i32 0, i32 5
  %1337 = load i32, ptr %1336, align 4, !tbaa !207
  %1338 = load ptr, ptr %85, align 8, !tbaa !5
  %1339 = getelementptr inbounds %struct.ImGuiWindowSettings, ptr %1338, i32 0, i32 7
  %1340 = load i16, ptr %1339, align 4, !tbaa !209
  %1341 = sext i16 %1340 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.515, ptr noundef %1334, i32 noundef %1337, i32 noundef %1341)
  br label %1342

1342:                                             ; preds = %1332, %1327
  br label %1343

1343:                                             ; preds = %1342
  %1344 = load ptr, ptr %3, align 8, !tbaa !5
  %1345 = getelementptr inbounds %struct.ImGuiContext, ptr %1344, i32 0, i32 231
  %1346 = load ptr, ptr %85, align 8, !tbaa !5
  %1347 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %1345, ptr noundef %1346)
  store ptr %1347, ptr %85, align 8, !tbaa !5
  br label %1323, !llvm.loop !210

1348:                                             ; preds = %1326
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.516)
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  store i32 0, ptr %86, align 4, !tbaa !122
  br label %1349

1349:                                             ; preds = %1412, %1348
  %1350 = load i32, ptr %86, align 4, !tbaa !122
  %1351 = load ptr, ptr %84, align 8, !tbaa !5
  %1352 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1351, i32 0, i32 2
  %1353 = getelementptr inbounds %struct.ImVector.30, ptr %1352, i32 0, i32 0
  %1354 = load i32, ptr %1353, align 8, !tbaa !211
  %1355 = icmp slt i32 %1350, %1354
  br i1 %1355, label %1357, label %1356

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

1357:                                             ; preds = %1349
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #10
  %1358 = load ptr, ptr %84, align 8, !tbaa !5
  %1359 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1358, i32 0, i32 2
  %1360 = load i32, ptr %86, align 4, !tbaa !122
  %1361 = call noundef nonnull align 4 dereferenceable(36) ptr @_ZN8ImVectorI21ImGuiDockNodeSettingsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1359, i32 noundef %1360)
  store ptr %1361, ptr %87, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #10
  store ptr null, ptr %88, align 8, !tbaa !5
  %1362 = load ptr, ptr %87, align 8, !tbaa !5
  %1363 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1362, i32 0, i32 3
  %1364 = load i32, ptr %1363, align 4, !tbaa !212
  %1365 = icmp ne i32 %1364, 0
  br i1 %1365, label %1366, label %1389

1366:                                             ; preds = %1357
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #10
  %1367 = load ptr, ptr %87, align 8, !tbaa !5
  %1368 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1367, i32 0, i32 3
  %1369 = load i32, ptr %1368, align 4, !tbaa !212
  %1370 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %1369)
  store ptr %1370, ptr %89, align 8, !tbaa !5
  %1371 = load ptr, ptr %89, align 8, !tbaa !5
  %1372 = icmp ne ptr %1371, null
  br i1 %1372, label %1373, label %1377

1373:                                             ; preds = %1366
  %1374 = load ptr, ptr %89, align 8, !tbaa !5
  %1375 = getelementptr inbounds %struct.ImGuiWindow, ptr %1374, i32 0, i32 1
  %1376 = load ptr, ptr %1375, align 8, !tbaa !121
  store ptr %1376, ptr %88, align 8, !tbaa !5
  br label %1388

1377:                                             ; preds = %1366
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #10
  %1378 = load ptr, ptr %87, align 8, !tbaa !5
  %1379 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1378, i32 0, i32 3
  %1380 = load i32, ptr %1379, align 4, !tbaa !212
  %1381 = call noundef ptr @_ZN5ImGui22FindWindowSettingsByIDEj(i32 noundef %1380)
  store ptr %1381, ptr %90, align 8, !tbaa !5
  %1382 = load ptr, ptr %90, align 8, !tbaa !5
  %1383 = icmp ne ptr %1382, null
  br i1 %1383, label %1384, label %1387

1384:                                             ; preds = %1377
  %1385 = load ptr, ptr %90, align 8, !tbaa !5
  %1386 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(34) %1385)
  store ptr %1386, ptr %88, align 8, !tbaa !5
  br label %1387

1387:                                             ; preds = %1384, %1377
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #10
  br label %1388

1388:                                             ; preds = %1387, %1373
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #10
  br label %1389

1389:                                             ; preds = %1388, %1357
  %1390 = load ptr, ptr %87, align 8, !tbaa !5
  %1391 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1390, i32 0, i32 0
  %1392 = load i32, ptr %1391, align 4, !tbaa !214
  %1393 = load ptr, ptr %87, align 8, !tbaa !5
  %1394 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1393, i32 0, i32 1
  %1395 = load i32, ptr %1394, align 4, !tbaa !215
  %1396 = load ptr, ptr %87, align 8, !tbaa !5
  %1397 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1396, i32 0, i32 3
  %1398 = load i32, ptr %1397, align 4, !tbaa !212
  %1399 = load ptr, ptr %88, align 8, !tbaa !5
  %1400 = icmp ne ptr %1399, null
  br i1 %1400, label %1401, label %1403

1401:                                             ; preds = %1389
  %1402 = load ptr, ptr %88, align 8, !tbaa !5
  br label %1410

1403:                                             ; preds = %1389
  %1404 = load ptr, ptr %87, align 8, !tbaa !5
  %1405 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1404, i32 0, i32 3
  %1406 = load i32, ptr %1405, align 4, !tbaa !212
  %1407 = icmp ne i32 %1406, 0
  %1408 = zext i1 %1407 to i64
  %1409 = select i1 %1407, ptr @.str.191, ptr @.str.16
  br label %1410

1410:                                             ; preds = %1403, %1401
  %1411 = phi ptr [ %1402, %1401 ], [ %1409, %1403 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.517, i32 noundef %1392, i32 noundef %1395, i32 noundef %1398, ptr noundef %1411)
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  br label %1412

1412:                                             ; preds = %1410
  %1413 = load i32, ptr %86, align 4, !tbaa !122
  %1414 = add nsw i32 %1413, 1
  store i32 %1414, ptr %86, align 4, !tbaa !122
  br label %1349, !llvm.loop !216

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

1416:                                             ; preds = %1415, %1315
  %1417 = load ptr, ptr %3, align 8, !tbaa !5
  %1418 = getelementptr inbounds %struct.ImGuiContext, ptr %1417, i32 0, i32 229
  %1419 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1418)
  %1420 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.518, ptr noundef @.str.519, i32 noundef %1419)
  br i1 %1420, label %1421, label %1434

1421:                                             ; preds = %1416
  %1422 = load ptr, ptr %3, align 8, !tbaa !5
  %1423 = getelementptr inbounds %struct.ImGuiContext, ptr %1422, i32 0, i32 229
  %1424 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %1423)
  %1425 = load ptr, ptr %3, align 8, !tbaa !5
  %1426 = getelementptr inbounds %struct.ImGuiContext, ptr %1425, i32 0, i32 229
  %1427 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %1426, i32 0, i32 0
  %1428 = getelementptr inbounds %struct.ImVector.27, ptr %1427, i32 0, i32 0
  %1429 = load i32, ptr %1428, align 8, !tbaa !217
  %1430 = sext i32 %1429 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #10
  %1431 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %1432 = fmul float %1431, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %91, float noundef 0xB810000000000000, float noundef %1432)
  %1433 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.520, ptr noundef %1424, i64 noundef %1430, ptr noundef nonnull align 4 dereferenceable(8) %91, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #10
  call void @_ZN5ImGui7TreePopEv()
  br label %1434

1434:                                             ; preds = %1421, %1416
  call void @_ZN5ImGui7TreePopEv()
  br label %1435

1435:                                             ; preds = %1434, %1211
  %1436 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.521)
  br i1 %1436, label %1437, label %1496

1437:                                             ; preds = %1435
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #10
  %1438 = load ptr, ptr %3, align 8, !tbaa !5
  %1439 = getelementptr inbounds %struct.ImGuiContext, ptr %1438, i32 0, i32 258
  store ptr %1439, ptr %92, align 8, !tbaa !5
  %1440 = load ptr, ptr %92, align 8, !tbaa !5
  %1441 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1440, i32 0, i32 0
  %1442 = load i32, ptr %1441, align 4, !tbaa !218
  %1443 = load ptr, ptr %92, align 8, !tbaa !5
  %1444 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1443, i32 0, i32 1
  %1445 = load i32, ptr %1444, align 4, !tbaa !219
  %1446 = sub nsw i32 %1442, %1445
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.522, i32 noundef %1446)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.523)
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #10
  store i32 6, ptr %93, align 4, !tbaa !122
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #10
  %1447 = load i32, ptr %93, align 4, !tbaa !122
  %1448 = sub nsw i32 %1447, 1
  store i32 %1448, ptr %94, align 4, !tbaa !122
  br label %1449

1449:                                             ; preds = %1492, %1437
  %1450 = load i32, ptr %94, align 4, !tbaa !122
  %1451 = icmp sge i32 %1450, 0
  br i1 %1451, label %1453, label %1452

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

1453:                                             ; preds = %1449
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #10
  %1454 = load ptr, ptr %92, align 8, !tbaa !5
  %1455 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1454, i32 0, i32 3
  %1456 = load ptr, ptr %92, align 8, !tbaa !5
  %1457 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1456, i32 0, i32 2
  %1458 = load i16, ptr %1457, align 4, !tbaa !220
  %1459 = sext i16 %1458 to i32
  %1460 = load i32, ptr %94, align 4, !tbaa !122
  %1461 = sub nsw i32 %1459, %1460
  %1462 = load i32, ptr %93, align 4, !tbaa !122
  %1463 = add nsw i32 %1461, %1462
  %1464 = load i32, ptr %93, align 4, !tbaa !122
  %1465 = srem i32 %1463, %1464
  %1466 = sext i32 %1465 to i64
  %1467 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %1455, i64 0, i64 %1466
  store ptr %1467, ptr %95, align 8, !tbaa !5
  %1468 = load ptr, ptr %95, align 8, !tbaa !5
  %1469 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1468, i32 0, i32 0
  %1470 = load i32, ptr %1469, align 4, !tbaa !221
  %1471 = load ptr, ptr %95, align 8, !tbaa !5
  %1472 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1471, i32 0, i32 1
  %1473 = load i16, ptr %1472, align 4, !tbaa !223
  %1474 = sext i16 %1473 to i32
  %1475 = load ptr, ptr %95, align 8, !tbaa !5
  %1476 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1475, i32 0, i32 2
  %1477 = load i16, ptr %1476, align 2, !tbaa !224
  %1478 = sext i16 %1477 to i32
  %1479 = sub nsw i32 %1474, %1478
  %1480 = load ptr, ptr %95, align 8, !tbaa !5
  %1481 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1480, i32 0, i32 1
  %1482 = load i16, ptr %1481, align 4, !tbaa !223
  %1483 = sext i16 %1482 to i32
  %1484 = load ptr, ptr %95, align 8, !tbaa !5
  %1485 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1484, i32 0, i32 2
  %1486 = load i16, ptr %1485, align 2, !tbaa !224
  %1487 = sext i16 %1486 to i32
  %1488 = load i32, ptr %94, align 4, !tbaa !122
  %1489 = icmp eq i32 %1488, 0
  %1490 = zext i1 %1489 to i64
  %1491 = select i1 %1489, ptr @.str.525, ptr @.str.16
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.524, i32 noundef %1470, i32 noundef %1479, i32 noundef %1483, i32 noundef %1487, ptr noundef %1491)
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #10
  br label %1492

1492:                                             ; preds = %1453
  %1493 = load i32, ptr %94, align 4, !tbaa !122
  %1494 = add nsw i32 %1493, -1
  store i32 %1494, ptr %94, align 4, !tbaa !122
  br label %1449, !llvm.loop !225

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

1496:                                             ; preds = %1495, %1435
  %1497 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.526)
  br i1 %1497, label %1498, label %1890

1498:                                             ; preds = %1496
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.527)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.528)
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #10
  store i32 0, ptr %96, align 4, !tbaa !226
  br label %1499

1499:                                             ; preds = %1523, %1498
  %1500 = load i32, ptr %96, align 4, !tbaa !226
  %1501 = icmp slt i32 %1500, 666
  br i1 %1501, label %1503, label %1502

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

1503:                                             ; preds = %1499
  %1504 = load i32, ptr %96, align 4, !tbaa !226
  %1505 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1504)
  br i1 %1505, label %1509, label %1506

1506:                                             ; preds = %1503
  %1507 = load i32, ptr %96, align 4, !tbaa !226
  %1508 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %1507)
  br i1 %1508, label %1510, label %1509

1509:                                             ; preds = %1506, %1503
  br label %1523

1510:                                             ; preds = %1506
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1511 = load i32, ptr %96, align 4, !tbaa !226
  %1512 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1511)
  %1513 = zext i1 %1512 to i64
  %1514 = select i1 %1512, ptr @.str.503, ptr @.str.529
  %1515 = load i32, ptr %96, align 4, !tbaa !226
  %1516 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1515)
  %1517 = load i32, ptr %96, align 4, !tbaa !226
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1514, ptr noundef %1516, i32 noundef %1517)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1518 = load i32, ptr %96, align 4, !tbaa !226
  %1519 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %1518)
  %1520 = getelementptr inbounds %struct.ImGuiKeyData, ptr %1519, i32 0, i32 1
  %1521 = load float, ptr %1520, align 4, !tbaa !228
  %1522 = fpext float %1521 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.530, double noundef %1522)
  br label %1523

1523:                                             ; preds = %1510, %1509
  %1524 = load i32, ptr %96, align 4, !tbaa !226
  %1525 = add nsw i32 %1524, 1
  store i32 %1525, ptr %96, align 4, !tbaa !226
  br label %1499, !llvm.loop !230

1526:                                             ; preds = %1502
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.531)
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #10
  store i32 0, ptr %97, align 4, !tbaa !226
  br label %1527

1527:                                             ; preds = %1546, %1526
  %1528 = load i32, ptr %97, align 4, !tbaa !226
  %1529 = icmp slt i32 %1528, 666
  br i1 %1529, label %1531, label %1530

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

1531:                                             ; preds = %1527
  %1532 = load i32, ptr %97, align 4, !tbaa !226
  %1533 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1532)
  br i1 %1533, label %1537, label %1534

1534:                                             ; preds = %1531
  %1535 = load i32, ptr %97, align 4, !tbaa !226
  %1536 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %1535, i1 noundef zeroext true)
  br i1 %1536, label %1538, label %1537

1537:                                             ; preds = %1534, %1531
  br label %1546

1538:                                             ; preds = %1534
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1539 = load i32, ptr %97, align 4, !tbaa !226
  %1540 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1539)
  %1541 = zext i1 %1540 to i64
  %1542 = select i1 %1540, ptr @.str.503, ptr @.str.529
  %1543 = load i32, ptr %97, align 4, !tbaa !226
  %1544 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1543)
  %1545 = load i32, ptr %97, align 4, !tbaa !226
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1542, ptr noundef %1544, i32 noundef %1545)
  br label %1546

1546:                                             ; preds = %1538, %1537
  %1547 = load i32, ptr %97, align 4, !tbaa !226
  %1548 = add nsw i32 %1547, 1
  store i32 %1548, ptr %97, align 4, !tbaa !226
  br label %1527, !llvm.loop !231

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

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

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

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

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

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

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

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

1572:                                             ; preds = %1553
  %1573 = load ptr, ptr %4, align 8, !tbaa !5
  %1574 = getelementptr inbounds %struct.ImGuiIO, ptr %1573, i32 0, i32 73
  %1575 = load i8, ptr %1574, align 8, !tbaa !233, !range !13, !noundef !14
  %1576 = trunc i8 %1575 to i1
  %1577 = zext i1 %1576 to i64
  %1578 = select i1 %1576, ptr @.str.534, ptr @.str.16
  %1579 = load ptr, ptr %4, align 8, !tbaa !5
  %1580 = getelementptr inbounds %struct.ImGuiIO, ptr %1579, i32 0, i32 74
  %1581 = load i8, ptr %1580, align 1, !tbaa !234, !range !13, !noundef !14
  %1582 = trunc i8 %1581 to i1
  %1583 = zext i1 %1582 to i64
  %1584 = select i1 %1582, ptr @.str.535, ptr @.str.16
  %1585 = load ptr, ptr %4, align 8, !tbaa !5
  %1586 = getelementptr inbounds %struct.ImGuiIO, ptr %1585, i32 0, i32 75
  %1587 = load i8, ptr %1586, align 2, !tbaa !235, !range !13, !noundef !14
  %1588 = trunc i8 %1587 to i1
  %1589 = zext i1 %1588 to i64
  %1590 = select i1 %1588, ptr @.str.536, ptr @.str.16
  %1591 = load ptr, ptr %4, align 8, !tbaa !5
  %1592 = getelementptr inbounds %struct.ImGuiIO, ptr %1591, i32 0, i32 76
  %1593 = load i8, ptr %1592, align 1, !tbaa !236, !range !13, !noundef !14
  %1594 = trunc i8 %1593 to i1
  %1595 = zext i1 %1594 to i64
  %1596 = select i1 %1594, ptr @.str.537, ptr @.str.16
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.533, ptr noundef %1578, ptr noundef %1584, ptr noundef %1590, ptr noundef %1596)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.538)
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #10
  store i32 0, ptr %99, align 4, !tbaa !122
  br label %1597

1597:                                             ; preds = %1627, %1572
  %1598 = load i32, ptr %99, align 4, !tbaa !122
  %1599 = load ptr, ptr %4, align 8, !tbaa !5
  %1600 = getelementptr inbounds %struct.ImGuiIO, ptr %1599, i32 0, i32 101
  %1601 = getelementptr inbounds %struct.ImVector, ptr %1600, i32 0, i32 0
  %1602 = load i32, ptr %1601, align 8, !tbaa !237
  %1603 = icmp slt i32 %1598, %1602
  br i1 %1603, label %1605, label %1604

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

1605:                                             ; preds = %1597
  call void @llvm.lifetime.start.p0(i64 2, ptr %100) #10
  %1606 = load ptr, ptr %4, align 8, !tbaa !5
  %1607 = getelementptr inbounds %struct.ImGuiIO, ptr %1606, i32 0, i32 101
  %1608 = load i32, ptr %99, align 4, !tbaa !122
  %1609 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1607, i32 noundef %1608)
  %1610 = load i16, ptr %1609, align 2, !tbaa !238
  store i16 %1610, ptr %100, align 2, !tbaa !238
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1611 = load i16, ptr %100, align 2, !tbaa !238
  %1612 = zext i16 %1611 to i32
  %1613 = icmp sgt i32 %1612, 32
  br i1 %1613, label %1614, label %1621

1614:                                             ; preds = %1605
  %1615 = load i16, ptr %100, align 2, !tbaa !238
  %1616 = zext i16 %1615 to i32
  %1617 = icmp sle i32 %1616, 255
  br i1 %1617, label %1618, label %1621

1618:                                             ; preds = %1614
  %1619 = load i16, ptr %100, align 2, !tbaa !238
  %1620 = trunc i16 %1619 to i8
  br label %1622

1621:                                             ; preds = %1614, %1605
  br label %1622

1622:                                             ; preds = %1621, %1618
  %1623 = phi i8 [ %1620, %1618 ], [ 63, %1621 ]
  %1624 = sext i8 %1623 to i32
  %1625 = load i16, ptr %100, align 2, !tbaa !238
  %1626 = zext i16 %1625 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.539, i32 noundef %1624, i32 noundef %1626)
  call void @llvm.lifetime.end.p0(i64 2, ptr %100) #10
  br label %1627

1627:                                             ; preds = %1622
  %1628 = load i32, ptr %99, align 4, !tbaa !122
  %1629 = add nsw i32 %1628, 1
  store i32 %1629, ptr %99, align 4, !tbaa !122
  br label %1597, !llvm.loop !239

1630:                                             ; preds = %1604
  %1631 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %1631)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.540)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1632 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %1632, label %1633, label %1644

1633:                                             ; preds = %1630
  %1634 = load ptr, ptr %4, align 8, !tbaa !5
  %1635 = getelementptr inbounds %struct.ImGuiIO, ptr %1634, i32 0, i32 67
  %1636 = getelementptr inbounds %struct.ImVec2, ptr %1635, i32 0, i32 0
  %1637 = load float, ptr %1636, align 8, !tbaa !240
  %1638 = fpext float %1637 to double
  %1639 = load ptr, ptr %4, align 8, !tbaa !5
  %1640 = getelementptr inbounds %struct.ImGuiIO, ptr %1639, i32 0, i32 67
  %1641 = getelementptr inbounds %struct.ImVec2, ptr %1640, i32 0, i32 1
  %1642 = load float, ptr %1641, align 4, !tbaa !241
  %1643 = fpext float %1642 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.541, double noundef %1638, double noundef %1643)
  br label %1645

1644:                                             ; preds = %1630
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.542)
  br label %1645

1645:                                             ; preds = %1644, %1633
  %1646 = load ptr, ptr %4, align 8, !tbaa !5
  %1647 = getelementptr inbounds %struct.ImGuiIO, ptr %1646, i32 0, i32 61
  %1648 = getelementptr inbounds %struct.ImVec2, ptr %1647, i32 0, i32 0
  %1649 = load float, ptr %1648, align 8, !tbaa !242
  %1650 = fpext float %1649 to double
  %1651 = load ptr, ptr %4, align 8, !tbaa !5
  %1652 = getelementptr inbounds %struct.ImGuiIO, ptr %1651, i32 0, i32 61
  %1653 = getelementptr inbounds %struct.ImVec2, ptr %1652, i32 0, i32 1
  %1654 = load float, ptr %1653, align 4, !tbaa !243
  %1655 = fpext float %1654 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.543, double noundef %1650, double noundef %1655)
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #10
  store i32 5, ptr %101, align 4, !tbaa !122
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.544)
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  store i32 0, ptr %102, align 4, !tbaa !122
  br label %1656

1656:                                             ; preds = %1674, %1645
  %1657 = load i32, ptr %102, align 4, !tbaa !122
  %1658 = load i32, ptr %101, align 4, !tbaa !122
  %1659 = icmp slt i32 %1657, %1658
  br i1 %1659, label %1661, label %1660

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

1661:                                             ; preds = %1656
  %1662 = load i32, ptr %102, align 4, !tbaa !122
  %1663 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef %1662)
  br i1 %1663, label %1664, label %1673

1664:                                             ; preds = %1661
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1665 = load i32, ptr %102, align 4, !tbaa !122
  %1666 = load ptr, ptr %4, align 8, !tbaa !5
  %1667 = getelementptr inbounds %struct.ImGuiIO, ptr %1666, i32 0, i32 91
  %1668 = load i32, ptr %102, align 4, !tbaa !122
  %1669 = sext i32 %1668 to i64
  %1670 = getelementptr inbounds [5 x float], ptr %1667, i64 0, i64 %1669
  %1671 = load float, ptr %1670, align 4, !tbaa !244
  %1672 = fpext float %1671 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.545, i32 noundef %1665, double noundef %1672)
  br label %1673

1673:                                             ; preds = %1664, %1661
  br label %1674

1674:                                             ; preds = %1673
  %1675 = load i32, ptr %102, align 4, !tbaa !122
  %1676 = add nsw i32 %1675, 1
  store i32 %1676, ptr %102, align 4, !tbaa !122
  br label %1656, !llvm.loop !245

1677:                                             ; preds = %1660
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.546)
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #10
  store i32 0, ptr %103, align 4, !tbaa !122
  br label %1678

1678:                                             ; preds = %1696, %1677
  %1679 = load i32, ptr %103, align 4, !tbaa !122
  %1680 = load i32, ptr %101, align 4, !tbaa !122
  %1681 = icmp slt i32 %1679, %1680
  br i1 %1681, label %1683, label %1682

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

1683:                                             ; preds = %1678
  %1684 = load i32, ptr %103, align 4, !tbaa !122
  %1685 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef %1684, i1 noundef zeroext false)
  br i1 %1685, label %1686, label %1695

1686:                                             ; preds = %1683
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1687 = load i32, ptr %103, align 4, !tbaa !122
  %1688 = load ptr, ptr %4, align 8, !tbaa !5
  %1689 = getelementptr inbounds %struct.ImGuiIO, ptr %1688, i32 0, i32 85
  %1690 = load i32, ptr %103, align 4, !tbaa !122
  %1691 = sext i32 %1690 to i64
  %1692 = getelementptr inbounds [5 x i16], ptr %1689, i64 0, i64 %1691
  %1693 = load i16, ptr %1692, align 2, !tbaa !238
  %1694 = zext i16 %1693 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.547, i32 noundef %1687, i32 noundef %1694)
  br label %1695

1695:                                             ; preds = %1686, %1683
  br label %1696

1696:                                             ; preds = %1695
  %1697 = load i32, ptr %103, align 4, !tbaa !122
  %1698 = add nsw i32 %1697, 1
  store i32 %1698, ptr %103, align 4, !tbaa !122
  br label %1678, !llvm.loop !246

1699:                                             ; preds = %1682
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.548)
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #10
  store i32 0, ptr %104, align 4, !tbaa !122
  br label %1700

1700:                                             ; preds = %1711, %1699
  %1701 = load i32, ptr %104, align 4, !tbaa !122
  %1702 = load i32, ptr %101, align 4, !tbaa !122
  %1703 = icmp slt i32 %1701, %1702
  br i1 %1703, label %1705, label %1704

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

1705:                                             ; preds = %1700
  %1706 = load i32, ptr %104, align 4, !tbaa !122
  %1707 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef %1706)
  br i1 %1707, label %1708, label %1710

1708:                                             ; preds = %1705
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1709 = load i32, ptr %104, align 4, !tbaa !122
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.549, i32 noundef %1709)
  br label %1710

1710:                                             ; preds = %1708, %1705
  br label %1711

1711:                                             ; preds = %1710
  %1712 = load i32, ptr %104, align 4, !tbaa !122
  %1713 = add nsw i32 %1712, 1
  store i32 %1713, ptr %104, align 4, !tbaa !122
  br label %1700, !llvm.loop !247

1714:                                             ; preds = %1704
  %1715 = load ptr, ptr %4, align 8, !tbaa !5
  %1716 = getelementptr inbounds %struct.ImGuiIO, ptr %1715, i32 0, i32 69
  %1717 = load float, ptr %1716, align 8, !tbaa !248
  %1718 = fpext float %1717 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.550, double noundef %1718)
  %1719 = load ptr, ptr %3, align 8, !tbaa !5
  %1720 = getelementptr inbounds %struct.ImGuiContext, ptr %1719, i32 0, i32 191
  %1721 = load float, ptr %1720, align 4, !tbaa !249
  %1722 = fpext float %1721 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.551, double noundef %1722)
  %1723 = load ptr, ptr %4, align 8, !tbaa !5
  %1724 = getelementptr inbounds %struct.ImGuiIO, ptr %1723, i32 0, i32 71
  %1725 = load i32, ptr %1724, align 8, !tbaa !250
  %1726 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %1725)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.552, ptr noundef %1726)
  %1727 = load ptr, ptr %4, align 8, !tbaa !5
  %1728 = getelementptr inbounds %struct.ImGuiIO, ptr %1727, i32 0, i32 95
  %1729 = load float, ptr %1728, align 4, !tbaa !251
  %1730 = fpext float %1729 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.553, double noundef %1730)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.554)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1731 = load ptr, ptr %3, align 8, !tbaa !5
  %1732 = getelementptr inbounds %struct.ImGuiContext, ptr %1731, i32 0, i32 37
  %1733 = load ptr, ptr %1732, align 8, !tbaa !252
  %1734 = icmp ne ptr %1733, null
  br i1 %1734, label %1735, label %1741

1735:                                             ; preds = %1714
  %1736 = load ptr, ptr %3, align 8, !tbaa !5
  %1737 = getelementptr inbounds %struct.ImGuiContext, ptr %1736, i32 0, i32 37
  %1738 = load ptr, ptr %1737, align 8, !tbaa !252
  %1739 = getelementptr inbounds %struct.ImGuiWindow, ptr %1738, i32 0, i32 1
  %1740 = load ptr, ptr %1739, align 8, !tbaa !121
  br label %1742

1741:                                             ; preds = %1714
  br label %1742

1742:                                             ; preds = %1741, %1735
  %1743 = phi ptr [ %1740, %1735 ], [ @.str.481, %1741 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.555, ptr noundef %1743)
  %1744 = load ptr, ptr %3, align 8, !tbaa !5
  %1745 = getelementptr inbounds %struct.ImGuiContext, ptr %1744, i32 0, i32 41
  %1746 = load float, ptr %1745, align 8, !tbaa !253
  %1747 = fpext float %1746 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.556, double noundef %1747)
  %1748 = load ptr, ptr %3, align 8, !tbaa !5
  %1749 = getelementptr inbounds %struct.ImGuiContext, ptr %1748, i32 0, i32 43
  %1750 = getelementptr inbounds %struct.ImVec2, ptr %1749, i32 0, i32 0
  %1751 = load float, ptr %1750, align 4, !tbaa !254
  %1752 = fpext float %1751 to double
  %1753 = load ptr, ptr %3, align 8, !tbaa !5
  %1754 = getelementptr inbounds %struct.ImGuiContext, ptr %1753, i32 0, i32 43
  %1755 = getelementptr inbounds %struct.ImVec2, ptr %1754, i32 0, i32 1
  %1756 = load float, ptr %1755, align 4, !tbaa !255
  %1757 = fpext float %1756 to double
  %1758 = load ptr, ptr %3, align 8, !tbaa !5
  %1759 = getelementptr inbounds %struct.ImGuiContext, ptr %1758, i32 0, i32 43
  %1760 = getelementptr inbounds %struct.ImVec2, ptr %1759, i32 0, i32 0
  %1761 = load float, ptr %1760, align 4, !tbaa !254
  %1762 = load ptr, ptr %3, align 8, !tbaa !5
  %1763 = getelementptr inbounds %struct.ImGuiContext, ptr %1762, i32 0, i32 43
  %1764 = getelementptr inbounds %struct.ImVec2, ptr %1763, i32 0, i32 1
  %1765 = load float, ptr %1764, align 4, !tbaa !255
  %1766 = fcmp ogt float %1761, %1765
  br i1 %1766, label %1767, label %1768

1767:                                             ; preds = %1742
  br label %1780

1768:                                             ; preds = %1742
  %1769 = load ptr, ptr %3, align 8, !tbaa !5
  %1770 = getelementptr inbounds %struct.ImGuiContext, ptr %1769, i32 0, i32 43
  %1771 = getelementptr inbounds %struct.ImVec2, ptr %1770, i32 0, i32 0
  %1772 = load float, ptr %1771, align 4, !tbaa !254
  %1773 = load ptr, ptr %3, align 8, !tbaa !5
  %1774 = getelementptr inbounds %struct.ImGuiContext, ptr %1773, i32 0, i32 43
  %1775 = getelementptr inbounds %struct.ImVec2, ptr %1774, i32 0, i32 1
  %1776 = load float, ptr %1775, align 4, !tbaa !255
  %1777 = fcmp olt float %1772, %1776
  %1778 = zext i1 %1777 to i64
  %1779 = select i1 %1777, ptr @.str.558, ptr @.str.559
  br label %1780

1780:                                             ; preds = %1768, %1767
  %1781 = phi ptr [ @.str.396, %1767 ], [ %1779, %1768 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.557, double noundef %1752, double noundef %1757, ptr noundef %1781)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.560)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #10
  %1782 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1783 = fmul float %1782, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %105, float noundef 0xB810000000000000, float noundef %1783)
  %1784 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef @.str.561, ptr noundef nonnull align 4 dereferenceable(8) %105, i32 noundef 136, i32 noundef 256)
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #10
  br i1 %1784, label %1785, label %1829

1785:                                             ; preds = %1780
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  store i32 512, ptr %106, align 4, !tbaa !226
  br label %1786

1786:                                             ; preds = %1825, %1785
  %1787 = load i32, ptr %106, align 4, !tbaa !226
  %1788 = icmp slt i32 %1787, 666
  br i1 %1788, label %1790, label %1789

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

1790:                                             ; preds = %1786
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #10
  %1791 = load ptr, ptr %3, align 8, !tbaa !5
  %1792 = load i32, ptr %106, align 4, !tbaa !226
  %1793 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %1791, i32 noundef %1792)
  store ptr %1793, ptr %107, align 8, !tbaa !5
  %1794 = load ptr, ptr %107, align 8, !tbaa !5
  %1795 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1794, i32 0, i32 0
  %1796 = load i32, ptr %1795, align 4, !tbaa !256
  %1797 = icmp eq i32 %1796, -1
  br i1 %1797, label %1798, label %1799

1798:                                             ; preds = %1790
  store i32 80, ptr %6, align 4
  br label %1822

1799:                                             ; preds = %1790
  %1800 = load i32, ptr %106, align 4, !tbaa !226
  %1801 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1800)
  %1802 = load ptr, ptr %107, align 8, !tbaa !5
  %1803 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1802, i32 0, i32 0
  %1804 = load i32, ptr %1803, align 4, !tbaa !256
  %1805 = load ptr, ptr %107, align 8, !tbaa !5
  %1806 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1805, i32 0, i32 3
  %1807 = load i8, ptr %1806, align 1, !tbaa !258, !range !13, !noundef !14
  %1808 = trunc i8 %1807 to i1
  br i1 %1808, label %1809, label %1810

1809:                                             ; preds = %1799
  br label %1817

1810:                                             ; preds = %1799
  %1811 = load ptr, ptr %107, align 8, !tbaa !5
  %1812 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1811, i32 0, i32 2
  %1813 = load i8, ptr %1812, align 4, !tbaa !259, !range !13, !noundef !14
  %1814 = trunc i8 %1813 to i1
  %1815 = zext i1 %1814 to i64
  %1816 = select i1 %1814, ptr @.str.564, ptr @.str.16
  br label %1817

1817:                                             ; preds = %1810, %1809
  %1818 = phi ptr [ @.str.563, %1809 ], [ %1816, %1810 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.562, ptr noundef %1801, i32 noundef %1804, ptr noundef %1818)
  %1819 = load ptr, ptr %107, align 8, !tbaa !5
  %1820 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1819, i32 0, i32 0
  %1821 = load i32, ptr %1820, align 4, !tbaa !256
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1821)
  store i32 0, ptr %6, align 4
  br label %1822

1822:                                             ; preds = %1817, %1798
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #10
  %1823 = load i32, ptr %6, align 4
  switch i32 %1823, label %2495 [
    i32 0, label %1824
    i32 80, label %1825
  ]

1824:                                             ; preds = %1822
  br label %1825

1825:                                             ; preds = %1824, %1822
  %1826 = load i32, ptr %106, align 4, !tbaa !226
  %1827 = add nsw i32 %1826, 1
  store i32 %1827, ptr %106, align 4, !tbaa !226
  br label %1786, !llvm.loop !260

1828:                                             ; preds = %1789
  br label %1829

1829:                                             ; preds = %1828, %1780
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.565)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #10
  %1830 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1831 = fmul float %1830, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %108, float noundef 0xB810000000000000, float noundef %1831)
  %1832 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef @.str.566, ptr noundef nonnull align 4 dereferenceable(8) %108, i32 noundef 136, i32 noundef 256)
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #10
  br i1 %1832, label %1833, label %1881

1833:                                             ; preds = %1829
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #10
  store i32 512, ptr %109, align 4, !tbaa !226
  br label %1834

1834:                                             ; preds = %1877, %1833
  %1835 = load i32, ptr %109, align 4, !tbaa !226
  %1836 = icmp slt i32 %1835, 666
  br i1 %1836, label %1838, label %1837

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

1838:                                             ; preds = %1834
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #10
  %1839 = load ptr, ptr %3, align 8, !tbaa !5
  %1840 = getelementptr inbounds %struct.ImGuiContext, ptr %1839, i32 0, i32 71
  store ptr %1840, ptr %110, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %111) #10
  %1841 = load ptr, ptr %110, align 8, !tbaa !5
  %1842 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1841, i32 0, i32 0
  %1843 = load i32, ptr %109, align 4, !tbaa !226
  %1844 = sub nsw i32 %1843, 512
  %1845 = sext i32 %1844 to i64
  %1846 = getelementptr inbounds [154 x i16], ptr %1842, i64 0, i64 %1845
  %1847 = load i16, ptr %1846, align 2, !tbaa !238
  store i16 %1847, ptr %111, align 2, !tbaa !238
  br label %1848

1848:                                             ; preds = %1853, %1838
  %1849 = load i16, ptr %111, align 2, !tbaa !238
  %1850 = sext i16 %1849 to i32
  %1851 = icmp ne i32 %1850, -1
  br i1 %1851, label %1853, label %1852

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

1853:                                             ; preds = %1848
  call void @llvm.lifetime.start.p0(i64 64, ptr %112) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #10
  %1854 = load ptr, ptr %110, align 8, !tbaa !5
  %1855 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1854, i32 0, i32 1
  %1856 = load i16, ptr %111, align 2, !tbaa !238
  %1857 = sext i16 %1856 to i32
  %1858 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1855, i32 noundef %1857)
  store ptr %1858, ptr %113, align 8, !tbaa !5
  %1859 = load i32, ptr %109, align 4, !tbaa !226
  %1860 = load ptr, ptr %113, align 8, !tbaa !5
  %1861 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1860, i32 0, i32 1
  %1862 = load i16, ptr %1861, align 2, !tbaa !261
  %1863 = zext i16 %1862 to i32
  %1864 = or i32 %1859, %1863
  %1865 = getelementptr inbounds [64 x i8], ptr %112, i64 0, i64 0
  call void @_ZN5ImGui15GetKeyChordNameEiPci(i32 noundef %1864, ptr noundef %1865, i32 noundef 64)
  %1866 = getelementptr inbounds [64 x i8], ptr %112, i64 0, i64 0
  %1867 = load ptr, ptr %113, align 8, !tbaa !5
  %1868 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1867, i32 0, i32 3
  %1869 = load i32, ptr %1868, align 4, !tbaa !263
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.567, ptr noundef %1866, i32 noundef %1869)
  %1870 = load ptr, ptr %113, align 8, !tbaa !5
  %1871 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1870, i32 0, i32 3
  %1872 = load i32, ptr %1871, align 4, !tbaa !263
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1872)
  %1873 = load ptr, ptr %113, align 8, !tbaa !5
  %1874 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1873, i32 0, i32 0
  %1875 = load i16, ptr %1874, align 4, !tbaa !264
  store i16 %1875, ptr %111, align 2, !tbaa !238
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %112) #10
  br label %1848, !llvm.loop !265

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

1877:                                             ; preds = %1876
  %1878 = load i32, ptr %109, align 4, !tbaa !226
  %1879 = add nsw i32 %1878, 1
  store i32 %1879, ptr %109, align 4, !tbaa !226
  br label %1834, !llvm.loop !266

1880:                                             ; preds = %1837
  br label %1881

1881:                                             ; preds = %1880, %1829
  call void @_ZN5ImGui8EndChildEv()
  %1882 = load ptr, ptr %3, align 8, !tbaa !5
  %1883 = getelementptr inbounds %struct.ImGuiContext, ptr %1882, i32 0, i32 73
  %1884 = load i8, ptr %1883, align 4, !tbaa !267, !range !13, !noundef !14
  %1885 = trunc i8 %1884 to i1
  %1886 = zext i1 %1885 to i32
  %1887 = load ptr, ptr %3, align 8, !tbaa !5
  %1888 = getelementptr inbounds %struct.ImGuiContext, ptr %1887, i32 0, i32 72
  %1889 = load i32, ptr %1888, align 8, !tbaa !268
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.568, i32 noundef %1886, i32 noundef %1889)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1890

1890:                                             ; preds = %1881, %1496
  %1891 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.569)
  br i1 %1891, label %1892, label %2151

1892:                                             ; preds = %1890
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.570)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1893 = load ptr, ptr %3, align 8, !tbaa !5
  %1894 = getelementptr inbounds %struct.ImGuiContext, ptr %1893, i32 0, i32 34
  %1895 = load ptr, ptr %1894, align 8, !tbaa !269
  %1896 = icmp ne ptr %1895, null
  br i1 %1896, label %1897, label %1903

1897:                                             ; preds = %1892
  %1898 = load ptr, ptr %3, align 8, !tbaa !5
  %1899 = getelementptr inbounds %struct.ImGuiContext, ptr %1898, i32 0, i32 34
  %1900 = load ptr, ptr %1899, align 8, !tbaa !269
  %1901 = getelementptr inbounds %struct.ImGuiWindow, ptr %1900, i32 0, i32 1
  %1902 = load ptr, ptr %1901, align 8, !tbaa !121
  br label %1904

1903:                                             ; preds = %1892
  br label %1904

1904:                                             ; preds = %1903, %1897
  %1905 = phi ptr [ %1902, %1897 ], [ @.str.481, %1903 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.571, ptr noundef %1905)
  %1906 = load ptr, ptr %3, align 8, !tbaa !5
  %1907 = getelementptr inbounds %struct.ImGuiContext, ptr %1906, i32 0, i32 34
  %1908 = load ptr, ptr %1907, align 8, !tbaa !269
  %1909 = icmp ne ptr %1908, null
  br i1 %1909, label %1910, label %1918

1910:                                             ; preds = %1904
  %1911 = load ptr, ptr %3, align 8, !tbaa !5
  %1912 = getelementptr inbounds %struct.ImGuiContext, ptr %1911, i32 0, i32 34
  %1913 = load ptr, ptr %1912, align 8, !tbaa !269
  %1914 = getelementptr inbounds %struct.ImGuiWindow, ptr %1913, i32 0, i32 95
  %1915 = load ptr, ptr %1914, align 8, !tbaa !270
  %1916 = getelementptr inbounds %struct.ImGuiWindow, ptr %1915, i32 0, i32 1
  %1917 = load ptr, ptr %1916, align 8, !tbaa !121
  br label %1919

1918:                                             ; preds = %1904
  br label %1919

1919:                                             ; preds = %1918, %1910
  %1920 = phi ptr [ %1917, %1910 ], [ @.str.481, %1918 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.572, ptr noundef %1920)
  %1921 = load ptr, ptr %3, align 8, !tbaa !5
  %1922 = getelementptr inbounds %struct.ImGuiContext, ptr %1921, i32 0, i32 35
  %1923 = load ptr, ptr %1922, align 8, !tbaa !271
  %1924 = icmp ne ptr %1923, null
  br i1 %1924, label %1925, label %1931

1925:                                             ; preds = %1919
  %1926 = load ptr, ptr %3, align 8, !tbaa !5
  %1927 = getelementptr inbounds %struct.ImGuiContext, ptr %1926, i32 0, i32 35
  %1928 = load ptr, ptr %1927, align 8, !tbaa !271
  %1929 = getelementptr inbounds %struct.ImGuiWindow, ptr %1928, i32 0, i32 1
  %1930 = load ptr, ptr %1929, align 8, !tbaa !121
  br label %1932

1931:                                             ; preds = %1919
  br label %1932

1932:                                             ; preds = %1931, %1925
  %1933 = phi ptr [ %1930, %1925 ], [ @.str.481, %1931 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.573, ptr noundef %1933)
  %1934 = load ptr, ptr %3, align 8, !tbaa !5
  %1935 = getelementptr inbounds %struct.ImGuiContext, ptr %1934, i32 0, i32 259
  %1936 = load ptr, ptr %1935, align 8, !tbaa !272
  %1937 = icmp ne ptr %1936, null
  br i1 %1937, label %1938, label %1944

1938:                                             ; preds = %1932
  %1939 = load ptr, ptr %3, align 8, !tbaa !5
  %1940 = getelementptr inbounds %struct.ImGuiContext, ptr %1939, i32 0, i32 259
  %1941 = load ptr, ptr %1940, align 8, !tbaa !272
  %1942 = getelementptr inbounds %struct.ImGuiDockNode, ptr %1941, i32 0, i32 0
  %1943 = load i32, ptr %1942, align 8, !tbaa !273
  br label %1945

1944:                                             ; preds = %1932
  br label %1945

1945:                                             ; preds = %1944, %1938
  %1946 = phi i32 [ %1943, %1938 ], [ 0, %1944 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.574, i32 noundef %1946)
  %1947 = load ptr, ptr %3, align 8, !tbaa !5
  %1948 = getelementptr inbounds %struct.ImGuiContext, ptr %1947, i32 0, i32 36
  %1949 = load ptr, ptr %1948, align 8, !tbaa !277
  %1950 = icmp ne ptr %1949, null
  br i1 %1950, label %1951, label %1957

1951:                                             ; preds = %1945
  %1952 = load ptr, ptr %3, align 8, !tbaa !5
  %1953 = getelementptr inbounds %struct.ImGuiContext, ptr %1952, i32 0, i32 36
  %1954 = load ptr, ptr %1953, align 8, !tbaa !277
  %1955 = getelementptr inbounds %struct.ImGuiWindow, ptr %1954, i32 0, i32 1
  %1956 = load ptr, ptr %1955, align 8, !tbaa !121
  br label %1958

1957:                                             ; preds = %1945
  br label %1958

1958:                                             ; preds = %1957, %1951
  %1959 = phi ptr [ %1956, %1951 ], [ @.str.481, %1957 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.575, ptr noundef %1959)
  %1960 = load ptr, ptr %3, align 8, !tbaa !5
  %1961 = getelementptr inbounds %struct.ImGuiContext, ptr %1960, i32 0, i32 95
  %1962 = load ptr, ptr %1961, align 8, !tbaa !172
  %1963 = getelementptr inbounds %struct.ImGuiViewport, ptr %1962, i32 0, i32 0
  %1964 = load i32, ptr %1963, align 8, !tbaa !159
  %1965 = load ptr, ptr %3, align 8, !tbaa !5
  %1966 = getelementptr inbounds %struct.ImGuiContext, ptr %1965, i32 0, i32 2
  %1967 = getelementptr inbounds %struct.ImGuiIO, ptr %1966, i32 0, i32 72
  %1968 = load i32, ptr %1967, align 4, !tbaa !173
  %1969 = load ptr, ptr %3, align 8, !tbaa !5
  %1970 = getelementptr inbounds %struct.ImGuiContext, ptr %1969, i32 0, i32 96
  %1971 = load ptr, ptr %1970, align 8, !tbaa !174
  %1972 = icmp ne ptr %1971, null
  br i1 %1972, label %1973, label %1979

1973:                                             ; preds = %1958
  %1974 = load ptr, ptr %3, align 8, !tbaa !5
  %1975 = getelementptr inbounds %struct.ImGuiContext, ptr %1974, i32 0, i32 96
  %1976 = load ptr, ptr %1975, align 8, !tbaa !174
  %1977 = getelementptr inbounds %struct.ImGuiViewport, ptr %1976, i32 0, i32 0
  %1978 = load i32, ptr %1977, align 8, !tbaa !159
  br label %1980

1979:                                             ; preds = %1958
  br label %1980

1980:                                             ; preds = %1979, %1973
  %1981 = phi i32 [ %1978, %1973 ], [ 0, %1979 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.474, i32 noundef %1964, i32 noundef %1968, i32 noundef %1981)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.576)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1982 = load ptr, ptr %3, align 8, !tbaa !5
  %1983 = getelementptr inbounds %struct.ImGuiContext, ptr %1982, i32 0, i32 51
  %1984 = load i32, ptr %1983, align 4, !tbaa !278
  %1985 = load ptr, ptr %3, align 8, !tbaa !5
  %1986 = getelementptr inbounds %struct.ImGuiContext, ptr %1985, i32 0, i32 64
  %1987 = load i32, ptr %1986, align 8, !tbaa !279
  %1988 = load ptr, ptr %3, align 8, !tbaa !5
  %1989 = getelementptr inbounds %struct.ImGuiContext, ptr %1988, i32 0, i32 53
  %1990 = load float, ptr %1989, align 4, !tbaa !280
  %1991 = fpext float %1990 to double
  %1992 = load ptr, ptr %3, align 8, !tbaa !5
  %1993 = getelementptr inbounds %struct.ImGuiContext, ptr %1992, i32 0, i32 55
  %1994 = load i8, ptr %1993, align 1, !tbaa !281, !range !13, !noundef !14
  %1995 = trunc i8 %1994 to i1
  %1996 = zext i1 %1995 to i32
  %1997 = load ptr, ptr %3, align 8, !tbaa !5
  %1998 = getelementptr inbounds %struct.ImGuiContext, ptr %1997, i32 0, i32 62
  %1999 = load i32, ptr %1998, align 8, !tbaa !282
  %2000 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1999)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.577, i32 noundef %1984, i32 noundef %1987, double noundef %1991, i32 noundef %1996, ptr noundef %2000)
  %2001 = load ptr, ptr %3, align 8, !tbaa !5
  %2002 = getelementptr inbounds %struct.ImGuiContext, ptr %2001, i32 0, i32 51
  %2003 = load i32, ptr %2002, align 4, !tbaa !278
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %2003)
  %2004 = load ptr, ptr %3, align 8, !tbaa !5
  %2005 = getelementptr inbounds %struct.ImGuiContext, ptr %2004, i32 0, i32 61
  %2006 = load ptr, ptr %2005, align 8, !tbaa !283
  %2007 = icmp ne ptr %2006, null
  br i1 %2007, label %2008, label %2014

2008:                                             ; preds = %1980
  %2009 = load ptr, ptr %3, align 8, !tbaa !5
  %2010 = getelementptr inbounds %struct.ImGuiContext, ptr %2009, i32 0, i32 61
  %2011 = load ptr, ptr %2010, align 8, !tbaa !283
  %2012 = getelementptr inbounds %struct.ImGuiWindow, ptr %2011, i32 0, i32 1
  %2013 = load ptr, ptr %2012, align 8, !tbaa !121
  br label %2015

2014:                                             ; preds = %1980
  br label %2015

2015:                                             ; preds = %2014, %2008
  %2016 = phi ptr [ %2013, %2008 ], [ @.str.481, %2014 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.578, ptr noundef %2016)
  %2017 = load ptr, ptr %3, align 8, !tbaa !5
  %2018 = getelementptr inbounds %struct.ImGuiContext, ptr %2017, i32 0, i32 73
  %2019 = load i8, ptr %2018, align 4, !tbaa !267, !range !13, !noundef !14
  %2020 = trunc i8 %2019 to i1
  %2021 = zext i1 %2020 to i32
  %2022 = load ptr, ptr %3, align 8, !tbaa !5
  %2023 = getelementptr inbounds %struct.ImGuiContext, ptr %2022, i32 0, i32 72
  %2024 = load i32, ptr %2023, align 8, !tbaa !268
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.579, i32 noundef %2021, i32 noundef %2024)
  %2025 = load ptr, ptr %3, align 8, !tbaa !5
  %2026 = getelementptr inbounds %struct.ImGuiContext, ptr %2025, i32 0, i32 46
  %2027 = load i32, ptr %2026, align 4, !tbaa !284
  %2028 = load ptr, ptr %3, align 8, !tbaa !5
  %2029 = getelementptr inbounds %struct.ImGuiContext, ptr %2028, i32 0, i32 49
  %2030 = load float, ptr %2029, align 4, !tbaa !285
  %2031 = fpext float %2030 to double
  %2032 = load ptr, ptr %3, align 8, !tbaa !5
  %2033 = getelementptr inbounds %struct.ImGuiContext, ptr %2032, i32 0, i32 47
  %2034 = load i8, ptr %2033, align 8, !tbaa !286, !range !13, !noundef !14
  %2035 = trunc i8 %2034 to i1
  %2036 = zext i1 %2035 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.580, i32 noundef %2027, double noundef %2031, i32 noundef %2036)
  %2037 = load ptr, ptr %3, align 8, !tbaa !5
  %2038 = getelementptr inbounds %struct.ImGuiContext, ptr %2037, i32 0, i32 184
  %2039 = load i32, ptr %2038, align 8, !tbaa !287
  %2040 = load ptr, ptr %3, align 8, !tbaa !5
  %2041 = getelementptr inbounds %struct.ImGuiContext, ptr %2040, i32 0, i32 186
  %2042 = load float, ptr %2041, align 8, !tbaa !288
  %2043 = fpext float %2042 to double
  %2044 = load ptr, ptr %3, align 8, !tbaa !5
  %2045 = getelementptr inbounds %struct.ImGuiContext, ptr %2044, i32 0, i32 187
  %2046 = load float, ptr %2045, align 4, !tbaa !289
  %2047 = fpext float %2046 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.581, i32 noundef %2039, double noundef %2043, double noundef %2047)
  %2048 = load ptr, ptr %3, align 8, !tbaa !5
  %2049 = getelementptr inbounds %struct.ImGuiContext, ptr %2048, i32 0, i32 155
  %2050 = load i8, ptr %2049, align 8, !tbaa !290, !range !13, !noundef !14
  %2051 = trunc i8 %2050 to i1
  %2052 = zext i1 %2051 to i32
  %2053 = load ptr, ptr %3, align 8, !tbaa !5
  %2054 = getelementptr inbounds %struct.ImGuiContext, ptr %2053, i32 0, i32 161
  %2055 = getelementptr inbounds %struct.ImGuiPayload, ptr %2054, i32 0, i32 2
  %2056 = load i32, ptr %2055, align 4, !tbaa !291
  %2057 = load ptr, ptr %3, align 8, !tbaa !5
  %2058 = getelementptr inbounds %struct.ImGuiContext, ptr %2057, i32 0, i32 161
  %2059 = getelementptr inbounds %struct.ImGuiPayload, ptr %2058, i32 0, i32 5
  %2060 = getelementptr inbounds [33 x i8], ptr %2059, i64 0, i64 0
  %2061 = load ptr, ptr %3, align 8, !tbaa !5
  %2062 = getelementptr inbounds %struct.ImGuiContext, ptr %2061, i32 0, i32 161
  %2063 = getelementptr inbounds %struct.ImGuiPayload, ptr %2062, i32 0, i32 1
  %2064 = load i32, ptr %2063, align 8, !tbaa !292
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.582, i32 noundef %2052, i32 noundef %2056, ptr noundef %2060, i32 noundef %2064)
  %2065 = load ptr, ptr %3, align 8, !tbaa !5
  %2066 = getelementptr inbounds %struct.ImGuiContext, ptr %2065, i32 0, i32 161
  %2067 = getelementptr inbounds %struct.ImGuiPayload, ptr %2066, i32 0, i32 2
  %2068 = load i32, ptr %2067, align 4, !tbaa !291
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %2068)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.583)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %2069 = load ptr, ptr %3, align 8, !tbaa !5
  %2070 = getelementptr inbounds %struct.ImGuiContext, ptr %2069, i32 0, i32 102
  %2071 = load ptr, ptr %2070, align 8, !tbaa !120
  %2072 = icmp ne ptr %2071, null
  br i1 %2072, label %2073, label %2079

2073:                                             ; preds = %2015
  %2074 = load ptr, ptr %3, align 8, !tbaa !5
  %2075 = getelementptr inbounds %struct.ImGuiContext, ptr %2074, i32 0, i32 102
  %2076 = load ptr, ptr %2075, align 8, !tbaa !120
  %2077 = getelementptr inbounds %struct.ImGuiWindow, ptr %2076, i32 0, i32 1
  %2078 = load ptr, ptr %2077, align 8, !tbaa !121
  br label %2080

2079:                                             ; preds = %2015
  br label %2080

2080:                                             ; preds = %2079, %2073
  %2081 = phi ptr [ %2078, %2073 ], [ @.str.481, %2079 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.584, ptr noundef %2081)
  %2082 = load ptr, ptr %3, align 8, !tbaa !5
  %2083 = getelementptr inbounds %struct.ImGuiContext, ptr %2082, i32 0, i32 103
  %2084 = load i32, ptr %2083, align 8, !tbaa !293
  %2085 = load ptr, ptr %3, align 8, !tbaa !5
  %2086 = getelementptr inbounds %struct.ImGuiContext, ptr %2085, i32 0, i32 115
  %2087 = load i32, ptr %2086, align 8, !tbaa !294
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.585, i32 noundef %2084, i32 noundef %2087)
  %2088 = load ptr, ptr %3, align 8, !tbaa !5
  %2089 = getelementptr inbounds %struct.ImGuiContext, ptr %2088, i32 0, i32 103
  %2090 = load i32, ptr %2089, align 8, !tbaa !293
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %2090)
  %2091 = load ptr, ptr %3, align 8, !tbaa !5
  %2092 = getelementptr inbounds %struct.ImGuiContext, ptr %2091, i32 0, i32 114
  %2093 = load i32, ptr %2092, align 4, !tbaa !295
  %2094 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %2093)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.586, ptr noundef %2094)
  %2095 = load ptr, ptr %3, align 8, !tbaa !5
  %2096 = getelementptr inbounds %struct.ImGuiContext, ptr %2095, i32 0, i32 116
  %2097 = load i64, ptr %2096, align 8, !tbaa !296
  %2098 = load ptr, ptr %3, align 8, !tbaa !5
  %2099 = getelementptr inbounds %struct.ImGuiContext, ptr %2098, i32 0, i32 116
  %2100 = load i64, ptr %2099, align 8, !tbaa !296
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.587, i64 noundef %2097, i64 noundef %2100)
  %2101 = load ptr, ptr %3, align 8, !tbaa !5
  %2102 = getelementptr inbounds %struct.ImGuiContext, ptr %2101, i32 0, i32 2
  %2103 = getelementptr inbounds %struct.ImGuiIO, ptr %2102, i32 0, i32 54
  %2104 = load i8, ptr %2103, align 1, !tbaa !297, !range !13, !noundef !14
  %2105 = trunc i8 %2104 to i1
  %2106 = zext i1 %2105 to i32
  %2107 = load ptr, ptr %3, align 8, !tbaa !5
  %2108 = getelementptr inbounds %struct.ImGuiContext, ptr %2107, i32 0, i32 2
  %2109 = getelementptr inbounds %struct.ImGuiIO, ptr %2108, i32 0, i32 55
  %2110 = load i8, ptr %2109, align 8, !tbaa !298, !range !13, !noundef !14
  %2111 = trunc i8 %2110 to i1
  %2112 = zext i1 %2111 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.588, i32 noundef %2106, i32 noundef %2112)
  %2113 = load ptr, ptr %3, align 8, !tbaa !5
  %2114 = getelementptr inbounds %struct.ImGuiContext, ptr %2113, i32 0, i32 105
  %2115 = load i32, ptr %2114, align 8, !tbaa !299
  %2116 = load ptr, ptr %3, align 8, !tbaa !5
  %2117 = getelementptr inbounds %struct.ImGuiContext, ptr %2116, i32 0, i32 106
  %2118 = load i32, ptr %2117, align 4, !tbaa !300
  %2119 = load ptr, ptr %3, align 8, !tbaa !5
  %2120 = getelementptr inbounds %struct.ImGuiContext, ptr %2119, i32 0, i32 107
  %2121 = load i32, ptr %2120, align 8, !tbaa !301
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.589, i32 noundef %2115, i32 noundef %2118, i32 noundef %2121)
  %2122 = load ptr, ptr %3, align 8, !tbaa !5
  %2123 = getelementptr inbounds %struct.ImGuiContext, ptr %2122, i32 0, i32 108
  %2124 = load i32, ptr %2123, align 4, !tbaa !302
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.590, i32 noundef %2124)
  %2125 = load ptr, ptr %3, align 8, !tbaa !5
  %2126 = getelementptr inbounds %struct.ImGuiContext, ptr %2125, i32 0, i32 119
  %2127 = load i8, ptr %2126, align 2, !tbaa !303, !range !13, !noundef !14
  %2128 = trunc i8 %2127 to i1
  %2129 = zext i1 %2128 to i32
  %2130 = load ptr, ptr %3, align 8, !tbaa !5
  %2131 = getelementptr inbounds %struct.ImGuiContext, ptr %2130, i32 0, i32 120
  %2132 = load i8, ptr %2131, align 1, !tbaa !304, !range !13, !noundef !14
  %2133 = trunc i8 %2132 to i1
  %2134 = zext i1 %2133 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.591, i32 noundef %2129, i32 noundef %2134)
  %2135 = load ptr, ptr %3, align 8, !tbaa !5
  %2136 = getelementptr inbounds %struct.ImGuiContext, ptr %2135, i32 0, i32 104
  %2137 = load i32, ptr %2136, align 4, !tbaa !305
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.592, i32 noundef %2137)
  %2138 = load ptr, ptr %3, align 8, !tbaa !5
  %2139 = getelementptr inbounds %struct.ImGuiContext, ptr %2138, i32 0, i32 146
  %2140 = load ptr, ptr %2139, align 8, !tbaa !306
  %2141 = icmp ne ptr %2140, null
  br i1 %2141, label %2142, label %2148

2142:                                             ; preds = %2080
  %2143 = load ptr, ptr %3, align 8, !tbaa !5
  %2144 = getelementptr inbounds %struct.ImGuiContext, ptr %2143, i32 0, i32 146
  %2145 = load ptr, ptr %2144, align 8, !tbaa !306
  %2146 = getelementptr inbounds %struct.ImGuiWindow, ptr %2145, i32 0, i32 1
  %2147 = load ptr, ptr %2146, align 8, !tbaa !121
  br label %2149

2148:                                             ; preds = %2080
  br label %2149

2149:                                             ; preds = %2148, %2142
  %2150 = phi ptr [ %2147, %2142 ], [ @.str.481, %2148 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.593, ptr noundef %2150)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %2151

2151:                                             ; preds = %2149, %1890
  %2152 = load ptr, ptr %5, align 8, !tbaa !5
  %2153 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2152, i32 0, i32 2
  %2154 = load i8, ptr %2153, align 2, !tbaa !119, !range !13, !noundef !14
  %2155 = trunc i8 %2154 to i1
  br i1 %2155, label %2161, label %2156

2156:                                             ; preds = %2151
  %2157 = load ptr, ptr %5, align 8, !tbaa !5
  %2158 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2157, i32 0, i32 3
  %2159 = load i8, ptr %2158, align 1, !tbaa !307, !range !13, !noundef !14
  %2160 = trunc i8 %2159 to i1
  br i1 %2160, label %2161, label %2240

2161:                                             ; preds = %2156, %2151
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #10
  %2162 = load ptr, ptr %3, align 8, !tbaa !5
  %2163 = getelementptr inbounds %struct.ImGuiContext, ptr %2162, i32 0, i32 26
  store ptr %2163, ptr %114, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #10
  %2164 = load ptr, ptr %114, align 8, !tbaa !5
  %2165 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %2164)
  store ptr %2165, ptr %115, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #10
  %2166 = load ptr, ptr %114, align 8, !tbaa !5
  %2167 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %2166)
  store ptr %2167, ptr %116, align 8, !tbaa !5
  br label %2168

2168:                                             ; preds = %2236, %2161
  %2169 = load ptr, ptr %115, align 8, !tbaa !5
  %2170 = load ptr, ptr %116, align 8, !tbaa !5
  %2171 = icmp ne ptr %2169, %2170
  br i1 %2171, label %2173, label %2172

2172:                                             ; preds = %2168
  store i32 86, ptr %6, align 4
  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
  br label %2239

2173:                                             ; preds = %2168
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #10
  %2174 = load ptr, ptr %115, align 8, !tbaa !5
  %2175 = load ptr, ptr %2174, align 8, !tbaa !5
  store ptr %2175, ptr %117, align 8, !tbaa !5
  %2176 = load ptr, ptr %117, align 8, !tbaa !5
  %2177 = getelementptr inbounds %struct.ImGuiWindow, ptr %2176, i32 0, i32 40
  %2178 = load i8, ptr %2177, align 4, !tbaa !308, !range !13, !noundef !14
  %2179 = trunc i8 %2178 to i1
  br i1 %2179, label %2181, label %2180

2180:                                             ; preds = %2173
  store i32 87, ptr %6, align 4
  br label %2233

2181:                                             ; preds = %2173
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #10
  %2182 = load ptr, ptr %117, align 8, !tbaa !5
  %2183 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %2182)
  store ptr %2183, ptr %118, align 8, !tbaa !5
  %2184 = load ptr, ptr %5, align 8, !tbaa !5
  %2185 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2184, i32 0, i32 2
  %2186 = load i8, ptr %2185, align 2, !tbaa !119, !range !13, !noundef !14
  %2187 = trunc i8 %2186 to i1
  br i1 %2187, label %2188, label %2201

2188:                                             ; preds = %2181
  call void @llvm.lifetime.start.p0(i64 16, ptr %119) #10
  %2189 = load ptr, ptr %117, align 8, !tbaa !5
  %2190 = load ptr, ptr %5, align 8, !tbaa !5
  %2191 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2190, i32 0, i32 9
  %2192 = load i32, ptr %2191, align 4, !tbaa !114
  %2193 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %2189, i32 noundef %2192)
  %2194 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %119, i32 0, i32 0
  %2195 = extractvalue { <2 x float>, <2 x float> } %2193, 0
  store <2 x float> %2195, ptr %2194, align 4
  %2196 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %119, i32 0, i32 1
  %2197 = extractvalue { <2 x float>, <2 x float> } %2193, 1
  store <2 x float> %2197, ptr %2196, align 4
  %2198 = load ptr, ptr %118, align 8, !tbaa !5
  %2199 = getelementptr inbounds %struct.ImRect, ptr %119, i32 0, i32 0
  %2200 = getelementptr inbounds %struct.ImRect, ptr %119, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %2198, ptr noundef nonnull align 4 dereferenceable(8) %2199, ptr noundef nonnull align 4 dereferenceable(8) %2200, 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 %119) #10
  br label %2201

2201:                                             ; preds = %2188, %2181
  %2202 = load ptr, ptr %5, align 8, !tbaa !5
  %2203 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2202, i32 0, i32 3
  %2204 = load i8, ptr %2203, align 1, !tbaa !307, !range !13, !noundef !14
  %2205 = trunc i8 %2204 to i1
  br i1 %2205, label %2206, label %2232

2206:                                             ; preds = %2201
  %2207 = load ptr, ptr %117, align 8, !tbaa !5
  %2208 = getelementptr inbounds %struct.ImGuiWindow, ptr %2207, i32 0, i32 3
  %2209 = load i32, ptr %2208, align 4, !tbaa !187
  %2210 = and i32 %2209, 16777216
  %2211 = icmp ne i32 %2210, 0
  br i1 %2211, label %2232, label %2212

2212:                                             ; preds = %2206
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #10
  %2213 = getelementptr inbounds [32 x i8], ptr %120, i64 0, i64 0
  %2214 = load ptr, ptr %117, align 8, !tbaa !5
  %2215 = getelementptr inbounds %struct.ImGuiWindow, ptr %2214, i32 0, i32 55
  %2216 = load i16, ptr %2215, align 2, !tbaa !309
  %2217 = sext i16 %2216 to i32
  %2218 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2213, i64 noundef 32, ptr noundef @.str.405, i32 noundef %2217)
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #10
  %2219 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  store float %2219, ptr %121, align 4, !tbaa !244
  %2220 = load ptr, ptr %118, align 8, !tbaa !5
  %2221 = load ptr, ptr %117, align 8, !tbaa !5
  %2222 = getelementptr inbounds %struct.ImGuiWindow, ptr %2221, i32 0, i32 11
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #10
  %2223 = load ptr, ptr %117, align 8, !tbaa !5
  %2224 = getelementptr inbounds %struct.ImGuiWindow, ptr %2223, i32 0, i32 11
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #10
  %2225 = load float, ptr %121, align 4, !tbaa !244
  %2226 = load float, ptr %121, align 4, !tbaa !244
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %123, float noundef %2225, float noundef %2226)
  %2227 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2224, ptr noundef nonnull align 4 dereferenceable(8) %123)
  store <2 x float> %2227, ptr %122, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %2220, ptr noundef nonnull align 4 dereferenceable(8) %2222, ptr noundef nonnull align 4 dereferenceable(8) %122, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  %2228 = load ptr, ptr %118, align 8, !tbaa !5
  %2229 = load ptr, ptr %117, align 8, !tbaa !5
  %2230 = getelementptr inbounds %struct.ImGuiWindow, ptr %2229, i32 0, i32 11
  %2231 = getelementptr inbounds [32 x i8], ptr %120, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %2228, ptr noundef nonnull align 4 dereferenceable(8) %2230, i32 noundef -1, ptr noundef %2231, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #10
  br label %2232

2232:                                             ; preds = %2212, %2206, %2201
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #10
  store i32 0, ptr %6, align 4
  br label %2233

2233:                                             ; preds = %2232, %2180
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #10
  %2234 = load i32, ptr %6, align 4
  switch i32 %2234, label %2495 [
    i32 0, label %2235
    i32 87, label %2236
  ]

2235:                                             ; preds = %2233
  br label %2236

2236:                                             ; preds = %2235, %2233
  %2237 = load ptr, ptr %115, align 8, !tbaa !5
  %2238 = getelementptr inbounds ptr, ptr %2237, i32 1
  store ptr %2238, ptr %115, align 8, !tbaa !5
  br label %2168

2239:                                             ; preds = %2172
  br label %2240

2240:                                             ; preds = %2239, %2156
  %2241 = load ptr, ptr %5, align 8, !tbaa !5
  %2242 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2241, i32 0, i32 4
  %2243 = load i8, ptr %2242, align 4, !tbaa !129, !range !13, !noundef !14
  %2244 = trunc i8 %2243 to i1
  br i1 %2244, label %2245, label %2344

2245:                                             ; preds = %2240
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #10
  store i32 0, ptr %124, align 4, !tbaa !122
  br label %2246

2246:                                             ; preds = %2340, %2245
  %2247 = load i32, ptr %124, align 4, !tbaa !122
  %2248 = load ptr, ptr %3, align 8, !tbaa !5
  %2249 = getelementptr inbounds %struct.ImGuiContext, ptr %2248, i32 0, i32 177
  %2250 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %2249)
  %2251 = icmp slt i32 %2247, %2250
  br i1 %2251, label %2253, label %2252

2252:                                             ; preds = %2246
  store i32 88, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #10
  br label %2343

2253:                                             ; preds = %2246
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #10
  %2254 = load ptr, ptr %3, align 8, !tbaa !5
  %2255 = getelementptr inbounds %struct.ImGuiContext, ptr %2254, i32 0, i32 177
  %2256 = load i32, ptr %124, align 4, !tbaa !122
  %2257 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %2255, i32 noundef %2256)
  store ptr %2257, ptr %125, align 8, !tbaa !5
  %2258 = load ptr, ptr %125, align 8, !tbaa !5
  %2259 = icmp eq ptr %2258, null
  br i1 %2259, label %2269, label %2260

2260:                                             ; preds = %2253
  %2261 = load ptr, ptr %125, align 8, !tbaa !5
  %2262 = getelementptr inbounds %struct.ImGuiTable, ptr %2261, i32 0, i32 12
  %2263 = load i32, ptr %2262, align 8, !tbaa !130
  %2264 = load ptr, ptr %3, align 8, !tbaa !5
  %2265 = getelementptr inbounds %struct.ImGuiContext, ptr %2264, i32 0, i32 12
  %2266 = load i32, ptr %2265, align 8, !tbaa !140
  %2267 = sub nsw i32 %2266, 1
  %2268 = icmp slt i32 %2263, %2267
  br i1 %2268, label %2269, label %2270

2269:                                             ; preds = %2260, %2253
  store i32 90, ptr %6, align 4
  br label %2337

2270:                                             ; preds = %2260
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #10
  %2271 = load ptr, ptr %125, align 8, !tbaa !5
  %2272 = getelementptr inbounds %struct.ImGuiTable, ptr %2271, i32 0, i32 55
  %2273 = load ptr, ptr %2272, align 8, !tbaa !141
  %2274 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %2273)
  store ptr %2274, ptr %126, align 8, !tbaa !5
  %2275 = load ptr, ptr %5, align 8, !tbaa !5
  %2276 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2275, i32 0, i32 10
  %2277 = load i32, ptr %2276, align 4, !tbaa !115
  %2278 = icmp sge i32 %2277, 6
  br i1 %2278, label %2279, label %2323

2279:                                             ; preds = %2270
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #10
  store i32 0, ptr %127, align 4, !tbaa !122
  br label %2280

2280:                                             ; preds = %2319, %2279
  %2281 = load i32, ptr %127, align 4, !tbaa !122
  %2282 = load ptr, ptr %125, align 8, !tbaa !5
  %2283 = getelementptr inbounds %struct.ImGuiTable, ptr %2282, i32 0, i32 13
  %2284 = load i32, ptr %2283, align 4, !tbaa !144
  %2285 = icmp slt i32 %2281, %2284
  br i1 %2285, label %2287, label %2286

2286:                                             ; preds = %2280
  store i32 91, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #10
  br label %2322

2287:                                             ; preds = %2280
  call void @llvm.lifetime.start.p0(i64 16, ptr %128) #10
  %2288 = load ptr, ptr %125, align 8, !tbaa !5
  %2289 = load ptr, ptr %5, align 8, !tbaa !5
  %2290 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2289, i32 0, i32 10
  %2291 = load i32, ptr %2290, align 4, !tbaa !115
  %2292 = load i32, ptr %127, align 4, !tbaa !122
  %2293 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %2288, i32 noundef %2291, i32 noundef %2292)
  %2294 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %128, i32 0, i32 0
  %2295 = extractvalue { <2 x float>, <2 x float> } %2293, 0
  store <2 x float> %2295, ptr %2294, align 4
  %2296 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %128, i32 0, i32 1
  %2297 = extractvalue { <2 x float>, <2 x float> } %2293, 1
  store <2 x float> %2297, ptr %2296, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  %2298 = load ptr, ptr %125, align 8, !tbaa !5
  %2299 = getelementptr inbounds %struct.ImGuiTable, ptr %2298, i32 0, i32 70
  %2300 = load i16, ptr %2299, align 2, !tbaa !310
  %2301 = sext i16 %2300 to i32
  %2302 = load i32, ptr %127, align 4, !tbaa !122
  %2303 = icmp eq i32 %2301, %2302
  %2304 = zext i1 %2303 to i64
  %2305 = select i1 %2303, i32 -8323073, i32 -8388353
  store i32 %2305, ptr %129, align 4, !tbaa !122
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #10
  %2306 = load ptr, ptr %125, align 8, !tbaa !5
  %2307 = getelementptr inbounds %struct.ImGuiTable, ptr %2306, i32 0, i32 70
  %2308 = load i16, ptr %2307, align 2, !tbaa !310
  %2309 = sext i16 %2308 to i32
  %2310 = load i32, ptr %127, align 4, !tbaa !122
  %2311 = icmp eq i32 %2309, %2310
  %2312 = zext i1 %2311 to i64
  %2313 = select i1 %2311, float 3.000000e+00, float 1.000000e+00
  store float %2313, ptr %130, align 4, !tbaa !244
  %2314 = load ptr, ptr %126, align 8, !tbaa !5
  %2315 = getelementptr inbounds %struct.ImRect, ptr %128, i32 0, i32 0
  %2316 = getelementptr inbounds %struct.ImRect, ptr %128, i32 0, i32 1
  %2317 = load i32, ptr %129, align 4, !tbaa !122
  %2318 = load float, ptr %130, align 4, !tbaa !244
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %2314, ptr noundef nonnull align 4 dereferenceable(8) %2315, ptr noundef nonnull align 4 dereferenceable(8) %2316, i32 noundef %2317, float noundef 0.000000e+00, i32 noundef 0, float noundef %2318)
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #10
  br label %2319

2319:                                             ; preds = %2287
  %2320 = load i32, ptr %127, align 4, !tbaa !122
  %2321 = add nsw i32 %2320, 1
  store i32 %2321, ptr %127, align 4, !tbaa !122
  br label %2280, !llvm.loop !311

2322:                                             ; preds = %2286
  br label %2336

2323:                                             ; preds = %2270
  call void @llvm.lifetime.start.p0(i64 16, ptr %131) #10
  %2324 = load ptr, ptr %125, align 8, !tbaa !5
  %2325 = load ptr, ptr %5, align 8, !tbaa !5
  %2326 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2325, i32 0, i32 10
  %2327 = load i32, ptr %2326, align 4, !tbaa !115
  %2328 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %2324, i32 noundef %2327, i32 noundef -1)
  %2329 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %131, i32 0, i32 0
  %2330 = extractvalue { <2 x float>, <2 x float> } %2328, 0
  store <2 x float> %2330, ptr %2329, align 4
  %2331 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %131, i32 0, i32 1
  %2332 = extractvalue { <2 x float>, <2 x float> } %2328, 1
  store <2 x float> %2332, ptr %2331, align 4
  %2333 = load ptr, ptr %126, align 8, !tbaa !5
  %2334 = getelementptr inbounds %struct.ImRect, ptr %131, i32 0, i32 0
  %2335 = getelementptr inbounds %struct.ImRect, ptr %131, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %2333, ptr noundef nonnull align 4 dereferenceable(8) %2334, ptr noundef nonnull align 4 dereferenceable(8) %2335, 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 %131) #10
  br label %2336

2336:                                             ; preds = %2323, %2322
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #10
  store i32 0, ptr %6, align 4
  br label %2337

2337:                                             ; preds = %2336, %2269
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #10
  %2338 = load i32, ptr %6, align 4
  switch i32 %2338, label %2495 [
    i32 0, label %2339
    i32 90, label %2340
  ]

2339:                                             ; preds = %2337
  br label %2340

2340:                                             ; preds = %2339, %2337
  %2341 = load i32, ptr %124, align 4, !tbaa !122
  %2342 = add nsw i32 %2341, 1
  store i32 %2342, ptr %124, align 4, !tbaa !122
  br label %2246, !llvm.loop !312

2343:                                             ; preds = %2252
  br label %2344

2344:                                             ; preds = %2343, %2240
  %2345 = load ptr, ptr %5, align 8, !tbaa !5
  %2346 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2345, i32 0, i32 8
  %2347 = load i8, ptr %2346, align 4, !tbaa !313, !range !13, !noundef !14
  %2348 = trunc i8 %2347 to i1
  br i1 %2348, label %2349, label %2486

2349:                                             ; preds = %2344
  %2350 = load ptr, ptr %3, align 8, !tbaa !5
  %2351 = getelementptr inbounds %struct.ImGuiContext, ptr %2350, i32 0, i32 2
  %2352 = getelementptr inbounds %struct.ImGuiIO, ptr %2351, i32 0, i32 73
  %2353 = load i8, ptr %2352, align 8, !tbaa !314, !range !13, !noundef !14
  %2354 = trunc i8 %2353 to i1
  br i1 %2354, label %2355, label %2486

2355:                                             ; preds = %2349
  %2356 = load ptr, ptr %3, align 8, !tbaa !5
  %2357 = getelementptr inbounds %struct.ImGuiContext, ptr %2356, i32 0, i32 259
  %2358 = load ptr, ptr %2357, align 8, !tbaa !272
  %2359 = icmp ne ptr %2358, null
  br i1 %2359, label %2360, label %2486

2360:                                             ; preds = %2355
  call void @llvm.lifetime.start.p0(i64 64, ptr %132) #10
  call void @llvm.memset.p0.i64(ptr align 16 %132, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #10
  %2361 = getelementptr inbounds [64 x i8], ptr %132, i64 0, i64 0
  store ptr %2361, ptr %133, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #10
  %2362 = load ptr, ptr %3, align 8, !tbaa !5
  %2363 = getelementptr inbounds %struct.ImGuiContext, ptr %2362, i32 0, i32 259
  %2364 = load ptr, ptr %2363, align 8, !tbaa !272
  store ptr %2364, ptr %134, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #10
  %2365 = load ptr, ptr %134, align 8, !tbaa !5
  %2366 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2365, i32 0, i32 17
  %2367 = load ptr, ptr %2366, align 8, !tbaa !315
  %2368 = icmp ne ptr %2367, null
  br i1 %2368, label %2369, label %2374

2369:                                             ; preds = %2360
  %2370 = load ptr, ptr %134, align 8, !tbaa !5
  %2371 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2370, i32 0, i32 17
  %2372 = load ptr, ptr %2371, align 8, !tbaa !315
  %2373 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %2372)
  br label %2377

2374:                                             ; preds = %2360
  %2375 = call noundef ptr @_ZN5ImGui15GetMainViewportEv()
  %2376 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef %2375)
  br label %2377

2377:                                             ; preds = %2374, %2369
  %2378 = phi ptr [ %2373, %2369 ], [ %2376, %2374 ]
  store ptr %2378, ptr %135, align 8, !tbaa !5
  %2379 = load ptr, ptr %133, align 8, !tbaa !5
  %2380 = getelementptr inbounds [64 x i8], ptr %132, i64 0, i64 0
  %2381 = getelementptr inbounds i8, ptr %2380, i64 64
  %2382 = load ptr, ptr %133, align 8, !tbaa !5
  %2383 = ptrtoint ptr %2381 to i64
  %2384 = ptrtoint ptr %2382 to i64
  %2385 = sub i64 %2383, %2384
  %2386 = load ptr, ptr %134, align 8, !tbaa !5
  %2387 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2386, i32 0, i32 0
  %2388 = load i32, ptr %2387, align 8, !tbaa !273
  %2389 = load ptr, ptr %134, align 8, !tbaa !5
  %2390 = call noundef zeroext i1 @_ZNK13ImGuiDockNode13IsCentralNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %2389)
  %2391 = zext i1 %2390 to i64
  %2392 = select i1 %2390, ptr @.str.595, ptr @.str.16
  %2393 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2379, i64 noundef %2385, ptr noundef @.str.594, i32 noundef %2388, ptr noundef %2392)
  %2394 = load ptr, ptr %133, align 8, !tbaa !5
  %2395 = sext i32 %2393 to i64
  %2396 = getelementptr inbounds i8, ptr %2394, i64 %2395
  store ptr %2396, ptr %133, align 8, !tbaa !5
  %2397 = load ptr, ptr %133, align 8, !tbaa !5
  %2398 = getelementptr inbounds [64 x i8], ptr %132, i64 0, i64 0
  %2399 = getelementptr inbounds i8, ptr %2398, i64 64
  %2400 = load ptr, ptr %133, align 8, !tbaa !5
  %2401 = ptrtoint ptr %2399 to i64
  %2402 = ptrtoint ptr %2400 to i64
  %2403 = sub i64 %2401, %2402
  %2404 = load ptr, ptr %134, align 8, !tbaa !5
  %2405 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2404, i32 0, i32 14
  %2406 = getelementptr inbounds %struct.ImGuiWindowClass, ptr %2405, i32 0, i32 0
  %2407 = load i32, ptr %2406, align 4, !tbaa !316
  %2408 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2397, i64 noundef %2403, ptr noundef @.str.596, i32 noundef %2407)
  %2409 = load ptr, ptr %133, align 8, !tbaa !5
  %2410 = sext i32 %2408 to i64
  %2411 = getelementptr inbounds i8, ptr %2409, i64 %2410
  store ptr %2411, ptr %133, align 8, !tbaa !5
  %2412 = load ptr, ptr %133, align 8, !tbaa !5
  %2413 = getelementptr inbounds [64 x i8], ptr %132, i64 0, i64 0
  %2414 = getelementptr inbounds i8, ptr %2413, i64 64
  %2415 = load ptr, ptr %133, align 8, !tbaa !5
  %2416 = ptrtoint ptr %2414 to i64
  %2417 = ptrtoint ptr %2415 to i64
  %2418 = sub i64 %2416, %2417
  %2419 = load ptr, ptr %134, align 8, !tbaa !5
  %2420 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2419, i32 0, i32 11
  %2421 = getelementptr inbounds %struct.ImVec2, ptr %2420, i32 0, i32 0
  %2422 = load float, ptr %2421, align 8, !tbaa !317
  %2423 = fpext float %2422 to double
  %2424 = load ptr, ptr %134, align 8, !tbaa !5
  %2425 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2424, i32 0, i32 11
  %2426 = getelementptr inbounds %struct.ImVec2, ptr %2425, i32 0, i32 1
  %2427 = load float, ptr %2426, align 4, !tbaa !318
  %2428 = fpext float %2427 to double
  %2429 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2412, i64 noundef %2418, ptr noundef @.str.597, double noundef %2423, double noundef %2428)
  %2430 = load ptr, ptr %133, align 8, !tbaa !5
  %2431 = sext i32 %2429 to i64
  %2432 = getelementptr inbounds i8, ptr %2430, i64 %2431
  store ptr %2432, ptr %133, align 8, !tbaa !5
  %2433 = load ptr, ptr %133, align 8, !tbaa !5
  %2434 = getelementptr inbounds [64 x i8], ptr %132, i64 0, i64 0
  %2435 = getelementptr inbounds i8, ptr %2434, i64 64
  %2436 = load ptr, ptr %133, align 8, !tbaa !5
  %2437 = ptrtoint ptr %2435 to i64
  %2438 = ptrtoint ptr %2436 to i64
  %2439 = sub i64 %2437, %2438
  %2440 = load ptr, ptr %134, align 8, !tbaa !5
  %2441 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2440, i32 0, i32 12
  %2442 = getelementptr inbounds %struct.ImVec2, ptr %2441, i32 0, i32 0
  %2443 = load float, ptr %2442, align 8, !tbaa !319
  %2444 = fpext float %2443 to double
  %2445 = load ptr, ptr %134, align 8, !tbaa !5
  %2446 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2445, i32 0, i32 12
  %2447 = getelementptr inbounds %struct.ImVec2, ptr %2446, i32 0, i32 1
  %2448 = load float, ptr %2447, align 4, !tbaa !320
  %2449 = fpext float %2448 to double
  %2450 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2433, i64 noundef %2439, ptr noundef @.str.598, double noundef %2444, double noundef %2449)
  %2451 = load ptr, ptr %133, align 8, !tbaa !5
  %2452 = sext i32 %2450 to i64
  %2453 = getelementptr inbounds i8, ptr %2451, i64 %2452
  store ptr %2453, ptr %133, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #10
  %2454 = load ptr, ptr %134, align 8, !tbaa !5
  %2455 = call noundef i32 @_ZN5ImGui16DockNodeGetDepthEPK13ImGuiDockNode(ptr noundef %2454)
  store i32 %2455, ptr %136, align 4, !tbaa !122
  %2456 = load ptr, ptr %135, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #10
  %2457 = load ptr, ptr %134, align 8, !tbaa !5
  %2458 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2457, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %139, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %2459 = load i32, ptr %136, align 4, !tbaa !122
  %2460 = sitofp i32 %2459 to float
  %2461 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %139, float noundef %2460)
  store <2 x float> %2461, ptr %138, align 4
  %2462 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2458, ptr noundef nonnull align 4 dereferenceable(8) %138)
  store <2 x float> %2462, ptr %137, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #10
  %2463 = load ptr, ptr %134, align 8, !tbaa !5
  %2464 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2463, i32 0, i32 10
  %2465 = load ptr, ptr %134, align 8, !tbaa !5
  %2466 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2465, i32 0, i32 11
  %2467 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2464, ptr noundef nonnull align 4 dereferenceable(8) %2466)
  store <2 x float> %2467, ptr %141, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %143, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %2468 = load i32, ptr %136, align 4, !tbaa !122
  %2469 = sitofp i32 %2468 to float
  %2470 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %143, float noundef %2469)
  store <2 x float> %2470, ptr %142, align 4
  %2471 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %141, ptr noundef nonnull align 4 dereferenceable(8) %142)
  store <2 x float> %2471, ptr %140, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %2456, ptr noundef nonnull align 4 dereferenceable(8) %137, ptr noundef nonnull align 4 dereferenceable(8) %140, 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 %143) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #10
  %2472 = load ptr, ptr %134, align 8, !tbaa !5
  %2473 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2472, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %146, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %2474 = load i32, ptr %136, align 4, !tbaa !122
  %2475 = sitofp i32 %2474 to float
  %2476 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %146, float noundef %2475)
  store <2 x float> %2476, ptr %145, align 4
  %2477 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2473, ptr noundef nonnull align 4 dereferenceable(8) %145)
  store <2 x float> %2477, ptr %144, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #10
  %2478 = load ptr, ptr %135, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %148, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %2479 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %144, ptr noundef nonnull align 4 dereferenceable(8) %148)
  store <2 x float> %2479, ptr %147, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #10
  %2480 = getelementptr inbounds [64 x i8], ptr %132, i64 0, i64 0
  %2481 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %2480, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %2481, ptr %151, align 4
  %2482 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %144, ptr noundef nonnull align 4 dereferenceable(8) %151)
  store <2 x float> %2482, ptr %150, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %152, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %2483 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %150, ptr noundef nonnull align 4 dereferenceable(8) %152)
  store <2 x float> %2483, ptr %149, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %2478, ptr noundef nonnull align 4 dereferenceable(8) %147, ptr noundef nonnull align 4 dereferenceable(8) %149, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #10
  %2484 = load ptr, ptr %135, align 8, !tbaa !5
  %2485 = getelementptr inbounds [64 x i8], ptr %132, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %2484, ptr noundef null, float noundef 0.000000e+00, ptr noundef nonnull align 4 dereferenceable(8) %144, i32 noundef -1, ptr noundef %2485, ptr noundef null, float noundef 0.000000e+00, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %132) #10
  br label %2486

2486:                                             ; preds = %2377, %2355, %2349, %2344
  call void @_ZN5ImGui3EndEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %7) #10
  store i32 0, ptr %6, align 4
  br label %2487

2487:                                             ; preds = %2486, %182
  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
  %2488 = load i32, ptr %6, align 4
  switch i32 %2488, label %2495 [
    i32 0, label %2489
    i32 1, label %2489
  ]

2489:                                             ; preds = %2487, %2487
  ret void

2490:                                             ; preds = %896
  %2491 = load ptr, ptr %55, align 8
  %2492 = load i32, ptr %56, align 4
  %2493 = insertvalue { ptr, i32 } poison, ptr %2491, 0
  %2494 = insertvalue { ptr, i32 } %2493, i32 %2492, 1
  resume { ptr, i32 } %2494

2495:                                             ; preds = %2487, %2337, %2233, %1822, %554
  unreachable
}

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

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

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: mustprogress uwtable
declare dso_local void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef) #9

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

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

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

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

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

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) #7

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) #7

declare void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef) #7

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

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

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

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

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

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

declare void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef) #7

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

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

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

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

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

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

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

; Function Attrs: mustprogress 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 256}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !18, i64 32, !6, i64 64, !12, i64 72, !19, i64 76, !12, i64 84, !19, i64 88, !19, i64 96, !19, i64 104, !19, i64 112, !19, i64 120, !19, i64 128, !19, i64 136, !20, i64 144, !20, i64 148, !20, i64 152, !20, i64 156, !20, i64 160, !20, i64 164, !20, i64 168, !20, i64 172, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !19, i64 192, !19, i64 200, !19, i64 208, !19, i64 216, !19, i64 224, !19, i64 232, !11, i64 240, !11, i64 241, !11, i64 242, !11, i64 243, !11, i64 244, !11, i64 245, !11, i64 246, !11, i64 247, !11, i64 248, !11, i64 249, !11, i64 250, !11, i64 251, !11, i64 252, !11, i64 253, !7, i64 254, !7, i64 255, !21, i64 256, !21, i64 258, !21, i64 260, !21, i64 262, !21, i64 264, !12, i64 268, !7, i64 272, !7, i64 273, !11, i64 274, !12, i64 276, !7, i64 280, !7, i64 281, !7, i64 282, !7, i64 283, !12, i64 284, !12, i64 285, !12, i64 286, !12, i64 287, !19, i64 288, !19, i64 296, !22, i64 304, !23, i64 320, !29, i64 552, !29, i64 568, !29, i64 584, !29, i64 600, !29, i64 616, !29, i64 632, !29, i64 648, !30, i64 664, !30, i64 668, !12, i64 672, !12, i64 676, !20, i64 680, !20, i64 684, !31, i64 688, !33, i64 704, !20, i64 720, !20, i64 724, !12, i64 728, !6, i64 736, !34, i64 744, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !6, i64 1000, !7, i64 1008, !7, i64 1016, !7, i64 1048, !12, i64 1064, !12, i64 1068, !12, i64 1072, !11, i64 1076, !11, i64 1077, !11, i64 1077, !11, i64 1077, !11, i64 1077, !21, i64 1078, !45, i64 1080, !6, i64 1104, !6, i64 1112, !12, i64 1120, !12, i64 1124, !29, i64 1128}
!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 212}
!47 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !19, i64 8, !20, i64 16, !20, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !20, i64 56, !11, i64 60, !6, i64 64, !19, i64 72, !11, i64 80, !11, i64 81, !11, i64 82, !11, i64 83, !11, i64 84, !11, i64 85, !11, i64 86, !11, i64 87, !11, i64 88, !11, i64 89, !11, i64 90, !11, i64 91, !11, i64 92, !11, i64 93, !11, i64 94, !11, i64 95, !20, i64 96, !20, i64 100, !20, i64 104, !20, i64 108, !20, i64 112, !20, i64 116, !11, i64 120, !11, i64 121, !11, i64 122, !11, i64 123, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !21, i64 200, !11, i64 202, !11, i64 203, !11, i64 204, !11, i64 205, !11, i64 206, !11, i64 207, !11, i64 208, !20, i64 212, !12, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !19, i64 232, !7, i64 240, !7, i64 2904, !7, i64 3572, !6, i64 3640, !6, i64 3648, !19, i64 3656, !7, i64 3664, !20, i64 3672, !20, i64 3676, !48, i64 3680, !12, i64 3684, !11, i64 3688, !11, i64 3689, !11, i64 3690, !11, i64 3691, !12, i64 3692, !7, i64 3696, !11, i64 14352, !19, i64 14356, !7, i64 14364, !7, i64 14408, !7, i64 14448, !7, i64 14453, !7, i64 14458, !7, i64 14468, !7, i64 14478, !7, i64 14483, !7, i64 14488, !11, i64 14493, !7, i64 14496, !7, i64 14516, !7, i64 14536, !7, i64 14576, !20, i64 14596, !11, i64 14600, !11, i64 14601, !7, i64 14602, !11, i64 14603, !21, i64 14604, !36, i64 14608}
!48 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!49 = !{!47, !12, i64 216}
!50 = !{!47, !12, i64 220}
!51 = !{!47, !12, i64 224}
!52 = !{!53, !12, i64 25200}
!53 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !47, i64 8, !54, i64 14632, !57, i64 14848, !12, i64 15980, !12, i64 15984, !6, i64 15992, !20, i64 16000, !20, i64 16004, !58, i64 16008, !59, i64 16536, !12, i64 16544, !12, i64 16548, !12, i64 16552, !12, i64 16556, !11, i64 16560, !11, i64 16561, !11, i64 16562, !11, i64 16563, !11, i64 16564, !6, i64 16568, !60, i64 16576, !60, i64 16592, !48, i64 16608, !12, i64 16612, !27, i64 16616, !27, i64 16632, !27, i64 16648, !61, i64 16664, !31, i64 16680, !12, i64 16696, !19, i64 16700, !6, i64 16712, !6, i64 16720, !6, i64 16728, !6, i64 16736, !6, i64 16744, !19, i64 16752, !12, i64 16760, !12, i64 16764, !20, i64 16768, !19, i64 16772, !19, i64 16780, !12, i64 16788, !12, i64 16792, !12, i64 16796, !11, i64 16800, !11, i64 16801, !20, i64 16804, !20, i64 16808, !12, i64 16812, !12, i64 16816, !20, i64 16820, !11, i64 16824, !11, i64 16825, !11, i64 16826, !11, i64 16827, !11, i64 16828, !11, i64 16829, !19, i64 16832, !6, i64 16840, !62, i64 16848, !12, i64 16852, !12, i64 16856, !11, i64 16860, !11, i64 16861, !6, i64 16864, !12, i64 16872, !20, i64 16876, !7, i64 16880, !63, i64 18728, !12, i64 19072, !11, i64 19076, !12, i64 19080, !12, i64 19084, !12, i64 19088, !12, i64 19092, !65, i64 19096, !67, i64 19128, !68, i64 19192, !11, i64 19344, !69, i64 19352, !70, i64 19368, !71, i64 19384, !22, i64 19400, !72, i64 19416, !73, i64 19432, !74, i64 19448, !74, i64 19464, !75, i64 19480, !12, i64 19496, !76, i64 19504, !20, i64 19520, !6, i64 19528, !6, i64 19536, !6, i64 19544, !12, i64 19552, !77, i64 19560, !12, i64 19608, !12, i64 19612, !12, i64 19616, !6, i64 19624, !12, i64 19632, !12, i64 19636, !12, i64 19640, !12, i64 19644, !12, i64 19648, !12, i64 19652, !12, i64 19656, !12, i64 19660, !12, i64 19664, !12, i64 19668, !12, i64 19672, !62, i64 19676, !25, i64 19680, !66, i64 19688, !11, i64 19696, !11, i64 19697, !11, i64 19698, !11, i64 19699, !11, i64 19700, !11, i64 19701, !11, i64 19702, !78, i64 19704, !11, i64 19768, !11, i64 19769, !11, i64 19770, !12, i64 19772, !12, i64 19776, !12, i64 19780, !12, i64 19784, !12, i64 19788, !12, i64 19792, !29, i64 19796, !29, i64 19812, !12, i64 19828, !12, i64 19832, !12, i64 19836, !78, i64 19840, !78, i64 19904, !78, i64 19968, !78, i64 20032, !12, i64 20096, !12, i64 20100, !6, i64 20104, !6, i64 20112, !6, i64 20120, !20, i64 20128, !20, i64 20132, !11, i64 20136, !19, i64 20140, !19, i64 20148, !20, i64 20156, !11, i64 20160, !11, i64 20161, !11, i64 20162, !12, i64 20164, !12, i64 20168, !12, i64 20172, !79, i64 20176, !29, i64 20240, !12, i64 20256, !12, i64 20260, !20, i64 20264, !12, i64 20268, !12, i64 20272, !12, i64 20276, !12, i64 20280, !80, i64 20288, !7, i64 20304, !12, i64 20320, !81, i64 20328, !6, i64 20344, !12, i64 20352, !82, i64 20360, !83, i64 20376, !28, i64 20416, !44, i64 20432, !6, i64 20448, !85, i64 20456, !87, i64 20496, !88, i64 20512, !12, i64 20528, !12, i64 20532, !20, i64 20536, !20, i64 20540, !12, i64 20544, !12, i64 20548, !12, i64 20552, !20, i64 20556, !19, i64 20560, !89, i64 20568, !93, i64 24296, !94, i64 24320, !12, i64 24440, !12, i64 24444, !12, i64 24448, !12, i64 24452, !20, i64 24456, !20, i64 24460, !12, i64 24464, !42, i64 24468, !96, i64 24484, !29, i64 24532, !11, i64 24548, !20, i64 24552, !20, i64 24556, !11, i64 24560, !11, i64 24561, !20, i64 24564, !20, i64 24568, !20, i64 24572, !20, i64 24576, !21, i64 24580, !21, i64 24582, !21, i64 24584, !90, i64 24592, !22, i64 24608, !97, i64 24624, !99, i64 24728, !99, i64 24744, !12, i64 24760, !100, i64 24768, !6, i64 24824, !11, i64 24832, !20, i64 24836, !103, i64 24840, !104, i64 24856, !105, i64 24872, !106, i64 24888, !107, i64 24904, !12, i64 24920, !7, i64 24928, !11, i64 25016, !108, i64 25020, !6, i64 25024, !103, i64 25032, !6, i64 25048, !6, i64 25056, !20, i64 25064, !11, i64 25068, !12, i64 25072, !12, i64 25076, !12, i64 25080, !12, i64 25084, !103, i64 25088, !109, i64 25104, !7, i64 25128, !7, i64 25129, !7, i64 25130, !11, i64 25131, !7, i64 25132, !12, i64 25136, !10, i64 25140, !110, i64 25160, !112, i64 25200, !6, i64 25264, !7, i64 25272, !12, i64 25512, !12, i64 25516, !20, i64 25520, !12, i64 25524, !12, i64 25528, !12, i64 25532, !90, i64 25536}
!54 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !55, i64 184, !56, i64 200}
!55 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !12, i64 0, !12, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !12, i64 0, !12, i64 4, !6, i64 8}
!57 = !{!"_ZTS10ImGuiStyle", !20, i64 0, !20, i64 4, !19, i64 8, !20, i64 16, !20, i64 20, !19, i64 24, !19, i64 32, !12, i64 40, !20, i64 44, !20, i64 48, !20, i64 52, !20, i64 56, !19, i64 60, !20, i64 68, !20, i64 72, !19, i64 76, !19, i64 84, !19, i64 92, !19, i64 100, !20, i64 108, !20, i64 112, !20, i64 116, !20, i64 120, !20, i64 124, !20, i64 128, !20, i64 132, !20, i64 136, !20, i64 140, !20, i64 144, !20, i64 148, !20, i64 152, !12, i64 156, !19, i64 160, !19, i64 168, !20, i64 176, !19, i64 180, !19, i64 188, !19, i64 196, !19, i64 204, !20, i64 212, !20, i64 216, !11, i64 220, !11, i64 221, !11, i64 222, !20, i64 224, !20, i64 228, !7, i64 232, !20, i64 1112, !20, i64 1116, !20, i64 1120, !12, i64 1124, !12, i64 1128}
!58 = !{!"_ZTS20ImDrawListSharedData", !19, i64 0, !6, i64 8, !20, i64 16, !20, i64 20, !20, i64 24, !42, i64 28, !12, i64 44, !40, i64 48, !7, i64 64, !20, i64 448, !7, i64 452, !6, i64 520}
!59 = !{!"double", !7, i64 0}
!60 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!62 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!63 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !64, i64 312, !64, i64 328}
!64 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!65 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !20, i64 8, !66, i64 16, !12, i64 24, !11, i64 28}
!66 = !{!"long long", !7, i64 0}
!67 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !29, i64 12, !29, i64 28, !29, i64 44}
!68 = !{!"_ZTS19ImGuiNextWindowData", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !19, i64 20, !19, i64 28, !19, i64 36, !19, i64 44, !19, i64 52, !12, i64 60, !11, i64 64, !11, i64 65, !29, i64 68, !6, i64 88, !6, i64 96, !20, i64 104, !12, i64 108, !12, i64 112, !18, i64 116, !19, i64 144}
!69 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI20ImGuiNavTreeNodeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS20ImGuiPlatformMonitor", !19, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !20, i64 32, !6, i64 40}
!78 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !29, i64 16, !12, i64 32, !66, i64 40, !20, i64 48, !20, i64 52, !20, i64 56}
!79 = !{!"_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}
!80 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!81 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!83 = !{!"_ZTS6ImPoolI10ImGuiTableE", !84, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!84 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !86, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!86 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!87 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!88 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!89 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !36, i64 24, !90, i64 40, !90, i64 56, !11, i64 72, !12, i64 76, !20, i64 80, !91, i64 84, !20, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !12, i64 3720}
!90 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!91 = !{!"_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, !92, i64 32}
!92 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !21, i64 3582, !21, i64 3584, !12, i64 3588, !12, i64 3592}
!93 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !90, i64 8}
!94 = !{!"_ZTS6ImFont", !28, i64 0, !20, i64 16, !20, i64 20, !36, i64 24, !95, 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}
!95 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!96 = !{!"_ZTS21ImGuiComboPreviewData", !29, i64 0, !19, i64 16, !19, i64 24, !19, i64 32, !20, i64 40, !12, i64 44}
!97 = !{!"_ZTS22ImGuiTypingSelectState", !98, i64 0, !7, i64 24, !12, i64 88, !12, i64 92, !20, i64 96, !11, i64 100}
!98 = !{!"_ZTS24ImGuiTypingSelectRequest", !12, i64 0, !12, i64 4, !6, i64 8, !11, i64 16, !11, i64 17, !7, i64 18}
!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", !90, i64 0}
!104 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!105 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !90, i64 0}
!106 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !90, i64 0}
!107 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!108 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!109 = !{!"_ZTS14ImGuiTextIndex", !72, i64 0, !12, i64 16}
!110 = !{!"_ZTS16ImGuiIDStackTool", !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 = !{!"_ZTS19ImGuiDebugAllocInfo", !12, i64 0, !12, i64 4, !21, i64 8, !7, i64 12}
!113 = !{!53, !12, i64 25204}
!114 = !{!10, !12, i64 12}
!115 = !{!10, !12, i64 16}
!116 = !{!11, !11, i64 0}
!117 = !{!7, !7, i64 0}
!118 = !{!53, !11, i64 25131}
!119 = !{!10, !11, i64 2}
!120 = !{!53, !6, i64 19624}
!121 = !{!17, !6, i64 8}
!122 = !{!12, !12, i64 0}
!123 = !{!29, !20, i64 0}
!124 = !{!29, !20, i64 4}
!125 = !{!29, !20, i64 8}
!126 = !{!29, !20, i64 12}
!127 = distinct !{!127, !128}
!128 = !{!"llvm.loop.mustprogress"}
!129 = !{!10, !11, i64 4}
!130 = !{!131, !12, i64 104}
!131 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !132, i64 24, !133, i64 40, !134, i64 56, !6, i64 72, !6, i64 80, !6, i64 88, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !21, i64 120, !21, i64 122, !20, i64 124, !20, i64 128, !20, i64 132, !20, i64 136, !20, i64 140, !20, i64 144, !12, i64 148, !12, i64 150, !12, i64 152, !7, i64 156, !12, i64 164, !12, i64 168, !20, i64 172, !20, i64 176, !20, i64 180, !20, i64 184, !20, i64 188, !20, i64 192, !20, i64 196, !20, i64 200, !20, i64 204, !20, i64 208, !20, i64 212, !20, i64 216, !20, i64 220, !20, i64 224, !20, i64 228, !20, i64 232, !20, i64 236, !29, i64 240, !29, i64 256, !29, i64 272, !29, i64 288, !29, i64 304, !29, i64 320, !29, i64 336, !29, i64 352, !29, i64 368, !6, i64 384, !6, i64 392, !103, i64 400, !6, i64 416, !135, i64 424, !136, i64 448, !137, i64 464, !138, i64 480, !139, i64 496, !21, i64 512, !21, i64 514, !21, i64 516, !21, i64 518, !21, i64 520, !21, i64 522, !21, i64 524, !21, i64 526, !21, i64 528, !21, i64 530, !21, i64 532, !21, i64 534, !21, i64 536, !21, i64 538, !21, i64 540, !21, i64 542, !21, i64 544, !21, i64 546, !21, i64 548, !21, i64 550, !21, i64 552, !21, i64 554, !21, i64 556, !21, i64 558, !21, i64 560, !21, i64 562, !21, i64 564, !11, i64 566, !11, i64 567, !11, i64 568, !11, i64 569, !11, i64 570, !11, i64 571, !11, i64 572, !11, i64 573, !11, i64 574, !11, i64 575, !11, i64 576, !11, i64 577, !11, i64 578, !11, i64 579, !11, i64 580, !11, i64 581, !11, i64 582, !11, i64 583, !11, i64 584, !11, i64 585}
!132 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!133 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!134 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!135 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !20, i64 4, !20, i64 8, !20, i64 12, !12, i64 16, !12, i64 20}
!136 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!137 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !21, i64 4, !21, i64 6, !12, i64 8}
!138 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!139 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!140 = !{!53, !12, i64 16544}
!141 = !{!131, !6, i64 384}
!142 = !{!131, !6, i64 392}
!143 = !{!131, !12, i64 0}
!144 = !{!131, !12, i64 108}
!145 = distinct !{!145, !128}
!146 = distinct !{!146, !128}
!147 = distinct !{!147, !128}
!148 = !{!53, !12, i64 16616}
!149 = !{!17, !12, i64 672}
!150 = !{!27, !6, i64 8}
!151 = !{!27, !12, i64 0}
!152 = !{!153, !12, i64 184}
!153 = !{!"_ZTS14ImGuiViewportP", !154, 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, !155, i64 168, !157, i64 232, !19, i64 264, !19, i64 272, !19, i64 280, !19, i64 288, !19, i64 296, !19, i64 304, !19, i64 312}
!154 = !{!"_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}
!155 = !{!"_ZTS10ImDrawData", !11, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !156, i64 16, !19, i64 32, !19, i64 40, !19, i64 48, !6, i64 56}
!156 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!157 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0, !156, i64 16}
!158 = !{!153, !12, i64 104}
!159 = !{!154, !12, i64 0}
!160 = !{!53, !12, i64 19504}
!161 = !{!53, !12, i64 14816}
!162 = !{!77, !20, i64 32}
!163 = !{!77, !20, i64 0}
!164 = !{!77, !20, i64 4}
!165 = !{!77, !20, i64 8}
!166 = !{!77, !20, i64 12}
!167 = !{!77, !20, i64 16}
!168 = !{!77, !20, i64 20}
!169 = !{!77, !20, i64 24}
!170 = !{!77, !20, i64 28}
!171 = distinct !{!171, !128}
!172 = !{!53, !6, i64 19536}
!173 = !{!53, !12, i64 3692}
!174 = !{!53, !6, i64 19544}
!175 = !{!"branch_weights", i32 1, i32 1048575}
!176 = !{!76, !6, i64 8}
!177 = !{!53, !6, i64 19512}
!178 = !{!76, !12, i64 0}
!179 = !{!153, !12, i64 112}
!180 = !{!53, !6, i64 14696}
!181 = !{!154, !11, i64 88}
!182 = !{!153, !6, i64 96}
!183 = !{!53, !12, i64 19448}
!184 = !{!185, !6, i64 8}
!185 = !{!"_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}
!186 = !{!185, !12, i64 0}
!187 = !{!17, !12, i64 20}
!188 = !{!185, !6, i64 16}
!189 = !{!17, !6, i64 944}
!190 = distinct !{!190, !128}
!191 = distinct !{!191, !128}
!192 = !{!53, !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, !71, 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 = !{!100, !11, i64 48}
!198 = !{!100, !12, i64 0}
!199 = distinct !{!199, !128}
!200 = !{!53, !6, i64 32}
!201 = !{!53, !20, i64 24836}
!202 = !{!53, !12, i64 24856}
!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, !128}
!206 = distinct !{!206, !128}
!207 = !{!208, !12, i64 20}
!208 = !{!"_ZTS19ImGuiWindowSettings", !12, i64 0, !30, i64 4, !30, i64 8, !30, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !21, i64 28, !11, i64 30, !11, i64 31, !11, i64 32, !11, i64 33}
!209 = !{!208, !21, i64 28}
!210 = distinct !{!210, !128}
!211 = !{!100, !12, i64 32}
!212 = !{!213, !12, i64 12}
!213 = !{!"_ZTS21ImGuiDockNodeSettings", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !7, i64 16, !7, i64 17, !12, i64 20, !30, i64 24, !30, i64 28, !30, i64 32}
!214 = !{!213, !12, i64 0}
!215 = !{!213, !12, i64 4}
!216 = distinct !{!216, !128}
!217 = !{!53, !12, i64 24840}
!218 = !{!112, !12, i64 0}
!219 = !{!112, !12, i64 4}
!220 = !{!112, !21, i64 8}
!221 = !{!222, !12, i64 0}
!222 = !{!"_ZTS20ImGuiDebugAllocEntry", !12, i64 0, !21, i64 4, !21, i64 6}
!223 = !{!222, !21, i64 4}
!224 = !{!222, !21, i64 6}
!225 = distinct !{!225, !128}
!226 = !{!227, !227, i64 0}
!227 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!228 = !{!229, !20, i64 4}
!229 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !20, i64 4, !20, i64 8, !20, i64 12}
!230 = distinct !{!230, !128}
!231 = distinct !{!231, !128}
!232 = distinct !{!232, !128}
!233 = !{!47, !11, i64 3688}
!234 = !{!47, !11, i64 3689}
!235 = !{!47, !11, i64 3690}
!236 = !{!47, !11, i64 3691}
!237 = !{!47, !12, i64 14608}
!238 = !{!21, !21, i64 0}
!239 = distinct !{!239, !128}
!240 = !{!47, !20, i64 3656}
!241 = !{!47, !20, i64 3660}
!242 = !{!47, !20, i64 232}
!243 = !{!47, !20, i64 236}
!244 = !{!20, !20, i64 0}
!245 = distinct !{!245, !128}
!246 = distinct !{!246, !128}
!247 = distinct !{!247, !128}
!248 = !{!47, !20, i64 3672}
!249 = !{!53, !20, i64 20556}
!250 = !{!47, !48, i64 3680}
!251 = !{!47, !20, i64 14596}
!252 = !{!53, !6, i64 16744}
!253 = !{!53, !20, i64 16768}
!254 = !{!53, !20, i64 16780}
!255 = !{!53, !20, i64 16784}
!256 = !{!257, !12, i64 0}
!257 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!258 = !{!257, !11, i64 9}
!259 = !{!257, !11, i64 8}
!260 = distinct !{!260, !128}
!261 = !{!262, !21, i64 2}
!262 = !{!"_ZTS19ImGuiKeyRoutingData", !21, i64 0, !21, i64 2, !7, i64 4, !12, i64 8, !12, i64 12}
!263 = !{!262, !12, i64 8}
!264 = !{!262, !21, i64 0}
!265 = distinct !{!265, !128}
!266 = distinct !{!266, !128}
!267 = !{!53, !11, i64 19076}
!268 = !{!53, !12, i64 19072}
!269 = !{!53, !6, i64 16720}
!270 = !{!17, !6, i64 976}
!271 = !{!53, !6, i64 16728}
!272 = !{!53, !6, i64 25264}
!273 = !{!274, !12, i64 0}
!274 = !{!"_ZTS13ImGuiDockNode", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !275, i64 20, !6, i64 24, !7, i64 32, !27, i64 48, !6, i64 64, !19, i64 72, !19, i64 80, !19, i64 88, !276, 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}
!275 = !{!"_ZTS18ImGuiDockNodeState", !7, i64 0}
!276 = !{!"_ZTS9ImGuiAxis", !7, i64 0}
!277 = !{!53, !6, i64 16736}
!278 = !{!53, !12, i64 16812}
!279 = !{!53, !12, i64 16856}
!280 = !{!53, !20, i64 16820}
!281 = !{!53, !11, i64 16825}
!282 = !{!53, !62, i64 16848}
!283 = !{!53, !6, i64 16840}
!284 = !{!53, !12, i64 16796}
!285 = !{!53, !20, i64 16804}
!286 = !{!53, !11, i64 16800}
!287 = !{!53, !12, i64 20528}
!288 = !{!53, !20, i64 20536}
!289 = !{!53, !20, i64 20540}
!290 = !{!53, !11, i64 20160}
!291 = !{!53, !12, i64 20188}
!292 = !{!53, !12, i64 20184}
!293 = !{!53, !12, i64 19632}
!294 = !{!53, !25, i64 19680}
!295 = !{!53, !62, i64 19676}
!296 = !{!53, !66, i64 19688}
!297 = !{!53, !11, i64 215}
!298 = !{!53, !11, i64 216}
!299 = !{!53, !12, i64 19640}
!300 = !{!53, !12, i64 19644}
!301 = !{!53, !12, i64 19648}
!302 = !{!53, !12, i64 19652}
!303 = !{!53, !11, i64 19698}
!304 = !{!53, !11, i64 19699}
!305 = !{!53, !12, i64 19636}
!306 = !{!53, !6, i64 20104}
!307 = !{!10, !11, i64 3}
!308 = !{!17, !11, i64 244}
!309 = !{!17, !21, i64 262}
!310 = !{!131, !21, i64 522}
!311 = distinct !{!311, !128}
!312 = distinct !{!312, !128}
!313 = !{!10, !11, i64 8}
!314 = !{!53, !11, i64 3696}
!315 = !{!274, !6, i64 136}
!316 = !{!274, !12, i64 100}
!317 = !{!274, !20, i64 80}
!318 = !{!274, !20, i64 84}
!319 = !{!274, !20, i64 88}
!320 = !{!274, !20, i64 92}


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

%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }
%struct.ImGuiDebugAllocEntry = type { i32, i16, i16 }

@GImGui = external dso_local local_unnamed_addr global ptr, align 8
@.str.16 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.191 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [43 x i8], align 1
@__const._ZN5ImGui17ShowMetricsWindowEPb.wrt_rects_names = external hidden unnamed_addr constant [8 x ptr], align 16
@__const._ZN5ImGui17ShowMetricsWindowEPb.trt_rects_names = external hidden unnamed_addr constant [13 x ptr], align 16
@.str.435 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [100 x i8], align 16
@.str.438 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [33 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE9viewports = external hidden global %struct.ImVector.16, align 8
@_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports = external hidden global i64, align 8
@__dso_handle = external hidden global i8
@.str.476 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only = external hidden global i8, align 1
@.str.494 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.520 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.529 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.530 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.531 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.532 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.533 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.535 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.536 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.537 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.538 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.539 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.540 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.541 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.542 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.543 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.544 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.545 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.546 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.547 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.548 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.549 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.550 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.551 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.552 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.553 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.554 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.555 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.556 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.557 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.558 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.560 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.561 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.562 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.563 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.564 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.565 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.566 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.567 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.568 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.569 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.570 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.571 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.572 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.573 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.574 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.575 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.576 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.577 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.578 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.579 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.580 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.581 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.582 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.583 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.584 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.585 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.586 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.587 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.588 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.589 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.590 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.591 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.592 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.593 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.594 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.595 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.596 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.597 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.598 = external hidden unnamed_addr constant [23 x i8], align 1

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

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local 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 ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE5beginEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

60:                                               ; preds = %59, %55
  %61 = tail call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.413, ptr noundef %0, i32 noundef 0)
  br i1 %61, label %62, label %67

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

67:                                               ; preds = %62, %60
  tail call void @_ZN5ImGui3EndEv()
  br label %1413

68:                                               ; preds = %62
  %69 = tail call noundef ptr @_ZN5ImGui10GetVersionEv()
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.414, ptr noundef %69)
  %70 = getelementptr inbounds i8, ptr %50, i64 220
  %71 = load float, ptr %70, align 4, !tbaa !46
  %72 = fdiv float 1.000000e+03, %71
  %73 = fpext float %72 to double
  %74 = fpext float %71 to double
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.415, double noundef %73, double noundef %74)
  %75 = getelementptr inbounds i8, ptr %50, i64 224
  %76 = load i32, ptr %75, align 8, !tbaa !49
  %77 = getelementptr inbounds i8, ptr %50, i64 228
  %78 = load i32, ptr %77, align 4, !tbaa !50
  %79 = sdiv i32 %78, 3
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.416, i32 noundef %76, i32 noundef %78, i32 noundef %79)
  %80 = getelementptr inbounds i8, ptr %50, i64 232
  %81 = load i32, ptr %80, align 8, !tbaa !51
  %82 = getelementptr inbounds i8, ptr %50, i64 25200
  %83 = load i32, ptr %82, align 8, !tbaa !52
  %84 = getelementptr inbounds i8, ptr %50, i64 25204
  %85 = load i32, ptr %84, align 4, !tbaa !113
  %86 = sub nsw i32 %83, %85
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.417, i32 noundef %81, i32 noundef %86)
  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)
  %87 = getelementptr inbounds i8, ptr %50, i64 25152
  %88 = load i32, ptr %87, align 4, !tbaa !114
  %89 = icmp slt i32 %88, 0
  br i1 %89, label %90, label %91

90:                                               ; preds = %68
  store i32 4, ptr %87, align 4, !tbaa !114
  br label %91

91:                                               ; preds = %90, %68
  %92 = getelementptr inbounds i8, ptr %50, i64 25156
  %93 = load i32, ptr %92, align 4, !tbaa !115
  %94 = icmp slt i32 %93, 0
  br i1 %94, label %95, label %96

95:                                               ; preds = %91
  store i32 2, ptr %92, align 4, !tbaa !115
  br label %96

96:                                               ; preds = %95, %91
  %97 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.435)
  br i1 %97, label %98, label %395

98:                                               ; preds = %96
  %99 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.436)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.437)
  br i1 %99, label %100, label %105

100:                                              ; preds = %98
  tail call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %101 = tail call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.438, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 100, i32 noundef 0, ptr noundef null, ptr noundef null)
  %102 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !116
  %.not = icmp eq i8 %102, 0
  br i1 %.not, label %104, label %103

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

104:                                              ; preds = %103, %100
  tail call void @_ZN5ImGui7TreePopEv()
  br label %105

105:                                              ; preds = %104, %98
  %106 = getelementptr inbounds i8, ptr %50, i64 25131
  %107 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.439, ptr noundef nonnull %106)
  br i1 %107, label %108, label %112

108:                                              ; preds = %105
  %109 = load i8, ptr %106, align 1, !tbaa !117, !range !13, !noundef !14
  %110 = trunc nuw i8 %109 to i1
  br i1 %110, label %111, label %112

111:                                              ; preds = %108
  tail call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %112

112:                                              ; preds = %111, %108, %105
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.440)
  %113 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.441, ptr noundef nonnull %51)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.442)
  %114 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.443, ptr noundef nonnull %56)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.444)
  %115 = getelementptr inbounds i8, ptr %50, i64 25143
  %116 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.445, ptr noundef nonnull %115)
  %117 = getelementptr inbounds i8, ptr %50, i64 25142
  %118 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.446, ptr noundef nonnull %117)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %119 = tail call noundef float @_ZN5ImGui11GetFontSizeEv()
  %120 = fmul float %119, 1.200000e+01
  tail call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %120)
  %121 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.447, ptr noundef nonnull %87, ptr noundef nonnull %2, i32 noundef 8, i32 noundef 8)
  %122 = load i8, ptr %117, align 2, !tbaa !118, !range !13, !noundef !14
  %123 = zext i1 %121 to i8
  %124 = or i8 %122, %123
  %.not621 = icmp eq i8 %124, 0
  store i8 %124, ptr %117, align 2, !tbaa !118
  br i1 %.not621, label %275, label %125

125:                                              ; preds = %112
  %126 = getelementptr inbounds i8, ptr %50, i64 19624
  %127 = load ptr, ptr %126, align 8, !tbaa !119
  %.not622 = icmp eq ptr %127, null
  br i1 %.not622, label %275, label %128

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

275:                                              ; preds = %128, %125, %112
  %276 = getelementptr inbounds i8, ptr %50, i64 25144
  %277 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.450, ptr noundef nonnull %276)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %278 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %279 = fmul float %278, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %279)
  %280 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.451, ptr noundef nonnull %92, ptr noundef nonnull %3, i32 noundef 13, i32 noundef 13)
  %281 = load i8, ptr %276, align 4, !tbaa !121, !range !13, !noundef !14
  %282 = zext i1 %280 to i8
  %283 = or i8 %281, %282
  %.not623 = icmp eq i8 %283, 0
  store i8 %283, ptr %276, align 4, !tbaa !121
  br i1 %.not623, label %.loopexit696, label %284

284:                                              ; preds = %275
  %285 = getelementptr inbounds i8, ptr %50, i64 19624
  %286 = load ptr, ptr %285, align 8, !tbaa !119
  %.not624 = icmp eq ptr %286, null
  br i1 %.not624, label %.loopexit696, label %.preheader695

.preheader695:                                    ; preds = %284
  %287 = getelementptr inbounds i8, ptr %50, i64 20376
  %288 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %287)
  %289 = icmp sgt i32 %288, 0
  br i1 %289, label %.lr.ph702, label %.loopexit696

.lr.ph702:                                        ; preds = %.preheader695
  %290 = getelementptr inbounds i8, ptr %50, i64 16544
  %291 = getelementptr inbounds i8, ptr %16, i64 8
  %292 = getelementptr inbounds i8, ptr %10, i64 8
  br label %293

293:                                              ; preds = %.lr.ph702, %387
  %.0550701 = phi i32 [ 0, %.lr.ph702 ], [ %388, %387 ]
  %294 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %287, i32 noundef %.0550701)
  %295 = icmp eq ptr %294, null
  br i1 %295, label %387, label %296

296:                                              ; preds = %293
  %297 = getelementptr inbounds i8, ptr %294, i64 104
  %298 = load i32, ptr %297, align 8, !tbaa !122
  %299 = load i32, ptr %290, align 8, !tbaa !132
  %300 = add nsw i32 %299, -1
  %301 = icmp slt i32 %298, %300
  br i1 %301, label %387, label %302

302:                                              ; preds = %296
  %303 = getelementptr inbounds i8, ptr %294, i64 384
  %304 = load ptr, ptr %303, align 8, !tbaa !133
  %305 = load ptr, ptr %285, align 8, !tbaa !119
  %.not671 = icmp eq ptr %304, %305
  br i1 %.not671, label %309, label %306

306:                                              ; preds = %302
  %307 = getelementptr inbounds i8, ptr %294, i64 392
  %308 = load ptr, ptr %307, align 8, !tbaa !134
  %.not672 = icmp eq ptr %308, %305
  br i1 %.not672, label %309, label %387

309:                                              ; preds = %306, %302
  %310 = load i32, ptr %294, align 8, !tbaa !135
  %311 = getelementptr inbounds i8, ptr %294, i64 108
  %312 = load i32, ptr %311, align 4, !tbaa !136
  %313 = getelementptr inbounds i8, ptr %304, i64 8
  %314 = load ptr, ptr %313, align 8, !tbaa !120
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.452, i32 noundef %310, i32 noundef %312, ptr noundef %314)
  %315 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %315, label %316, label %322

316:                                              ; preds = %309
  %317 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #11
  %318 = getelementptr inbounds i8, ptr %294, i64 240
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %319 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %318, ptr noundef nonnull align 4 dereferenceable(8) %6)
  store <2 x float> %319, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #11
  %320 = getelementptr inbounds i8, ptr %294, i64 248
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %321 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %320, ptr noundef nonnull align 4 dereferenceable(8) %8)
  store <2 x float> %321, ptr %7, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %317, 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 %322

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

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

324:                                              ; preds = %322, %.loopexit694
  %indvars.iv = phi i64 [ 0, %322 ], [ %indvars.iv.next, %.loopexit694 ]
  %325 = icmp ugt i64 %indvars.iv, 5
  br i1 %325, label %326, label %360

326:                                              ; preds = %324
  %327 = trunc nuw nsw i64 %indvars.iv to i32
  switch i32 %327, label %.loopexit694 [
    i32 8, label %328
    i32 6, label %328
  ]

328:                                              ; preds = %326, %326
  %329 = load i32, ptr %311, align 4, !tbaa !136
  %330 = icmp sgt i32 %329, 0
  br i1 %330, label %.lr.ph, label %.loopexit694

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

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

352:                                              ; preds = %332
  %353 = 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)
  %354 = 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> %354, 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)
  %355 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %292, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %355, ptr %14, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %353, 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 %356

356:                                              ; preds = %352, %332
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #11
  %357 = add nuw nsw i32 %.0552698, 1
  %358 = load i32, ptr %311, align 4, !tbaa !136
  %359 = icmp slt i32 %357, %358
  br i1 %359, label %332, label %.loopexit694, !llvm.loop !137

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

382:                                              ; preds = %360
  %383 = 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)
  %384 = 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> %384, 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)
  %385 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %291, ptr noundef nonnull align 4 dereferenceable(8) %21)
  store <2 x float> %385, ptr %20, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %383, 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 %386

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

.loopexit694:                                     ; preds = %356, %328, %326, %386
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 13
  br i1 %exitcond.not, label %323, label %324, !llvm.loop !139

387:                                              ; preds = %293, %296, %306, %323
  %388 = add nuw nsw i32 %.0550701, 1
  %389 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %287)
  %390 = icmp slt i32 %388, %389
  br i1 %390, label %293, label %.loopexit696, !llvm.loop !140

.loopexit696:                                     ; preds = %387, %.preheader695, %284, %275
  %391 = getelementptr inbounds i8, ptr %50, i64 19344
  %392 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.454, ptr noundef nonnull %391)
  %393 = getelementptr inbounds i8, ptr %50, i64 129
  %394 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.455, ptr noundef nonnull %393)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.456)
  call void @_ZN5ImGui7TreePopEv()
  br label %395

395:                                              ; preds = %.loopexit696, %96
  %396 = getelementptr inbounds i8, ptr %50, i64 16616
  %397 = load i32, ptr %396, align 8, !tbaa !141
  %398 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.457, ptr noundef nonnull @.str.458, i32 noundef %397)
  br i1 %398, label %399, label %423

399:                                              ; preds = %395
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %396, ptr noundef nonnull @.str.459)
  %400 = getelementptr inbounds i8, ptr %50, i64 16632
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %400, ptr noundef nonnull @.str.460)
  %401 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.461)
  br i1 %401, label %402, label %422

402:                                              ; preds = %399
  %403 = getelementptr inbounds i8, ptr %50, i64 16648
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %403, i32 noundef 0)
  %404 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %396)
  %405 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %396)
  %.not625703 = icmp eq ptr %404, %405
  br i1 %.not625703, label %._crit_edge, label %.lr.ph705

.lr.ph705:                                        ; preds = %402
  %406 = getelementptr inbounds i8, ptr %50, i64 16544
  br label %413

._crit_edge:                                      ; preds = %420, %402
  %407 = getelementptr inbounds i8, ptr %50, i64 16656
  %408 = load ptr, ptr %407, align 8, !tbaa !142
  %409 = load i32, ptr %403, align 8, !tbaa !143
  %410 = sext i32 %409 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %408, i64 noundef %410, i64 noundef 8, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %411 = load ptr, ptr %407, align 8, !tbaa !142
  %412 = load i32, ptr %403, align 8, !tbaa !143
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %411, i32 noundef %412, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %422

413:                                              ; preds = %.lr.ph705, %420
  %.0554704 = phi ptr [ %404, %.lr.ph705 ], [ %421, %420 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %414 = load ptr, ptr %.0554704, align 8, !tbaa !5
  store ptr %414, ptr %22, align 8, !tbaa !5
  %415 = getelementptr inbounds i8, ptr %414, i64 672
  %416 = load i32, ptr %415, align 8, !tbaa !144
  %417 = add nsw i32 %416, 1
  %418 = load i32, ptr %406, align 8, !tbaa !132
  %.not670 = icmp slt i32 %417, %418
  br i1 %.not670, label %420, label %419

419:                                              ; preds = %413
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %403, ptr noundef nonnull align 8 dereferenceable(8) %22)
  br label %420

420:                                              ; preds = %419, %413
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  %421 = getelementptr inbounds i8, ptr %.0554704, i64 8
  %.not625 = icmp eq ptr %421, %405
  br i1 %.not625, label %._crit_edge, label %413

422:                                              ; preds = %._crit_edge, %399
  call void @_ZN5ImGui7TreePopEv()
  br label %423

423:                                              ; preds = %422, %395
  %424 = getelementptr inbounds i8, ptr %50, i64 19504
  %425 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %424)
  %426 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %424)
  %.not626706 = icmp eq ptr %425, %426
  br i1 %.not626706, label %._crit_edge711, label %.lr.ph710

._crit_edge711:                                   ; preds = %.lr.ph710, %423
  %.0555.lcssa = phi i32 [ 0, %423 ], [ %431, %.lr.ph710 ]
  %427 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.462, ptr noundef nonnull @.str.463, i32 noundef %.0555.lcssa)
  br i1 %427, label %433, label %453

.lr.ph710:                                        ; preds = %423, %.lr.ph710
  %.0555708 = phi i32 [ %431, %.lr.ph710 ], [ 0, %423 ]
  %.0557707 = phi ptr [ %432, %.lr.ph710 ], [ %425, %423 ]
  %428 = load ptr, ptr %.0557707, align 8, !tbaa !5
  %429 = getelementptr inbounds i8, ptr %428, i64 184
  %430 = load i32, ptr %429, align 8, !tbaa !145
  %431 = add nsw i32 %430, %.0555708
  %432 = getelementptr inbounds i8, ptr %.0557707, i64 8
  %.not626 = icmp eq ptr %432, %426
  br i1 %.not626, label %._crit_edge711, label %.lr.ph710

433:                                              ; preds = %._crit_edge711
  %434 = getelementptr inbounds i8, ptr %50, i64 25145
  %435 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.464, ptr noundef nonnull %434)
  %436 = getelementptr inbounds i8, ptr %50, i64 25146
  %437 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.465, ptr noundef nonnull %436)
  %438 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %424)
  %439 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %424)
  %.not627718 = icmp eq ptr %438, %439
  br i1 %.not627718, label %._crit_edge722, label %.lr.ph721

._crit_edge722:                                   ; preds = %._crit_edge717, %433
  call void @_ZN5ImGui7TreePopEv()
  br label %453

.lr.ph721:                                        ; preds = %433, %._crit_edge717
  %.0558719 = phi ptr [ %450, %._crit_edge717 ], [ %438, %433 ]
  %440 = load ptr, ptr %.0558719, align 8, !tbaa !5
  %441 = getelementptr inbounds i8, ptr %440, i64 184
  %442 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %441)
  %443 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %441)
  %.not669712 = icmp eq ptr %442, %443
  br i1 %.not669712, label %._crit_edge717, label %444

444:                                              ; preds = %.lr.ph721
  %445 = load ptr, ptr %442, align 8, !tbaa !5
  %446 = getelementptr inbounds i8, ptr %440, i64 104
  %447 = load i32, ptr %446, align 8, !tbaa !151
  %448 = load i32, ptr %440, align 8, !tbaa !152
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.466, i32 noundef %447, i32 noundef %448)
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef nonnull %440, ptr noundef %445, ptr noundef nonnull @.str.467)
  %449 = getelementptr inbounds i8, ptr %442, i64 8
  %.not669.peel = icmp eq ptr %449, %443
  br i1 %.not669.peel, label %._crit_edge717, label %.peel.next

._crit_edge717:                                   ; preds = %.peel.next, %444, %.lr.ph721
  %450 = getelementptr inbounds i8, ptr %.0558719, i64 8
  %.not627 = icmp eq ptr %450, %439
  br i1 %.not627, label %._crit_edge722, label %.lr.ph721

.peel.next:                                       ; preds = %444, %.peel.next
  %.0560713 = phi ptr [ %452, %.peel.next ], [ %449, %444 ]
  %451 = load ptr, ptr %.0560713, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef nonnull %440, ptr noundef %451, ptr noundef nonnull @.str.467)
  %452 = getelementptr inbounds i8, ptr %.0560713, i64 8
  %.not669 = icmp eq ptr %452, %443
  br i1 %.not669, label %._crit_edge717, label %.peel.next, !llvm.loop !153

453:                                              ; preds = %._crit_edge722, %._crit_edge711
  %454 = load i32, ptr %424, align 8, !tbaa !155
  %455 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.468, ptr noundef nonnull @.str.469, i32 noundef %454)
  br i1 %455, label %456, label %571

456:                                              ; preds = %453
  %457 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %457)
  call void @_ZL25RenderViewportsThumbnailsv()
  %458 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %458)
  %459 = getelementptr inbounds i8, ptr %50, i64 14816
  %460 = load i32, ptr %459, align 8, !tbaa !156
  %461 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.470, ptr noundef nonnull @.str.471, i32 noundef %460)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.472)
  br i1 %461, label %.preheader693, label %503

.preheader693:                                    ; preds = %456
  %462 = load i32, ptr %459, align 8, !tbaa !156
  %463 = icmp sgt i32 %462, 0
  br i1 %463, label %.lr.ph724, label %._crit_edge725

._crit_edge725:                                   ; preds = %.lr.ph724, %.preheader693
  call void @_ZN5ImGui7TreePopEv()
  br label %503

.lr.ph724:                                        ; preds = %.preheader693, %.lr.ph724
  %.0562723 = phi i32 [ %500, %.lr.ph724 ], [ 0, %.preheader693 ]
  %464 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI20ImGuiPlatformMonitorEixEi(ptr noundef nonnull align 8 dereferenceable(16) %459, i32 noundef %.0562723)
  %465 = getelementptr inbounds i8, ptr %464, i64 32
  %466 = load float, ptr %465, align 8, !tbaa !157
  %467 = fmul float %466, 1.000000e+02
  %468 = fpext float %467 to double
  %469 = load float, ptr %464, align 8, !tbaa !158
  %470 = fpext float %469 to double
  %471 = getelementptr inbounds i8, ptr %464, i64 4
  %472 = load float, ptr %471, align 4, !tbaa !159
  %473 = fpext float %472 to double
  %474 = getelementptr inbounds i8, ptr %464, i64 8
  %475 = load float, ptr %474, align 8, !tbaa !160
  %476 = fadd float %469, %475
  %477 = fpext float %476 to double
  %478 = getelementptr inbounds i8, ptr %464, i64 12
  %479 = load float, ptr %478, align 4, !tbaa !161
  %480 = fadd float %472, %479
  %481 = fpext float %480 to double
  %482 = fpext float %475 to double
  %483 = fpext float %479 to double
  %484 = getelementptr inbounds i8, ptr %464, i64 16
  %485 = load float, ptr %484, align 8, !tbaa !162
  %486 = fpext float %485 to double
  %487 = getelementptr inbounds i8, ptr %464, i64 20
  %488 = load float, ptr %487, align 4, !tbaa !163
  %489 = fpext float %488 to double
  %490 = getelementptr inbounds i8, ptr %464, i64 24
  %491 = load float, ptr %490, align 8, !tbaa !164
  %492 = fadd float %485, %491
  %493 = fpext float %492 to double
  %494 = getelementptr inbounds i8, ptr %464, i64 28
  %495 = load float, ptr %494, align 4, !tbaa !165
  %496 = fadd float %488, %495
  %497 = fpext float %496 to double
  %498 = fpext float %491 to double
  %499 = fpext float %495 to double
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.473, i32 noundef %.0562723, double noundef %468, double noundef %470, double noundef %473, double noundef %477, double noundef %481, double noundef %482, double noundef %483, double noundef %486, double noundef %489, double noundef %493, double noundef %497, double noundef %498, double noundef %499)
  %500 = add nuw nsw i32 %.0562723, 1
  %501 = load i32, ptr %459, align 8, !tbaa !156
  %502 = icmp slt i32 %500, %501
  br i1 %502, label %.lr.ph724, label %._crit_edge725, !llvm.loop !166

503:                                              ; preds = %._crit_edge725, %456
  %504 = getelementptr inbounds i8, ptr %50, i64 19536
  %505 = load ptr, ptr %504, align 8, !tbaa !167
  %.not628 = icmp eq ptr %505, null
  br i1 %.not628, label %508, label %506

506:                                              ; preds = %503
  %507 = load i32, ptr %505, align 8, !tbaa !152
  br label %508

508:                                              ; preds = %503, %506
  %509 = phi i32 [ %507, %506 ], [ 0, %503 ]
  %510 = getelementptr inbounds i8, ptr %50, i64 3692
  %511 = load i32, ptr %510, align 4, !tbaa !168
  %512 = getelementptr inbounds i8, ptr %50, i64 19544
  %513 = load ptr, ptr %512, align 8, !tbaa !169
  %.not629 = icmp eq ptr %513, null
  br i1 %.not629, label %516, label %514

514:                                              ; preds = %508
  %515 = load i32, ptr %513, align 8, !tbaa !152
  br label %516

516:                                              ; preds = %508, %514
  %517 = phi i32 [ %515, %514 ], [ 0, %508 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.474, i32 noundef %509, i32 noundef %511, i32 noundef %517)
  %518 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.475)
  br i1 %518, label %519, label %566

519:                                              ; preds = %516
  %520 = load atomic i8, ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports acquire, align 8
  %521 = icmp eq i8 %520, 0
  br i1 %521, label %522, label %526, !prof !170

522:                                              ; preds = %519
  %523 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #11
  %.not630 = icmp eq i32 %523, 0
  br i1 %.not630, label %526, label %524

524:                                              ; preds = %522
  call void @_ZN8ImVectorIP14ImGuiViewportPEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  %525 = 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 %526

526:                                              ; preds = %524, %522, %519
  %527 = load i32, ptr %424, align 8, !tbaa !155
  call void @_ZN8ImVectorIP14ImGuiViewportPE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 noundef %527)
  %528 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i64 8), align 8, !tbaa !171
  %529 = getelementptr inbounds i8, ptr %50, i64 19512
  %530 = load ptr, ptr %529, align 8, !tbaa !172
  %531 = call noundef i32 @_ZNK8ImVectorIP14ImGuiViewportPE13size_in_bytesEv(ptr noundef nonnull align 8 dereferenceable(16) %424)
  %532 = sext i32 %531 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %528, ptr align 8 %530, i64 %532, i1 false)
  %533 = load i32, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, align 8, !tbaa !173
  %534 = icmp sgt i32 %533, 1
  br i1 %534, label %535, label %538

535:                                              ; preds = %526
  %536 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i64 8), align 8, !tbaa !171
  %537 = zext nneg i32 %533 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %536, i64 noundef %537, i64 noundef 8, ptr noundef nonnull @_ZL39ViewportComparerByLastFocusedStampCountPKvS0_)
  br label %538

538:                                              ; preds = %535, %526
  %539 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  %540 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  %.not631726 = icmp eq ptr %539, %540
  br i1 %.not631726, label %._crit_edge730, label %.lr.ph729

.lr.ph729:                                        ; preds = %538
  %541 = getelementptr inbounds i8, ptr %50, i64 14696
  br label %542

._crit_edge730:                                   ; preds = %563, %538
  call void @_ZN5ImGui7TreePopEv()
  br label %566

542:                                              ; preds = %.lr.ph729, %563
  %.0563727 = phi ptr [ %539, %.lr.ph729 ], [ %565, %563 ]
  %543 = load ptr, ptr %.0563727, align 8, !tbaa !5
  %544 = getelementptr inbounds i8, ptr %543, i64 104
  %545 = load i32, ptr %544, align 8, !tbaa !151
  %546 = load i32, ptr %543, align 8, !tbaa !152
  %547 = getelementptr inbounds i8, ptr %543, i64 112
  %548 = load i32, ptr %547, align 8, !tbaa !174
  %549 = load ptr, ptr %541, align 8, !tbaa !175
  %.not667 = icmp eq ptr %549, null
  br i1 %.not667, label %556, label %550

550:                                              ; preds = %542
  %551 = getelementptr inbounds i8, ptr %543, i64 88
  %552 = load i8, ptr %551, align 8, !tbaa !176, !range !13, !noundef !14
  %553 = trunc nuw i8 %552 to i1
  br i1 %553, label %554, label %556

554:                                              ; preds = %550
  %555 = call noundef zeroext i1 %549(ptr noundef nonnull %543)
  %.str.477..str.90 = select i1 %555, ptr @.str.477, ptr @.str.90
  br label %556

556:                                              ; preds = %542, %550, %554
  %557 = phi ptr [ %.str.477..str.90, %554 ], [ @.str.191, %550 ], [ @.str.191, %542 ]
  %558 = getelementptr inbounds i8, ptr %543, i64 96
  %559 = load ptr, ptr %558, align 8, !tbaa !177
  %.not668 = icmp eq ptr %559, null
  br i1 %.not668, label %563, label %560

560:                                              ; preds = %556
  %561 = getelementptr inbounds i8, ptr %559, i64 8
  %562 = load ptr, ptr %561, align 8, !tbaa !120
  br label %563

563:                                              ; preds = %556, %560
  %564 = phi ptr [ %562, %560 ], [ @.str.191, %556 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.476, i32 noundef %545, i32 noundef %546, i32 noundef %548, ptr noundef nonnull %557, ptr noundef %564)
  %565 = getelementptr inbounds i8, ptr %.0563727, i64 8
  %.not631 = icmp eq ptr %565, %540
  br i1 %.not631, label %._crit_edge730, label %542

566:                                              ; preds = %._crit_edge730, %516
  %567 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %424)
  %568 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %424)
  %.not632731 = icmp eq ptr %567, %568
  br i1 %.not632731, label %._crit_edge735, label %.lr.ph734

._crit_edge735:                                   ; preds = %.lr.ph734, %566
  call void @_ZN5ImGui7TreePopEv()
  br label %571

.lr.ph734:                                        ; preds = %566, %.lr.ph734
  %.0565732 = phi ptr [ %570, %.lr.ph734 ], [ %567, %566 ]
  %569 = load ptr, ptr %.0565732, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %569)
  %570 = getelementptr inbounds i8, ptr %.0565732, i64 8
  %.not632 = icmp eq ptr %570, %568
  br i1 %.not632, label %._crit_edge735, label %.lr.ph734

571:                                              ; preds = %._crit_edge735, %453
  %572 = getelementptr inbounds i8, ptr %50, i64 19448
  %573 = load i32, ptr %572, align 8, !tbaa !178
  %574 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.478, ptr noundef nonnull @.str.479, i32 noundef %573)
  br i1 %574, label %575, label %607

575:                                              ; preds = %571
  %576 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %572)
  %577 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %572)
  %.not633736 = icmp eq ptr %576, %577
  br i1 %.not633736, label %._crit_edge740, label %.lr.ph739

._crit_edge740:                                   ; preds = %604, %575
  call void @_ZN5ImGui7TreePopEv()
  br label %607

.lr.ph739:                                        ; preds = %575, %604
  %.0567737 = phi ptr [ %606, %604 ], [ %576, %575 ]
  %578 = getelementptr inbounds i8, ptr %.0567737, i64 8
  %579 = load ptr, ptr %578, align 8, !tbaa !179
  %580 = load i32, ptr %.0567737, align 8, !tbaa !181
  %.not664 = icmp eq ptr %579, null
  br i1 %.not664, label %.thread677, label %581

581:                                              ; preds = %.lr.ph739
  %582 = getelementptr inbounds i8, ptr %579, i64 8
  %583 = load ptr, ptr %582, align 8, !tbaa !120
  %584 = getelementptr inbounds i8, ptr %579, i64 20
  %585 = load i32, ptr %584, align 4, !tbaa !182
  %.fr682 = freeze i32 %585
  %586 = and i32 %.fr682, 16777216
  %.not681 = icmp eq i32 %586, 0
  %spec.select = select i1 %.not681, ptr @.str.16, ptr @.str.482
  %587 = and i32 %.fr682, 268435456
  %.not683 = icmp eq i32 %587, 0
  %spec.select679 = select i1 %.not683, ptr @.str.16, ptr @.str.483
  br label %.thread677

.thread677:                                       ; preds = %581, %.lr.ph739
  %588 = phi ptr [ @.str.481, %.lr.ph739 ], [ %583, %581 ]
  %589 = phi ptr [ @.str.16, %.lr.ph739 ], [ %spec.select, %581 ]
  %590 = phi ptr [ @.str.16, %.lr.ph739 ], [ %spec.select679, %581 ]
  %591 = getelementptr inbounds i8, ptr %.0567737, i64 16
  %592 = load ptr, ptr %591, align 8, !tbaa !183
  %.not665 = icmp eq ptr %592, null
  br i1 %.not665, label %596, label %593

593:                                              ; preds = %.thread677
  %594 = getelementptr inbounds i8, ptr %592, i64 8
  %595 = load ptr, ptr %594, align 8, !tbaa !120
  br label %596

596:                                              ; preds = %.thread677, %593
  %597 = phi ptr [ %595, %593 ], [ @.str.481, %.thread677 ]
  br i1 %.not664, label %604, label %598

598:                                              ; preds = %596
  %599 = getelementptr inbounds i8, ptr %579, i64 944
  %600 = load ptr, ptr %599, align 8, !tbaa !184
  %.not666 = icmp eq ptr %600, null
  br i1 %.not666, label %604, label %601

601:                                              ; preds = %598
  %602 = getelementptr inbounds i8, ptr %600, i64 8
  %603 = load ptr, ptr %602, align 8, !tbaa !120
  br label %604

604:                                              ; preds = %596, %598, %601
  %605 = phi ptr [ %603, %601 ], [ @.str.481, %598 ], [ @.str.481, %596 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.480, i32 noundef %580, ptr noundef %588, ptr noundef nonnull %589, ptr noundef nonnull %590, ptr noundef %597, ptr noundef %605)
  %606 = getelementptr inbounds i8, ptr %.0567737, i64 56
  %.not633 = icmp eq ptr %606, %577
  br i1 %.not633, label %._crit_edge740, label %.lr.ph739

607:                                              ; preds = %._crit_edge740, %571
  %608 = getelementptr inbounds i8, ptr %50, i64 20456
  %609 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %608)
  %610 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.484, ptr noundef nonnull @.str.485, i32 noundef %609)
  br i1 %610, label %.preheader692, label %619

.preheader692:                                    ; preds = %607
  %611 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %608)
  %612 = icmp sgt i32 %611, 0
  br i1 %612, label %.lr.ph742, label %._crit_edge743

._crit_edge743:                                   ; preds = %615, %.preheader692
  call void @_ZN5ImGui7TreePopEv()
  br label %619

.lr.ph742:                                        ; preds = %.preheader692, %615
  %.0572741 = phi i32 [ %616, %615 ], [ 0, %.preheader692 ]
  %613 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %608, i32 noundef %.0572741)
  %.not663 = icmp eq ptr %613, null
  br i1 %.not663, label %615, label %614

614:                                              ; preds = %.lr.ph742
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef nonnull %613)
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef nonnull %613, ptr noundef nonnull @.str.486)
  call void @_ZN5ImGui5PopIDEv()
  br label %615

615:                                              ; preds = %614, %.lr.ph742
  %616 = add nuw nsw i32 %.0572741, 1
  %617 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %608)
  %618 = icmp slt i32 %616, %617
  br i1 %618, label %.lr.ph742, label %._crit_edge743, !llvm.loop !185

619:                                              ; preds = %._crit_edge743, %607
  %620 = getelementptr inbounds i8, ptr %50, i64 20376
  %621 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %620)
  %622 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.487, ptr noundef nonnull @.str.488, i32 noundef %621)
  br i1 %622, label %.preheader691, label %631

.preheader691:                                    ; preds = %619
  %623 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %620)
  %624 = icmp sgt i32 %623, 0
  br i1 %624, label %.lr.ph745, label %._crit_edge746

._crit_edge746:                                   ; preds = %627, %.preheader691
  call void @_ZN5ImGui7TreePopEv()
  br label %631

.lr.ph745:                                        ; preds = %.preheader691, %627
  %.0573744 = phi i32 [ %628, %627 ], [ 0, %.preheader691 ]
  %625 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %620, i32 noundef %.0573744)
  %.not662 = icmp eq ptr %625, null
  br i1 %.not662, label %627, label %626

626:                                              ; preds = %.lr.ph745
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef nonnull %625)
  br label %627

627:                                              ; preds = %626, %.lr.ph745
  %628 = add nuw nsw i32 %.0573744, 1
  %629 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %620)
  %630 = icmp slt i32 %628, %629
  br i1 %630, label %.lr.ph745, label %._crit_edge746, !llvm.loop !186

631:                                              ; preds = %._crit_edge746, %619
  %632 = getelementptr inbounds i8, ptr %50, i64 56
  %633 = load ptr, ptr %632, align 8, !tbaa !187
  %634 = getelementptr inbounds i8, ptr %633, i64 88
  %635 = load i32, ptr %634, align 8, !tbaa !188
  %636 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.489, ptr noundef nonnull @.str.490, i32 noundef %635)
  br i1 %636, label %637, label %638

637:                                              ; preds = %631
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef nonnull %633)
  call void @_ZN5ImGui7TreePopEv()
  br label %638

638:                                              ; preds = %637, %631
  %639 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.491)
  br i1 %639, label %640, label %642

640:                                              ; preds = %638
  %641 = getelementptr inbounds i8, ptr %50, i64 20568
  call void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef nonnull %641)
  call void @_ZN5ImGui7TreePopEv()
  br label %642

642:                                              ; preds = %640, %638
  %643 = getelementptr inbounds i8, ptr %50, i64 24648
  %644 = load i8, ptr %643, align 8, !tbaa !116
  %.not634 = icmp ne i8 %644, 0
  %645 = zext i1 %.not634 to i32
  %646 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.492, ptr noundef nonnull @.str.493, i32 noundef %645)
  br i1 %646, label %647, label %649

647:                                              ; preds = %642
  %648 = getelementptr inbounds i8, ptr %50, i64 24624
  call void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef nonnull %648)
  call void @_ZN5ImGui7TreePopEv()
  br label %649

649:                                              ; preds = %647, %642
  %650 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.336)
  br i1 %650, label %651, label %678

651:                                              ; preds = %649
  %652 = getelementptr inbounds i8, ptr %50, i64 24768
  %653 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.494, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only)
  %654 = getelementptr inbounds i8, ptr %50, i64 25148
  %655 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.495, ptr noundef nonnull %654)
  %656 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.496)
  br i1 %656, label %657, label %658

657:                                              ; preds = %651
  call void @_ZN5ImGui21DockContextClearNodesEP12ImGuiContextjb(ptr noundef nonnull %50, i32 noundef 0, i1 noundef zeroext true)
  br label %658

658:                                              ; preds = %657, %651
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %659 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.497)
  br i1 %659, label %660, label %662

660:                                              ; preds = %658
  %661 = getelementptr inbounds i8, ptr %50, i64 24816
  store i8 1, ptr %661, align 8, !tbaa !192
  br label %662

662:                                              ; preds = %660, %658
  %663 = load i32, ptr %652, align 8, !tbaa !193
  %664 = icmp sgt i32 %663, 0
  br i1 %664, label %.lr.ph749, label %._crit_edge750

._crit_edge750:                                   ; preds = %674, %662
  call void @_ZN5ImGui7TreePopEv()
  br label %678

.lr.ph749:                                        ; preds = %662, %674
  %.0578747 = phi i32 [ %675, %674 ], [ 0, %662 ]
  %665 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN8ImVectorIN12ImGuiStorage16ImGuiStoragePairEEixEi(ptr noundef nonnull align 8 dereferenceable(16) %652, i32 noundef %.0578747)
  %666 = getelementptr inbounds i8, ptr %665, i64 8
  %667 = load ptr, ptr %666, align 8, !tbaa !116
  %.not661 = icmp eq ptr %667, null
  br i1 %.not661, label %674, label %668

668:                                              ; preds = %.lr.ph749
  %669 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only, align 1, !tbaa !194, !range !13, !noundef !14
  %670 = trunc nuw i8 %669 to i1
  br i1 %670, label %671, label %673

671:                                              ; preds = %668
  %672 = call noundef zeroext i1 @_ZNK13ImGuiDockNode10IsRootNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %667)
  br i1 %672, label %673, label %674

673:                                              ; preds = %671, %668
  call void @_ZN5ImGui17DebugNodeDockNodeEP13ImGuiDockNodePKc(ptr noundef nonnull %667, ptr noundef nonnull @.str.498)
  br label %674

674:                                              ; preds = %671, %673, %.lr.ph749
  %675 = add nuw nsw i32 %.0578747, 1
  %676 = load i32, ptr %652, align 8, !tbaa !193
  %677 = icmp slt i32 %675, %676
  br i1 %677, label %.lr.ph749, label %._crit_edge750, !llvm.loop !195

678:                                              ; preds = %._crit_edge750, %649
  %679 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.499)
  br i1 %679, label %680, label %777

680:                                              ; preds = %678
  %681 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.500)
  br i1 %681, label %682, label %683

682:                                              ; preds = %680
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %683

683:                                              ; preds = %682, %680
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %684 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.501)
  br i1 %684, label %685, label %687

685:                                              ; preds = %683
  %686 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %687

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

689:                                              ; preds = %687
  %690 = getelementptr inbounds i8, ptr %50, i64 32
  %691 = load ptr, ptr %690, align 8, !tbaa !196
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %691)
  br label %692

692:                                              ; preds = %689, %687
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %693 = getelementptr inbounds i8, ptr %50, i64 32
  %694 = load ptr, ptr %693, align 8, !tbaa !196
  %.not635 = icmp eq ptr %694, null
  br i1 %.not635, label %696, label %695

695:                                              ; preds = %692
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.503, ptr noundef nonnull %694)
  br label %697

696:                                              ; preds = %692
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef nonnull @.str.167, ptr noundef null)
  br label %697

697:                                              ; preds = %696, %695
  %698 = getelementptr inbounds i8, ptr %50, i64 131
  %699 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.504, ptr noundef nonnull %698)
  %700 = getelementptr inbounds i8, ptr %50, i64 24836
  %701 = load float, ptr %700, align 4, !tbaa !197
  %702 = fpext float %701 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.505, double noundef %702)
  %703 = getelementptr inbounds i8, ptr %50, i64 24856
  %704 = load i32, ptr %703, align 8, !tbaa !198
  %705 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.506, ptr noundef nonnull @.str.507, i32 noundef %704)
  br i1 %705, label %706, label %711

706:                                              ; preds = %697
  %707 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %703)
  %708 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %703)
  %.not636751 = icmp eq ptr %707, %708
  br i1 %.not636751, label %._crit_edge755, label %.lr.ph754

._crit_edge755:                                   ; preds = %.lr.ph754, %706
  call void @_ZN5ImGui7TreePopEv()
  br label %711

.lr.ph754:                                        ; preds = %706, %.lr.ph754
  %.0580752 = phi ptr [ %710, %.lr.ph754 ], [ %707, %706 ]
  %709 = load ptr, ptr %.0580752, align 8, !tbaa !199
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.503, ptr noundef %709)
  %710 = getelementptr inbounds i8, ptr %.0580752, i64 72
  %.not636 = icmp eq ptr %710, %708
  br i1 %.not636, label %._crit_edge755, label %.lr.ph754

711:                                              ; preds = %._crit_edge755, %697
  %712 = getelementptr inbounds i8, ptr %50, i64 24872
  %713 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %712)
  %714 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.508, ptr noundef nonnull @.str.509, i32 noundef %713)
  br i1 %714, label %715, label %718

715:                                              ; preds = %711
  %716 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %712)
  %.not637756 = icmp eq ptr %716, null
  br i1 %.not637756, label %._crit_edge760, label %.lr.ph759

._crit_edge760:                                   ; preds = %.lr.ph759, %715
  call void @_ZN5ImGui7TreePopEv()
  br label %718

.lr.ph759:                                        ; preds = %715, %.lr.ph759
  %.0581757 = phi ptr [ %717, %.lr.ph759 ], [ %716, %715 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0581757)
  %717 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %712, ptr noundef nonnull %.0581757)
  %.not637 = icmp eq ptr %717, null
  br i1 %.not637, label %._crit_edge760, label %.lr.ph759, !llvm.loop !201

718:                                              ; preds = %._crit_edge760, %711
  %719 = getelementptr inbounds i8, ptr %50, i64 24888
  %720 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %719)
  %721 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.510, ptr noundef nonnull @.str.511, i32 noundef %720)
  br i1 %721, label %722, label %725

722:                                              ; preds = %718
  %723 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %719)
  %.not638761 = icmp eq ptr %723, null
  br i1 %.not638761, label %._crit_edge765, label %.lr.ph764

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

.lr.ph764:                                        ; preds = %722, %.lr.ph764
  %.0582762 = phi ptr [ %724, %.lr.ph764 ], [ %723, %722 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0582762)
  %724 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %719, ptr noundef nonnull %.0582762)
  %.not638 = icmp eq ptr %724, null
  br i1 %.not638, label %._crit_edge765, label %.lr.ph764, !llvm.loop !202

725:                                              ; preds = %._crit_edge765, %718
  %726 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.512, ptr noundef nonnull @.str.513)
  br i1 %726, label %727, label %765

727:                                              ; preds = %725
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.514)
  %728 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %712)
  %.not639766 = icmp eq ptr %728, null
  br i1 %.not639766, label %._crit_edge770, label %.lr.ph769

._crit_edge770:                                   ; preds = %740, %727
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.516)
  %729 = getelementptr inbounds i8, ptr %50, i64 24800
  %730 = load i32, ptr %729, align 8, !tbaa !203
  %731 = icmp sgt i32 %730, 0
  br i1 %731, label %.lr.ph773, label %._crit_edge774

.lr.ph769:                                        ; preds = %727, %740
  %.0583767 = phi ptr [ %741, %740 ], [ %728, %727 ]
  %732 = getelementptr inbounds i8, ptr %.0583767, i64 20
  %733 = load i32, ptr %732, align 4, !tbaa !204
  %.not660 = icmp eq i32 %733, 0
  br i1 %.not660, label %740, label %734

734:                                              ; preds = %.lr.ph769
  %735 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(34) %.0583767)
  %736 = load i32, ptr %732, align 4, !tbaa !204
  %737 = getelementptr inbounds i8, ptr %.0583767, i64 28
  %738 = load i16, ptr %737, align 4, !tbaa !206
  %739 = sext i16 %738 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.515, ptr noundef %735, i32 noundef %736, i32 noundef %739)
  br label %740

740:                                              ; preds = %.lr.ph769, %734
  %741 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %712, ptr noundef nonnull %.0583767)
  %.not639 = icmp eq ptr %741, null
  br i1 %.not639, label %._crit_edge770, label %.lr.ph769, !llvm.loop !207

._crit_edge774:                                   ; preds = %755, %._crit_edge770
  call void @_ZN5ImGui7TreePopEv()
  br label %765

.lr.ph773:                                        ; preds = %._crit_edge770, %755
  %.0585771 = phi i32 [ %762, %755 ], [ 0, %._crit_edge770 ]
  %742 = call noundef nonnull align 4 dereferenceable(36) ptr @_ZN8ImVectorI21ImGuiDockNodeSettingsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %729, i32 noundef %.0585771)
  %743 = getelementptr inbounds i8, ptr %742, i64 12
  %744 = load i32, ptr %743, align 4, !tbaa !208
  %.not655 = icmp eq i32 %744, 0
  br i1 %.not655, label %755, label %745

745:                                              ; preds = %.lr.ph773
  %746 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %744)
  %.not656 = icmp eq ptr %746, null
  br i1 %.not656, label %750, label %747

747:                                              ; preds = %745
  %748 = getelementptr inbounds i8, ptr %746, i64 8
  %749 = load ptr, ptr %748, align 8, !tbaa !120
  br label %755

750:                                              ; preds = %745
  %751 = load i32, ptr %743, align 4, !tbaa !208
  %752 = call noundef ptr @_ZN5ImGui22FindWindowSettingsByIDEj(i32 noundef %751)
  %.not657 = icmp eq ptr %752, null
  br i1 %.not657, label %755, label %753

753:                                              ; preds = %750
  %754 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(34) %752)
  br label %755

755:                                              ; preds = %747, %753, %750, %.lr.ph773
  %.2 = phi ptr [ null, %.lr.ph773 ], [ %749, %747 ], [ %754, %753 ], [ null, %750 ]
  %756 = load i32, ptr %742, align 4, !tbaa !210
  %757 = getelementptr inbounds i8, ptr %742, i64 4
  %758 = load i32, ptr %757, align 4, !tbaa !211
  %759 = load i32, ptr %743, align 4, !tbaa !208
  %.not658 = icmp eq ptr %.2, null
  %.not659 = icmp eq i32 %759, 0
  %760 = select i1 %.not659, ptr @.str.16, ptr @.str.191
  %761 = select i1 %.not658, ptr %760, ptr %.2
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.517, i32 noundef %756, i32 noundef %758, i32 noundef %759, ptr noundef nonnull %761)
  %762 = add nuw nsw i32 %.0585771, 1
  %763 = load i32, ptr %729, align 8, !tbaa !203
  %764 = icmp slt i32 %762, %763
  br i1 %764, label %.lr.ph773, label %._crit_edge774, !llvm.loop !212

765:                                              ; preds = %._crit_edge774, %725
  %766 = getelementptr inbounds i8, ptr %50, i64 24840
  %767 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %766)
  %768 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.518, ptr noundef nonnull @.str.519, i32 noundef %767)
  br i1 %768, label %769, label %776

769:                                              ; preds = %765
  %770 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %766)
  %771 = load i32, ptr %766, align 8, !tbaa !213
  %772 = sext i32 %771 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #11
  %773 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %774 = fmul float %773, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0xB810000000000000, float noundef %774)
  %775 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.520, ptr noundef %770, i64 noundef %772, ptr noundef nonnull align 4 dereferenceable(8) %23, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  call void @_ZN5ImGui7TreePopEv()
  br label %776

776:                                              ; preds = %769, %765
  call void @_ZN5ImGui7TreePopEv()
  br label %777

777:                                              ; preds = %776, %678
  %778 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.521)
  br i1 %778, label %779, label %869

779:                                              ; preds = %777
  %780 = load i32, ptr %82, align 4, !tbaa !214
  %781 = load i32, ptr %84, align 4, !tbaa !215
  %782 = sub nsw i32 %780, %781
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.522, i32 noundef %782)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.523)
  %783 = getelementptr inbounds i8, ptr %50, i64 25212
  %784 = getelementptr inbounds i8, ptr %50, i64 25208
  %785 = load i16, ptr %784, align 4, !tbaa !216
  %786 = sext i16 %785 to i32
  %787 = add nsw i32 %786, 1
  %788 = srem i32 %787, 6
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %783, i64 0, i64 %789
  %791 = load i32, ptr %790, align 4, !tbaa !217
  %792 = getelementptr inbounds i8, ptr %790, i64 4
  %793 = load i16, ptr %792, align 4, !tbaa !219
  %794 = sext i16 %793 to i32
  %795 = getelementptr inbounds i8, ptr %790, i64 6
  %796 = load i16, ptr %795, align 2, !tbaa !220
  %797 = sext i16 %796 to i32
  %798 = sub nsw i32 %794, %797
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.524, i32 noundef %791, i32 noundef %798, i32 noundef %794, i32 noundef %797, ptr noundef nonnull @.str.16)
  %799 = load i16, ptr %784, align 4, !tbaa !216
  %800 = sext i16 %799 to i32
  %801 = add nsw i32 %800, 2
  %802 = srem i32 %801, 6
  %803 = sext i32 %802 to i64
  %804 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %783, i64 0, i64 %803
  %805 = load i32, ptr %804, align 4, !tbaa !217
  %806 = getelementptr inbounds i8, ptr %804, i64 4
  %807 = load i16, ptr %806, align 4, !tbaa !219
  %808 = sext i16 %807 to i32
  %809 = getelementptr inbounds i8, ptr %804, i64 6
  %810 = load i16, ptr %809, align 2, !tbaa !220
  %811 = sext i16 %810 to i32
  %812 = sub nsw i32 %808, %811
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.524, i32 noundef %805, i32 noundef %812, i32 noundef %808, i32 noundef %811, ptr noundef nonnull @.str.16)
  %813 = load i16, ptr %784, align 4, !tbaa !216
  %814 = sext i16 %813 to i32
  %815 = add nsw i32 %814, 3
  %816 = srem i32 %815, 6
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %783, i64 0, i64 %817
  %819 = load i32, ptr %818, align 4, !tbaa !217
  %820 = getelementptr inbounds i8, ptr %818, i64 4
  %821 = load i16, ptr %820, align 4, !tbaa !219
  %822 = sext i16 %821 to i32
  %823 = getelementptr inbounds i8, ptr %818, i64 6
  %824 = load i16, ptr %823, align 2, !tbaa !220
  %825 = sext i16 %824 to i32
  %826 = sub nsw i32 %822, %825
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.524, i32 noundef %819, i32 noundef %826, i32 noundef %822, i32 noundef %825, ptr noundef nonnull @.str.16)
  %827 = load i16, ptr %784, align 4, !tbaa !216
  %828 = sext i16 %827 to i32
  %829 = add nsw i32 %828, 4
  %830 = srem i32 %829, 6
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %783, i64 0, i64 %831
  %833 = load i32, ptr %832, align 4, !tbaa !217
  %834 = getelementptr inbounds i8, ptr %832, i64 4
  %835 = load i16, ptr %834, align 4, !tbaa !219
  %836 = sext i16 %835 to i32
  %837 = getelementptr inbounds i8, ptr %832, i64 6
  %838 = load i16, ptr %837, align 2, !tbaa !220
  %839 = sext i16 %838 to i32
  %840 = sub nsw i32 %836, %839
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.524, i32 noundef %833, i32 noundef %840, i32 noundef %836, i32 noundef %839, ptr noundef nonnull @.str.16)
  %841 = load i16, ptr %784, align 4, !tbaa !216
  %842 = sext i16 %841 to i32
  %843 = add nsw i32 %842, 5
  %844 = srem i32 %843, 6
  %845 = sext i32 %844 to i64
  %846 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %783, i64 0, i64 %845
  %847 = load i32, ptr %846, align 4, !tbaa !217
  %848 = getelementptr inbounds i8, ptr %846, i64 4
  %849 = load i16, ptr %848, align 4, !tbaa !219
  %850 = sext i16 %849 to i32
  %851 = getelementptr inbounds i8, ptr %846, i64 6
  %852 = load i16, ptr %851, align 2, !tbaa !220
  %853 = sext i16 %852 to i32
  %854 = sub nsw i32 %850, %853
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.524, i32 noundef %847, i32 noundef %854, i32 noundef %850, i32 noundef %853, ptr noundef nonnull @.str.16)
  %855 = load i16, ptr %784, align 4, !tbaa !216
  %856 = sext i16 %855 to i32
  %857 = add nsw i32 %856, 6
  %858 = srem i32 %857, 6
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %783, i64 0, i64 %859
  %861 = load i32, ptr %860, align 4, !tbaa !217
  %862 = getelementptr inbounds i8, ptr %860, i64 4
  %863 = load i16, ptr %862, align 4, !tbaa !219
  %864 = sext i16 %863 to i32
  %865 = getelementptr inbounds i8, ptr %860, i64 6
  %866 = load i16, ptr %865, align 2, !tbaa !220
  %867 = sext i16 %866 to i32
  %868 = sub nsw i32 %864, %867
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.524, i32 noundef %861, i32 noundef %868, i32 noundef %864, i32 noundef %867, ptr noundef nonnull @.str.525)
  call void @_ZN5ImGui7TreePopEv()
  br label %869

869:                                              ; preds = %779, %777
  %870 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.526)
  br i1 %870, label %871, label %1108

871:                                              ; preds = %869
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.527)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.528)
  br label %873

872:                                              ; preds = %885
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.531)
  br label %888

873:                                              ; preds = %871, %885
  %.0577776 = phi i32 [ 0, %871 ], [ %886, %885 ]
  %874 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0577776)
  br i1 %874, label %885, label %875

875:                                              ; preds = %873
  %876 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %.0577776)
  br i1 %876, label %877, label %885

877:                                              ; preds = %875
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %878 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0577776)
  %879 = select i1 %878, ptr @.str.503, ptr @.str.529
  %880 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0577776)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %879, ptr noundef %880, i32 noundef %.0577776)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %881 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %.0577776)
  %882 = getelementptr inbounds i8, ptr %881, i64 4
  %883 = load float, ptr %882, align 4, !tbaa !221
  %884 = fpext float %883 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.530, double noundef %884)
  br label %885

885:                                              ; preds = %873, %875, %877
  %886 = add nuw nsw i32 %.0577776, 1
  %exitcond804.not = icmp eq i32 %886, 666
  br i1 %exitcond804.not, label %872, label %873, !llvm.loop !223

887:                                              ; preds = %896
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.532)
  br label %918

888:                                              ; preds = %872, %896
  %.0576777 = phi i32 [ 0, %872 ], [ %897, %896 ]
  %889 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0576777)
  br i1 %889, label %896, label %890

890:                                              ; preds = %888
  %891 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %.0576777, i1 noundef zeroext true)
  br i1 %891, label %892, label %896

892:                                              ; preds = %890
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %893 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0576777)
  %894 = select i1 %893, ptr @.str.503, ptr @.str.529
  %895 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0576777)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %894, ptr noundef %895, i32 noundef %.0576777)
  br label %896

896:                                              ; preds = %888, %890, %892
  %897 = add nuw nsw i32 %.0576777, 1
  %exitcond805.not = icmp eq i32 %897, 666
  br i1 %exitcond805.not, label %887, label %888, !llvm.loop !224

898:                                              ; preds = %926
  %899 = getelementptr inbounds i8, ptr %50, i64 3696
  %900 = load i8, ptr %899, align 8, !tbaa !225, !range !13, !noundef !14
  %901 = trunc nuw i8 %900 to i1
  %902 = select i1 %901, ptr @.str.534, ptr @.str.16
  %903 = getelementptr inbounds i8, ptr %50, i64 3697
  %904 = load i8, ptr %903, align 1, !tbaa !226, !range !13, !noundef !14
  %905 = trunc nuw i8 %904 to i1
  %906 = select i1 %905, ptr @.str.535, ptr @.str.16
  %907 = getelementptr inbounds i8, ptr %50, i64 3698
  %908 = load i8, ptr %907, align 2, !tbaa !227, !range !13, !noundef !14
  %909 = trunc nuw i8 %908 to i1
  %910 = select i1 %909, ptr @.str.536, ptr @.str.16
  %911 = getelementptr inbounds i8, ptr %50, i64 3699
  %912 = load i8, ptr %911, align 1, !tbaa !228, !range !13, !noundef !14
  %913 = trunc nuw i8 %912 to i1
  %914 = select i1 %913, ptr @.str.537, ptr @.str.16
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.533, ptr noundef nonnull %902, ptr noundef nonnull %906, ptr noundef nonnull %910, ptr noundef nonnull %914)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.538)
  %915 = getelementptr inbounds i8, ptr %50, i64 14616
  %916 = load i32, ptr %915, align 8, !tbaa !229
  %917 = icmp sgt i32 %916, 0
  br i1 %917, label %.lr.ph781, label %._crit_edge782

918:                                              ; preds = %887, %926
  %.0575778 = phi i32 [ 0, %887 ], [ %927, %926 ]
  %919 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0575778)
  br i1 %919, label %926, label %920

920:                                              ; preds = %918
  %921 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %.0575778)
  br i1 %921, label %922, label %926

922:                                              ; preds = %920
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %923 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0575778)
  %924 = select i1 %923, ptr @.str.503, ptr @.str.529
  %925 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0575778)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %924, ptr noundef %925, i32 noundef %.0575778)
  br label %926

926:                                              ; preds = %918, %920, %922
  %927 = add nuw nsw i32 %.0575778, 1
  %exitcond806.not = icmp eq i32 %927, 666
  br i1 %exitcond806.not, label %898, label %918, !llvm.loop !230

._crit_edge782:                                   ; preds = %.lr.ph781, %898
  %928 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %928)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.540)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %929 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %929, label %939, label %946

.lr.ph781:                                        ; preds = %898, %.lr.ph781
  %.0574779 = phi i32 [ %936, %.lr.ph781 ], [ 0, %898 ]
  %930 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %915, i32 noundef %.0574779)
  %931 = load i16, ptr %930, align 2, !tbaa !231
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %932 = zext i16 %931 to i32
  %933 = add i16 %931, -33
  %or.cond4 = icmp ult i16 %933, 223
  %sext = shl i32 %932, 24
  %934 = ashr exact i32 %sext, 24
  %935 = select i1 %or.cond4, i32 %934, i32 63
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.539, i32 noundef %935, i32 noundef %932)
  %936 = add nuw nsw i32 %.0574779, 1
  %937 = load i32, ptr %915, align 8, !tbaa !229
  %938 = icmp slt i32 %936, %937
  br i1 %938, label %.lr.ph781, label %._crit_edge782, !llvm.loop !232

939:                                              ; preds = %._crit_edge782
  %940 = getelementptr inbounds i8, ptr %50, i64 3664
  %941 = load float, ptr %940, align 8, !tbaa !233
  %942 = fpext float %941 to double
  %943 = getelementptr inbounds i8, ptr %50, i64 3668
  %944 = load float, ptr %943, align 4, !tbaa !234
  %945 = fpext float %944 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.541, double noundef %942, double noundef %945)
  br label %947

946:                                              ; preds = %._crit_edge782
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.542)
  br label %947

947:                                              ; preds = %946, %939
  %948 = getelementptr inbounds i8, ptr %50, i64 240
  %949 = load float, ptr %948, align 8, !tbaa !235
  %950 = fpext float %949 to double
  %951 = getelementptr inbounds i8, ptr %50, i64 244
  %952 = load float, ptr %951, align 4, !tbaa !236
  %953 = fpext float %952 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.543, double noundef %950, double noundef %953)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.544)
  %954 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 0)
  br i1 %954, label %955, label %959

955:                                              ; preds = %947
  %956 = getelementptr inbounds i8, ptr %50, i64 14504
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %957 = load float, ptr %956, align 4, !tbaa !237
  %958 = fpext float %957 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.545, i32 noundef 0, double noundef %958)
  br label %959

959:                                              ; preds = %947, %955
  %960 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 1)
  br i1 %960, label %961, label %965

961:                                              ; preds = %959
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %962 = getelementptr inbounds i8, ptr %50, i64 14508
  %963 = load float, ptr %962, align 4, !tbaa !237
  %964 = fpext float %963 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.545, i32 noundef 1, double noundef %964)
  br label %965

965:                                              ; preds = %961, %959
  %966 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 2)
  br i1 %966, label %967, label %971

967:                                              ; preds = %965
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %968 = getelementptr inbounds i8, ptr %50, i64 14512
  %969 = load float, ptr %968, align 4, !tbaa !237
  %970 = fpext float %969 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.545, i32 noundef 2, double noundef %970)
  br label %971

971:                                              ; preds = %967, %965
  %972 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 3)
  br i1 %972, label %973, label %977

973:                                              ; preds = %971
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %974 = getelementptr inbounds i8, ptr %50, i64 14516
  %975 = load float, ptr %974, align 4, !tbaa !237
  %976 = fpext float %975 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.545, i32 noundef 3, double noundef %976)
  br label %977

977:                                              ; preds = %973, %971
  %978 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 4)
  br i1 %978, label %979, label %983

979:                                              ; preds = %977
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %980 = getelementptr inbounds i8, ptr %50, i64 14520
  %981 = load float, ptr %980, align 4, !tbaa !237
  %982 = fpext float %981 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.545, i32 noundef 4, double noundef %982)
  br label %983

983:                                              ; preds = %979, %977
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.546)
  %984 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
  br i1 %984, label %985, label %989

985:                                              ; preds = %983
  %986 = getelementptr inbounds i8, ptr %50, i64 14466
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %987 = load i16, ptr %986, align 2, !tbaa !231
  %988 = zext i16 %987 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.547, i32 noundef 0, i32 noundef %988)
  br label %989

989:                                              ; preds = %983, %985
  %990 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 1, i1 noundef zeroext false)
  br i1 %990, label %991, label %995

991:                                              ; preds = %989
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %992 = getelementptr inbounds i8, ptr %50, i64 14468
  %993 = load i16, ptr %992, align 2, !tbaa !231
  %994 = zext i16 %993 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.547, i32 noundef 1, i32 noundef %994)
  br label %995

995:                                              ; preds = %991, %989
  %996 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 2, i1 noundef zeroext false)
  br i1 %996, label %997, label %1001

997:                                              ; preds = %995
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %998 = getelementptr inbounds i8, ptr %50, i64 14470
  %999 = load i16, ptr %998, align 2, !tbaa !231
  %1000 = zext i16 %999 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.547, i32 noundef 2, i32 noundef %1000)
  br label %1001

1001:                                             ; preds = %997, %995
  %1002 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 3, i1 noundef zeroext false)
  br i1 %1002, label %1003, label %1007

1003:                                             ; preds = %1001
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1004 = getelementptr inbounds i8, ptr %50, i64 14472
  %1005 = load i16, ptr %1004, align 2, !tbaa !231
  %1006 = zext i16 %1005 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.547, i32 noundef 3, i32 noundef %1006)
  br label %1007

1007:                                             ; preds = %1003, %1001
  %1008 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 4, i1 noundef zeroext false)
  br i1 %1008, label %1009, label %1013

1009:                                             ; preds = %1007
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1010 = getelementptr inbounds i8, ptr %50, i64 14474
  %1011 = load i16, ptr %1010, align 2, !tbaa !231
  %1012 = zext i16 %1011 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.547, i32 noundef 4, i32 noundef %1012)
  br label %1013

1013:                                             ; preds = %1009, %1007
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.548)
  %1014 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 0)
  br i1 %1014, label %1015, label %1016

1015:                                             ; preds = %1013
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.549, i32 noundef 0)
  br label %1016

1016:                                             ; preds = %1013, %1015
  %1017 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 1)
  br i1 %1017, label %1018, label %1019

1018:                                             ; preds = %1016
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.549, i32 noundef 1)
  br label %1019

1019:                                             ; preds = %1018, %1016
  %1020 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 2)
  br i1 %1020, label %1021, label %1022

1021:                                             ; preds = %1019
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.549, i32 noundef 2)
  br label %1022

1022:                                             ; preds = %1021, %1019
  %1023 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 3)
  br i1 %1023, label %1024, label %1025

1024:                                             ; preds = %1022
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.549, i32 noundef 3)
  br label %1025

1025:                                             ; preds = %1024, %1022
  %1026 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 4)
  br i1 %1026, label %1027, label %1028

1027:                                             ; preds = %1025
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.549, i32 noundef 4)
  br label %1028

1028:                                             ; preds = %1027, %1025
  %1029 = getelementptr inbounds i8, ptr %50, i64 3680
  %1030 = load float, ptr %1029, align 8, !tbaa !238
  %1031 = fpext float %1030 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.550, double noundef %1031)
  %1032 = getelementptr inbounds i8, ptr %50, i64 20556
  %1033 = load float, ptr %1032, align 4, !tbaa !239
  %1034 = fpext float %1033 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.551, double noundef %1034)
  %1035 = getelementptr inbounds i8, ptr %50, i64 3688
  %1036 = load i32, ptr %1035, align 8, !tbaa !240
  %1037 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %1036)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.552, ptr noundef %1037)
  %1038 = getelementptr inbounds i8, ptr %50, i64 14604
  %1039 = load float, ptr %1038, align 4, !tbaa !241
  %1040 = fpext float %1039 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.553, double noundef %1040)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.554)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1041 = getelementptr inbounds i8, ptr %50, i64 16744
  %1042 = load ptr, ptr %1041, align 8, !tbaa !242
  %.not640 = icmp eq ptr %1042, null
  br i1 %.not640, label %1046, label %1043

1043:                                             ; preds = %1028
  %1044 = getelementptr inbounds i8, ptr %1042, i64 8
  %1045 = load ptr, ptr %1044, align 8, !tbaa !120
  br label %1046

1046:                                             ; preds = %1028, %1043
  %1047 = phi ptr [ %1045, %1043 ], [ @.str.481, %1028 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.555, ptr noundef %1047)
  %1048 = getelementptr inbounds i8, ptr %50, i64 16768
  %1049 = load float, ptr %1048, align 8, !tbaa !243
  %1050 = fpext float %1049 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.556, double noundef %1050)
  %1051 = getelementptr inbounds i8, ptr %50, i64 16780
  %1052 = load float, ptr %1051, align 4, !tbaa !244
  %1053 = fpext float %1052 to double
  %1054 = getelementptr inbounds i8, ptr %50, i64 16784
  %1055 = load float, ptr %1054, align 4, !tbaa !245
  %1056 = fpext float %1055 to double
  %1057 = fcmp ogt float %1052, %1055
  %1058 = fcmp olt float %1052, %1055
  %1059 = select i1 %1058, ptr @.str.558, ptr @.str.559
  %1060 = select i1 %1057, ptr @.str.396, ptr %1059
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.557, double noundef %1053, double noundef %1056, ptr noundef nonnull %1060)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.560)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #11
  %1061 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1062 = fmul float %1061, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 0xB810000000000000, float noundef %1062)
  %1063 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef nonnull @.str.561, ptr noundef nonnull align 4 dereferenceable(8) %24, i32 noundef 136, i32 noundef 256)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #11
  br i1 %1063, label %.preheader689, label %.loopexit690

.preheader689:                                    ; preds = %1046, %1081
  %.0568786 = phi i32 [ %1082, %1081 ], [ 512, %1046 ]
  %1064 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %50, i32 noundef %.0568786)
  %1065 = load i32, ptr %1064, align 4, !tbaa !246
  %1066 = icmp eq i32 %1065, -1
  br i1 %1066, label %1081, label %1067

1067:                                             ; preds = %.preheader689
  %1068 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0568786)
  %1069 = load i32, ptr %1064, align 4, !tbaa !246
  %1070 = getelementptr inbounds i8, ptr %1064, i64 9
  %1071 = load i8, ptr %1070, align 1, !tbaa !248, !range !13, !noundef !14
  %1072 = trunc nuw i8 %1071 to i1
  br i1 %1072, label %1078, label %1073

1073:                                             ; preds = %1067
  %1074 = getelementptr inbounds i8, ptr %1064, i64 8
  %1075 = load i8, ptr %1074, align 4, !tbaa !249, !range !13, !noundef !14
  %1076 = trunc nuw i8 %1075 to i1
  %1077 = select i1 %1076, ptr @.str.564, ptr @.str.16
  br label %1078

1078:                                             ; preds = %1067, %1073
  %1079 = phi ptr [ %1077, %1073 ], [ @.str.563, %1067 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.562, ptr noundef %1068, i32 noundef %1069, ptr noundef nonnull %1079)
  %1080 = load i32, ptr %1064, align 4, !tbaa !246
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1080)
  br label %1081

1081:                                             ; preds = %.preheader689, %1078
  %1082 = add nuw nsw i32 %.0568786, 1
  %exitcond816.not = icmp eq i32 %1082, 666
  br i1 %exitcond816.not, label %.loopexit690, label %.preheader689, !llvm.loop !250

.loopexit690:                                     ; preds = %1081, %1046
  call void @_ZN5ImGui8EndChildEv()
  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)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #11
  %1083 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1084 = fmul float %1083, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef 0xB810000000000000, float noundef %1084)
  %1085 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef nonnull @.str.566, ptr noundef nonnull align 4 dereferenceable(8) %25, i32 noundef 136, i32 noundef 256)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #11
  br i1 %1085, label %.preheader687, label %.loopexit688

.preheader687:                                    ; preds = %.loopexit690
  %1086 = getelementptr inbounds i8, ptr %50, i64 18728
  %1087 = getelementptr inbounds i8, ptr %50, i64 19040
  br label %1088

1088:                                             ; preds = %.preheader687, %._crit_edge791
  %indvars.iv817 = phi i64 [ 512, %.preheader687 ], [ %indvars.iv.next818, %._crit_edge791 ]
  %1089 = add nsw i64 %indvars.iv817, -512
  %1090 = getelementptr inbounds [154 x i16], ptr %1086, i64 0, i64 %1089
  %1091 = load i16, ptr %1090, align 2, !tbaa !231
  %.not654787 = icmp eq i16 %1091, -1
  br i1 %.not654787, label %._crit_edge791, label %.lr.ph790.preheader

.lr.ph790.preheader:                              ; preds = %1088
  %1092 = trunc nuw nsw i64 %indvars.iv817 to i32
  br label %.lr.ph790

._crit_edge791:                                   ; preds = %.lr.ph790, %1088
  %indvars.iv.next818 = add nuw nsw i64 %indvars.iv817, 1
  %exitcond820.not = icmp eq i64 %indvars.iv.next818, 666
  br i1 %exitcond820.not, label %.loopexit688, label %1088, !llvm.loop !251

.lr.ph790:                                        ; preds = %.lr.ph790.preheader, %.lr.ph790
  %.0564788 = phi i16 [ %1102, %.lr.ph790 ], [ %1091, %.lr.ph790.preheader ]
  %1093 = sext i16 %.0564788 to i32
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %26) #11
  %1094 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1087, i32 noundef %1093)
  %1095 = getelementptr inbounds i8, ptr %1094, i64 2
  %1096 = load i16, ptr %1095, align 2, !tbaa !252
  %1097 = zext i16 %1096 to i32
  %1098 = or i32 %1092, %1097
  call void @_ZN5ImGui15GetKeyChordNameEiPci(i32 noundef %1098, ptr noundef nonnull %26, i32 noundef 64)
  %1099 = getelementptr inbounds i8, ptr %1094, i64 8
  %1100 = load i32, ptr %1099, align 4, !tbaa !254
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.567, ptr noundef nonnull %26, i32 noundef %1100)
  %1101 = load i32, ptr %1099, align 4, !tbaa !254
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1101)
  %1102 = load i16, ptr %1094, align 4, !tbaa !255
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %26) #11
  %.not654 = icmp eq i16 %1102, -1
  br i1 %.not654, label %._crit_edge791, label %.lr.ph790, !llvm.loop !256

.loopexit688:                                     ; preds = %._crit_edge791, %.loopexit690
  call void @_ZN5ImGui8EndChildEv()
  %1103 = getelementptr inbounds i8, ptr %50, i64 19076
  %1104 = load i8, ptr %1103, align 4, !tbaa !257, !range !13, !noundef !14
  %1105 = zext nneg i8 %1104 to i32
  %1106 = getelementptr inbounds i8, ptr %50, i64 19072
  %1107 = load i32, ptr %1106, align 8, !tbaa !258
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.568, i32 noundef %1105, i32 noundef %1107)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1108

1108:                                             ; preds = %.loopexit688, %869
  %1109 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.569)
  br i1 %1109, label %1110, label %1254

1110:                                             ; preds = %1108
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.570)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1111 = getelementptr inbounds i8, ptr %50, i64 16720
  %1112 = load ptr, ptr %1111, align 8, !tbaa !259
  %.not641 = icmp eq ptr %1112, null
  br i1 %.not641, label %1116, label %1113

1113:                                             ; preds = %1110
  %1114 = getelementptr inbounds i8, ptr %1112, i64 8
  %1115 = load ptr, ptr %1114, align 8, !tbaa !120
  br label %1116

1116:                                             ; preds = %1110, %1113
  %1117 = phi ptr [ %1115, %1113 ], [ @.str.481, %1110 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.571, ptr noundef %1117)
  %1118 = load ptr, ptr %1111, align 8, !tbaa !259
  %.not642 = icmp eq ptr %1118, null
  br i1 %.not642, label %1124, label %1119

1119:                                             ; preds = %1116
  %1120 = getelementptr inbounds i8, ptr %1118, i64 976
  %1121 = load ptr, ptr %1120, align 8, !tbaa !260
  %1122 = getelementptr inbounds i8, ptr %1121, i64 8
  %1123 = load ptr, ptr %1122, align 8, !tbaa !120
  br label %1124

1124:                                             ; preds = %1116, %1119
  %1125 = phi ptr [ %1123, %1119 ], [ @.str.481, %1116 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.572, ptr noundef %1125)
  %1126 = getelementptr inbounds i8, ptr %50, i64 16728
  %1127 = load ptr, ptr %1126, align 8, !tbaa !261
  %.not643 = icmp eq ptr %1127, null
  br i1 %.not643, label %1131, label %1128

1128:                                             ; preds = %1124
  %1129 = getelementptr inbounds i8, ptr %1127, i64 8
  %1130 = load ptr, ptr %1129, align 8, !tbaa !120
  br label %1131

1131:                                             ; preds = %1124, %1128
  %1132 = phi ptr [ %1130, %1128 ], [ @.str.481, %1124 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.573, ptr noundef %1132)
  %1133 = getelementptr inbounds i8, ptr %50, i64 25264
  %1134 = load ptr, ptr %1133, align 8, !tbaa !262
  %.not644 = icmp eq ptr %1134, null
  br i1 %.not644, label %1137, label %1135

1135:                                             ; preds = %1131
  %1136 = load i32, ptr %1134, align 8, !tbaa !263
  br label %1137

1137:                                             ; preds = %1131, %1135
  %1138 = phi i32 [ %1136, %1135 ], [ 0, %1131 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.574, i32 noundef %1138)
  %1139 = getelementptr inbounds i8, ptr %50, i64 16736
  %1140 = load ptr, ptr %1139, align 8, !tbaa !267
  %.not645 = icmp eq ptr %1140, null
  br i1 %.not645, label %1144, label %1141

1141:                                             ; preds = %1137
  %1142 = getelementptr inbounds i8, ptr %1140, i64 8
  %1143 = load ptr, ptr %1142, align 8, !tbaa !120
  br label %1144

1144:                                             ; preds = %1137, %1141
  %1145 = phi ptr [ %1143, %1141 ], [ @.str.481, %1137 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.575, ptr noundef %1145)
  %1146 = getelementptr inbounds i8, ptr %50, i64 19536
  %1147 = load ptr, ptr %1146, align 8, !tbaa !167
  %1148 = load i32, ptr %1147, align 8, !tbaa !152
  %1149 = getelementptr inbounds i8, ptr %50, i64 3692
  %1150 = load i32, ptr %1149, align 4, !tbaa !168
  %1151 = getelementptr inbounds i8, ptr %50, i64 19544
  %1152 = load ptr, ptr %1151, align 8, !tbaa !169
  %.not646 = icmp eq ptr %1152, null
  br i1 %.not646, label %1155, label %1153

1153:                                             ; preds = %1144
  %1154 = load i32, ptr %1152, align 8, !tbaa !152
  br label %1155

1155:                                             ; preds = %1144, %1153
  %1156 = phi i32 [ %1154, %1153 ], [ 0, %1144 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.474, i32 noundef %1148, i32 noundef %1150, i32 noundef %1156)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.576)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1157 = getelementptr inbounds i8, ptr %50, i64 16812
  %1158 = load i32, ptr %1157, align 4, !tbaa !268
  %1159 = getelementptr inbounds i8, ptr %50, i64 16856
  %1160 = load i32, ptr %1159, align 8, !tbaa !269
  %1161 = getelementptr inbounds i8, ptr %50, i64 16820
  %1162 = load float, ptr %1161, align 4, !tbaa !270
  %1163 = fpext float %1162 to double
  %1164 = getelementptr inbounds i8, ptr %50, i64 16825
  %1165 = load i8, ptr %1164, align 1, !tbaa !271, !range !13, !noundef !14
  %1166 = zext nneg i8 %1165 to i32
  %1167 = getelementptr inbounds i8, ptr %50, i64 16848
  %1168 = load i32, ptr %1167, align 8, !tbaa !272
  %1169 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1168)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.577, i32 noundef %1158, i32 noundef %1160, double noundef %1163, i32 noundef %1166, ptr noundef %1169)
  %1170 = load i32, ptr %1157, align 4, !tbaa !268
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1170)
  %1171 = getelementptr inbounds i8, ptr %50, i64 16840
  %1172 = load ptr, ptr %1171, align 8, !tbaa !273
  %.not647 = icmp eq ptr %1172, null
  br i1 %.not647, label %1176, label %1173

1173:                                             ; preds = %1155
  %1174 = getelementptr inbounds i8, ptr %1172, i64 8
  %1175 = load ptr, ptr %1174, align 8, !tbaa !120
  br label %1176

1176:                                             ; preds = %1155, %1173
  %1177 = phi ptr [ %1175, %1173 ], [ @.str.481, %1155 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.578, ptr noundef %1177)
  %1178 = getelementptr inbounds i8, ptr %50, i64 19076
  %1179 = load i8, ptr %1178, align 4, !tbaa !257, !range !13, !noundef !14
  %1180 = zext nneg i8 %1179 to i32
  %1181 = getelementptr inbounds i8, ptr %50, i64 19072
  %1182 = load i32, ptr %1181, align 8, !tbaa !258
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.579, i32 noundef %1180, i32 noundef %1182)
  %1183 = getelementptr inbounds i8, ptr %50, i64 16796
  %1184 = load i32, ptr %1183, align 4, !tbaa !274
  %1185 = getelementptr inbounds i8, ptr %50, i64 16804
  %1186 = load float, ptr %1185, align 4, !tbaa !275
  %1187 = fpext float %1186 to double
  %1188 = getelementptr inbounds i8, ptr %50, i64 16800
  %1189 = load i8, ptr %1188, align 8, !tbaa !276, !range !13, !noundef !14
  %1190 = zext nneg i8 %1189 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.580, i32 noundef %1184, double noundef %1187, i32 noundef %1190)
  %1191 = getelementptr inbounds i8, ptr %50, i64 20528
  %1192 = load i32, ptr %1191, align 8, !tbaa !277
  %1193 = getelementptr inbounds i8, ptr %50, i64 20536
  %1194 = load float, ptr %1193, align 8, !tbaa !278
  %1195 = fpext float %1194 to double
  %1196 = getelementptr inbounds i8, ptr %50, i64 20540
  %1197 = load float, ptr %1196, align 4, !tbaa !279
  %1198 = fpext float %1197 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.581, i32 noundef %1192, double noundef %1195, double noundef %1198)
  %1199 = getelementptr inbounds i8, ptr %50, i64 20160
  %1200 = load i8, ptr %1199, align 8, !tbaa !280, !range !13, !noundef !14
  %1201 = zext nneg i8 %1200 to i32
  %1202 = getelementptr inbounds i8, ptr %50, i64 20188
  %1203 = load i32, ptr %1202, align 4, !tbaa !281
  %1204 = getelementptr inbounds i8, ptr %50, i64 20200
  %1205 = getelementptr inbounds i8, ptr %50, i64 20184
  %1206 = load i32, ptr %1205, align 8, !tbaa !282
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.582, i32 noundef %1201, i32 noundef %1203, ptr noundef nonnull %1204, i32 noundef %1206)
  %1207 = load i32, ptr %1202, align 4, !tbaa !281
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1207)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.583)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1208 = getelementptr inbounds i8, ptr %50, i64 19624
  %1209 = load ptr, ptr %1208, align 8, !tbaa !119
  %.not648 = icmp eq ptr %1209, null
  br i1 %.not648, label %1213, label %1210

1210:                                             ; preds = %1176
  %1211 = getelementptr inbounds i8, ptr %1209, i64 8
  %1212 = load ptr, ptr %1211, align 8, !tbaa !120
  br label %1213

1213:                                             ; preds = %1176, %1210
  %1214 = phi ptr [ %1212, %1210 ], [ @.str.481, %1176 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.584, ptr noundef %1214)
  %1215 = getelementptr inbounds i8, ptr %50, i64 19632
  %1216 = load i32, ptr %1215, align 8, !tbaa !283
  %1217 = getelementptr inbounds i8, ptr %50, i64 19680
  %1218 = load i32, ptr %1217, align 8, !tbaa !284
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.585, i32 noundef %1216, i32 noundef %1218)
  %1219 = load i32, ptr %1215, align 8, !tbaa !283
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1219)
  %1220 = getelementptr inbounds i8, ptr %50, i64 19676
  %1221 = load i32, ptr %1220, align 4, !tbaa !285
  %1222 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1221)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.586, ptr noundef %1222)
  %1223 = getelementptr inbounds i8, ptr %50, i64 19688
  %1224 = load i64, ptr %1223, align 8, !tbaa !286
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.587, i64 noundef %1224, i64 noundef %1224)
  %1225 = getelementptr inbounds i8, ptr %50, i64 215
  %1226 = load i8, ptr %1225, align 1, !tbaa !287, !range !13, !noundef !14
  %1227 = zext nneg i8 %1226 to i32
  %1228 = getelementptr inbounds i8, ptr %50, i64 216
  %1229 = load i8, ptr %1228, align 8, !tbaa !288, !range !13, !noundef !14
  %1230 = zext nneg i8 %1229 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.588, i32 noundef %1227, i32 noundef %1230)
  %1231 = getelementptr inbounds i8, ptr %50, i64 19640
  %1232 = load i32, ptr %1231, align 8, !tbaa !289
  %1233 = getelementptr inbounds i8, ptr %50, i64 19644
  %1234 = load i32, ptr %1233, align 4, !tbaa !290
  %1235 = getelementptr inbounds i8, ptr %50, i64 19648
  %1236 = load i32, ptr %1235, align 8, !tbaa !291
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.589, i32 noundef %1232, i32 noundef %1234, i32 noundef %1236)
  %1237 = getelementptr inbounds i8, ptr %50, i64 19652
  %1238 = load i32, ptr %1237, align 4, !tbaa !292
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.590, i32 noundef %1238)
  %1239 = getelementptr inbounds i8, ptr %50, i64 19698
  %1240 = load i8, ptr %1239, align 2, !tbaa !293, !range !13, !noundef !14
  %1241 = zext nneg i8 %1240 to i32
  %1242 = getelementptr inbounds i8, ptr %50, i64 19699
  %1243 = load i8, ptr %1242, align 1, !tbaa !294, !range !13, !noundef !14
  %1244 = zext nneg i8 %1243 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.591, i32 noundef %1241, i32 noundef %1244)
  %1245 = getelementptr inbounds i8, ptr %50, i64 19636
  %1246 = load i32, ptr %1245, align 4, !tbaa !295
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.592, i32 noundef %1246)
  %1247 = getelementptr inbounds i8, ptr %50, i64 20104
  %1248 = load ptr, ptr %1247, align 8, !tbaa !296
  %.not649 = icmp eq ptr %1248, null
  br i1 %.not649, label %1252, label %1249

1249:                                             ; preds = %1213
  %1250 = getelementptr inbounds i8, ptr %1248, i64 8
  %1251 = load ptr, ptr %1250, align 8, !tbaa !120
  br label %1252

1252:                                             ; preds = %1213, %1249
  %1253 = phi ptr [ %1251, %1249 ], [ @.str.481, %1213 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.593, ptr noundef %1253)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1254

1254:                                             ; preds = %1252, %1108
  %1255 = getelementptr inbounds i8, ptr %50, i64 25142
  %1256 = load i8, ptr %1255, align 2, !tbaa !118, !range !13, !noundef !14
  %1257 = trunc nuw i8 %1256 to i1
  br i1 %1257, label %1262, label %1258

1258:                                             ; preds = %1254
  %1259 = getelementptr inbounds i8, ptr %50, i64 25143
  %1260 = load i8, ptr %1259, align 1, !tbaa !297, !range !13, !noundef !14
  %1261 = trunc nuw i8 %1260 to i1
  br i1 %1261, label %1262, label %.loopexit686

1262:                                             ; preds = %1258, %1254
  %1263 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %396)
  %1264 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %396)
  %.not650793 = icmp eq ptr %1263, %1264
  br i1 %.not650793, label %.loopexit686, label %.lr.ph796

.lr.ph796:                                        ; preds = %1262
  %1265 = getelementptr inbounds i8, ptr %27, i64 8
  %1266 = getelementptr inbounds i8, ptr %50, i64 25143
  br label %1267

1267:                                             ; preds = %.lr.ph796, %1296
  %.0561794 = phi ptr [ %1263, %.lr.ph796 ], [ %1297, %1296 ]
  %1268 = load ptr, ptr %.0561794, align 8, !tbaa !5
  %1269 = getelementptr inbounds i8, ptr %1268, i64 244
  %1270 = load i8, ptr %1269, align 4, !tbaa !298, !range !13, !noundef !14
  %1271 = trunc nuw i8 %1270 to i1
  br i1 %1271, label %1272, label %1296

1272:                                             ; preds = %1267
  %1273 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %1268)
  %1274 = load i8, ptr %1255, align 2, !tbaa !118, !range !13, !noundef !14
  %1275 = trunc nuw i8 %1274 to i1
  br i1 %1275, label %1276, label %1281

1276:                                             ; preds = %1272
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #11
  %1277 = load i32, ptr %87, align 4, !tbaa !114
  %1278 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef nonnull %1268, i32 noundef %1277)
  %1279 = extractvalue { <2 x float>, <2 x float> } %1278, 0
  store <2 x float> %1279, ptr %27, align 8
  %1280 = extractvalue { <2 x float>, <2 x float> } %1278, 1
  store <2 x float> %1280, ptr %1265, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1273, ptr noundef nonnull align 4 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(8) %1265, 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 %27) #11
  br label %1281

1281:                                             ; preds = %1276, %1272
  %1282 = load i8, ptr %1266, align 1, !tbaa !297, !range !13, !noundef !14
  %1283 = trunc nuw i8 %1282 to i1
  br i1 %1283, label %1284, label %1296

1284:                                             ; preds = %1281
  %1285 = getelementptr inbounds i8, ptr %1268, i64 20
  %1286 = load i32, ptr %1285, align 4, !tbaa !182
  %1287 = and i32 %1286, 16777216
  %.not653 = icmp eq i32 %1287, 0
  br i1 %.not653, label %1288, label %1296

1288:                                             ; preds = %1284
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #11
  %1289 = getelementptr inbounds i8, ptr %1268, i64 262
  %1290 = load i16, ptr %1289, align 2, !tbaa !299
  %1291 = sext i16 %1290 to i32
  %1292 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %28, i64 noundef 32, ptr noundef nonnull @.str.405, i32 noundef %1291)
  %1293 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %1294 = getelementptr inbounds i8, ptr %1268, i64 88
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef %1293, float noundef %1293)
  %1295 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1294, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %1295, ptr %29, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1273, ptr noundef nonnull align 4 dereferenceable(8) %1294, ptr noundef nonnull align 4 dereferenceable(8) %29, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #11
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1273, ptr noundef nonnull align 4 dereferenceable(8) %1294, i32 noundef -1, ptr noundef nonnull %28, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #11
  br label %1296

1296:                                             ; preds = %1281, %1284, %1288, %1267
  %1297 = getelementptr inbounds i8, ptr %.0561794, i64 8
  %.not650 = icmp eq ptr %1297, %1264
  br i1 %.not650, label %.loopexit686, label %1267

.loopexit686:                                     ; preds = %1296, %1262, %1258
  %1298 = getelementptr inbounds i8, ptr %50, i64 25144
  %1299 = load i8, ptr %1298, align 4, !tbaa !121, !range !13, !noundef !14
  %1300 = trunc nuw i8 %1299 to i1
  br i1 %1300, label %.preheader684, label %.loopexit685

.preheader684:                                    ; preds = %.loopexit686
  %1301 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %620)
  %1302 = icmp sgt i32 %1301, 0
  br i1 %1302, label %.lr.ph800, label %.loopexit685

.lr.ph800:                                        ; preds = %.preheader684
  %1303 = getelementptr inbounds i8, ptr %50, i64 16544
  %1304 = getelementptr inbounds i8, ptr %32, i64 8
  %1305 = getelementptr inbounds i8, ptr %31, i64 8
  br label %1306

1306:                                             ; preds = %.lr.ph800, %.loopexit
  %.0556799 = phi i32 [ 0, %.lr.ph800 ], [ %1342, %.loopexit ]
  %1307 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %620, i32 noundef %.0556799)
  %1308 = icmp eq ptr %1307, null
  br i1 %1308, label %.loopexit, label %1309

1309:                                             ; preds = %1306
  %1310 = getelementptr inbounds i8, ptr %1307, i64 104
  %1311 = load i32, ptr %1310, align 8, !tbaa !122
  %1312 = load i32, ptr %1303, align 8, !tbaa !132
  %1313 = add nsw i32 %1312, -1
  %1314 = icmp slt i32 %1311, %1313
  br i1 %1314, label %.loopexit, label %1315

1315:                                             ; preds = %1309
  %1316 = getelementptr inbounds i8, ptr %1307, i64 384
  %1317 = load ptr, ptr %1316, align 8, !tbaa !133
  %1318 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1317)
  %1319 = load i32, ptr %92, align 4, !tbaa !115
  %1320 = icmp sgt i32 %1319, 5
  br i1 %1320, label %.preheader, label %1338

.preheader:                                       ; preds = %1315
  %1321 = getelementptr inbounds i8, ptr %1307, i64 108
  %1322 = load i32, ptr %1321, align 4, !tbaa !136
  %1323 = icmp sgt i32 %1322, 0
  br i1 %1323, label %.lr.ph798, label %.loopexit

.lr.ph798:                                        ; preds = %.preheader
  %1324 = getelementptr inbounds i8, ptr %1307, i64 522
  br label %1325

1325:                                             ; preds = %.lr.ph798, %1325
  %.0553797 = phi i32 [ 0, %.lr.ph798 ], [ %1335, %1325 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #11
  %1326 = load i32, ptr %92, align 4, !tbaa !115
  %1327 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1307, i32 noundef %1326, i32 noundef %.0553797)
  %1328 = extractvalue { <2 x float>, <2 x float> } %1327, 0
  store <2 x float> %1328, ptr %31, align 8
  %1329 = extractvalue { <2 x float>, <2 x float> } %1327, 1
  store <2 x float> %1329, ptr %1305, align 8
  %1330 = load i16, ptr %1324, align 2, !tbaa !300
  %1331 = sext i16 %1330 to i32
  %1332 = icmp eq i32 %.0553797, %1331
  %1333 = select i1 %1332, i32 -8323073, i32 -8388353
  %1334 = select i1 %1332, float 3.000000e+00, float 1.000000e+00
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1318, ptr noundef nonnull align 4 dereferenceable(8) %31, ptr noundef nonnull align 4 dereferenceable(8) %1305, i32 noundef %1333, float noundef 0.000000e+00, i32 noundef 0, float noundef %1334)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #11
  %1335 = add nuw nsw i32 %.0553797, 1
  %1336 = load i32, ptr %1321, align 4, !tbaa !136
  %1337 = icmp slt i32 %1335, %1336
  br i1 %1337, label %1325, label %.loopexit, !llvm.loop !301

1338:                                             ; preds = %1315
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #11
  %1339 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1307, i32 noundef %1319, i32 noundef -1)
  %1340 = extractvalue { <2 x float>, <2 x float> } %1339, 0
  store <2 x float> %1340, ptr %32, align 8
  %1341 = extractvalue { <2 x float>, <2 x float> } %1339, 1
  store <2 x float> %1341, ptr %1304, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1318, ptr noundef nonnull align 4 dereferenceable(8) %32, ptr noundef nonnull align 4 dereferenceable(8) %1304, 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 %32) #11
  br label %.loopexit

.loopexit:                                        ; preds = %1325, %.preheader, %1338, %1306, %1309
  %1342 = add nuw nsw i32 %.0556799, 1
  %1343 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %620)
  %1344 = icmp slt i32 %1342, %1343
  br i1 %1344, label %1306, label %.loopexit685, !llvm.loop !302

.loopexit685:                                     ; preds = %.loopexit, %.preheader684, %.loopexit686
  %1345 = getelementptr inbounds i8, ptr %50, i64 25148
  %1346 = load i8, ptr %1345, align 4, !tbaa !303, !range !13, !noundef !14
  %1347 = trunc nuw i8 %1346 to i1
  br i1 %1347, label %1348, label %1412

1348:                                             ; preds = %.loopexit685
  %1349 = getelementptr inbounds i8, ptr %50, i64 3696
  %1350 = load i8, ptr %1349, align 8, !tbaa !304, !range !13, !noundef !14
  %1351 = trunc nuw i8 %1350 to i1
  br i1 %1351, label %1352, label %1412

1352:                                             ; preds = %1348
  %1353 = getelementptr inbounds i8, ptr %50, i64 25264
  %1354 = load ptr, ptr %1353, align 8, !tbaa !262
  %.not651 = icmp eq ptr %1354, null
  br i1 %.not651, label %1412, label %1355

1355:                                             ; preds = %1352
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %33) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %33, i8 0, i64 64, i1 false)
  %1356 = getelementptr inbounds i8, ptr %1354, i64 136
  %1357 = load ptr, ptr %1356, align 8, !tbaa !305
  %.not652 = icmp eq ptr %1357, null
  br i1 %.not652, label %1360, label %1358

1358:                                             ; preds = %1355
  %1359 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %1357)
  br label %1363

1360:                                             ; preds = %1355
  %1361 = call noundef ptr @_ZN5ImGui15GetMainViewportEv()
  %1362 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef %1361)
  br label %1363

1363:                                             ; preds = %1360, %1358
  %1364 = phi ptr [ %1359, %1358 ], [ %1362, %1360 ]
  %1365 = getelementptr inbounds i8, ptr %33, i64 64
  %1366 = ptrtoint ptr %1365 to i64
  %1367 = load i32, ptr %1354, align 8, !tbaa !263
  %1368 = call noundef zeroext i1 @_ZNK13ImGuiDockNode13IsCentralNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %1354)
  %1369 = select i1 %1368, ptr @.str.595, ptr @.str.16
  %1370 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %33, i64 noundef 64, ptr noundef nonnull @.str.594, i32 noundef %1367, ptr noundef nonnull %1369)
  %1371 = sext i32 %1370 to i64
  %1372 = getelementptr inbounds i8, ptr %33, i64 %1371
  %gepdiff = sub nsw i64 64, %1371
  %1373 = getelementptr inbounds i8, ptr %1354, i64 100
  %1374 = load i32, ptr %1373, align 4, !tbaa !306
  %1375 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %1372, i64 noundef %gepdiff, ptr noundef nonnull @.str.596, i32 noundef %1374)
  %1376 = sext i32 %1375 to i64
  %1377 = getelementptr inbounds i8, ptr %1372, i64 %1376
  %1378 = ptrtoint ptr %1377 to i64
  %1379 = sub i64 %1366, %1378
  %1380 = getelementptr inbounds i8, ptr %1354, i64 80
  %1381 = load float, ptr %1380, align 8, !tbaa !307
  %1382 = fpext float %1381 to double
  %1383 = getelementptr inbounds i8, ptr %1354, i64 84
  %1384 = load float, ptr %1383, align 4, !tbaa !308
  %1385 = fpext float %1384 to double
  %1386 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %1377, i64 noundef %1379, ptr noundef nonnull @.str.597, double noundef %1382, double noundef %1385)
  %1387 = sext i32 %1386 to i64
  %1388 = getelementptr inbounds i8, ptr %1377, i64 %1387
  %1389 = ptrtoint ptr %1388 to i64
  %1390 = sub i64 %1366, %1389
  %1391 = getelementptr inbounds i8, ptr %1354, i64 88
  %1392 = load float, ptr %1391, align 8, !tbaa !309
  %1393 = fpext float %1392 to double
  %1394 = getelementptr inbounds i8, ptr %1354, i64 92
  %1395 = load float, ptr %1394, align 4, !tbaa !310
  %1396 = fpext float %1395 to double
  %1397 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %1388, i64 noundef %1390, ptr noundef nonnull @.str.598, double noundef %1393, double noundef %1396)
  %1398 = call noundef i32 @_ZN5ImGui16DockNodeGetDepthEPK13ImGuiDockNode(ptr noundef nonnull %1354)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #11
  %1399 = getelementptr inbounds i8, ptr %1354, i64 72
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %36, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %1400 = sitofp i32 %1398 to float
  %1401 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %36, float noundef %1400)
  store <2 x float> %1401, ptr %35, align 8
  %1402 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1399, ptr noundef nonnull align 4 dereferenceable(8) %35)
  store <2 x float> %1402, ptr %34, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #11
  %1403 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1399, ptr noundef nonnull align 4 dereferenceable(8) %1380)
  store <2 x float> %1403, ptr %38, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %40, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %1404 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %40, float noundef %1400)
  store <2 x float> %1404, ptr %39, align 8
  %1405 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(8) %39)
  store <2 x float> %1405, ptr %37, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1364, ptr noundef nonnull align 4 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(8) %37, 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 %40) #11
  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.start.p0(i64 8, ptr nonnull %41) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %43, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %1406 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %43, float noundef %1400)
  store <2 x float> %1406, ptr %42, align 8
  %1407 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1399, ptr noundef nonnull align 4 dereferenceable(8) %42)
  store <2 x float> %1407, ptr %41, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %45, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %1408 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %41, ptr noundef nonnull align 4 dereferenceable(8) %45)
  store <2 x float> %1408, ptr %44, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #11
  %1409 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef nonnull %33, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %1409, ptr %48, align 8
  %1410 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %41, ptr noundef nonnull align 4 dereferenceable(8) %48)
  store <2 x float> %1410, ptr %47, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %49, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %1411 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %47, ptr noundef nonnull align 4 dereferenceable(8) %49)
  store <2 x float> %1411, ptr %46, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1364, ptr noundef nonnull align 4 dereferenceable(8) %44, ptr noundef nonnull align 4 dereferenceable(8) %46, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #11
  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 @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %1364, ptr noundef null, float noundef 0.000000e+00, ptr noundef nonnull align 4 dereferenceable(8) %41, i32 noundef -1, ptr noundef nonnull %33, ptr noundef null, float noundef 0.000000e+00, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %33) #11
  br label %1412

1412:                                             ; preds = %1363, %1352, %1348, %.loopexit685
  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 %1413

1413:                                             ; preds = %1412, %67
  ret void
}

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

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

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: mustprogress uwtable
declare dso_local void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef) local_unnamed_addr #9

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

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

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

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

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

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) local_unnamed_addr #7

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) local_unnamed_addr #7

declare void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef) local_unnamed_addr #7

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

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

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

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

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

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

declare void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef) local_unnamed_addr #7

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

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

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

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

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

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

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

; Function Attrs: mustprogress 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 256}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !18, i64 32, !6, i64 64, !12, i64 72, !19, i64 76, !12, i64 84, !19, i64 88, !19, i64 96, !19, i64 104, !19, i64 112, !19, i64 120, !19, i64 128, !19, i64 136, !20, i64 144, !20, i64 148, !20, i64 152, !20, i64 156, !20, i64 160, !20, i64 164, !20, i64 168, !20, i64 172, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !19, i64 192, !19, i64 200, !19, i64 208, !19, i64 216, !19, i64 224, !19, i64 232, !11, i64 240, !11, i64 241, !11, i64 242, !11, i64 243, !11, i64 244, !11, i64 245, !11, i64 246, !11, i64 247, !11, i64 248, !11, i64 249, !11, i64 250, !11, i64 251, !11, i64 252, !11, i64 253, !7, i64 254, !7, i64 255, !21, i64 256, !21, i64 258, !21, i64 260, !21, i64 262, !21, i64 264, !12, i64 268, !7, i64 272, !7, i64 273, !11, i64 274, !12, i64 276, !7, i64 280, !7, i64 281, !7, i64 282, !7, i64 283, !12, i64 284, !12, i64 285, !12, i64 286, !12, i64 287, !19, i64 288, !19, i64 296, !22, i64 304, !23, i64 320, !29, i64 552, !29, i64 568, !29, i64 584, !29, i64 600, !29, i64 616, !29, i64 632, !29, i64 648, !30, i64 664, !30, i64 668, !12, i64 672, !12, i64 676, !20, i64 680, !20, i64 684, !31, i64 688, !33, i64 704, !20, i64 720, !20, i64 724, !12, i64 728, !6, i64 736, !34, i64 744, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !6, i64 1000, !7, i64 1008, !7, i64 1016, !7, i64 1048, !12, i64 1064, !12, i64 1068, !12, i64 1072, !11, i64 1076, !11, i64 1077, !11, i64 1077, !11, i64 1077, !11, i64 1077, !21, i64 1078, !45, i64 1080, !6, i64 1104, !6, i64 1112, !12, i64 1120, !12, i64 1124, !29, i64 1128}
!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 212}
!47 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !19, i64 8, !20, i64 16, !20, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !20, i64 56, !11, i64 60, !6, i64 64, !19, i64 72, !11, i64 80, !11, i64 81, !11, i64 82, !11, i64 83, !11, i64 84, !11, i64 85, !11, i64 86, !11, i64 87, !11, i64 88, !11, i64 89, !11, i64 90, !11, i64 91, !11, i64 92, !11, i64 93, !11, i64 94, !11, i64 95, !20, i64 96, !20, i64 100, !20, i64 104, !20, i64 108, !20, i64 112, !20, i64 116, !11, i64 120, !11, i64 121, !11, i64 122, !11, i64 123, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !21, i64 200, !11, i64 202, !11, i64 203, !11, i64 204, !11, i64 205, !11, i64 206, !11, i64 207, !11, i64 208, !20, i64 212, !12, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !19, i64 232, !7, i64 240, !7, i64 2904, !7, i64 3572, !6, i64 3640, !6, i64 3648, !19, i64 3656, !7, i64 3664, !20, i64 3672, !20, i64 3676, !48, i64 3680, !12, i64 3684, !11, i64 3688, !11, i64 3689, !11, i64 3690, !11, i64 3691, !12, i64 3692, !7, i64 3696, !11, i64 14352, !19, i64 14356, !7, i64 14364, !7, i64 14408, !7, i64 14448, !7, i64 14453, !7, i64 14458, !7, i64 14468, !7, i64 14478, !7, i64 14483, !7, i64 14488, !11, i64 14493, !7, i64 14496, !7, i64 14516, !7, i64 14536, !7, i64 14576, !20, i64 14596, !11, i64 14600, !11, i64 14601, !7, i64 14602, !11, i64 14603, !21, i64 14604, !36, i64 14608}
!48 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!49 = !{!47, !12, i64 216}
!50 = !{!47, !12, i64 220}
!51 = !{!47, !12, i64 224}
!52 = !{!53, !12, i64 25200}
!53 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !47, i64 8, !54, i64 14632, !57, i64 14848, !12, i64 15980, !12, i64 15984, !6, i64 15992, !20, i64 16000, !20, i64 16004, !58, i64 16008, !59, i64 16536, !12, i64 16544, !12, i64 16548, !12, i64 16552, !12, i64 16556, !11, i64 16560, !11, i64 16561, !11, i64 16562, !11, i64 16563, !11, i64 16564, !6, i64 16568, !60, i64 16576, !60, i64 16592, !48, i64 16608, !12, i64 16612, !27, i64 16616, !27, i64 16632, !27, i64 16648, !61, i64 16664, !31, i64 16680, !12, i64 16696, !19, i64 16700, !6, i64 16712, !6, i64 16720, !6, i64 16728, !6, i64 16736, !6, i64 16744, !19, i64 16752, !12, i64 16760, !12, i64 16764, !20, i64 16768, !19, i64 16772, !19, i64 16780, !12, i64 16788, !12, i64 16792, !12, i64 16796, !11, i64 16800, !11, i64 16801, !20, i64 16804, !20, i64 16808, !12, i64 16812, !12, i64 16816, !20, i64 16820, !11, i64 16824, !11, i64 16825, !11, i64 16826, !11, i64 16827, !11, i64 16828, !11, i64 16829, !19, i64 16832, !6, i64 16840, !62, i64 16848, !12, i64 16852, !12, i64 16856, !11, i64 16860, !11, i64 16861, !6, i64 16864, !12, i64 16872, !20, i64 16876, !7, i64 16880, !63, i64 18728, !12, i64 19072, !11, i64 19076, !12, i64 19080, !12, i64 19084, !12, i64 19088, !12, i64 19092, !65, i64 19096, !67, i64 19128, !68, i64 19192, !11, i64 19344, !69, i64 19352, !70, i64 19368, !71, i64 19384, !22, i64 19400, !72, i64 19416, !73, i64 19432, !74, i64 19448, !74, i64 19464, !75, i64 19480, !12, i64 19496, !76, i64 19504, !20, i64 19520, !6, i64 19528, !6, i64 19536, !6, i64 19544, !12, i64 19552, !77, i64 19560, !12, i64 19608, !12, i64 19612, !12, i64 19616, !6, i64 19624, !12, i64 19632, !12, i64 19636, !12, i64 19640, !12, i64 19644, !12, i64 19648, !12, i64 19652, !12, i64 19656, !12, i64 19660, !12, i64 19664, !12, i64 19668, !12, i64 19672, !62, i64 19676, !25, i64 19680, !66, i64 19688, !11, i64 19696, !11, i64 19697, !11, i64 19698, !11, i64 19699, !11, i64 19700, !11, i64 19701, !11, i64 19702, !78, i64 19704, !11, i64 19768, !11, i64 19769, !11, i64 19770, !12, i64 19772, !12, i64 19776, !12, i64 19780, !12, i64 19784, !12, i64 19788, !12, i64 19792, !29, i64 19796, !29, i64 19812, !12, i64 19828, !12, i64 19832, !12, i64 19836, !78, i64 19840, !78, i64 19904, !78, i64 19968, !78, i64 20032, !12, i64 20096, !12, i64 20100, !6, i64 20104, !6, i64 20112, !6, i64 20120, !20, i64 20128, !20, i64 20132, !11, i64 20136, !19, i64 20140, !19, i64 20148, !20, i64 20156, !11, i64 20160, !11, i64 20161, !11, i64 20162, !12, i64 20164, !12, i64 20168, !12, i64 20172, !79, i64 20176, !29, i64 20240, !12, i64 20256, !12, i64 20260, !20, i64 20264, !12, i64 20268, !12, i64 20272, !12, i64 20276, !12, i64 20280, !80, i64 20288, !7, i64 20304, !12, i64 20320, !81, i64 20328, !6, i64 20344, !12, i64 20352, !82, i64 20360, !83, i64 20376, !28, i64 20416, !44, i64 20432, !6, i64 20448, !85, i64 20456, !87, i64 20496, !88, i64 20512, !12, i64 20528, !12, i64 20532, !20, i64 20536, !20, i64 20540, !12, i64 20544, !12, i64 20548, !12, i64 20552, !20, i64 20556, !19, i64 20560, !89, i64 20568, !93, i64 24296, !94, i64 24320, !12, i64 24440, !12, i64 24444, !12, i64 24448, !12, i64 24452, !20, i64 24456, !20, i64 24460, !12, i64 24464, !42, i64 24468, !96, i64 24484, !29, i64 24532, !11, i64 24548, !20, i64 24552, !20, i64 24556, !11, i64 24560, !11, i64 24561, !20, i64 24564, !20, i64 24568, !20, i64 24572, !20, i64 24576, !21, i64 24580, !21, i64 24582, !21, i64 24584, !90, i64 24592, !22, i64 24608, !97, i64 24624, !99, i64 24728, !99, i64 24744, !12, i64 24760, !100, i64 24768, !6, i64 24824, !11, i64 24832, !20, i64 24836, !103, i64 24840, !104, i64 24856, !105, i64 24872, !106, i64 24888, !107, i64 24904, !12, i64 24920, !7, i64 24928, !11, i64 25016, !108, i64 25020, !6, i64 25024, !103, i64 25032, !6, i64 25048, !6, i64 25056, !20, i64 25064, !11, i64 25068, !12, i64 25072, !12, i64 25076, !12, i64 25080, !12, i64 25084, !103, i64 25088, !109, i64 25104, !7, i64 25128, !7, i64 25129, !7, i64 25130, !11, i64 25131, !7, i64 25132, !12, i64 25136, !10, i64 25140, !110, i64 25160, !112, i64 25200, !6, i64 25264, !7, i64 25272, !12, i64 25512, !12, i64 25516, !20, i64 25520, !12, i64 25524, !12, i64 25528, !12, i64 25532, !90, i64 25536}
!54 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !55, i64 184, !56, i64 200}
!55 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !12, i64 0, !12, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !12, i64 0, !12, i64 4, !6, i64 8}
!57 = !{!"_ZTS10ImGuiStyle", !20, i64 0, !20, i64 4, !19, i64 8, !20, i64 16, !20, i64 20, !19, i64 24, !19, i64 32, !12, i64 40, !20, i64 44, !20, i64 48, !20, i64 52, !20, i64 56, !19, i64 60, !20, i64 68, !20, i64 72, !19, i64 76, !19, i64 84, !19, i64 92, !19, i64 100, !20, i64 108, !20, i64 112, !20, i64 116, !20, i64 120, !20, i64 124, !20, i64 128, !20, i64 132, !20, i64 136, !20, i64 140, !20, i64 144, !20, i64 148, !20, i64 152, !12, i64 156, !19, i64 160, !19, i64 168, !20, i64 176, !19, i64 180, !19, i64 188, !19, i64 196, !19, i64 204, !20, i64 212, !20, i64 216, !11, i64 220, !11, i64 221, !11, i64 222, !20, i64 224, !20, i64 228, !7, i64 232, !20, i64 1112, !20, i64 1116, !20, i64 1120, !12, i64 1124, !12, i64 1128}
!58 = !{!"_ZTS20ImDrawListSharedData", !19, i64 0, !6, i64 8, !20, i64 16, !20, i64 20, !20, i64 24, !42, i64 28, !12, i64 44, !40, i64 48, !7, i64 64, !20, i64 448, !7, i64 452, !6, i64 520}
!59 = !{!"double", !7, i64 0}
!60 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!62 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!63 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !64, i64 312, !64, i64 328}
!64 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!65 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !20, i64 8, !66, i64 16, !12, i64 24, !11, i64 28}
!66 = !{!"long long", !7, i64 0}
!67 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !29, i64 12, !29, i64 28, !29, i64 44}
!68 = !{!"_ZTS19ImGuiNextWindowData", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !19, i64 20, !19, i64 28, !19, i64 36, !19, i64 44, !19, i64 52, !12, i64 60, !11, i64 64, !11, i64 65, !29, i64 68, !6, i64 88, !6, i64 96, !20, i64 104, !12, i64 108, !12, i64 112, !18, i64 116, !19, i64 144}
!69 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI20ImGuiNavTreeNodeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS20ImGuiPlatformMonitor", !19, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !20, i64 32, !6, i64 40}
!78 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !29, i64 16, !12, i64 32, !66, i64 40, !20, i64 48, !20, i64 52, !20, i64 56}
!79 = !{!"_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}
!80 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!81 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!83 = !{!"_ZTS6ImPoolI10ImGuiTableE", !84, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!84 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !86, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!86 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!87 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!88 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!89 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !36, i64 24, !90, i64 40, !90, i64 56, !11, i64 72, !12, i64 76, !20, i64 80, !91, i64 84, !20, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !12, i64 3720}
!90 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!91 = !{!"_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, !92, i64 32}
!92 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !21, i64 3582, !21, i64 3584, !12, i64 3588, !12, i64 3592}
!93 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !90, i64 8}
!94 = !{!"_ZTS6ImFont", !28, i64 0, !20, i64 16, !20, i64 20, !36, i64 24, !95, 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}
!95 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!96 = !{!"_ZTS21ImGuiComboPreviewData", !29, i64 0, !19, i64 16, !19, i64 24, !19, i64 32, !20, i64 40, !12, i64 44}
!97 = !{!"_ZTS22ImGuiTypingSelectState", !98, i64 0, !7, i64 24, !12, i64 88, !12, i64 92, !20, i64 96, !11, i64 100}
!98 = !{!"_ZTS24ImGuiTypingSelectRequest", !12, i64 0, !12, i64 4, !6, i64 8, !11, i64 16, !11, i64 17, !7, i64 18}
!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", !90, i64 0}
!104 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!105 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !90, i64 0}
!106 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !90, i64 0}
!107 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!108 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!109 = !{!"_ZTS14ImGuiTextIndex", !72, i64 0, !12, i64 16}
!110 = !{!"_ZTS16ImGuiIDStackTool", !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 = !{!"_ZTS19ImGuiDebugAllocInfo", !12, i64 0, !12, i64 4, !21, i64 8, !7, i64 12}
!113 = !{!53, !12, i64 25204}
!114 = !{!10, !12, i64 12}
!115 = !{!10, !12, i64 16}
!116 = !{!7, !7, i64 0}
!117 = !{!53, !11, i64 25131}
!118 = !{!10, !11, i64 2}
!119 = !{!53, !6, i64 19624}
!120 = !{!17, !6, i64 8}
!121 = !{!10, !11, i64 4}
!122 = !{!123, !12, i64 104}
!123 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !124, i64 24, !125, i64 40, !126, i64 56, !6, i64 72, !6, i64 80, !6, i64 88, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !21, i64 120, !21, i64 122, !20, i64 124, !20, i64 128, !20, i64 132, !20, i64 136, !20, i64 140, !20, i64 144, !12, i64 148, !12, i64 150, !12, i64 152, !7, i64 156, !12, i64 164, !12, i64 168, !20, i64 172, !20, i64 176, !20, i64 180, !20, i64 184, !20, i64 188, !20, i64 192, !20, i64 196, !20, i64 200, !20, i64 204, !20, i64 208, !20, i64 212, !20, i64 216, !20, i64 220, !20, i64 224, !20, i64 228, !20, i64 232, !20, i64 236, !29, i64 240, !29, i64 256, !29, i64 272, !29, i64 288, !29, i64 304, !29, i64 320, !29, i64 336, !29, i64 352, !29, i64 368, !6, i64 384, !6, i64 392, !103, i64 400, !6, i64 416, !127, i64 424, !128, i64 448, !129, i64 464, !130, i64 480, !131, i64 496, !21, i64 512, !21, i64 514, !21, i64 516, !21, i64 518, !21, i64 520, !21, i64 522, !21, i64 524, !21, i64 526, !21, i64 528, !21, i64 530, !21, i64 532, !21, i64 534, !21, i64 536, !21, i64 538, !21, i64 540, !21, i64 542, !21, i64 544, !21, i64 546, !21, i64 548, !21, i64 550, !21, i64 552, !21, i64 554, !21, i64 556, !21, i64 558, !21, i64 560, !21, i64 562, !21, i64 564, !11, i64 566, !11, i64 567, !11, i64 568, !11, i64 569, !11, i64 570, !11, i64 571, !11, i64 572, !11, i64 573, !11, i64 574, !11, i64 575, !11, i64 576, !11, i64 577, !11, i64 578, !11, i64 579, !11, i64 580, !11, i64 581, !11, i64 582, !11, i64 583, !11, i64 584, !11, i64 585}
!124 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!125 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!126 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!127 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !20, i64 4, !20, i64 8, !20, i64 12, !12, i64 16, !12, i64 20}
!128 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!129 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !21, i64 4, !21, i64 6, !12, i64 8}
!130 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!131 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!132 = !{!53, !12, i64 16544}
!133 = !{!123, !6, i64 384}
!134 = !{!123, !6, i64 392}
!135 = !{!123, !12, i64 0}
!136 = !{!123, !12, i64 108}
!137 = distinct !{!137, !138}
!138 = !{!"llvm.loop.mustprogress"}
!139 = distinct !{!139, !138}
!140 = distinct !{!140, !138}
!141 = !{!53, !12, i64 16616}
!142 = !{!27, !6, i64 8}
!143 = !{!27, !12, i64 0}
!144 = !{!17, !12, i64 672}
!145 = !{!146, !12, i64 184}
!146 = !{!"_ZTS14ImGuiViewportP", !147, 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, !148, i64 168, !150, i64 232, !19, i64 264, !19, i64 272, !19, i64 280, !19, i64 288, !19, i64 296, !19, i64 304, !19, i64 312}
!147 = !{!"_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}
!148 = !{!"_ZTS10ImDrawData", !11, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !149, i64 16, !19, i64 32, !19, i64 40, !19, i64 48, !6, i64 56}
!149 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!150 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0, !149, i64 16}
!151 = !{!146, !12, i64 104}
!152 = !{!147, !12, i64 0}
!153 = distinct !{!153, !154}
!154 = !{!"llvm.loop.peeled.count", i32 1}
!155 = !{!53, !12, i64 19504}
!156 = !{!53, !12, i64 14816}
!157 = !{!77, !20, i64 32}
!158 = !{!77, !20, i64 0}
!159 = !{!77, !20, i64 4}
!160 = !{!77, !20, i64 8}
!161 = !{!77, !20, i64 12}
!162 = !{!77, !20, i64 16}
!163 = !{!77, !20, i64 20}
!164 = !{!77, !20, i64 24}
!165 = !{!77, !20, i64 28}
!166 = distinct !{!166, !138}
!167 = !{!53, !6, i64 19536}
!168 = !{!53, !12, i64 3692}
!169 = !{!53, !6, i64 19544}
!170 = !{!"branch_weights", i32 1, i32 1048575}
!171 = !{!76, !6, i64 8}
!172 = !{!53, !6, i64 19512}
!173 = !{!76, !12, i64 0}
!174 = !{!146, !12, i64 112}
!175 = !{!53, !6, i64 14696}
!176 = !{!147, !11, i64 88}
!177 = !{!146, !6, i64 96}
!178 = !{!53, !12, i64 19448}
!179 = !{!180, !6, i64 8}
!180 = !{!"_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}
!181 = !{!180, !12, i64 0}
!182 = !{!17, !12, i64 20}
!183 = !{!180, !6, i64 16}
!184 = !{!17, !6, i64 944}
!185 = distinct !{!185, !138}
!186 = distinct !{!186, !138}
!187 = !{!53, !6, i64 56}
!188 = !{!189, !12, i64 88}
!189 = !{!"_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, !71, i64 88, !190, i64 104, !191, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!190 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!191 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!192 = !{!100, !11, i64 48}
!193 = !{!100, !12, i64 0}
!194 = !{!11, !11, i64 0}
!195 = distinct !{!195, !138}
!196 = !{!53, !6, i64 32}
!197 = !{!53, !20, i64 24836}
!198 = !{!53, !12, i64 24856}
!199 = !{!200, !6, i64 0}
!200 = !{!"_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}
!201 = distinct !{!201, !138}
!202 = distinct !{!202, !138}
!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, !11, i64 33}
!206 = !{!205, !21, i64 28}
!207 = distinct !{!207, !138}
!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, !138}
!213 = !{!53, !12, i64 24840}
!214 = !{!112, !12, i64 0}
!215 = !{!112, !12, i64 4}
!216 = !{!112, !21, i64 8}
!217 = !{!218, !12, i64 0}
!218 = !{!"_ZTS20ImGuiDebugAllocEntry", !12, i64 0, !21, i64 4, !21, i64 6}
!219 = !{!218, !21, i64 4}
!220 = !{!218, !21, i64 6}
!221 = !{!222, !20, i64 4}
!222 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !20, i64 4, !20, i64 8, !20, i64 12}
!223 = distinct !{!223, !138}
!224 = distinct !{!224, !138}
!225 = !{!47, !11, i64 3688}
!226 = !{!47, !11, i64 3689}
!227 = !{!47, !11, i64 3690}
!228 = !{!47, !11, i64 3691}
!229 = !{!47, !12, i64 14608}
!230 = distinct !{!230, !138}
!231 = !{!21, !21, i64 0}
!232 = distinct !{!232, !138}
!233 = !{!47, !20, i64 3656}
!234 = !{!47, !20, i64 3660}
!235 = !{!47, !20, i64 232}
!236 = !{!47, !20, i64 236}
!237 = !{!20, !20, i64 0}
!238 = !{!47, !20, i64 3672}
!239 = !{!53, !20, i64 20556}
!240 = !{!47, !48, i64 3680}
!241 = !{!47, !20, i64 14596}
!242 = !{!53, !6, i64 16744}
!243 = !{!53, !20, i64 16768}
!244 = !{!53, !20, i64 16780}
!245 = !{!53, !20, i64 16784}
!246 = !{!247, !12, i64 0}
!247 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!248 = !{!247, !11, i64 9}
!249 = !{!247, !11, i64 8}
!250 = distinct !{!250, !138}
!251 = distinct !{!251, !138}
!252 = !{!253, !21, i64 2}
!253 = !{!"_ZTS19ImGuiKeyRoutingData", !21, i64 0, !21, i64 2, !7, i64 4, !12, i64 8, !12, i64 12}
!254 = !{!253, !12, i64 8}
!255 = !{!253, !21, i64 0}
!256 = distinct !{!256, !138}
!257 = !{!53, !11, i64 19076}
!258 = !{!53, !12, i64 19072}
!259 = !{!53, !6, i64 16720}
!260 = !{!17, !6, i64 976}
!261 = !{!53, !6, i64 16728}
!262 = !{!53, !6, i64 25264}
!263 = !{!264, !12, i64 0}
!264 = !{!"_ZTS13ImGuiDockNode", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !265, i64 20, !6, i64 24, !7, i64 32, !27, i64 48, !6, i64 64, !19, i64 72, !19, i64 80, !19, i64 88, !266, 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}
!265 = !{!"_ZTS18ImGuiDockNodeState", !7, i64 0}
!266 = !{!"_ZTS9ImGuiAxis", !7, i64 0}
!267 = !{!53, !6, i64 16736}
!268 = !{!53, !12, i64 16812}
!269 = !{!53, !12, i64 16856}
!270 = !{!53, !20, i64 16820}
!271 = !{!53, !11, i64 16825}
!272 = !{!53, !62, i64 16848}
!273 = !{!53, !6, i64 16840}
!274 = !{!53, !12, i64 16796}
!275 = !{!53, !20, i64 16804}
!276 = !{!53, !11, i64 16800}
!277 = !{!53, !12, i64 20528}
!278 = !{!53, !20, i64 20536}
!279 = !{!53, !20, i64 20540}
!280 = !{!53, !11, i64 20160}
!281 = !{!53, !12, i64 20188}
!282 = !{!53, !12, i64 20184}
!283 = !{!53, !12, i64 19632}
!284 = !{!53, !25, i64 19680}
!285 = !{!53, !62, i64 19676}
!286 = !{!53, !66, i64 19688}
!287 = !{!53, !11, i64 215}
!288 = !{!53, !11, i64 216}
!289 = !{!53, !12, i64 19640}
!290 = !{!53, !12, i64 19644}
!291 = !{!53, !12, i64 19648}
!292 = !{!53, !12, i64 19652}
!293 = !{!53, !11, i64 19698}
!294 = !{!53, !11, i64 19699}
!295 = !{!53, !12, i64 19636}
!296 = !{!53, !6, i64 20104}
!297 = !{!10, !11, i64 3}
!298 = !{!17, !11, i64 244}
!299 = !{!17, !21, i64 262}
!300 = !{!123, !21, i64 522}
!301 = distinct !{!301, !138}
!302 = distinct !{!302, !138}
!303 = !{!10, !11, i64 8}
!304 = !{!53, !11, i64 3696}
!305 = !{!264, !6, i64 136}
!306 = !{!264, !12, i64 100}
!307 = !{!264, !20, i64 80}
!308 = !{!264, !20, i64 84}
!309 = !{!264, !20, i64 88}
!310 = !{!264, !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