; LLVM IR from Overload-Technologies/Overload :: Dependencies/ImGui/src/imgui.ll (ZN5ImGui17ShowMetricsWindowEPb)

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

%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImVec2 = type { float, float }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImGuiContext = type { i8, i8, %struct.ImGuiIO, %struct.ImGuiPlatformIO, %struct.ImGuiStyle, i32, i32, ptr, float, float, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i32, i32, i8, i8, i8, i8, ptr, [16 x i8], %struct.ImVector.3, %struct.ImVector.3, i32, i32, %struct.ImVector.4, %struct.ImVector.4, %struct.ImVector.4, %struct.ImVector.5, %struct.ImGuiStorage, i32, float, i32, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i32, i32, float, float, i8, i8, i8, i32, i32, float, i8, i8, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, %struct.ImGuiDeactivatedItemData, %struct.ImGuiDataTypeStorage, i32, float, double, double, double, %struct.ImBitArray, [155 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, i8, i32, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImVector.12, %struct.ImVector.13, %struct.ImVector.14, %struct.ImVector.14, %struct.ImVector.15, %struct.ImVector.16, ptr, ptr, ptr, i32, %struct.ImGuiPlatformMonitor, %struct.ImRect, i32, i32, i32, i8, i8, i8, i8, i32, ptr, i32, i32, i32, i32, i32, i32, %struct.ImVector.11, i32, float, i32, i32, i32, i64, i8, i8, i8, i8, %struct.ImGuiNavItemData, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, i32, i32, i8, i8, i32, i32, ptr, ptr, ptr, float, float, i8, i32, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.17, [16 x i8], i32, %struct.ImVector.18, ptr, i32, i32, %struct.ImVector.19, %struct.ImPool, %struct.ImVector.21, %struct.ImVector.22, ptr, %struct.ImPool.23, %struct.ImVector.25, %struct.ImVector.26, %struct.ImGuiBoxSelectState, ptr, i32, %struct.ImVector.27, %struct.ImPool.28, i32, i32, float, float, i32, i32, i32, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, %struct.ImGuiDataTypeStorage, i32, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, %struct.ImRect, i8, i16, float, float, float, i8, i8, float, float, float, i16, i16, ptr, %struct.ImVector.30, %struct.ImVector.32, %struct.ImGuiTypingSelectState, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i32, [4 x i8], %struct.ImGuiDockContext, ptr, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.35, %struct.ImChunkStream, %struct.ImChunkStream.36, %struct.ImVector.37, i32, [13 x ptr], i8, i32, ptr, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, ptr, ptr, %struct.ImVec2, i8, i32, %struct.ImGuiErrorRecoveryState, ptr, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i32, i32, i8, i8, i8, i32, i8, i8, i8, i32, float, %struct.ImVec4, %struct.ImGuiMetricsConfig, %struct.ImGuiIDStackTool, %struct.ImGuiDebugAllocInfo, ptr, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.30, [64 x i8] }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, float, float, float, float, float, float, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, %struct.ImVec2, ptr, %struct.ImVec2, [5 x i8], float, float, i32, i32, i8, i8, i8, i8, i32, [155 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 double], [5 x i8], [5 x i8], i8, i8, [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], float, i8, i8, i16, %struct.ImVector, ptr, ptr, ptr }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiPlatformIO = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, i16, ptr, ptr, 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, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, %struct.ImVec2, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, i8, float, float, [58 x %struct.ImVec4], float, float, float, i32, i32 }
%struct.ImDrawListSharedData = type <{ %struct.ImVec2, ptr, ptr, float, float, float, float, float, i32, %struct.ImVec4, %struct.ImVector.2, [48 x %struct.ImVec2], float, [64 x i8], [4 x i8] }>
%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.ImGuiDeactivatedItemData = type { i32, i32, i8, i8 }
%struct.ImBitArray = type { [5 x i32] }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [155 x i16], %struct.ImVector.7, %struct.ImVector.7 }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, i32, i32, [4 x i8], i64, float, i32, i32, i8, i8, %struct.ImGuiDataTypeStorage, [2 x i8], i32, [4 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, i32 }
%struct.ImGuiNextWindowData = type { i32, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i32, i32, i8, i8, %struct.ImRect, ptr, ptr, float, i32, i32, %struct.ImGuiWindowClass, %struct.ImVec2, i32 }
%struct.ImGuiWindowClass = type <{ i32, i32, i32, i32, i32, i32, i32, i8, i8, [2 x i8] }>
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImGuiPlatformMonitor = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, ptr }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type { ptr, i32, i32, %struct.ImRect, i32, float, float, float, i64 }
%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.ImGuiBoxSelectState = type <{ i32, i8, i8, i8, i8, i8, i16, i8, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, [4 x i8], ptr, i8, [3 x i8], %struct.ImRect, %struct.ImRect, %struct.ImRect, [4 x i8] }>
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImPool.28 = type { %struct.ImVector.29, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, ptr, i32, i32, i32, [4 x i8], ptr, %struct.ImVector.30, %struct.ImVector.30, %struct.ImVector.30, i32, %struct.ImVec2, float, i8, i8, i8, i8, i32, i32, [4 x i8] }>
%struct.ImGuiInputTextDeactivatedState = type { i32, %struct.ImVector.30 }
%struct.ImFont = type <{ %struct.ImVector.21, float, float, %struct.ImVector, %struct.ImVector.31, ptr, ptr, ptr, i16, i16, i16, i16, float, float, float, float, float, i32, i8, [1 x i8], [6 x i8] }>
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImGuiDataTypeStorage = type { [8 x i8] }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.32 = 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.33, %struct.ImVector.34, i8, [7 x i8] }>
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImVector.35 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.30 }
%struct.ImChunkStream.36 = type { %struct.ImVector.30 }
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImGuiErrorRecoveryState = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 }
%struct.ImGuiTextBuffer = type { %struct.ImVector.30 }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.12, i32, [4 x i8] }>
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32 }
%struct.ImGuiIDStackTool = type { i32, i32, i32, %struct.ImVector.38, i8, float, %struct.ImGuiTextBuffer }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImGuiDebugAllocInfo = type { i32, i32, i16, [6 x %struct.ImGuiDebugAllocEntry] }
%struct.ImGuiDebugAllocEntry = type { i32, i16, i16 }
%struct.ImVector.30 = 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, float, float, i32, 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, i8, i8, i8, i8, i16, i16, i16, i16, i16, i8, i8, i8, [3 x i8], i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, [4 x i8], %struct.ImVector.32, %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.41, float, float, float, float, i32, [4 x i8], ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], [2 x %struct.ImVec2], i32, i32, i32, i8, i8, i16, %struct.ImGuiWindowDockStyle, ptr, ptr, i32, [4 x i8] }>
%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, i32, i32, i32, i32, %struct.ImRect, 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.41 = type { i32, i32, ptr }
%struct.ImDrawList = type { %struct.ImVector.42, %struct.ImVector, %struct.ImVector.43, i32, i32, ptr, ptr, ptr, %struct.ImVector.2, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, %struct.ImVector.44, %struct.ImVector.45, %struct.ImVector.17, float, ptr }
%struct.ImVector.42 = type { i32, i32, ptr }
%struct.ImVector.43 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, i64, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.22 }
%struct.ImVector.44 = type { i32, i32, ptr }
%struct.ImVector.45 = type { i32, i32, ptr }
%struct.ImGuiWindowDockStyle = type { [8 x i32] }
%struct.ImGuiTable = type <{ i32, i32, ptr, ptr, %struct.ImSpan, %struct.ImSpan.46, %struct.ImSpan.47, 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.48, %struct.ImGuiTableColumnSortSpecs, [4 x i8], %struct.ImVector.49, %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, i8, [5 x i8] }>
%struct.ImSpan = type { ptr, ptr }
%struct.ImSpan.46 = type { ptr, ptr }
%struct.ImSpan.47 = type { ptr, ptr }
%struct.ImGuiTableInstanceData = type { i32, float, float, float, i32, i32 }
%struct.ImVector.48 = type { i32, i32, ptr }
%struct.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.49 = 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, %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.52, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, ptr }
%struct.ImVector.52 = type { i32, i32, ptr }
%struct.ImDrawDataBuilder = type { [2 x ptr], %struct.ImVector.52 }
%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], i64, i32, i32, ptr, i8, i8, i8, [5 x i8], ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.10, %struct.ImVector.53, %struct.ImVector.54, [33 x %struct.ImVec4], ptr, i32, i32, i32, [4 x i8] }>
%struct.ImVector.53 = type { i32, i32, ptr }
%struct.ImVector.54 = type { i32, i32, ptr }
%struct.ImGuiStoragePair = type { i32, %union.anon.39 }
%union.anon.39 = type { ptr }
%struct.ImGuiSettingsHandler = type { ptr, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.ImGuiWindowSettings = type <{ i32, %struct.ImVec2ih, %struct.ImVec2ih, %struct.ImVec2ih, i32, i32, i32, i16, i8, i8, i8, i8, [2 x i8] }>
%struct.ImGuiDockNodeSettings = type { i32, i32, i32, i32, i8, i8, i32, %struct.ImVec2ih, %struct.ImVec2ih, %struct.ImVec2ih }
%struct.ImGuiKeyRoutingData = type { i16, i16, i8, i8, i32, i32 }
%struct.ImGuiDockNode = type <{ i32, i32, i32, i32, i32, i32, ptr, [2 x ptr], %struct.ImVector.4, ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i32, %struct.ImGuiWindowClass, i32, ptr, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i16, i8, [5 x i8] }>
%struct.ImGuiFocusScopeData = type { i32, i32 }

@GImGui = external dso_local global ptr, align 8
@.str.14 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.476 = 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.494 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [64 x i8], align 16
@.str.520 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.529 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.530 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.531 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.532 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.533 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.535 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.536 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.537 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.538 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.539 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.540 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.541 = 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.542 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.543 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.544 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.545 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.546 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.547 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.548 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.549 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.550 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.551 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.552 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.553 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.554 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.555 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.556 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.557 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.558 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.560 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.561 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.562 = external hidden unnamed_addr constant [46 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only = external hidden global i8, align 1
@.str.563 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.564 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.565 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.566 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.567 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.568 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.569 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.570 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.571 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.572 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.573 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.574 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.575 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.576 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.577 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.578 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.579 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.580 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.581 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.582 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.583 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.584 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.585 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.586 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.587 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.588 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.589 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.590 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.591 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.592 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.593 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.594 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.595 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.596 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.597 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.598 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.599 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.600 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.601 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.602 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.603 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.604 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.605 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.606 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.607 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.608 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.609 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.610 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.611 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.613 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.614 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.615 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.616 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.617 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.618 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.619 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.620 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.621 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.622 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.623 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.624 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.625 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.626 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.627 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.628 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.629 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.630 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.631 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.632 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.633 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.634 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.635 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.636 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.637 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.638 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.639 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.640 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.641 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.642 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.643 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.644 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.645 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.646 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.647 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.648 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.649 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.650 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.651 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.652 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.653 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.654 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.655 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.656 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.657 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.658 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.659 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.660 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.661 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.662 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.663 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.664 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.665 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.666 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.667 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.668 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.669 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.670 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.671 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.672 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.673 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.674 = 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 @_ZN8ImVectorI16ImGuiStoragePairEixEi(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 @_ZN10ImDrawList7AddTextEP6ImFontfRK6ImVec2jPKcS6_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(216), 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(216), 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(216), 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: 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: 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 @_ZN5ImGui15GetKeyChordNameEi(i32 noundef) #9

; 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 nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef) #1

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

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

; 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

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

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

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

declare void @_ZN5ImGui9SeparatorEv() #7

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

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

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

declare void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef) #7

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef 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 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

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

declare void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(216), 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

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

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

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

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

177:                                              ; preds = %174, %169
  %178 = load ptr, ptr %2, align 8, !tbaa !5
  %179 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.471, ptr noundef %178, i32 noundef 0)
  br i1 %179, label %180, label %186

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

186:                                              ; preds = %180, %177
  call void @_ZN5ImGui3EndEv()
  store i32 1, ptr %6, align 4
  br label %2542

187:                                              ; preds = %180
  call void @_ZN5ImGui19DebugBreakClearDataEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.472, ptr noundef @.str.111, i32 noundef 19190)
  %188 = load ptr, ptr %3, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.ImGuiContext, ptr %188, i32 0, i32 24
  %190 = getelementptr inbounds [16 x i8], ptr %189, i64 0, i64 0
  %191 = load i8, ptr %190, align 8, !tbaa !49
  %192 = sext i8 %191 to i32
  %193 = icmp ne i32 %192, 0
  br i1 %193, label %194, label %198

194:                                              ; preds = %187
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %195 = load ptr, ptr %3, align 8, !tbaa !5
  %196 = getelementptr inbounds %struct.ImGuiContext, ptr %195, i32 0, i32 24
  %197 = getelementptr inbounds [16 x i8], ptr %196, i64 0, i64 0
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.473, ptr noundef %197)
  br label %198

198:                                              ; preds = %194, %187
  %199 = load ptr, ptr %4, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.ImGuiIO, ptr %199, i32 0, i32 67
  %201 = load float, ptr %200, align 8, !tbaa !50
  %202 = fdiv float 1.000000e+03, %201
  %203 = fpext float %202 to double
  %204 = load ptr, ptr %4, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.ImGuiIO, ptr %204, i32 0, i32 67
  %206 = load float, ptr %205, align 8, !tbaa !50
  %207 = fpext float %206 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.474, double noundef %203, double noundef %207)
  %208 = load ptr, ptr %4, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.ImGuiIO, ptr %208, i32 0, i32 68
  %210 = load i32, ptr %209, align 4, !tbaa !53
  %211 = load ptr, ptr %4, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.ImGuiIO, ptr %211, i32 0, i32 69
  %213 = load i32, ptr %212, align 8, !tbaa !54
  %214 = load ptr, ptr %4, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.ImGuiIO, ptr %214, i32 0, i32 69
  %216 = load i32, ptr %215, align 8, !tbaa !54
  %217 = sdiv i32 %216, 3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.475, i32 noundef %210, i32 noundef %213, i32 noundef %217)
  %218 = load ptr, ptr %4, align 8, !tbaa !5
  %219 = getelementptr inbounds %struct.ImGuiIO, ptr %218, i32 0, i32 70
  %220 = load i32, ptr %219, align 4, !tbaa !55
  %221 = load ptr, ptr %3, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.ImGuiContext, ptr %221, i32 0, i32 304
  %223 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %222, i32 0, i32 0
  %224 = load i32, ptr %223, align 8, !tbaa !56
  %225 = load ptr, ptr %3, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.ImGuiContext, ptr %225, i32 0, i32 304
  %227 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %226, i32 0, i32 1
  %228 = load i32, ptr %227, align 4, !tbaa !122
  %229 = sub nsw i32 %224, %228
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.476, i32 noundef %220, i32 noundef %229)
  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)
  %230 = load ptr, ptr %5, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %230, i32 0, i32 9
  %232 = load i32, ptr %231, align 4, !tbaa !123
  %233 = icmp slt i32 %232, 0
  br i1 %233, label %234, label %237

234:                                              ; preds = %198
  %235 = load ptr, ptr %5, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %235, i32 0, i32 9
  store i32 4, ptr %236, align 4, !tbaa !123
  br label %237

237:                                              ; preds = %234, %198
  %238 = load ptr, ptr %5, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %238, i32 0, i32 10
  %240 = load i32, ptr %239, align 4, !tbaa !124
  %241 = icmp slt i32 %240, 0
  br i1 %241, label %242, label %245

242:                                              ; preds = %237
  %243 = load ptr, ptr %5, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %243, i32 0, i32 10
  store i32 2, ptr %244, align 4, !tbaa !124
  br label %245

245:                                              ; preds = %242, %237
  %246 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.494)
  br i1 %246, label %247, label %598

247:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #10
  %248 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef @.str.496, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %248, ptr %9, align 4
  %249 = getelementptr inbounds %struct.ImVec2, ptr %9, i32 0, i32 0
  %250 = load float, ptr %249, align 4, !tbaa !125
  %251 = load ptr, ptr %3, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.ImGuiContext, ptr %251, i32 0, i32 4
  %253 = getelementptr inbounds %struct.ImGuiStyle, ptr %252, i32 0, i32 41
  %254 = getelementptr inbounds %struct.ImVec2, ptr %253, i32 0, i32 0
  %255 = load float, ptr %254, align 4, !tbaa !126
  %256 = fadd float %250, %255
  call void @_ZN5ImGui15SeparatorTextExEjPKcS1_f(i32 noundef 0, ptr noundef @.str.495, ptr noundef null, float noundef %256)
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #10
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.497)
  %257 = load ptr, ptr %3, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct.ImGuiContext, ptr %257, i32 0, i32 297
  %259 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.498, ptr noundef %258)
  br i1 %259, label %260, label %266

260:                                              ; preds = %247
  %261 = load ptr, ptr %3, align 8, !tbaa !5
  %262 = getelementptr inbounds %struct.ImGuiContext, ptr %261, i32 0, i32 297
  %263 = load i8, ptr %262, align 1, !tbaa !127, !range !13, !noundef !14
  %264 = trunc i8 %263 to i1
  br i1 %264, label %265, label %266

265:                                              ; preds = %260
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %266

266:                                              ; preds = %265, %260, %247
  %267 = load ptr, ptr %3, align 8, !tbaa !5
  %268 = getelementptr inbounds %struct.ImGuiContext, ptr %267, i32 0, i32 2
  %269 = getelementptr inbounds %struct.ImGuiIO, ptr %268, i32 0, i32 48
  %270 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.499, ptr noundef %269)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.500)
  %271 = load ptr, ptr %5, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %271, i32 0, i32 0
  %273 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.501, ptr noundef %272)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.502)
  %274 = load ptr, ptr %5, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %274, i32 0, i32 1
  %276 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.503, ptr noundef %275)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.504)
  %277 = load ptr, ptr %5, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %277, i32 0, i32 3
  %279 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.505, ptr noundef %278)
  %280 = load ptr, ptr %5, align 8, !tbaa !5
  %281 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %280, i32 0, i32 2
  %282 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.506, ptr noundef %281)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %283 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %284 = fmul float %283, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %284)
  %285 = load ptr, ptr %5, align 8, !tbaa !5
  %286 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %285, i32 0, i32 9
  %287 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 0
  %288 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.507, ptr noundef %286, ptr noundef %287, i32 noundef 8, i32 noundef 8)
  %289 = zext i1 %288 to i32
  %290 = load ptr, ptr %5, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %290, i32 0, i32 2
  %292 = load i8, ptr %291, align 2, !tbaa !128, !range !13, !noundef !14
  %293 = trunc i8 %292 to i1
  %294 = zext i1 %293 to i32
  %295 = or i32 %294, %289
  %296 = icmp ne i32 %295, 0
  %297 = zext i1 %296 to i8
  store i8 %297, ptr %291, align 2, !tbaa !128
  %298 = load ptr, ptr %5, align 8, !tbaa !5
  %299 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %298, i32 0, i32 2
  %300 = load i8, ptr %299, align 2, !tbaa !128, !range !13, !noundef !14
  %301 = trunc i8 %300 to i1
  br i1 %301, label %302, label %355

302:                                              ; preds = %266
  %303 = load ptr, ptr %3, align 8, !tbaa !5
  %304 = getelementptr inbounds %struct.ImGuiContext, ptr %303, i32 0, i32 119
  %305 = load ptr, ptr %304, align 8, !tbaa !129
  %306 = icmp ne ptr %305, null
  br i1 %306, label %307, label %355

307:                                              ; preds = %302
  %308 = load ptr, ptr %3, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.ImGuiContext, ptr %308, i32 0, i32 119
  %310 = load ptr, ptr %309, align 8, !tbaa !129
  %311 = getelementptr inbounds %struct.ImGuiWindow, ptr %310, i32 0, i32 1
  %312 = load ptr, ptr %311, align 8, !tbaa !130
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.508, ptr noundef %312)
  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 !131
  br label %313

313:                                              ; preds = %351, %307
  %314 = load i32, ptr %10, align 4, !tbaa !131
  %315 = icmp slt i32 %314, 8
  br i1 %315, label %317, label %316

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

317:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #10
  %318 = load ptr, ptr %3, align 8, !tbaa !5
  %319 = getelementptr inbounds %struct.ImGuiContext, ptr %318, i32 0, i32 119
  %320 = load ptr, ptr %319, align 8, !tbaa !129
  %321 = load i32, ptr %10, align 4, !tbaa !131
  %322 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %320, i32 noundef %321)
  %323 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %11, i32 0, i32 0
  %324 = extractvalue { <2 x float>, <2 x float> } %322, 0
  store <2 x float> %324, ptr %323, align 4
  %325 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %11, i32 0, i32 1
  %326 = extractvalue { <2 x float>, <2 x float> } %322, 1
  store <2 x float> %326, ptr %325, align 4
  %327 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 0
  %328 = getelementptr inbounds %struct.ImVec2, ptr %327, i32 0, i32 0
  %329 = load float, ptr %328, align 4, !tbaa !132
  %330 = fpext float %329 to double
  %331 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 0
  %332 = getelementptr inbounds %struct.ImVec2, ptr %331, i32 0, i32 1
  %333 = load float, ptr %332, align 4, !tbaa !133
  %334 = fpext float %333 to double
  %335 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 1
  %336 = getelementptr inbounds %struct.ImVec2, ptr %335, i32 0, i32 0
  %337 = load float, ptr %336, align 4, !tbaa !134
  %338 = fpext float %337 to double
  %339 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 1
  %340 = getelementptr inbounds %struct.ImVec2, ptr %339, i32 0, i32 1
  %341 = load float, ptr %340, align 4, !tbaa !135
  %342 = fpext float %341 to double
  %343 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %344 = fpext float %343 to double
  %345 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %346 = fpext float %345 to double
  %347 = load i32, ptr %10, align 4, !tbaa !131
  %348 = sext i32 %347 to i64
  %349 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 %348
  %350 = load ptr, ptr %349, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.509, double noundef %330, double noundef %334, double noundef %338, double noundef %342, double noundef %344, double noundef %346, ptr noundef %350)
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #10
  br label %351

351:                                              ; preds = %317
  %352 = load i32, ptr %10, align 4, !tbaa !131
  %353 = add nsw i32 %352, 1
  store i32 %353, ptr %10, align 4, !tbaa !131
  br label %313, !llvm.loop !136

354:                                              ; preds = %316
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %355

355:                                              ; preds = %354, %302, %266
  %356 = load ptr, ptr %5, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %356, i32 0, i32 4
  %358 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.510, ptr noundef %357)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %359 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %360 = fmul float %359, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %360)
  %361 = load ptr, ptr %5, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %361, i32 0, i32 10
  %363 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 0
  %364 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.511, ptr noundef %362, ptr noundef %363, i32 noundef 13, i32 noundef 13)
  %365 = zext i1 %364 to i32
  %366 = load ptr, ptr %5, align 8, !tbaa !5
  %367 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %366, i32 0, i32 4
  %368 = load i8, ptr %367, align 4, !tbaa !138, !range !13, !noundef !14
  %369 = trunc i8 %368 to i1
  %370 = zext i1 %369 to i32
  %371 = or i32 %370, %365
  %372 = icmp ne i32 %371, 0
  %373 = zext i1 %372 to i8
  store i8 %373, ptr %367, align 4, !tbaa !138
  %374 = load ptr, ptr %5, align 8, !tbaa !5
  %375 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %374, i32 0, i32 4
  %376 = load i8, ptr %375, align 4, !tbaa !138, !range !13, !noundef !14
  %377 = trunc i8 %376 to i1
  br i1 %377, label %378, label %576

378:                                              ; preds = %355
  %379 = load ptr, ptr %3, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.ImGuiContext, ptr %379, i32 0, i32 119
  %381 = load ptr, ptr %380, align 8, !tbaa !129
  %382 = icmp ne ptr %381, null
  br i1 %382, label %383, label %576

383:                                              ; preds = %378
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  store i32 0, ptr %12, align 4, !tbaa !131
  br label %384

384:                                              ; preds = %572, %383
  %385 = load i32, ptr %12, align 4, !tbaa !131
  %386 = load ptr, ptr %3, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.ImGuiContext, ptr %386, i32 0, i32 199
  %388 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %387)
  %389 = icmp slt i32 %385, %388
  br i1 %389, label %391, label %390

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

391:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #10
  %392 = load ptr, ptr %3, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.ImGuiContext, ptr %392, i32 0, i32 199
  %394 = load i32, ptr %12, align 4, !tbaa !131
  %395 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %393, i32 noundef %394)
  store ptr %395, ptr %13, align 8, !tbaa !5
  %396 = load ptr, ptr %13, align 8, !tbaa !5
  %397 = icmp eq ptr %396, null
  br i1 %397, label %423, label %398

398:                                              ; preds = %391
  %399 = load ptr, ptr %13, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.ImGuiTable, ptr %399, i32 0, i32 12
  %401 = load i32, ptr %400, align 8, !tbaa !139
  %402 = load ptr, ptr %3, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.ImGuiContext, ptr %402, i32 0, i32 14
  %404 = load i32, ptr %403, align 8, !tbaa !150
  %405 = sub nsw i32 %404, 1
  %406 = icmp slt i32 %401, %405
  br i1 %406, label %423, label %407

407:                                              ; preds = %398
  %408 = load ptr, ptr %13, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.ImGuiTable, ptr %408, i32 0, i32 55
  %410 = load ptr, ptr %409, align 8, !tbaa !151
  %411 = load ptr, ptr %3, align 8, !tbaa !5
  %412 = getelementptr inbounds %struct.ImGuiContext, ptr %411, i32 0, i32 119
  %413 = load ptr, ptr %412, align 8, !tbaa !129
  %414 = icmp ne ptr %410, %413
  br i1 %414, label %415, label %424

415:                                              ; preds = %407
  %416 = load ptr, ptr %13, align 8, !tbaa !5
  %417 = getelementptr inbounds %struct.ImGuiTable, ptr %416, i32 0, i32 56
  %418 = load ptr, ptr %417, align 8, !tbaa !152
  %419 = load ptr, ptr %3, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.ImGuiContext, ptr %419, i32 0, i32 119
  %421 = load ptr, ptr %420, align 8, !tbaa !129
  %422 = icmp ne ptr %418, %421
  br i1 %422, label %423, label %424

423:                                              ; preds = %415, %398, %391
  store i32 7, ptr %6, align 4
  br label %569

424:                                              ; preds = %415, %407
  %425 = load ptr, ptr %13, align 8, !tbaa !5
  %426 = getelementptr inbounds %struct.ImGuiTable, ptr %425, i32 0, i32 0
  %427 = load i32, ptr %426, align 8, !tbaa !153
  %428 = load ptr, ptr %13, align 8, !tbaa !5
  %429 = getelementptr inbounds %struct.ImGuiTable, ptr %428, i32 0, i32 13
  %430 = load i32, ptr %429, align 4, !tbaa !154
  %431 = load ptr, ptr %13, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.ImGuiTable, ptr %431, i32 0, i32 55
  %433 = load ptr, ptr %432, align 8, !tbaa !151
  %434 = getelementptr inbounds %struct.ImGuiWindow, ptr %433, i32 0, i32 1
  %435 = load ptr, ptr %434, align 8, !tbaa !130
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.512, i32 noundef %427, i32 noundef %430, ptr noundef %435)
  %436 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %436, label %437, label %447

437:                                              ; preds = %424
  %438 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #10
  %439 = load ptr, ptr %13, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.ImGuiTable, ptr %439, i32 0, i32 46
  %441 = getelementptr inbounds %struct.ImRect, ptr %440, 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)
  %442 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %441, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %442, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %443 = load ptr, ptr %13, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.ImGuiTable, ptr %443, i32 0, i32 46
  %445 = getelementptr inbounds %struct.ImRect, ptr %444, 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)
  %446 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %445, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %446, ptr %16, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %438, 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 %447

447:                                              ; preds = %437, %424
  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 !131
  br label %448

448:                                              ; preds = %565, %447
  %449 = load i32, ptr %19, align 4, !tbaa !131
  %450 = icmp slt i32 %449, 13
  br i1 %450, label %452, label %451

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

452:                                              ; preds = %448
  %453 = load i32, ptr %19, align 4, !tbaa !131
  %454 = icmp sge i32 %453, 6
  br i1 %454, label %455, label %520

455:                                              ; preds = %452
  %456 = load i32, ptr %19, align 4, !tbaa !131
  %457 = icmp ne i32 %456, 6
  br i1 %457, label %458, label %462

458:                                              ; preds = %455
  %459 = load i32, ptr %19, align 4, !tbaa !131
  %460 = icmp ne i32 %459, 8
  br i1 %460, label %461, label %462

461:                                              ; preds = %458
  br label %565

462:                                              ; preds = %458, %455
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  store i32 0, ptr %20, align 4, !tbaa !131
  br label %463

463:                                              ; preds = %516, %462
  %464 = load i32, ptr %20, align 4, !tbaa !131
  %465 = load ptr, ptr %13, align 8, !tbaa !5
  %466 = getelementptr inbounds %struct.ImGuiTable, ptr %465, i32 0, i32 13
  %467 = load i32, ptr %466, align 4, !tbaa !154
  %468 = icmp slt i32 %464, %467
  br i1 %468, label %470, label %469

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

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

509:                                              ; preds = %470
  %510 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  %511 = 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)
  %512 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %511, ptr noundef nonnull align 4 dereferenceable(8) %24)
  store <2 x float> %512, ptr %23, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  %513 = 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)
  %514 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %513, ptr noundef nonnull align 4 dereferenceable(8) %26)
  store <2 x float> %514, ptr %25, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %510, 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 %515

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

516:                                              ; preds = %515
  %517 = load i32, ptr %20, align 4, !tbaa !131
  %518 = add nsw i32 %517, 1
  store i32 %518, ptr %20, align 4, !tbaa !131
  br label %463, !llvm.loop !155

519:                                              ; preds = %469
  br label %564

520:                                              ; preds = %452
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #10
  %521 = load ptr, ptr %13, align 8, !tbaa !5
  %522 = load i32, ptr %19, align 4, !tbaa !131
  %523 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %521, i32 noundef %522, i32 noundef -1)
  %524 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 0
  %525 = extractvalue { <2 x float>, <2 x float> } %523, 0
  store <2 x float> %525, ptr %524, align 4
  %526 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 1
  %527 = extractvalue { <2 x float>, <2 x float> } %523, 1
  store <2 x float> %527, ptr %526, align 4
  %528 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %529 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %530 = getelementptr inbounds %struct.ImVec2, ptr %529, i32 0, i32 0
  %531 = load float, ptr %530, align 4, !tbaa !132
  %532 = fpext float %531 to double
  %533 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %534 = getelementptr inbounds %struct.ImVec2, ptr %533, i32 0, i32 1
  %535 = load float, ptr %534, align 4, !tbaa !133
  %536 = fpext float %535 to double
  %537 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %538 = getelementptr inbounds %struct.ImVec2, ptr %537, i32 0, i32 0
  %539 = load float, ptr %538, align 4, !tbaa !134
  %540 = fpext float %539 to double
  %541 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %542 = getelementptr inbounds %struct.ImVec2, ptr %541, i32 0, i32 1
  %543 = load float, ptr %542, align 4, !tbaa !135
  %544 = fpext float %543 to double
  %545 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %546 = fpext float %545 to double
  %547 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %548 = fpext float %547 to double
  %549 = load i32, ptr %19, align 4, !tbaa !131
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 %550
  %552 = load ptr, ptr %551, align 8, !tbaa !5
  %553 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %528, i64 noundef 128, ptr noundef @.str.509, double noundef %532, double noundef %536, double noundef %540, double noundef %544, double noundef %546, double noundef %548, ptr noundef %552)
  %554 = 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)
  %555 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %554, 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
  %556 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %556, label %557, label %563

557:                                              ; preds = %520
  %558 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  %559 = 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)
  %560 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %559, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %560, ptr %29, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %561 = 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)
  %562 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %561, ptr noundef nonnull align 4 dereferenceable(8) %32)
  store <2 x float> %562, ptr %31, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %558, 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 %563

563:                                              ; preds = %557, %520
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #10
  br label %564

564:                                              ; preds = %563, %519
  br label %565

565:                                              ; preds = %564, %461
  %566 = load i32, ptr %19, align 4, !tbaa !131
  %567 = add nsw i32 %566, 1
  store i32 %567, ptr %19, align 4, !tbaa !131
  br label %448, !llvm.loop !156

568:                                              ; preds = %451
  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 %569

569:                                              ; preds = %568, %423
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #10
  %570 = load i32, ptr %6, align 4
  switch i32 %570, label %2550 [
    i32 0, label %571
    i32 7, label %572
  ]

571:                                              ; preds = %569
  br label %572

572:                                              ; preds = %571, %569
  %573 = load i32, ptr %12, align 4, !tbaa !131
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr %12, align 4, !tbaa !131
  br label %384, !llvm.loop !157

575:                                              ; preds = %390
  br label %576

576:                                              ; preds = %575, %378, %355
  %577 = load ptr, ptr %3, align 8, !tbaa !5
  %578 = getelementptr inbounds %struct.ImGuiContext, ptr %577, i32 0, i32 93
  %579 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.514, ptr noundef %578)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.515)
  %580 = load ptr, ptr %4, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.ImGuiIO, ptr %580, i32 0, i32 52
  %582 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.516, ptr noundef %581)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.517)
  %583 = load ptr, ptr %5, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %583, i32 0, i32 7
  %585 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.518, ptr noundef %584)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.519)
  %586 = load ptr, ptr %5, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %586, i32 0, i32 7
  %588 = load i8, ptr %587, align 1, !tbaa !158, !range !13, !noundef !14
  %589 = trunc i8 %588 to i1
  br i1 %589, label %590, label %597

590:                                              ; preds = %576
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %591 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.520, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 64, i32 noundef 0, ptr noundef null, ptr noundef null)
  %592 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !49
  %593 = sext i8 %592 to i32
  %594 = icmp ne i32 %593, 0
  br i1 %594, label %595, label %596

595:                                              ; preds = %590
  call void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf)
  br label %596

596:                                              ; preds = %595, %590
  br label %597

597:                                              ; preds = %596, %576
  call void @_ZN5ImGui7TreePopEv()
  br label %598

598:                                              ; preds = %597, %245
  %599 = load ptr, ptr %3, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.ImGuiContext, ptr %599, i32 0, i32 29
  %601 = getelementptr inbounds %struct.ImVector.4, ptr %600, i32 0, i32 0
  %602 = load i32, ptr %601, align 8, !tbaa !159
  %603 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.521, ptr noundef @.str.522, i32 noundef %602)
  br i1 %603, label %604, label %657

604:                                              ; preds = %598
  %605 = load ptr, ptr %3, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.ImGuiContext, ptr %605, i32 0, i32 29
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %606, ptr noundef @.str.523)
  %607 = load ptr, ptr %3, align 8, !tbaa !5
  %608 = getelementptr inbounds %struct.ImGuiContext, ptr %607, i32 0, i32 30
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %608, ptr noundef @.str.524)
  %609 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.525)
  br i1 %609, label %610, label %656

610:                                              ; preds = %604
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  %611 = load ptr, ptr %3, align 8, !tbaa !5
  %612 = getelementptr inbounds %struct.ImGuiContext, ptr %611, i32 0, i32 31
  store ptr %612, ptr %33, align 8, !tbaa !5
  %613 = load ptr, ptr %33, align 8, !tbaa !5
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %613, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %614 = load ptr, ptr %3, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.ImGuiContext, ptr %614, i32 0, i32 29
  store ptr %615, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  %616 = load ptr, ptr %34, align 8, !tbaa !5
  %617 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %616)
  store ptr %617, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #10
  %618 = load ptr, ptr %34, align 8, !tbaa !5
  %619 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %618)
  store ptr %619, ptr %36, align 8, !tbaa !5
  br label %620

620:                                              ; preds = %639, %610
  %621 = load ptr, ptr %35, align 8, !tbaa !5
  %622 = load ptr, ptr %36, align 8, !tbaa !5
  %623 = icmp ne ptr %621, %622
  br i1 %623, label %625, label %624

624:                                              ; preds = %620
  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 %642

625:                                              ; preds = %620
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #10
  %626 = load ptr, ptr %35, align 8, !tbaa !5
  %627 = load ptr, ptr %626, align 8, !tbaa !5
  store ptr %627, ptr %37, align 8, !tbaa !5
  %628 = load ptr, ptr %37, align 8, !tbaa !5
  %629 = getelementptr inbounds %struct.ImGuiWindow, ptr %628, i32 0, i32 88
  %630 = load i32, ptr %629, align 8, !tbaa !160
  %631 = add nsw i32 %630, 1
  %632 = load ptr, ptr %3, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.ImGuiContext, ptr %632, i32 0, i32 14
  %634 = load i32, ptr %633, align 8, !tbaa !150
  %635 = icmp sge i32 %631, %634
  br i1 %635, label %636, label %638

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

638:                                              ; preds = %636, %625
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  br label %639

639:                                              ; preds = %638
  %640 = load ptr, ptr %35, align 8, !tbaa !5
  %641 = getelementptr inbounds ptr, ptr %640, i32 1
  store ptr %641, ptr %35, align 8, !tbaa !5
  br label %620

642:                                              ; preds = %624
  %643 = load ptr, ptr %33, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.ImVector.4, ptr %643, i32 0, i32 2
  %645 = load ptr, ptr %644, align 8, !tbaa !161
  %646 = load ptr, ptr %33, align 8, !tbaa !5
  %647 = getelementptr inbounds %struct.ImVector.4, ptr %646, i32 0, i32 0
  %648 = load i32, ptr %647, align 8, !tbaa !162
  %649 = sext i32 %648 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %645, i64 noundef %649, i64 noundef 8, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %650 = load ptr, ptr %33, align 8, !tbaa !5
  %651 = getelementptr inbounds %struct.ImVector.4, ptr %650, i32 0, i32 2
  %652 = load ptr, ptr %651, align 8, !tbaa !161
  %653 = load ptr, ptr %33, align 8, !tbaa !5
  %654 = getelementptr inbounds %struct.ImVector.4, ptr %653, i32 0, i32 0
  %655 = load i32, ptr %654, align 8, !tbaa !162
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %652, i32 noundef %655, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  br label %656

656:                                              ; preds = %642, %604
  call void @_ZN5ImGui7TreePopEv()
  br label %657

657:                                              ; preds = %656, %598
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  store i32 0, ptr %38, align 4, !tbaa !131
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  %658 = load ptr, ptr %3, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.ImGuiContext, ptr %658, i32 0, i32 104
  store ptr %659, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #10
  %660 = load ptr, ptr %39, align 8, !tbaa !5
  %661 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %660)
  store ptr %661, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  %662 = load ptr, ptr %39, align 8, !tbaa !5
  %663 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %662)
  store ptr %663, ptr %41, align 8, !tbaa !5
  br label %664

664:                                              ; preds = %679, %657
  %665 = load ptr, ptr %40, align 8, !tbaa !5
  %666 = load ptr, ptr %41, align 8, !tbaa !5
  %667 = icmp ne ptr %665, %666
  br i1 %667, label %669, label %668

668:                                              ; preds = %664
  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 %682

669:                                              ; preds = %664
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  %670 = load ptr, ptr %40, align 8, !tbaa !5
  %671 = load ptr, ptr %670, align 8, !tbaa !5
  store ptr %671, ptr %42, align 8, !tbaa !5
  %672 = load ptr, ptr %42, align 8, !tbaa !5
  %673 = getelementptr inbounds %struct.ImGuiViewportP, ptr %672, i32 0, i32 14
  %674 = getelementptr inbounds %struct.ImDrawData, ptr %673, i32 0, i32 4
  %675 = getelementptr inbounds %struct.ImVector.52, ptr %674, i32 0, i32 0
  %676 = load i32, ptr %675, align 8, !tbaa !163
  %677 = load i32, ptr %38, align 4, !tbaa !131
  %678 = add nsw i32 %677, %676
  store i32 %678, ptr %38, align 4, !tbaa !131
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  br label %679

679:                                              ; preds = %669
  %680 = load ptr, ptr %40, align 8, !tbaa !5
  %681 = getelementptr inbounds ptr, ptr %680, i32 1
  store ptr %681, ptr %40, align 8, !tbaa !5
  br label %664

682:                                              ; preds = %668
  %683 = load i32, ptr %38, align 4, !tbaa !131
  %684 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.526, ptr noundef @.str.527, i32 noundef %683)
  br i1 %684, label %685, label %741

685:                                              ; preds = %682
  %686 = load ptr, ptr %5, align 8, !tbaa !5
  %687 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %686, i32 0, i32 5
  %688 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.528, ptr noundef %687)
  %689 = load ptr, ptr %5, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %689, i32 0, i32 6
  %691 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.529, ptr noundef %690)
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #10
  %692 = load ptr, ptr %3, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.ImGuiContext, ptr %692, i32 0, i32 104
  store ptr %693, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #10
  %694 = load ptr, ptr %43, align 8, !tbaa !5
  %695 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %694)
  store ptr %695, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  %696 = load ptr, ptr %43, align 8, !tbaa !5
  %697 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %696)
  store ptr %697, ptr %45, align 8, !tbaa !5
  br label %698

698:                                              ; preds = %737, %685
  %699 = load ptr, ptr %44, align 8, !tbaa !5
  %700 = load ptr, ptr %45, align 8, !tbaa !5
  %701 = icmp ne ptr %699, %700
  br i1 %701, label %703, label %702

702:                                              ; preds = %698
  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 %740

703:                                              ; preds = %698
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #10
  %704 = load ptr, ptr %44, align 8, !tbaa !5
  %705 = load ptr, ptr %704, align 8, !tbaa !5
  store ptr %705, 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 !169
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  %706 = load ptr, ptr %46, align 8, !tbaa !5
  %707 = getelementptr inbounds %struct.ImGuiViewportP, ptr %706, i32 0, i32 14
  %708 = getelementptr inbounds %struct.ImDrawData, ptr %707, i32 0, i32 4
  store ptr %708, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #10
  %709 = load ptr, ptr %48, align 8, !tbaa !5
  %710 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %709)
  store ptr %710, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #10
  %711 = load ptr, ptr %48, align 8, !tbaa !5
  %712 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %711)
  store ptr %712, ptr %50, align 8, !tbaa !5
  br label %713

713:                                              ; preds = %733, %703
  %714 = load ptr, ptr %49, align 8, !tbaa !5
  %715 = load ptr, ptr %50, align 8, !tbaa !5
  %716 = icmp ne ptr %714, %715
  br i1 %716, label %718, label %717

717:                                              ; preds = %713
  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 %736

718:                                              ; preds = %713
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #10
  %719 = load ptr, ptr %49, align 8, !tbaa !5
  %720 = load ptr, ptr %719, align 8, !tbaa !5
  store ptr %720, ptr %51, align 8, !tbaa !5
  %721 = load i8, ptr %47, align 1, !tbaa !169, !range !13, !noundef !14
  %722 = trunc i8 %721 to i1
  br i1 %722, label %730, label %723

723:                                              ; preds = %718
  %724 = load ptr, ptr %46, align 8, !tbaa !5
  %725 = getelementptr inbounds %struct.ImGuiViewportP, ptr %724, i32 0, i32 2
  %726 = load i32, ptr %725, align 8, !tbaa !170
  %727 = load ptr, ptr %46, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.ImGuiViewport, ptr %727, i32 0, i32 0
  %729 = load i32, ptr %728, align 8, !tbaa !171
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.530, i32 noundef %726, i32 noundef %729)
  br label %730

730:                                              ; preds = %723, %718
  store i8 1, ptr %47, align 1, !tbaa !169
  %731 = load ptr, ptr %46, align 8, !tbaa !5
  %732 = load ptr, ptr %51, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef %731, ptr noundef %732, ptr noundef @.str.531)
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  br label %733

733:                                              ; preds = %730
  %734 = load ptr, ptr %49, align 8, !tbaa !5
  %735 = getelementptr inbounds ptr, ptr %734, i32 1
  store ptr %735, ptr %49, align 8, !tbaa !5
  br label %713

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

737:                                              ; preds = %736
  %738 = load ptr, ptr %44, align 8, !tbaa !5
  %739 = getelementptr inbounds ptr, ptr %738, i32 1
  store ptr %739, ptr %44, align 8, !tbaa !5
  br label %698

740:                                              ; preds = %702
  call void @_ZN5ImGui7TreePopEv()
  br label %741

741:                                              ; preds = %740, %682
  %742 = load ptr, ptr %3, align 8, !tbaa !5
  %743 = getelementptr inbounds %struct.ImGuiContext, ptr %742, i32 0, i32 104
  %744 = getelementptr inbounds %struct.ImVector.16, ptr %743, i32 0, i32 0
  %745 = load i32, ptr %744, align 8, !tbaa !172
  %746 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.532, ptr noundef @.str.533, i32 noundef %745)
  br i1 %746, label %747, label %948

747:                                              ; preds = %741
  %748 = load ptr, ptr %5, align 8, !tbaa !5
  %749 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %748, i32 0, i32 11
  store i32 -1, ptr %749, align 4, !tbaa !173
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #10
  %750 = load ptr, ptr %3, align 8, !tbaa !5
  %751 = getelementptr inbounds %struct.ImGuiContext, ptr %750, i32 0, i32 3
  %752 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %751, i32 0, i32 33
  %753 = getelementptr inbounds %struct.ImVector.0, ptr %752, i32 0, i32 0
  %754 = load i32, ptr %753, align 8, !tbaa !174
  %755 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.534, ptr noundef @.str.535, i32 noundef %754)
  %756 = zext i1 %755 to i8
  store i8 %756, ptr %52, align 1, !tbaa !169
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.536)
  %757 = load i8, ptr %52, align 1, !tbaa !169, !range !13, !noundef !14
  %758 = trunc i8 %757 to i1
  br i1 %758, label %759, label %788

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

760:                                              ; preds = %782, %759
  %761 = load i32, ptr %53, align 4, !tbaa !131
  %762 = load ptr, ptr %3, align 8, !tbaa !5
  %763 = getelementptr inbounds %struct.ImGuiContext, ptr %762, i32 0, i32 3
  %764 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %763, i32 0, i32 33
  %765 = getelementptr inbounds %struct.ImVector.0, ptr %764, i32 0, i32 0
  %766 = load i32, ptr %765, align 8, !tbaa !174
  %767 = icmp slt i32 %761, %766
  br i1 %767, label %769, label %768

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

769:                                              ; preds = %760
  %770 = load ptr, ptr %3, align 8, !tbaa !5
  %771 = getelementptr inbounds %struct.ImGuiContext, ptr %770, i32 0, i32 3
  %772 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %771, i32 0, i32 33
  %773 = load i32, ptr %53, align 4, !tbaa !131
  %774 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI20ImGuiPlatformMonitorEixEi(ptr noundef nonnull align 8 dereferenceable(16) %772, i32 noundef %773)
  %775 = load i32, ptr %53, align 4, !tbaa !131
  call void @_ZN5ImGui24DebugNodePlatformMonitorEP20ImGuiPlatformMonitorPKci(ptr noundef %774, ptr noundef @.str.537, i32 noundef %775)
  %776 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %776, label %777, label %781

777:                                              ; preds = %769
  %778 = load i32, ptr %53, align 4, !tbaa !131
  %779 = load ptr, ptr %5, align 8, !tbaa !5
  %780 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %779, i32 0, i32 11
  store i32 %778, ptr %780, align 4, !tbaa !173
  br label %781

781:                                              ; preds = %777, %769
  br label %782

782:                                              ; preds = %781
  %783 = load i32, ptr %53, align 4, !tbaa !131
  %784 = add nsw i32 %783, 1
  store i32 %784, ptr %53, align 4, !tbaa !131
  br label %760, !llvm.loop !175

785:                                              ; preds = %768
  %786 = load ptr, ptr %3, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.ImGuiContext, ptr %786, i32 0, i32 109
  call void @_ZN5ImGui24DebugNodePlatformMonitorEP20ImGuiPlatformMonitorPKci(ptr noundef %787, ptr noundef @.str.538, i32 noundef 0)
  call void @_ZN5ImGui7TreePopEv()
  br label %788

788:                                              ; preds = %785, %747
  call void @_ZN5ImGui15SetNextItemOpenEbi(i1 noundef zeroext true, i32 noundef 2)
  %789 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.539)
  br i1 %789, label %790, label %791

790:                                              ; preds = %788
  call void @_ZL25RenderViewportsThumbnailsv()
  call void @_ZN5ImGui7TreePopEv()
  br label %791

791:                                              ; preds = %790, %788
  %792 = load ptr, ptr %5, align 8, !tbaa !5
  %793 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %792, i32 0, i32 12
  store i32 0, ptr %793, align 4, !tbaa !176
  %794 = load ptr, ptr %3, align 8, !tbaa !5
  %795 = getelementptr inbounds %struct.ImGuiContext, ptr %794, i32 0, i32 106
  %796 = load ptr, ptr %795, align 8, !tbaa !177
  %797 = icmp ne ptr %796, null
  br i1 %797, label %798, label %804

798:                                              ; preds = %791
  %799 = load ptr, ptr %3, align 8, !tbaa !5
  %800 = getelementptr inbounds %struct.ImGuiContext, ptr %799, i32 0, i32 106
  %801 = load ptr, ptr %800, align 8, !tbaa !177
  %802 = getelementptr inbounds %struct.ImGuiViewport, ptr %801, i32 0, i32 0
  %803 = load i32, ptr %802, align 8, !tbaa !171
  br label %805

804:                                              ; preds = %791
  br label %805

805:                                              ; preds = %804, %798
  %806 = phi i32 [ %803, %798 ], [ 0, %804 ]
  %807 = load ptr, ptr %3, align 8, !tbaa !5
  %808 = getelementptr inbounds %struct.ImGuiContext, ptr %807, i32 0, i32 2
  %809 = getelementptr inbounds %struct.ImGuiIO, ptr %808, i32 0, i32 79
  %810 = load i32, ptr %809, align 4, !tbaa !178
  %811 = load ptr, ptr %3, align 8, !tbaa !5
  %812 = getelementptr inbounds %struct.ImGuiContext, ptr %811, i32 0, i32 107
  %813 = load ptr, ptr %812, align 8, !tbaa !179
  %814 = icmp ne ptr %813, null
  br i1 %814, label %815, label %821

815:                                              ; preds = %805
  %816 = load ptr, ptr %3, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.ImGuiContext, ptr %816, i32 0, i32 107
  %818 = load ptr, ptr %817, align 8, !tbaa !179
  %819 = getelementptr inbounds %struct.ImGuiViewport, ptr %818, i32 0, i32 0
  %820 = load i32, ptr %819, align 8, !tbaa !171
  br label %822

821:                                              ; preds = %805
  br label %822

822:                                              ; preds = %821, %815
  %823 = phi i32 [ %820, %815 ], [ 0, %821 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.540, i32 noundef %806, i32 noundef %810, i32 noundef %823)
  %824 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.541)
  br i1 %824, label %825, label %928

825:                                              ; preds = %822
  %826 = load atomic i8, ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports acquire, align 8
  %827 = icmp eq i8 %826, 0
  br i1 %827, label %828, label %834, !prof !180

828:                                              ; preds = %825
  %829 = call i32 @__cxa_guard_acquire(ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #10
  %830 = icmp ne i32 %829, 0
  br i1 %830, label %831, label %834

831:                                              ; preds = %828
  invoke void @_ZN8ImVectorIP14ImGuiViewportPEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
          to label %832 unwind label %854

832:                                              ; preds = %831
  %833 = call i32 @__cxa_atexit(ptr @_ZN8ImVectorIP14ImGuiViewportPED2Ev, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, ptr @__dso_handle) #10
  call void @__cxa_guard_release(ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #10
  br label %834

834:                                              ; preds = %832, %828, %825
  %835 = load ptr, ptr %3, align 8, !tbaa !5
  %836 = getelementptr inbounds %struct.ImGuiContext, ptr %835, i32 0, i32 104
  %837 = getelementptr inbounds %struct.ImVector.16, ptr %836, i32 0, i32 0
  %838 = load i32, ptr %837, align 8, !tbaa !172
  call void @_ZN8ImVectorIP14ImGuiViewportPE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 noundef %838)
  %839 = load ptr, ptr getelementptr inbounds (%struct.ImVector.16, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 0, i32 2), align 8, !tbaa !181
  %840 = load ptr, ptr %3, align 8, !tbaa !5
  %841 = getelementptr inbounds %struct.ImGuiContext, ptr %840, i32 0, i32 104
  %842 = getelementptr inbounds %struct.ImVector.16, ptr %841, i32 0, i32 2
  %843 = load ptr, ptr %842, align 8, !tbaa !182
  %844 = load ptr, ptr %3, align 8, !tbaa !5
  %845 = getelementptr inbounds %struct.ImGuiContext, ptr %844, i32 0, i32 104
  %846 = call noundef i32 @_ZNK8ImVectorIP14ImGuiViewportPE13size_in_bytesEv(ptr noundef nonnull align 8 dereferenceable(16) %845)
  %847 = sext i32 %846 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %839, ptr align 8 %843, i64 %847, i1 false)
  %848 = load i32, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, align 8, !tbaa !183
  %849 = icmp sgt i32 %848, 1
  br i1 %849, label %850, label %858

850:                                              ; preds = %834
  %851 = load ptr, ptr getelementptr inbounds (%struct.ImVector.16, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 0, i32 2), align 8, !tbaa !181
  %852 = load i32, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, align 8, !tbaa !183
  %853 = sext i32 %852 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %851, i64 noundef %853, i64 noundef 8, ptr noundef @_ZL39ViewportComparerByLastFocusedStampCountPKvS0_)
  br label %858

854:                                              ; preds = %831
  %855 = landingpad { ptr, i32 }
          cleanup
  %856 = extractvalue { ptr, i32 } %855, 0
  store ptr %856, ptr %54, align 8
  %857 = extractvalue { ptr, i32 } %855, 1
  store i32 %857, ptr %55, 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 %2545

858:                                              ; preds = %850, %834
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #10
  store ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #10
  %859 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  store ptr %859, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #10
  %860 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  store ptr %860, ptr %58, align 8, !tbaa !5
  br label %861

861:                                              ; preds = %924, %858
  %862 = load ptr, ptr %57, align 8, !tbaa !5
  %863 = load ptr, ptr %58, align 8, !tbaa !5
  %864 = icmp ne ptr %862, %863
  br i1 %864, label %866, label %865

865:                                              ; preds = %861
  store i32 25, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #10
  br label %927

866:                                              ; preds = %861
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #10
  %867 = load ptr, ptr %57, align 8, !tbaa !5
  %868 = load ptr, ptr %867, align 8, !tbaa !5
  store ptr %868, ptr %59, align 8, !tbaa !5
  %869 = load ptr, ptr %59, align 8, !tbaa !5
  %870 = getelementptr inbounds %struct.ImGuiViewportP, ptr %869, i32 0, i32 2
  %871 = load i32, ptr %870, align 8, !tbaa !170
  %872 = load ptr, ptr %59, align 8, !tbaa !5
  %873 = getelementptr inbounds %struct.ImGuiViewport, ptr %872, i32 0, i32 0
  %874 = load i32, ptr %873, align 8, !tbaa !171
  %875 = load ptr, ptr %59, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.ImGuiViewportP, ptr %875, i32 0, i32 4
  %877 = load i32, ptr %876, align 8, !tbaa !184
  %878 = load ptr, ptr %3, align 8, !tbaa !5
  %879 = getelementptr inbounds %struct.ImGuiContext, ptr %878, i32 0, i32 3
  %880 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %879, i32 0, i32 17
  %881 = load ptr, ptr %880, align 8, !tbaa !185
  %882 = icmp ne ptr %881, null
  br i1 %882, label %883, label %900

883:                                              ; preds = %866
  %884 = load ptr, ptr %59, align 8, !tbaa !5
  %885 = getelementptr inbounds %struct.ImGuiViewport, ptr %884, i32 0, i32 13
  %886 = load i8, ptr %885, align 8, !tbaa !186, !range !13, !noundef !14
  %887 = trunc i8 %886 to i1
  br i1 %887, label %888, label %900

888:                                              ; preds = %883
  %889 = load ptr, ptr %3, align 8, !tbaa !5
  %890 = getelementptr inbounds %struct.ImGuiContext, ptr %889, i32 0, i32 3
  %891 = getelementptr inbounds %struct.ImGuiPlatformIO, ptr %890, i32 0, i32 17
  %892 = load ptr, ptr %891, align 8, !tbaa !185
  %893 = load ptr, ptr %59, align 8, !tbaa !5
  %894 = call noundef zeroext i1 %892(ptr noundef %893)
  br i1 %894, label %895, label %896

895:                                              ; preds = %888
  br label %897

896:                                              ; preds = %888
  br label %897

897:                                              ; preds = %896, %895
  %898 = phi ptr [ @.str.543, %895 ], [ @.str.92, %896 ]
  %899 = getelementptr inbounds [2 x i8], ptr %898, i64 0, i64 0
  br label %901

900:                                              ; preds = %883, %866
  br label %901

901:                                              ; preds = %900, %897
  %902 = phi ptr [ %899, %897 ], [ @.str.544, %900 ]
  %903 = load ptr, ptr %59, align 8, !tbaa !5
  %904 = getelementptr inbounds %struct.ImGuiViewportP, ptr %903, i32 0, i32 1
  %905 = load ptr, ptr %904, align 8, !tbaa !187
  %906 = icmp ne ptr %905, null
  br i1 %906, label %907, label %913

907:                                              ; preds = %901
  %908 = load ptr, ptr %59, align 8, !tbaa !5
  %909 = getelementptr inbounds %struct.ImGuiViewportP, ptr %908, i32 0, i32 1
  %910 = load ptr, ptr %909, align 8, !tbaa !187
  %911 = getelementptr inbounds %struct.ImGuiWindow, ptr %910, i32 0, i32 1
  %912 = load ptr, ptr %911, align 8, !tbaa !130
  br label %914

913:                                              ; preds = %901
  br label %914

914:                                              ; preds = %913, %907
  %915 = phi ptr [ %912, %907 ], [ @.str.544, %913 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.542, i32 noundef %871, i32 noundef %874, i32 noundef %877, ptr noundef %902, ptr noundef %915)
  %916 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %916, label %917, label %923

917:                                              ; preds = %914
  %918 = load ptr, ptr %59, align 8, !tbaa !5
  %919 = getelementptr inbounds %struct.ImGuiViewport, ptr %918, i32 0, i32 0
  %920 = load i32, ptr %919, align 8, !tbaa !171
  %921 = load ptr, ptr %5, align 8, !tbaa !5
  %922 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %921, i32 0, i32 12
  store i32 %920, ptr %922, align 4, !tbaa !176
  br label %923

923:                                              ; preds = %917, %914
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  br label %924

924:                                              ; preds = %923
  %925 = load ptr, ptr %57, align 8, !tbaa !5
  %926 = getelementptr inbounds ptr, ptr %925, i32 1
  store ptr %926, ptr %57, align 8, !tbaa !5
  br label %861

927:                                              ; preds = %865
  call void @_ZN5ImGui7TreePopEv()
  br label %928

928:                                              ; preds = %927, %822
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  %929 = load ptr, ptr %3, align 8, !tbaa !5
  %930 = getelementptr inbounds %struct.ImGuiContext, ptr %929, i32 0, i32 104
  store ptr %930, ptr %60, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #10
  %931 = load ptr, ptr %60, align 8, !tbaa !5
  %932 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %931)
  store ptr %932, ptr %61, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #10
  %933 = load ptr, ptr %60, align 8, !tbaa !5
  %934 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %933)
  store ptr %934, ptr %62, align 8, !tbaa !5
  br label %935

935:                                              ; preds = %944, %928
  %936 = load ptr, ptr %61, align 8, !tbaa !5
  %937 = load ptr, ptr %62, align 8, !tbaa !5
  %938 = icmp ne ptr %936, %937
  br i1 %938, label %940, label %939

939:                                              ; preds = %935
  store i32 27, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  br label %947

940:                                              ; preds = %935
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #10
  %941 = load ptr, ptr %61, align 8, !tbaa !5
  %942 = load ptr, ptr %941, align 8, !tbaa !5
  store ptr %942, ptr %63, align 8, !tbaa !5
  %943 = load ptr, ptr %63, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %943)
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  br label %944

944:                                              ; preds = %940
  %945 = load ptr, ptr %61, align 8, !tbaa !5
  %946 = getelementptr inbounds ptr, ptr %945, i32 1
  store ptr %946, ptr %61, align 8, !tbaa !5
  br label %935

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

948:                                              ; preds = %947, %741
  %949 = load ptr, ptr %3, align 8, !tbaa !5
  %950 = getelementptr inbounds %struct.ImGuiContext, ptr %949, i32 0, i32 101
  %951 = getelementptr inbounds %struct.ImVector.14, ptr %950, i32 0, i32 0
  %952 = load i32, ptr %951, align 8, !tbaa !188
  %953 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.545, ptr noundef @.str.546, i32 noundef %952)
  br i1 %953, label %954, label %1040

954:                                              ; preds = %948
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  %955 = load ptr, ptr %3, align 8, !tbaa !5
  %956 = getelementptr inbounds %struct.ImGuiContext, ptr %955, i32 0, i32 101
  store ptr %956, ptr %64, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #10
  %957 = load ptr, ptr %64, align 8, !tbaa !5
  %958 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %957)
  store ptr %958, ptr %65, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #10
  %959 = load ptr, ptr %64, align 8, !tbaa !5
  %960 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %959)
  store ptr %960, ptr %66, align 8, !tbaa !5
  br label %961

961:                                              ; preds = %1036, %954
  %962 = load ptr, ptr %65, align 8, !tbaa !5
  %963 = load ptr, ptr %66, align 8, !tbaa !5
  %964 = icmp ne ptr %962, %963
  br i1 %964, label %966, label %965

965:                                              ; preds = %961
  store i32 29, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  br label %1039

966:                                              ; preds = %961
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #10
  %967 = load ptr, ptr %65, align 8, !tbaa !5
  store ptr %967, ptr %67, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  %968 = load ptr, ptr %67, align 8, !tbaa !5
  %969 = getelementptr inbounds %struct.ImGuiPopupData, ptr %968, i32 0, i32 2
  %970 = load ptr, ptr %969, align 8, !tbaa !189
  store ptr %970, ptr %68, align 8, !tbaa !5
  %971 = load ptr, ptr %67, align 8, !tbaa !5
  %972 = getelementptr inbounds %struct.ImGuiPopupData, ptr %971, i32 0, i32 0
  %973 = load i32, ptr %972, align 8, !tbaa !191
  %974 = load ptr, ptr %68, align 8, !tbaa !5
  %975 = icmp ne ptr %974, null
  br i1 %975, label %976, label %980

976:                                              ; preds = %966
  %977 = load ptr, ptr %68, align 8, !tbaa !5
  %978 = getelementptr inbounds %struct.ImGuiWindow, ptr %977, i32 0, i32 1
  %979 = load ptr, ptr %978, align 8, !tbaa !130
  br label %981

980:                                              ; preds = %966
  br label %981

981:                                              ; preds = %980, %976
  %982 = phi ptr [ %979, %976 ], [ @.str.278, %980 ]
  %983 = load ptr, ptr %68, align 8, !tbaa !5
  %984 = icmp ne ptr %983, null
  br i1 %984, label %985, label %991

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

991:                                              ; preds = %985, %981
  %992 = phi i1 [ false, %981 ], [ %990, %985 ]
  %993 = zext i1 %992 to i64
  %994 = select i1 %992, ptr @.str.548, ptr @.str.14
  %995 = load ptr, ptr %68, align 8, !tbaa !5
  %996 = icmp ne ptr %995, null
  br i1 %996, label %997, label %1003

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

1003:                                             ; preds = %997, %991
  %1004 = phi i1 [ false, %991 ], [ %1002, %997 ]
  %1005 = zext i1 %1004 to i64
  %1006 = select i1 %1004, ptr @.str.549, ptr @.str.14
  %1007 = load ptr, ptr %67, align 8, !tbaa !5
  %1008 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1007, i32 0, i32 3
  %1009 = load ptr, ptr %1008, align 8, !tbaa !193
  %1010 = icmp ne ptr %1009, null
  br i1 %1010, label %1011, label %1017

1011:                                             ; preds = %1003
  %1012 = load ptr, ptr %67, align 8, !tbaa !5
  %1013 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1012, i32 0, i32 3
  %1014 = load ptr, ptr %1013, align 8, !tbaa !193
  %1015 = getelementptr inbounds %struct.ImGuiWindow, ptr %1014, i32 0, i32 1
  %1016 = load ptr, ptr %1015, align 8, !tbaa !130
  br label %1018

1017:                                             ; preds = %1003
  br label %1018

1018:                                             ; preds = %1017, %1011
  %1019 = phi ptr [ %1016, %1011 ], [ @.str.278, %1017 ]
  %1020 = load ptr, ptr %68, align 8, !tbaa !5
  %1021 = icmp ne ptr %1020, null
  br i1 %1021, label %1022, label %1033

1022:                                             ; preds = %1018
  %1023 = load ptr, ptr %68, align 8, !tbaa !5
  %1024 = getelementptr inbounds %struct.ImGuiWindow, ptr %1023, i32 0, i32 102
  %1025 = load ptr, ptr %1024, align 8, !tbaa !194
  %1026 = icmp ne ptr %1025, null
  br i1 %1026, label %1027, label %1033

1027:                                             ; preds = %1022
  %1028 = load ptr, ptr %68, align 8, !tbaa !5
  %1029 = getelementptr inbounds %struct.ImGuiWindow, ptr %1028, i32 0, i32 102
  %1030 = load ptr, ptr %1029, align 8, !tbaa !194
  %1031 = getelementptr inbounds %struct.ImGuiWindow, ptr %1030, i32 0, i32 1
  %1032 = load ptr, ptr %1031, align 8, !tbaa !130
  br label %1034

1033:                                             ; preds = %1022, %1018
  br label %1034

1034:                                             ; preds = %1033, %1027
  %1035 = phi ptr [ %1032, %1027 ], [ @.str.278, %1033 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.547, i32 noundef %973, ptr noundef %982, ptr noundef %994, ptr noundef %1006, ptr noundef %1019, ptr noundef %1035)
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #10
  br label %1036

1036:                                             ; preds = %1034
  %1037 = load ptr, ptr %65, align 8, !tbaa !5
  %1038 = getelementptr inbounds %struct.ImGuiPopupData, ptr %1037, i32 1
  store ptr %1038, ptr %65, align 8, !tbaa !5
  br label %961

1039:                                             ; preds = %965
  call void @_ZN5ImGui7TreePopEv()
  br label %1040

1040:                                             ; preds = %1039, %948
  %1041 = load ptr, ptr %3, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.ImGuiContext, ptr %1041, i32 0, i32 203
  %1043 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %1042)
  %1044 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.550, ptr noundef @.str.551, i32 noundef %1043)
  br i1 %1044, label %1045, label %1068

1045:                                             ; preds = %1040
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  store i32 0, ptr %69, align 4, !tbaa !131
  br label %1046

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

1052:                                             ; preds = %1046
  store i32 31, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %1067

1053:                                             ; preds = %1046
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  %1054 = load ptr, ptr %3, align 8, !tbaa !5
  %1055 = getelementptr inbounds %struct.ImGuiContext, ptr %1054, i32 0, i32 203
  %1056 = load i32, ptr %69, align 4, !tbaa !131
  %1057 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1055, i32 noundef %1056)
  store ptr %1057, ptr %70, align 8, !tbaa !5
  %1058 = load ptr, ptr %70, align 8, !tbaa !5
  %1059 = icmp ne ptr %1058, null
  br i1 %1059, label %1060, label %1063

1060:                                             ; preds = %1053
  %1061 = load ptr, ptr %70, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef %1061)
  %1062 = load ptr, ptr %70, align 8, !tbaa !5
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef %1062, ptr noundef @.str.552)
  call void @_ZN5ImGui5PopIDEv()
  br label %1063

1063:                                             ; preds = %1060, %1053
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  br label %1064

1064:                                             ; preds = %1063
  %1065 = load i32, ptr %69, align 4, !tbaa !131
  %1066 = add nsw i32 %1065, 1
  store i32 %1066, ptr %69, align 4, !tbaa !131
  br label %1046, !llvm.loop !195

1067:                                             ; preds = %1052
  call void @_ZN5ImGui7TreePopEv()
  br label %1068

1068:                                             ; preds = %1067, %1040
  %1069 = load ptr, ptr %3, align 8, !tbaa !5
  %1070 = getelementptr inbounds %struct.ImGuiContext, ptr %1069, i32 0, i32 199
  %1071 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %1070)
  %1072 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.553, ptr noundef @.str.554, i32 noundef %1071)
  br i1 %1072, label %1073, label %1095

1073:                                             ; preds = %1068
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  store i32 0, ptr %71, align 4, !tbaa !131
  br label %1074

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

1080:                                             ; preds = %1074
  store i32 34, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %1094

1081:                                             ; preds = %1074
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #10
  %1082 = load ptr, ptr %3, align 8, !tbaa !5
  %1083 = getelementptr inbounds %struct.ImGuiContext, ptr %1082, i32 0, i32 199
  %1084 = load i32, ptr %71, align 4, !tbaa !131
  %1085 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1083, i32 noundef %1084)
  store ptr %1085, ptr %72, align 8, !tbaa !5
  %1086 = load ptr, ptr %72, align 8, !tbaa !5
  %1087 = icmp ne ptr %1086, null
  br i1 %1087, label %1088, label %1090

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

1090:                                             ; preds = %1088, %1081
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  br label %1091

1091:                                             ; preds = %1090
  %1092 = load i32, ptr %71, align 4, !tbaa !131
  %1093 = add nsw i32 %1092, 1
  store i32 %1093, ptr %71, align 4, !tbaa !131
  br label %1074, !llvm.loop !196

1094:                                             ; preds = %1080
  call void @_ZN5ImGui7TreePopEv()
  br label %1095

1095:                                             ; preds = %1094, %1068
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #10
  %1096 = load ptr, ptr %3, align 8, !tbaa !5
  %1097 = getelementptr inbounds %struct.ImGuiContext, ptr %1096, i32 0, i32 2
  %1098 = getelementptr inbounds %struct.ImGuiIO, ptr %1097, i32 0, i32 8
  %1099 = load ptr, ptr %1098, align 8, !tbaa !197
  store ptr %1099, ptr %73, align 8, !tbaa !5
  %1100 = load ptr, ptr %73, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.ImFontAtlas, ptr %1100, i32 0, i32 16
  %1102 = getelementptr inbounds %struct.ImVector.10, ptr %1101, i32 0, i32 0
  %1103 = load i32, ptr %1102, align 8, !tbaa !198
  %1104 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.555, ptr noundef @.str.556, i32 noundef %1103)
  br i1 %1104, label %1105, label %1107

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

1107:                                             ; preds = %1105, %1095
  %1108 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.557)
  br i1 %1108, label %1109, label %1112

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

1112:                                             ; preds = %1109, %1107
  %1113 = load ptr, ptr %3, align 8, !tbaa !5
  %1114 = getelementptr inbounds %struct.ImGuiContext, ptr %1113, i32 0, i32 251
  %1115 = getelementptr inbounds %struct.ImGuiTypingSelectState, ptr %1114, i32 0, i32 1
  %1116 = getelementptr inbounds [64 x i8], ptr %1115, i64 0, i64 0
  %1117 = load i8, ptr %1116, align 8, !tbaa !49
  %1118 = sext i8 %1117 to i32
  %1119 = icmp ne i32 %1118, 0
  %1120 = zext i1 %1119 to i64
  %1121 = select i1 %1119, i32 1, i32 0
  %1122 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.558, ptr noundef @.str.559, i32 noundef %1121)
  br i1 %1122, label %1123, label %1126

1123:                                             ; preds = %1112
  %1124 = load ptr, ptr %3, align 8, !tbaa !5
  %1125 = getelementptr inbounds %struct.ImGuiContext, ptr %1124, i32 0, i32 251
  call void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef %1125)
  call void @_ZN5ImGui7TreePopEv()
  br label %1126

1126:                                             ; preds = %1123, %1112
  %1127 = load ptr, ptr %3, align 8, !tbaa !5
  %1128 = getelementptr inbounds %struct.ImGuiContext, ptr %1127, i32 0, i32 210
  %1129 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %1128)
  %1130 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.560, ptr noundef @.str.561, i32 noundef %1129)
  br i1 %1130, label %1131, label %1168

1131:                                             ; preds = %1126
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  %1132 = load ptr, ptr %3, align 8, !tbaa !5
  %1133 = getelementptr inbounds %struct.ImGuiContext, ptr %1132, i32 0, i32 206
  store ptr %1133, ptr %74, align 8, !tbaa !5
  %1134 = load ptr, ptr %74, align 8, !tbaa !5
  %1135 = getelementptr inbounds %struct.ImGuiBoxSelectState, ptr %1134, i32 0, i32 0
  %1136 = load i32, ptr %1135, align 8, !tbaa !202
  %1137 = load ptr, ptr %74, align 8, !tbaa !5
  %1138 = getelementptr inbounds %struct.ImGuiBoxSelectState, ptr %1137, i32 0, i32 2
  %1139 = load i8, ptr %1138, align 1, !tbaa !203, !range !13, !noundef !14
  %1140 = trunc i8 %1139 to i1
  %1141 = zext i1 %1140 to i32
  %1142 = load ptr, ptr %74, align 8, !tbaa !5
  %1143 = getelementptr inbounds %struct.ImGuiBoxSelectState, ptr %1142, i32 0, i32 1
  %1144 = load i8, ptr %1143, align 4, !tbaa !204, !range !13, !noundef !14
  %1145 = trunc i8 %1144 to i1
  %1146 = zext i1 %1145 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.562, i32 noundef %1136, i32 noundef %1141, i32 noundef %1146)
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  store i32 0, ptr %75, align 4, !tbaa !131
  br label %1147

1147:                                             ; preds = %1164, %1131
  %1148 = load i32, ptr %75, align 4, !tbaa !131
  %1149 = load ptr, ptr %3, align 8, !tbaa !5
  %1150 = getelementptr inbounds %struct.ImGuiContext, ptr %1149, i32 0, i32 210
  %1151 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1150)
  %1152 = icmp slt i32 %1148, %1151
  br i1 %1152, label %1154, label %1153

1153:                                             ; preds = %1147
  store i32 37, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %1167

1154:                                             ; preds = %1147
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #10
  %1155 = load ptr, ptr %3, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.ImGuiContext, ptr %1155, i32 0, i32 210
  %1157 = load i32, ptr %75, align 4, !tbaa !131
  %1158 = call noundef ptr @_ZN6ImPoolI21ImGuiMultiSelectStateE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1156, i32 noundef %1157)
  store ptr %1158, ptr %76, align 8, !tbaa !5
  %1159 = load ptr, ptr %76, align 8, !tbaa !5
  %1160 = icmp ne ptr %1159, null
  br i1 %1160, label %1161, label %1163

1161:                                             ; preds = %1154
  %1162 = load ptr, ptr %76, align 8, !tbaa !5
  call void @_ZN5ImGui25DebugNodeMultiSelectStateEP21ImGuiMultiSelectState(ptr noundef %1162)
  br label %1163

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

1164:                                             ; preds = %1163
  %1165 = load i32, ptr %75, align 4, !tbaa !131
  %1166 = add nsw i32 %1165, 1
  store i32 %1166, ptr %75, align 4, !tbaa !131
  br label %1147, !llvm.loop !205

1167:                                             ; preds = %1153
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  br label %1168

1168:                                             ; preds = %1167, %1126
  %1169 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.394)
  br i1 %1169, label %1170, label %1219

1170:                                             ; preds = %1168
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #10
  %1171 = load ptr, ptr %3, align 8, !tbaa !5
  %1172 = getelementptr inbounds %struct.ImGuiContext, ptr %1171, i32 0, i32 256
  store ptr %1172, ptr %77, align 8, !tbaa !5
  %1173 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.563, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only)
  %1174 = load ptr, ptr %5, align 8, !tbaa !5
  %1175 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1174, i32 0, i32 8
  %1176 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.564, ptr noundef %1175)
  %1177 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.565)
  br i1 %1177, label %1178, label %1180

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

1180:                                             ; preds = %1178, %1170
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1181 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.566)
  br i1 %1181, label %1182, label %1185

1182:                                             ; preds = %1180
  %1183 = load ptr, ptr %77, align 8, !tbaa !5
  %1184 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1183, i32 0, i32 3
  store i8 1, ptr %1184, align 8, !tbaa !206
  br label %1185

1185:                                             ; preds = %1182, %1180
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #10
  store i32 0, ptr %78, align 4, !tbaa !131
  br label %1186

1186:                                             ; preds = %1215, %1185
  %1187 = load i32, ptr %78, align 4, !tbaa !131
  %1188 = load ptr, ptr %77, 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 = getelementptr inbounds %struct.ImVector.6, ptr %1190, i32 0, i32 0
  %1192 = load i32, ptr %1191, align 8, !tbaa !207
  %1193 = icmp slt i32 %1187, %1192
  br i1 %1193, label %1195, label %1194

1194:                                             ; preds = %1186
  store i32 40, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  br label %1218

1195:                                             ; preds = %1186
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #10
  %1196 = load ptr, ptr %77, align 8, !tbaa !5
  %1197 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1196, i32 0, i32 0
  %1198 = getelementptr inbounds %struct.ImGuiStorage, ptr %1197, i32 0, i32 0
  %1199 = load i32, ptr %78, align 4, !tbaa !131
  %1200 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN8ImVectorI16ImGuiStoragePairEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1198, i32 noundef %1199)
  %1201 = getelementptr inbounds %struct.ImGuiStoragePair, ptr %1200, i32 0, i32 1
  %1202 = load ptr, ptr %1201, align 8, !tbaa !49
  store ptr %1202, ptr %79, align 8, !tbaa !5
  %1203 = load ptr, ptr %79, align 8, !tbaa !5
  %1204 = icmp ne ptr %1203, null
  br i1 %1204, label %1205, label %1214

1205:                                             ; preds = %1195
  %1206 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only, align 1, !tbaa !169, !range !13, !noundef !14
  %1207 = trunc i8 %1206 to i1
  br i1 %1207, label %1208, label %1211

1208:                                             ; preds = %1205
  %1209 = load ptr, ptr %79, align 8, !tbaa !5
  %1210 = call noundef zeroext i1 @_ZNK13ImGuiDockNode10IsRootNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %1209)
  br i1 %1210, label %1211, label %1213

1211:                                             ; preds = %1208, %1205
  %1212 = load ptr, ptr %79, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDockNodeEP13ImGuiDockNodePKc(ptr noundef %1212, ptr noundef @.str.567)
  br label %1213

1213:                                             ; preds = %1211, %1208
  br label %1214

1214:                                             ; preds = %1213, %1195
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #10
  br label %1215

1215:                                             ; preds = %1214
  %1216 = load i32, ptr %78, align 4, !tbaa !131
  %1217 = add nsw i32 %1216, 1
  store i32 %1217, ptr %78, align 4, !tbaa !131
  br label %1186, !llvm.loop !208

1218:                                             ; preds = %1194
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #10
  br label %1219

1219:                                             ; preds = %1218, %1168
  %1220 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.568)
  br i1 %1220, label %1221, label %1443

1221:                                             ; preds = %1219
  %1222 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.569)
  br i1 %1222, label %1223, label %1224

1223:                                             ; preds = %1221
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %1224

1224:                                             ; preds = %1223, %1221
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1225 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.570)
  br i1 %1225, label %1226, label %1228

1226:                                             ; preds = %1224
  %1227 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %1228

1228:                                             ; preds = %1226, %1224
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1229 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.571)
  br i1 %1229, label %1230, label %1235

1230:                                             ; preds = %1228
  %1231 = load ptr, ptr %3, align 8, !tbaa !5
  %1232 = getelementptr inbounds %struct.ImGuiContext, ptr %1231, i32 0, i32 2
  %1233 = getelementptr inbounds %struct.ImGuiIO, ptr %1232, i32 0, i32 5
  %1234 = load ptr, ptr %1233, align 8, !tbaa !209
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %1234)
  br label %1235

1235:                                             ; preds = %1230, %1228
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1236 = load ptr, ptr %3, align 8, !tbaa !5
  %1237 = getelementptr inbounds %struct.ImGuiContext, ptr %1236, i32 0, i32 2
  %1238 = getelementptr inbounds %struct.ImGuiIO, ptr %1237, i32 0, i32 5
  %1239 = load ptr, ptr %1238, align 8, !tbaa !209
  %1240 = icmp ne ptr %1239, null
  br i1 %1240, label %1241, label %1246

1241:                                             ; preds = %1235
  %1242 = load ptr, ptr %3, align 8, !tbaa !5
  %1243 = getelementptr inbounds %struct.ImGuiContext, ptr %1242, i32 0, i32 2
  %1244 = getelementptr inbounds %struct.ImGuiIO, ptr %1243, i32 0, i32 5
  %1245 = load ptr, ptr %1244, align 8, !tbaa !209
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.572, ptr noundef %1245)
  br label %1247

1246:                                             ; preds = %1235
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef @.str.316, ptr noundef null)
  br label %1247

1247:                                             ; preds = %1246, %1241
  %1248 = load ptr, ptr %4, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.ImGuiIO, ptr %1248, i32 0, i32 54
  %1250 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.573, ptr noundef %1249)
  %1251 = load ptr, ptr %3, align 8, !tbaa !5
  %1252 = getelementptr inbounds %struct.ImGuiContext, ptr %1251, i32 0, i32 259
  %1253 = load float, ptr %1252, align 4, !tbaa !210
  %1254 = fpext float %1253 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.574, double noundef %1254)
  %1255 = load ptr, ptr %3, align 8, !tbaa !5
  %1256 = getelementptr inbounds %struct.ImGuiContext, ptr %1255, i32 0, i32 261
  %1257 = getelementptr inbounds %struct.ImVector.35, ptr %1256, i32 0, i32 0
  %1258 = load i32, ptr %1257, align 8, !tbaa !211
  %1259 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.575, ptr noundef @.str.576, i32 noundef %1258)
  br i1 %1259, label %1260, label %1281

1260:                                             ; preds = %1247
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #10
  %1261 = load ptr, ptr %3, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.ImGuiContext, ptr %1261, i32 0, i32 261
  store ptr %1262, ptr %80, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #10
  %1263 = load ptr, ptr %80, align 8, !tbaa !5
  %1264 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1263)
  store ptr %1264, ptr %81, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #10
  %1265 = load ptr, ptr %80, align 8, !tbaa !5
  %1266 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %1265)
  store ptr %1266, ptr %82, align 8, !tbaa !5
  br label %1267

1267:                                             ; preds = %1277, %1260
  %1268 = load ptr, ptr %81, align 8, !tbaa !5
  %1269 = load ptr, ptr %82, align 8, !tbaa !5
  %1270 = icmp ne ptr %1268, %1269
  br i1 %1270, label %1272, label %1271

1271:                                             ; preds = %1267
  store i32 43, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #10
  br label %1280

1272:                                             ; preds = %1267
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  %1273 = load ptr, ptr %81, align 8, !tbaa !5
  store ptr %1273, ptr %83, align 8, !tbaa !5
  %1274 = load ptr, ptr %83, align 8, !tbaa !5
  %1275 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %1274, i32 0, i32 0
  %1276 = load ptr, ptr %1275, align 8, !tbaa !212
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.572, ptr noundef %1276)
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  br label %1277

1277:                                             ; preds = %1272
  %1278 = load ptr, ptr %81, align 8, !tbaa !5
  %1279 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %1278, i32 1
  store ptr %1279, ptr %81, align 8, !tbaa !5
  br label %1267

1280:                                             ; preds = %1271
  call void @_ZN5ImGui7TreePopEv()
  br label %1281

1281:                                             ; preds = %1280, %1247
  %1282 = load ptr, ptr %3, align 8, !tbaa !5
  %1283 = getelementptr inbounds %struct.ImGuiContext, ptr %1282, i32 0, i32 262
  %1284 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1283)
  %1285 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.577, ptr noundef @.str.578, i32 noundef %1284)
  br i1 %1285, label %1286, label %1302

1286:                                             ; preds = %1281
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #10
  %1287 = load ptr, ptr %3, align 8, !tbaa !5
  %1288 = getelementptr inbounds %struct.ImGuiContext, ptr %1287, i32 0, i32 262
  %1289 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1288)
  store ptr %1289, ptr %84, align 8, !tbaa !5
  br label %1290

1290:                                             ; preds = %1296, %1286
  %1291 = load ptr, ptr %84, align 8, !tbaa !5
  %1292 = icmp ne ptr %1291, null
  br i1 %1292, label %1294, label %1293

1293:                                             ; preds = %1290
  store i32 45, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #10
  br label %1301

1294:                                             ; preds = %1290
  %1295 = load ptr, ptr %84, align 8, !tbaa !5
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef %1295)
  br label %1296

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

1301:                                             ; preds = %1293
  call void @_ZN5ImGui7TreePopEv()
  br label %1302

1302:                                             ; preds = %1301, %1281
  %1303 = load ptr, ptr %3, align 8, !tbaa !5
  %1304 = getelementptr inbounds %struct.ImGuiContext, ptr %1303, i32 0, i32 263
  %1305 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1304)
  %1306 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.579, ptr noundef @.str.580, i32 noundef %1305)
  br i1 %1306, label %1307, label %1323

1307:                                             ; preds = %1302
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  %1308 = load ptr, ptr %3, align 8, !tbaa !5
  %1309 = getelementptr inbounds %struct.ImGuiContext, ptr %1308, i32 0, i32 263
  %1310 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1309)
  store ptr %1310, ptr %85, align 8, !tbaa !5
  br label %1311

1311:                                             ; preds = %1317, %1307
  %1312 = load ptr, ptr %85, align 8, !tbaa !5
  %1313 = icmp ne ptr %1312, null
  br i1 %1313, label %1315, label %1314

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

1315:                                             ; preds = %1311
  %1316 = load ptr, ptr %85, align 8, !tbaa !5
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef %1316)
  br label %1317

1317:                                             ; preds = %1315
  %1318 = load ptr, ptr %3, align 8, !tbaa !5
  %1319 = getelementptr inbounds %struct.ImGuiContext, ptr %1318, i32 0, i32 263
  %1320 = load ptr, ptr %85, align 8, !tbaa !5
  %1321 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %1319, ptr noundef %1320)
  store ptr %1321, ptr %85, align 8, !tbaa !5
  br label %1311, !llvm.loop !215

1322:                                             ; preds = %1314
  call void @_ZN5ImGui7TreePopEv()
  br label %1323

1323:                                             ; preds = %1322, %1302
  %1324 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.581, ptr noundef @.str.582)
  br i1 %1324, label %1325, label %1424

1325:                                             ; preds = %1323
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #10
  %1326 = load ptr, ptr %3, align 8, !tbaa !5
  %1327 = getelementptr inbounds %struct.ImGuiContext, ptr %1326, i32 0, i32 256
  store ptr %1327, ptr %86, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.583)
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #10
  %1328 = load ptr, ptr %3, align 8, !tbaa !5
  %1329 = getelementptr inbounds %struct.ImGuiContext, ptr %1328, i32 0, i32 262
  %1330 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1329)
  store ptr %1330, ptr %87, align 8, !tbaa !5
  br label %1331

1331:                                             ; preds = %1351, %1325
  %1332 = load ptr, ptr %87, align 8, !tbaa !5
  %1333 = icmp ne ptr %1332, null
  br i1 %1333, label %1335, label %1334

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

1335:                                             ; preds = %1331
  %1336 = load ptr, ptr %87, align 8, !tbaa !5
  %1337 = getelementptr inbounds %struct.ImGuiWindowSettings, ptr %1336, i32 0, i32 5
  %1338 = load i32, ptr %1337, align 4, !tbaa !216
  %1339 = icmp ne i32 %1338, 0
  br i1 %1339, label %1340, label %1350

1340:                                             ; preds = %1335
  %1341 = load ptr, ptr %87, align 8, !tbaa !5
  %1342 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(34) %1341)
  %1343 = load ptr, ptr %87, align 8, !tbaa !5
  %1344 = getelementptr inbounds %struct.ImGuiWindowSettings, ptr %1343, i32 0, i32 5
  %1345 = load i32, ptr %1344, align 4, !tbaa !216
  %1346 = load ptr, ptr %87, align 8, !tbaa !5
  %1347 = getelementptr inbounds %struct.ImGuiWindowSettings, ptr %1346, i32 0, i32 7
  %1348 = load i16, ptr %1347, align 4, !tbaa !218
  %1349 = sext i16 %1348 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.584, ptr noundef %1342, i32 noundef %1345, i32 noundef %1349)
  br label %1350

1350:                                             ; preds = %1340, %1335
  br label %1351

1351:                                             ; preds = %1350
  %1352 = load ptr, ptr %3, align 8, !tbaa !5
  %1353 = getelementptr inbounds %struct.ImGuiContext, ptr %1352, i32 0, i32 262
  %1354 = load ptr, ptr %87, align 8, !tbaa !5
  %1355 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %1353, ptr noundef %1354)
  store ptr %1355, ptr %87, align 8, !tbaa !5
  br label %1331, !llvm.loop !219

1356:                                             ; preds = %1334
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.585)
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #10
  store i32 0, ptr %88, align 4, !tbaa !131
  br label %1357

1357:                                             ; preds = %1420, %1356
  %1358 = load i32, ptr %88, align 4, !tbaa !131
  %1359 = load ptr, ptr %86, align 8, !tbaa !5
  %1360 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1359, i32 0, i32 2
  %1361 = getelementptr inbounds %struct.ImVector.34, ptr %1360, i32 0, i32 0
  %1362 = load i32, ptr %1361, align 8, !tbaa !220
  %1363 = icmp slt i32 %1358, %1362
  br i1 %1363, label %1365, label %1364

1364:                                             ; preds = %1357
  store i32 54, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %1423

1365:                                             ; preds = %1357
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #10
  %1366 = load ptr, ptr %86, align 8, !tbaa !5
  %1367 = getelementptr inbounds %struct.ImGuiDockContext, ptr %1366, i32 0, i32 2
  %1368 = load i32, ptr %88, align 4, !tbaa !131
  %1369 = call noundef nonnull align 4 dereferenceable(36) ptr @_ZN8ImVectorI21ImGuiDockNodeSettingsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1367, i32 noundef %1368)
  store ptr %1369, ptr %89, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #10
  store ptr null, ptr %90, align 8, !tbaa !5
  %1370 = load ptr, ptr %89, align 8, !tbaa !5
  %1371 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1370, i32 0, i32 3
  %1372 = load i32, ptr %1371, align 4, !tbaa !221
  %1373 = icmp ne i32 %1372, 0
  br i1 %1373, label %1374, label %1397

1374:                                             ; preds = %1365
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #10
  %1375 = load ptr, ptr %89, align 8, !tbaa !5
  %1376 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1375, i32 0, i32 3
  %1377 = load i32, ptr %1376, align 4, !tbaa !221
  %1378 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %1377)
  store ptr %1378, ptr %91, align 8, !tbaa !5
  %1379 = load ptr, ptr %91, align 8, !tbaa !5
  %1380 = icmp ne ptr %1379, null
  br i1 %1380, label %1381, label %1385

1381:                                             ; preds = %1374
  %1382 = load ptr, ptr %91, align 8, !tbaa !5
  %1383 = getelementptr inbounds %struct.ImGuiWindow, ptr %1382, i32 0, i32 1
  %1384 = load ptr, ptr %1383, align 8, !tbaa !130
  store ptr %1384, ptr %90, align 8, !tbaa !5
  br label %1396

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

1392:                                             ; preds = %1385
  %1393 = load ptr, ptr %92, align 8, !tbaa !5
  %1394 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(34) %1393)
  store ptr %1394, ptr %90, align 8, !tbaa !5
  br label %1395

1395:                                             ; preds = %1392, %1385
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #10
  br label %1396

1396:                                             ; preds = %1395, %1381
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #10
  br label %1397

1397:                                             ; preds = %1396, %1365
  %1398 = load ptr, ptr %89, align 8, !tbaa !5
  %1399 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1398, i32 0, i32 0
  %1400 = load i32, ptr %1399, align 4, !tbaa !223
  %1401 = load ptr, ptr %89, align 8, !tbaa !5
  %1402 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1401, i32 0, i32 1
  %1403 = load i32, ptr %1402, align 4, !tbaa !224
  %1404 = load ptr, ptr %89, align 8, !tbaa !5
  %1405 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1404, i32 0, i32 3
  %1406 = load i32, ptr %1405, align 4, !tbaa !221
  %1407 = load ptr, ptr %90, align 8, !tbaa !5
  %1408 = icmp ne ptr %1407, null
  br i1 %1408, label %1409, label %1411

1409:                                             ; preds = %1397
  %1410 = load ptr, ptr %90, align 8, !tbaa !5
  br label %1418

1411:                                             ; preds = %1397
  %1412 = load ptr, ptr %89, align 8, !tbaa !5
  %1413 = getelementptr inbounds %struct.ImGuiDockNodeSettings, ptr %1412, i32 0, i32 3
  %1414 = load i32, ptr %1413, align 4, !tbaa !221
  %1415 = icmp ne i32 %1414, 0
  %1416 = zext i1 %1415 to i64
  %1417 = select i1 %1415, ptr @.str.544, ptr @.str.14
  br label %1418

1418:                                             ; preds = %1411, %1409
  %1419 = phi ptr [ %1410, %1409 ], [ %1417, %1411 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.586, i32 noundef %1400, i32 noundef %1403, i32 noundef %1406, ptr noundef %1419)
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #10
  br label %1420

1420:                                             ; preds = %1418
  %1421 = load i32, ptr %88, align 4, !tbaa !131
  %1422 = add nsw i32 %1421, 1
  store i32 %1422, ptr %88, align 4, !tbaa !131
  br label %1357, !llvm.loop !225

1423:                                             ; preds = %1364
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  br label %1424

1424:                                             ; preds = %1423, %1323
  %1425 = load ptr, ptr %3, align 8, !tbaa !5
  %1426 = getelementptr inbounds %struct.ImGuiContext, ptr %1425, i32 0, i32 260
  %1427 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1426)
  %1428 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.587, ptr noundef @.str.588, i32 noundef %1427)
  br i1 %1428, label %1429, label %1442

1429:                                             ; preds = %1424
  %1430 = load ptr, ptr %3, align 8, !tbaa !5
  %1431 = getelementptr inbounds %struct.ImGuiContext, ptr %1430, i32 0, i32 260
  %1432 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %1431)
  %1433 = load ptr, ptr %3, align 8, !tbaa !5
  %1434 = getelementptr inbounds %struct.ImGuiContext, ptr %1433, i32 0, i32 260
  %1435 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %1434, i32 0, i32 0
  %1436 = getelementptr inbounds %struct.ImVector.30, ptr %1435, i32 0, i32 0
  %1437 = load i32, ptr %1436, align 8, !tbaa !226
  %1438 = sext i32 %1437 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #10
  %1439 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %1440 = fmul float %1439, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %93, float noundef 0xB810000000000000, float noundef %1440)
  %1441 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.589, ptr noundef %1432, i64 noundef %1438, ptr noundef nonnull align 4 dereferenceable(8) %93, i32 noundef 512, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #10
  call void @_ZN5ImGui7TreePopEv()
  br label %1442

1442:                                             ; preds = %1429, %1424
  call void @_ZN5ImGui7TreePopEv()
  br label %1443

1443:                                             ; preds = %1442, %1219
  %1444 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.590)
  br i1 %1444, label %1445, label %1516

1445:                                             ; preds = %1443
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #10
  %1446 = load ptr, ptr %3, align 8, !tbaa !5
  %1447 = getelementptr inbounds %struct.ImGuiContext, ptr %1446, i32 0, i32 304
  store ptr %1447, ptr %94, align 8, !tbaa !5
  %1448 = load ptr, ptr %94, align 8, !tbaa !5
  %1449 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1448, i32 0, i32 0
  %1450 = load i32, ptr %1449, align 4, !tbaa !227
  %1451 = load ptr, ptr %94, align 8, !tbaa !5
  %1452 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1451, i32 0, i32 1
  %1453 = load i32, ptr %1452, align 4, !tbaa !228
  %1454 = sub nsw i32 %1450, %1453
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.591, i32 noundef %1454)
  %1455 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.592)
  br i1 %1455, label %1456, label %1459

1456:                                             ; preds = %1445
  %1457 = load ptr, ptr %3, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.ImGuiContext, ptr %1457, i32 0, i32 21
  store i8 1, ptr %1458, align 2, !tbaa !229
  br label %1459

1459:                                             ; preds = %1456, %1445
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.593)
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #10
  store i32 6, ptr %95, align 4, !tbaa !131
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #10
  %1460 = load i32, ptr %95, align 4, !tbaa !131
  %1461 = sub nsw i32 %1460, 1
  store i32 %1461, ptr %96, align 4, !tbaa !131
  br label %1462

1462:                                             ; preds = %1512, %1459
  %1463 = load i32, ptr %96, align 4, !tbaa !131
  %1464 = icmp sge i32 %1463, 0
  br i1 %1464, label %1466, label %1465

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

1466:                                             ; preds = %1462
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #10
  %1467 = load ptr, ptr %94, align 8, !tbaa !5
  %1468 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1467, i32 0, i32 3
  %1469 = load ptr, ptr %94, align 8, !tbaa !5
  %1470 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1469, i32 0, i32 2
  %1471 = load i16, ptr %1470, align 4, !tbaa !230
  %1472 = sext i16 %1471 to i32
  %1473 = load i32, ptr %96, align 4, !tbaa !131
  %1474 = sub nsw i32 %1472, %1473
  %1475 = load i32, ptr %95, align 4, !tbaa !131
  %1476 = add nsw i32 %1474, %1475
  %1477 = load i32, ptr %95, align 4, !tbaa !131
  %1478 = srem i32 %1476, %1477
  %1479 = sext i32 %1478 to i64
  %1480 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %1468, i64 0, i64 %1479
  store ptr %1480, ptr %97, align 8, !tbaa !5
  %1481 = load ptr, ptr %97, align 8, !tbaa !5
  %1482 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1481, i32 0, i32 0
  %1483 = load i32, ptr %1482, align 4, !tbaa !231
  %1484 = load ptr, ptr %97, align 8, !tbaa !5
  %1485 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1484, i32 0, i32 1
  %1486 = load i16, ptr %1485, align 4, !tbaa !233
  %1487 = sext i16 %1486 to i32
  %1488 = load ptr, ptr %97, align 8, !tbaa !5
  %1489 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1488, i32 0, i32 2
  %1490 = load i16, ptr %1489, align 2, !tbaa !234
  %1491 = sext i16 %1490 to i32
  %1492 = sub nsw i32 %1487, %1491
  %1493 = load ptr, ptr %97, align 8, !tbaa !5
  %1494 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1493, i32 0, i32 1
  %1495 = load i16, ptr %1494, align 4, !tbaa !233
  %1496 = sext i16 %1495 to i32
  %1497 = load ptr, ptr %97, align 8, !tbaa !5
  %1498 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1497, i32 0, i32 2
  %1499 = load i16, ptr %1498, align 2, !tbaa !234
  %1500 = sext i16 %1499 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.594, i32 noundef %1483, i32 noundef %1492, i32 noundef %1496, i32 noundef %1500)
  %1501 = load i32, ptr %96, align 4, !tbaa !131
  %1502 = icmp eq i32 %1501, 0
  br i1 %1502, label %1503, label %1511

1503:                                             ; preds = %1466
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1504 = load ptr, ptr %3, align 8, !tbaa !5
  %1505 = getelementptr inbounds %struct.ImGuiContext, ptr %1504, i32 0, i32 14
  %1506 = load i32, ptr %1505, align 8, !tbaa !150
  %1507 = load ptr, ptr %97, align 8, !tbaa !5
  %1508 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1507, i32 0, i32 0
  %1509 = load i32, ptr %1508, align 4, !tbaa !231
  %1510 = sub nsw i32 %1506, %1509
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.595, i32 noundef %1510)
  br label %1511

1511:                                             ; preds = %1503, %1466
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  br label %1512

1512:                                             ; preds = %1511
  %1513 = load i32, ptr %96, align 4, !tbaa !131
  %1514 = add nsw i32 %1513, -1
  store i32 %1514, ptr %96, align 4, !tbaa !131
  br label %1462, !llvm.loop !235

1515:                                             ; preds = %1465
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #10
  br label %1516

1516:                                             ; preds = %1515, %1443
  %1517 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.596)
  br i1 %1517, label %1518, label %1918

1518:                                             ; preds = %1516
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.597)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.598)
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #10
  store i32 512, ptr %98, align 4, !tbaa !236
  br label %1519

1519:                                             ; preds = %1540, %1518
  %1520 = load i32, ptr %98, align 4, !tbaa !236
  %1521 = icmp slt i32 %1520, 667
  br i1 %1521, label %1523, label %1522

1522:                                             ; preds = %1519
  store i32 60, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #10
  br label %1543

1523:                                             ; preds = %1519
  %1524 = load i32, ptr %98, align 4, !tbaa !236
  %1525 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %1524)
  br i1 %1525, label %1527, label %1526

1526:                                             ; preds = %1523
  br label %1540

1527:                                             ; preds = %1523
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1528 = load i32, ptr %98, align 4, !tbaa !236
  %1529 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1528)
  %1530 = zext i1 %1529 to i64
  %1531 = select i1 %1529, ptr @.str.572, ptr @.str.599
  %1532 = load i32, ptr %98, align 4, !tbaa !236
  %1533 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1532)
  %1534 = load i32, ptr %98, align 4, !tbaa !236
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1531, ptr noundef %1533, i32 noundef %1534)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1535 = load i32, ptr %98, align 4, !tbaa !236
  %1536 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %1535)
  %1537 = getelementptr inbounds %struct.ImGuiKeyData, ptr %1536, i32 0, i32 1
  %1538 = load float, ptr %1537, align 4, !tbaa !237
  %1539 = fpext float %1538 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.600, double noundef %1539)
  br label %1540

1540:                                             ; preds = %1527, %1526
  %1541 = load i32, ptr %98, align 4, !tbaa !236
  %1542 = add nsw i32 %1541, 1
  store i32 %1542, ptr %98, align 4, !tbaa !236
  br label %1519, !llvm.loop !239

1543:                                             ; preds = %1522
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.601)
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #10
  store i32 512, ptr %99, align 4, !tbaa !236
  br label %1544

1544:                                             ; preds = %1560, %1543
  %1545 = load i32, ptr %99, align 4, !tbaa !236
  %1546 = icmp slt i32 %1545, 667
  br i1 %1546, label %1548, label %1547

1547:                                             ; preds = %1544
  store i32 63, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #10
  br label %1563

1548:                                             ; preds = %1544
  %1549 = load i32, ptr %99, align 4, !tbaa !236
  %1550 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %1549, i1 noundef zeroext true)
  br i1 %1550, label %1552, label %1551

1551:                                             ; preds = %1548
  br label %1560

1552:                                             ; preds = %1548
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1553 = load i32, ptr %99, align 4, !tbaa !236
  %1554 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1553)
  %1555 = zext i1 %1554 to i64
  %1556 = select i1 %1554, ptr @.str.572, ptr @.str.599
  %1557 = load i32, ptr %99, align 4, !tbaa !236
  %1558 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1557)
  %1559 = load i32, ptr %99, align 4, !tbaa !236
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1556, ptr noundef %1558, i32 noundef %1559)
  br label %1560

1560:                                             ; preds = %1552, %1551
  %1561 = load i32, ptr %99, align 4, !tbaa !236
  %1562 = add nsw i32 %1561, 1
  store i32 %1562, ptr %99, align 4, !tbaa !236
  br label %1544, !llvm.loop !240

1563:                                             ; preds = %1547
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.602)
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #10
  store i32 512, ptr %100, align 4, !tbaa !236
  br label %1564

1564:                                             ; preds = %1580, %1563
  %1565 = load i32, ptr %100, align 4, !tbaa !236
  %1566 = icmp slt i32 %1565, 667
  br i1 %1566, label %1568, label %1567

1567:                                             ; preds = %1564
  store i32 66, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %1583

1568:                                             ; preds = %1564
  %1569 = load i32, ptr %100, align 4, !tbaa !236
  %1570 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %1569)
  br i1 %1570, label %1572, label %1571

1571:                                             ; preds = %1568
  br label %1580

1572:                                             ; preds = %1568
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1573 = load i32, ptr %100, align 4, !tbaa !236
  %1574 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1573)
  %1575 = zext i1 %1574 to i64
  %1576 = select i1 %1574, ptr @.str.572, ptr @.str.599
  %1577 = load i32, ptr %100, align 4, !tbaa !236
  %1578 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1577)
  %1579 = load i32, ptr %100, align 4, !tbaa !236
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1576, ptr noundef %1578, i32 noundef %1579)
  br label %1580

1580:                                             ; preds = %1572, %1571
  %1581 = load i32, ptr %100, align 4, !tbaa !236
  %1582 = add nsw i32 %1581, 1
  store i32 %1582, ptr %100, align 4, !tbaa !236
  br label %1564, !llvm.loop !241

1583:                                             ; preds = %1567
  %1584 = load ptr, ptr %4, align 8, !tbaa !5
  %1585 = getelementptr inbounds %struct.ImGuiIO, ptr %1584, i32 0, i32 80
  %1586 = load i8, ptr %1585, align 8, !tbaa !242, !range !13, !noundef !14
  %1587 = trunc i8 %1586 to i1
  %1588 = zext i1 %1587 to i64
  %1589 = select i1 %1587, ptr @.str.604, ptr @.str.14
  %1590 = load ptr, ptr %4, align 8, !tbaa !5
  %1591 = getelementptr inbounds %struct.ImGuiIO, ptr %1590, i32 0, i32 81
  %1592 = load i8, ptr %1591, align 1, !tbaa !243, !range !13, !noundef !14
  %1593 = trunc i8 %1592 to i1
  %1594 = zext i1 %1593 to i64
  %1595 = select i1 %1593, ptr @.str.605, ptr @.str.14
  %1596 = load ptr, ptr %4, align 8, !tbaa !5
  %1597 = getelementptr inbounds %struct.ImGuiIO, ptr %1596, i32 0, i32 82
  %1598 = load i8, ptr %1597, align 2, !tbaa !244, !range !13, !noundef !14
  %1599 = trunc i8 %1598 to i1
  %1600 = zext i1 %1599 to i64
  %1601 = select i1 %1599, ptr @.str.606, ptr @.str.14
  %1602 = load ptr, ptr %4, align 8, !tbaa !5
  %1603 = getelementptr inbounds %struct.ImGuiIO, ptr %1602, i32 0, i32 83
  %1604 = load i8, ptr %1603, align 1, !tbaa !245, !range !13, !noundef !14
  %1605 = trunc i8 %1604 to i1
  %1606 = zext i1 %1605 to i64
  %1607 = select i1 %1605, ptr @.str.607, ptr @.str.14
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.603, ptr noundef %1589, ptr noundef %1595, ptr noundef %1601, ptr noundef %1607)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.608)
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #10
  store i32 0, ptr %101, align 4, !tbaa !131
  br label %1608

1608:                                             ; preds = %1638, %1583
  %1609 = load i32, ptr %101, align 4, !tbaa !131
  %1610 = load ptr, ptr %4, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.ImGuiIO, ptr %1610, i32 0, i32 108
  %1612 = getelementptr inbounds %struct.ImVector, ptr %1611, i32 0, i32 0
  %1613 = load i32, ptr %1612, align 8, !tbaa !246
  %1614 = icmp slt i32 %1609, %1613
  br i1 %1614, label %1616, label %1615

1615:                                             ; preds = %1608
  store i32 69, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  br label %1641

1616:                                             ; preds = %1608
  call void @llvm.lifetime.start.p0(i64 2, ptr %102) #10
  %1617 = load ptr, ptr %4, align 8, !tbaa !5
  %1618 = getelementptr inbounds %struct.ImGuiIO, ptr %1617, i32 0, i32 108
  %1619 = load i32, ptr %101, align 4, !tbaa !131
  %1620 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1618, i32 noundef %1619)
  %1621 = load i16, ptr %1620, align 2, !tbaa !247
  store i16 %1621, ptr %102, align 2, !tbaa !247
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1622 = load i16, ptr %102, align 2, !tbaa !247
  %1623 = zext i16 %1622 to i32
  %1624 = icmp sgt i32 %1623, 32
  br i1 %1624, label %1625, label %1632

1625:                                             ; preds = %1616
  %1626 = load i16, ptr %102, align 2, !tbaa !247
  %1627 = zext i16 %1626 to i32
  %1628 = icmp sle i32 %1627, 255
  br i1 %1628, label %1629, label %1632

1629:                                             ; preds = %1625
  %1630 = load i16, ptr %102, align 2, !tbaa !247
  %1631 = trunc i16 %1630 to i8
  br label %1633

1632:                                             ; preds = %1625, %1616
  br label %1633

1633:                                             ; preds = %1632, %1629
  %1634 = phi i8 [ %1631, %1629 ], [ 63, %1632 ]
  %1635 = sext i8 %1634 to i32
  %1636 = load i16, ptr %102, align 2, !tbaa !247
  %1637 = zext i16 %1636 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.609, i32 noundef %1635, i32 noundef %1637)
  call void @llvm.lifetime.end.p0(i64 2, ptr %102) #10
  br label %1638

1638:                                             ; preds = %1633
  %1639 = load i32, ptr %101, align 4, !tbaa !131
  %1640 = add nsw i32 %1639, 1
  store i32 %1640, ptr %101, align 4, !tbaa !131
  br label %1608, !llvm.loop !248

1641:                                             ; preds = %1615
  %1642 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %1642)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.610)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1643 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %1643, label %1644, label %1655

1644:                                             ; preds = %1641
  %1645 = load ptr, ptr %4, align 8, !tbaa !5
  %1646 = getelementptr inbounds %struct.ImGuiIO, ptr %1645, i32 0, i32 74
  %1647 = getelementptr inbounds %struct.ImVec2, ptr %1646, i32 0, i32 0
  %1648 = load float, ptr %1647, align 8, !tbaa !249
  %1649 = fpext float %1648 to double
  %1650 = load ptr, ptr %4, align 8, !tbaa !5
  %1651 = getelementptr inbounds %struct.ImGuiIO, ptr %1650, i32 0, i32 74
  %1652 = getelementptr inbounds %struct.ImVec2, ptr %1651, i32 0, i32 1
  %1653 = load float, ptr %1652, align 4, !tbaa !250
  %1654 = fpext float %1653 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.611, double noundef %1649, double noundef %1654)
  br label %1656

1655:                                             ; preds = %1641
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.612)
  br label %1656

1656:                                             ; preds = %1655, %1644
  %1657 = load ptr, ptr %4, align 8, !tbaa !5
  %1658 = getelementptr inbounds %struct.ImGuiIO, ptr %1657, i32 0, i32 72
  %1659 = getelementptr inbounds %struct.ImVec2, ptr %1658, i32 0, i32 0
  %1660 = load float, ptr %1659, align 4, !tbaa !251
  %1661 = fpext float %1660 to double
  %1662 = load ptr, ptr %4, align 8, !tbaa !5
  %1663 = getelementptr inbounds %struct.ImGuiIO, ptr %1662, i32 0, i32 72
  %1664 = getelementptr inbounds %struct.ImVec2, ptr %1663, i32 0, i32 1
  %1665 = load float, ptr %1664, align 4, !tbaa !252
  %1666 = fpext float %1665 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.613, double noundef %1661, double noundef %1666)
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #10
  store i32 5, ptr %103, align 4, !tbaa !131
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.614)
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #10
  store i32 0, ptr %104, align 4, !tbaa !131
  br label %1667

1667:                                             ; preds = %1685, %1656
  %1668 = load i32, ptr %104, align 4, !tbaa !131
  %1669 = load i32, ptr %103, align 4, !tbaa !131
  %1670 = icmp slt i32 %1668, %1669
  br i1 %1670, label %1672, label %1671

1671:                                             ; preds = %1667
  store i32 72, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  br label %1688

1672:                                             ; preds = %1667
  %1673 = load i32, ptr %104, align 4, !tbaa !131
  %1674 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef %1673)
  br i1 %1674, label %1675, label %1684

1675:                                             ; preds = %1672
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1676 = load i32, ptr %104, align 4, !tbaa !131
  %1677 = load ptr, ptr %4, align 8, !tbaa !5
  %1678 = getelementptr inbounds %struct.ImGuiIO, ptr %1677, i32 0, i32 100
  %1679 = load i32, ptr %104, align 4, !tbaa !131
  %1680 = sext i32 %1679 to i64
  %1681 = getelementptr inbounds [5 x float], ptr %1678, i64 0, i64 %1680
  %1682 = load float, ptr %1681, align 4, !tbaa !253
  %1683 = fpext float %1682 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.615, i32 noundef %1676, double noundef %1683)
  br label %1684

1684:                                             ; preds = %1675, %1672
  br label %1685

1685:                                             ; preds = %1684
  %1686 = load i32, ptr %104, align 4, !tbaa !131
  %1687 = add nsw i32 %1686, 1
  store i32 %1687, ptr %104, align 4, !tbaa !131
  br label %1667, !llvm.loop !254

1688:                                             ; preds = %1671
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.616)
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  store i32 0, ptr %105, align 4, !tbaa !131
  br label %1689

1689:                                             ; preds = %1707, %1688
  %1690 = load i32, ptr %105, align 4, !tbaa !131
  %1691 = load i32, ptr %103, align 4, !tbaa !131
  %1692 = icmp slt i32 %1690, %1691
  br i1 %1692, label %1694, label %1693

1693:                                             ; preds = %1689
  store i32 75, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  br label %1710

1694:                                             ; preds = %1689
  %1695 = load i32, ptr %105, align 4, !tbaa !131
  %1696 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef %1695, i1 noundef zeroext false)
  br i1 %1696, label %1697, label %1706

1697:                                             ; preds = %1694
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1698 = load i32, ptr %105, align 4, !tbaa !131
  %1699 = load ptr, ptr %4, align 8, !tbaa !5
  %1700 = getelementptr inbounds %struct.ImGuiIO, ptr %1699, i32 0, i32 92
  %1701 = load i32, ptr %105, align 4, !tbaa !131
  %1702 = sext i32 %1701 to i64
  %1703 = getelementptr inbounds [5 x i16], ptr %1700, i64 0, i64 %1702
  %1704 = load i16, ptr %1703, align 2, !tbaa !247
  %1705 = zext i16 %1704 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.617, i32 noundef %1698, i32 noundef %1705)
  br label %1706

1706:                                             ; preds = %1697, %1694
  br label %1707

1707:                                             ; preds = %1706
  %1708 = load i32, ptr %105, align 4, !tbaa !131
  %1709 = add nsw i32 %1708, 1
  store i32 %1709, ptr %105, align 4, !tbaa !131
  br label %1689, !llvm.loop !255

1710:                                             ; preds = %1693
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.618)
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  store i32 0, ptr %106, align 4, !tbaa !131
  br label %1711

1711:                                             ; preds = %1722, %1710
  %1712 = load i32, ptr %106, align 4, !tbaa !131
  %1713 = load i32, ptr %103, align 4, !tbaa !131
  %1714 = icmp slt i32 %1712, %1713
  br i1 %1714, label %1716, label %1715

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

1716:                                             ; preds = %1711
  %1717 = load i32, ptr %106, align 4, !tbaa !131
  %1718 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef %1717)
  br i1 %1718, label %1719, label %1721

1719:                                             ; preds = %1716
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1720 = load i32, ptr %106, align 4, !tbaa !131
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.619, i32 noundef %1720)
  br label %1721

1721:                                             ; preds = %1719, %1716
  br label %1722

1722:                                             ; preds = %1721
  %1723 = load i32, ptr %106, align 4, !tbaa !131
  %1724 = add nsw i32 %1723, 1
  store i32 %1724, ptr %106, align 4, !tbaa !131
  br label %1711, !llvm.loop !256

1725:                                             ; preds = %1715
  %1726 = load ptr, ptr %4, align 8, !tbaa !5
  %1727 = getelementptr inbounds %struct.ImGuiIO, ptr %1726, i32 0, i32 76
  %1728 = load float, ptr %1727, align 8, !tbaa !257
  %1729 = fpext float %1728 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.620, double noundef %1729)
  %1730 = load ptr, ptr %3, align 8, !tbaa !5
  %1731 = getelementptr inbounds %struct.ImGuiContext, ptr %1730, i32 0, i32 218
  %1732 = load float, ptr %1731, align 4, !tbaa !258
  %1733 = fpext float %1732 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.621, double noundef %1733)
  %1734 = load ptr, ptr %4, align 8, !tbaa !5
  %1735 = getelementptr inbounds %struct.ImGuiIO, ptr %1734, i32 0, i32 78
  %1736 = load i32, ptr %1735, align 8, !tbaa !259
  %1737 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %1736)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.622, ptr noundef %1737)
  %1738 = load ptr, ptr %4, align 8, !tbaa !5
  %1739 = getelementptr inbounds %struct.ImGuiIO, ptr %1738, i32 0, i32 104
  %1740 = load float, ptr %1739, align 8, !tbaa !260
  %1741 = fpext float %1740 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.623, double noundef %1741)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #10
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.624)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1742 = load ptr, ptr %3, align 8, !tbaa !5
  %1743 = getelementptr inbounds %struct.ImGuiContext, ptr %1742, i32 0, i32 42
  %1744 = load ptr, ptr %1743, align 8, !tbaa !261
  %1745 = icmp ne ptr %1744, null
  br i1 %1745, label %1746, label %1752

1746:                                             ; preds = %1725
  %1747 = load ptr, ptr %3, align 8, !tbaa !5
  %1748 = getelementptr inbounds %struct.ImGuiContext, ptr %1747, i32 0, i32 42
  %1749 = load ptr, ptr %1748, align 8, !tbaa !261
  %1750 = getelementptr inbounds %struct.ImGuiWindow, ptr %1749, i32 0, i32 1
  %1751 = load ptr, ptr %1750, align 8, !tbaa !130
  br label %1753

1752:                                             ; preds = %1725
  br label %1753

1753:                                             ; preds = %1752, %1746
  %1754 = phi ptr [ %1751, %1746 ], [ @.str.278, %1752 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.625, ptr noundef %1754)
  %1755 = load ptr, ptr %3, align 8, !tbaa !5
  %1756 = getelementptr inbounds %struct.ImGuiContext, ptr %1755, i32 0, i32 46
  %1757 = load float, ptr %1756, align 8, !tbaa !262
  %1758 = fpext float %1757 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.626, double noundef %1758)
  %1759 = load ptr, ptr %3, align 8, !tbaa !5
  %1760 = getelementptr inbounds %struct.ImGuiContext, ptr %1759, i32 0, i32 48
  %1761 = getelementptr inbounds %struct.ImVec2, ptr %1760, i32 0, i32 0
  %1762 = load float, ptr %1761, align 4, !tbaa !263
  %1763 = fpext float %1762 to double
  %1764 = load ptr, ptr %3, align 8, !tbaa !5
  %1765 = getelementptr inbounds %struct.ImGuiContext, ptr %1764, i32 0, i32 48
  %1766 = getelementptr inbounds %struct.ImVec2, ptr %1765, i32 0, i32 1
  %1767 = load float, ptr %1766, align 4, !tbaa !264
  %1768 = fpext float %1767 to double
  %1769 = load ptr, ptr %3, align 8, !tbaa !5
  %1770 = getelementptr inbounds %struct.ImGuiContext, ptr %1769, i32 0, i32 48
  %1771 = getelementptr inbounds %struct.ImVec2, ptr %1770, i32 0, i32 0
  %1772 = load float, ptr %1771, align 4, !tbaa !263
  %1773 = load ptr, ptr %3, align 8, !tbaa !5
  %1774 = getelementptr inbounds %struct.ImGuiContext, ptr %1773, i32 0, i32 48
  %1775 = getelementptr inbounds %struct.ImVec2, ptr %1774, i32 0, i32 1
  %1776 = load float, ptr %1775, align 4, !tbaa !264
  %1777 = fcmp ogt float %1772, %1776
  br i1 %1777, label %1778, label %1779

1778:                                             ; preds = %1753
  br label %1791

1779:                                             ; preds = %1753
  %1780 = load ptr, ptr %3, align 8, !tbaa !5
  %1781 = getelementptr inbounds %struct.ImGuiContext, ptr %1780, i32 0, i32 48
  %1782 = getelementptr inbounds %struct.ImVec2, ptr %1781, i32 0, i32 0
  %1783 = load float, ptr %1782, align 4, !tbaa !263
  %1784 = load ptr, ptr %3, align 8, !tbaa !5
  %1785 = getelementptr inbounds %struct.ImGuiContext, ptr %1784, i32 0, i32 48
  %1786 = getelementptr inbounds %struct.ImVec2, ptr %1785, i32 0, i32 1
  %1787 = load float, ptr %1786, align 4, !tbaa !264
  %1788 = fcmp olt float %1783, %1787
  %1789 = zext i1 %1788 to i64
  %1790 = select i1 %1788, ptr @.str.628, ptr @.str.629
  br label %1791

1791:                                             ; preds = %1779, %1778
  %1792 = phi ptr [ @.str.455, %1778 ], [ %1790, %1779 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.627, double noundef %1763, double noundef %1768, ptr noundef %1792)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.630)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #10
  %1793 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1794 = fmul float %1793, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %107, float noundef 0xB810000000000000, float noundef %1794)
  %1795 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef @.str.631, ptr noundef nonnull align 4 dereferenceable(8) %107, i32 noundef 136, i32 noundef 256)
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #10
  br i1 %1795, label %1796, label %1840

1796:                                             ; preds = %1791
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #10
  store i32 512, ptr %108, align 4, !tbaa !236
  br label %1797

1797:                                             ; preds = %1836, %1796
  %1798 = load i32, ptr %108, align 4, !tbaa !236
  %1799 = icmp slt i32 %1798, 667
  br i1 %1799, label %1801, label %1800

1800:                                             ; preds = %1797
  store i32 81, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #10
  br label %1839

1801:                                             ; preds = %1797
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #10
  %1802 = load ptr, ptr %3, align 8, !tbaa !5
  %1803 = load i32, ptr %108, align 4, !tbaa !236
  %1804 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %1802, i32 noundef %1803)
  store ptr %1804, ptr %109, align 8, !tbaa !5
  %1805 = load ptr, ptr %109, align 8, !tbaa !5
  %1806 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1805, i32 0, i32 0
  %1807 = load i32, ptr %1806, align 4, !tbaa !265
  %1808 = icmp eq i32 %1807, -1
  br i1 %1808, label %1809, label %1810

1809:                                             ; preds = %1801
  store i32 83, ptr %6, align 4
  br label %1833

1810:                                             ; preds = %1801
  %1811 = load i32, ptr %108, align 4, !tbaa !236
  %1812 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1811)
  %1813 = load ptr, ptr %109, align 8, !tbaa !5
  %1814 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1813, i32 0, i32 0
  %1815 = load i32, ptr %1814, align 4, !tbaa !265
  %1816 = load ptr, ptr %109, align 8, !tbaa !5
  %1817 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1816, i32 0, i32 3
  %1818 = load i8, ptr %1817, align 1, !tbaa !267, !range !13, !noundef !14
  %1819 = trunc i8 %1818 to i1
  br i1 %1819, label %1820, label %1821

1820:                                             ; preds = %1810
  br label %1828

1821:                                             ; preds = %1810
  %1822 = load ptr, ptr %109, align 8, !tbaa !5
  %1823 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1822, i32 0, i32 2
  %1824 = load i8, ptr %1823, align 4, !tbaa !268, !range !13, !noundef !14
  %1825 = trunc i8 %1824 to i1
  %1826 = zext i1 %1825 to i64
  %1827 = select i1 %1825, ptr @.str.634, ptr @.str.14
  br label %1828

1828:                                             ; preds = %1821, %1820
  %1829 = phi ptr [ @.str.633, %1820 ], [ %1827, %1821 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.632, ptr noundef %1812, i32 noundef %1815, ptr noundef %1829)
  %1830 = load ptr, ptr %109, align 8, !tbaa !5
  %1831 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1830, i32 0, i32 0
  %1832 = load i32, ptr %1831, align 4, !tbaa !265
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1832)
  store i32 0, ptr %6, align 4
  br label %1833

1833:                                             ; preds = %1828, %1809
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #10
  %1834 = load i32, ptr %6, align 4
  switch i32 %1834, label %2550 [
    i32 0, label %1835
    i32 83, label %1836
  ]

1835:                                             ; preds = %1833
  br label %1836

1836:                                             ; preds = %1835, %1833
  %1837 = load i32, ptr %108, align 4, !tbaa !236
  %1838 = add nsw i32 %1837, 1
  store i32 %1838, ptr %108, align 4, !tbaa !236
  br label %1797, !llvm.loop !269

1839:                                             ; preds = %1800
  br label %1840

1840:                                             ; preds = %1839, %1791
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.635)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.636)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #10
  %1841 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1842 = fmul float %1841, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %110, float noundef 0xB810000000000000, float noundef %1842)
  %1843 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef @.str.637, ptr noundef nonnull align 4 dereferenceable(8) %110, i32 noundef 136, i32 noundef 256)
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #10
  br i1 %1843, label %1844, label %1909

1844:                                             ; preds = %1840
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #10
  store i32 512, ptr %111, align 4, !tbaa !236
  br label %1845

1845:                                             ; preds = %1905, %1844
  %1846 = load i32, ptr %111, align 4, !tbaa !236
  %1847 = icmp slt i32 %1846, 667
  br i1 %1847, label %1849, label %1848

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

1849:                                             ; preds = %1845
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #10
  %1850 = load ptr, ptr %3, align 8, !tbaa !5
  %1851 = getelementptr inbounds %struct.ImGuiContext, ptr %1850, i32 0, i32 83
  store ptr %1851, ptr %112, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %113) #10
  %1852 = load ptr, ptr %112, align 8, !tbaa !5
  %1853 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1852, i32 0, i32 0
  %1854 = load i32, ptr %111, align 4, !tbaa !236
  %1855 = sub nsw i32 %1854, 512
  %1856 = sext i32 %1855 to i64
  %1857 = getelementptr inbounds [155 x i16], ptr %1853, i64 0, i64 %1856
  %1858 = load i16, ptr %1857, align 2, !tbaa !247
  store i16 %1858, ptr %113, align 2, !tbaa !247
  br label %1859

1859:                                             ; preds = %1900, %1849
  %1860 = load i16, ptr %113, align 2, !tbaa !247
  %1861 = sext i16 %1860 to i32
  %1862 = icmp ne i32 %1861, -1
  br i1 %1862, label %1864, label %1863

1863:                                             ; preds = %1859
  store i32 87, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %113) #10
  br label %1904

1864:                                             ; preds = %1859
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #10
  %1865 = load ptr, ptr %112, align 8, !tbaa !5
  %1866 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1865, i32 0, i32 1
  %1867 = load i16, ptr %113, align 2, !tbaa !247
  %1868 = sext i16 %1867 to i32
  %1869 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1866, i32 noundef %1868)
  store ptr %1869, ptr %114, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #10
  %1870 = load i32, ptr %111, align 4, !tbaa !236
  %1871 = load ptr, ptr %114, align 8, !tbaa !5
  %1872 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1871, i32 0, i32 1
  %1873 = load i16, ptr %1872, align 2, !tbaa !270
  %1874 = zext i16 %1873 to i32
  %1875 = or i32 %1870, %1874
  store i32 %1875, ptr %115, align 4, !tbaa !131
  %1876 = load i32, ptr %115, align 4, !tbaa !131
  %1877 = call noundef ptr @_ZN5ImGui15GetKeyChordNameEi(i32 noundef %1876)
  %1878 = load ptr, ptr %114, align 8, !tbaa !5
  %1879 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1878, i32 0, i32 4
  %1880 = load i32, ptr %1879, align 4, !tbaa !272
  %1881 = load ptr, ptr %114, align 8, !tbaa !5
  %1882 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1881, i32 0, i32 2
  %1883 = load i8, ptr %1882, align 4, !tbaa !273
  %1884 = zext i8 %1883 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.638, ptr noundef %1877, i32 noundef %1880, i32 noundef %1884)
  %1885 = load ptr, ptr %114, align 8, !tbaa !5
  %1886 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1885, i32 0, i32 4
  %1887 = load i32, ptr %1886, align 4, !tbaa !272
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1887)
  %1888 = load ptr, ptr %3, align 8, !tbaa !5
  %1889 = getelementptr inbounds %struct.ImGuiContext, ptr %1888, i32 0, i32 2
  %1890 = getelementptr inbounds %struct.ImGuiIO, ptr %1889, i32 0, i32 48
  %1891 = load i8, ptr %1890, align 8, !tbaa !274, !range !13, !noundef !14
  %1892 = trunc i8 %1891 to i1
  br i1 %1892, label %1893, label %1900

1893:                                             ; preds = %1864
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1894 = call noundef zeroext i1 @_ZN5ImGui16DebugBreakButtonEPKcS1_(ptr noundef @.str.639, ptr noundef @.str.640)
  br i1 %1894, label %1895, label %1899

1895:                                             ; preds = %1893
  %1896 = load i32, ptr %115, align 4, !tbaa !131
  %1897 = load ptr, ptr %3, align 8, !tbaa !5
  %1898 = getelementptr inbounds %struct.ImGuiContext, ptr %1897, i32 0, i32 86
  store i32 %1896, ptr %1898, align 8, !tbaa !275
  br label %1899

1899:                                             ; preds = %1895, %1893
  br label %1900

1900:                                             ; preds = %1899, %1864
  %1901 = load ptr, ptr %114, align 8, !tbaa !5
  %1902 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1901, i32 0, i32 0
  %1903 = load i16, ptr %1902, align 4, !tbaa !276
  store i16 %1903, ptr %113, align 2, !tbaa !247
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #10
  br label %1859, !llvm.loop !277

1904:                                             ; preds = %1863
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #10
  br label %1905

1905:                                             ; preds = %1904
  %1906 = load i32, ptr %111, align 4, !tbaa !236
  %1907 = add nsw i32 %1906, 1
  store i32 %1907, ptr %111, align 4, !tbaa !236
  br label %1845, !llvm.loop !278

1908:                                             ; preds = %1848
  br label %1909

1909:                                             ; preds = %1908, %1840
  call void @_ZN5ImGui8EndChildEv()
  %1910 = load ptr, ptr %3, align 8, !tbaa !5
  %1911 = getelementptr inbounds %struct.ImGuiContext, ptr %1910, i32 0, i32 85
  %1912 = load i8, ptr %1911, align 4, !tbaa !279, !range !13, !noundef !14
  %1913 = trunc i8 %1912 to i1
  %1914 = zext i1 %1913 to i32
  %1915 = load ptr, ptr %3, align 8, !tbaa !5
  %1916 = getelementptr inbounds %struct.ImGuiContext, ptr %1915, i32 0, i32 84
  %1917 = load i32, ptr %1916, align 8, !tbaa !280
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.641, i32 noundef %1914, i32 noundef %1917)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1918

1918:                                             ; preds = %1909, %1516
  %1919 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.642)
  br i1 %1919, label %1920, label %2206

1920:                                             ; preds = %1918
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.643)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1921 = load ptr, ptr %3, align 8, !tbaa !5
  %1922 = getelementptr inbounds %struct.ImGuiContext, ptr %1921, i32 0, i32 38
  %1923 = load ptr, ptr %1922, align 8, !tbaa !281
  %1924 = icmp ne ptr %1923, null
  br i1 %1924, label %1925, label %1931

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

1931:                                             ; preds = %1920
  br label %1932

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

1938:                                             ; preds = %1932
  %1939 = load ptr, ptr %3, align 8, !tbaa !5
  %1940 = getelementptr inbounds %struct.ImGuiContext, ptr %1939, i32 0, i32 38
  %1941 = load ptr, ptr %1940, align 8, !tbaa !281
  %1942 = getelementptr inbounds %struct.ImGuiWindow, ptr %1941, i32 0, i32 106
  %1943 = load ptr, ptr %1942, align 8, !tbaa !282
  %1944 = getelementptr inbounds %struct.ImGuiWindow, ptr %1943, i32 0, i32 1
  %1945 = load ptr, ptr %1944, align 8, !tbaa !130
  br label %1947

1946:                                             ; preds = %1932
  br label %1947

1947:                                             ; preds = %1946, %1938
  %1948 = phi ptr [ %1945, %1938 ], [ @.str.278, %1946 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.645, ptr noundef %1948)
  %1949 = load ptr, ptr %3, align 8, !tbaa !5
  %1950 = getelementptr inbounds %struct.ImGuiContext, ptr %1949, i32 0, i32 39
  %1951 = load ptr, ptr %1950, align 8, !tbaa !283
  %1952 = icmp ne ptr %1951, null
  br i1 %1952, label %1953, label %1959

1953:                                             ; preds = %1947
  %1954 = load ptr, ptr %3, align 8, !tbaa !5
  %1955 = getelementptr inbounds %struct.ImGuiContext, ptr %1954, i32 0, i32 39
  %1956 = load ptr, ptr %1955, align 8, !tbaa !283
  %1957 = getelementptr inbounds %struct.ImGuiWindow, ptr %1956, i32 0, i32 1
  %1958 = load ptr, ptr %1957, align 8, !tbaa !130
  br label %1960

1959:                                             ; preds = %1947
  br label %1960

1960:                                             ; preds = %1959, %1953
  %1961 = phi ptr [ %1958, %1953 ], [ @.str.278, %1959 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.646, ptr noundef %1961)
  %1962 = load ptr, ptr %3, align 8, !tbaa !5
  %1963 = getelementptr inbounds %struct.ImGuiContext, ptr %1962, i32 0, i32 305
  %1964 = load ptr, ptr %1963, align 8, !tbaa !284
  %1965 = icmp ne ptr %1964, null
  br i1 %1965, label %1966, label %1972

1966:                                             ; preds = %1960
  %1967 = load ptr, ptr %3, align 8, !tbaa !5
  %1968 = getelementptr inbounds %struct.ImGuiContext, ptr %1967, i32 0, i32 305
  %1969 = load ptr, ptr %1968, align 8, !tbaa !284
  %1970 = getelementptr inbounds %struct.ImGuiDockNode, ptr %1969, i32 0, i32 0
  %1971 = load i32, ptr %1970, align 8, !tbaa !285
  br label %1973

1972:                                             ; preds = %1960
  br label %1973

1973:                                             ; preds = %1972, %1966
  %1974 = phi i32 [ %1971, %1966 ], [ 0, %1972 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.647, i32 noundef %1974)
  %1975 = load ptr, ptr %3, align 8, !tbaa !5
  %1976 = getelementptr inbounds %struct.ImGuiContext, ptr %1975, i32 0, i32 41
  %1977 = load ptr, ptr %1976, align 8, !tbaa !289
  %1978 = icmp ne ptr %1977, null
  br i1 %1978, label %1979, label %1985

1979:                                             ; preds = %1973
  %1980 = load ptr, ptr %3, align 8, !tbaa !5
  %1981 = getelementptr inbounds %struct.ImGuiContext, ptr %1980, i32 0, i32 41
  %1982 = load ptr, ptr %1981, align 8, !tbaa !289
  %1983 = getelementptr inbounds %struct.ImGuiWindow, ptr %1982, i32 0, i32 1
  %1984 = load ptr, ptr %1983, align 8, !tbaa !130
  br label %1986

1985:                                             ; preds = %1973
  br label %1986

1986:                                             ; preds = %1985, %1979
  %1987 = phi ptr [ %1984, %1979 ], [ @.str.278, %1985 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.648, ptr noundef %1987)
  %1988 = load ptr, ptr %3, align 8, !tbaa !5
  %1989 = getelementptr inbounds %struct.ImGuiContext, ptr %1988, i32 0, i32 106
  %1990 = load ptr, ptr %1989, align 8, !tbaa !177
  %1991 = getelementptr inbounds %struct.ImGuiViewport, ptr %1990, i32 0, i32 0
  %1992 = load i32, ptr %1991, align 8, !tbaa !171
  %1993 = load ptr, ptr %3, align 8, !tbaa !5
  %1994 = getelementptr inbounds %struct.ImGuiContext, ptr %1993, i32 0, i32 2
  %1995 = getelementptr inbounds %struct.ImGuiIO, ptr %1994, i32 0, i32 79
  %1996 = load i32, ptr %1995, align 4, !tbaa !178
  %1997 = load ptr, ptr %3, align 8, !tbaa !5
  %1998 = getelementptr inbounds %struct.ImGuiContext, ptr %1997, i32 0, i32 107
  %1999 = load ptr, ptr %1998, align 8, !tbaa !179
  %2000 = icmp ne ptr %1999, null
  br i1 %2000, label %2001, label %2007

2001:                                             ; preds = %1986
  %2002 = load ptr, ptr %3, align 8, !tbaa !5
  %2003 = getelementptr inbounds %struct.ImGuiContext, ptr %2002, i32 0, i32 107
  %2004 = load ptr, ptr %2003, align 8, !tbaa !179
  %2005 = getelementptr inbounds %struct.ImGuiViewport, ptr %2004, i32 0, i32 0
  %2006 = load i32, ptr %2005, align 8, !tbaa !171
  br label %2008

2007:                                             ; preds = %1986
  br label %2008

2008:                                             ; preds = %2007, %2001
  %2009 = phi i32 [ %2006, %2001 ], [ 0, %2007 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.540, i32 noundef %1992, i32 noundef %1996, i32 noundef %2009)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.649)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %2010 = load ptr, ptr %3, align 8, !tbaa !5
  %2011 = getelementptr inbounds %struct.ImGuiContext, ptr %2010, i32 0, i32 59
  %2012 = load i32, ptr %2011, align 4, !tbaa !290
  %2013 = load ptr, ptr %3, align 8, !tbaa !5
  %2014 = getelementptr inbounds %struct.ImGuiContext, ptr %2013, i32 0, i32 73
  %2015 = load i32, ptr %2014, align 4, !tbaa !291
  %2016 = load ptr, ptr %3, align 8, !tbaa !5
  %2017 = getelementptr inbounds %struct.ImGuiContext, ptr %2016, i32 0, i32 61
  %2018 = load float, ptr %2017, align 4, !tbaa !292
  %2019 = fpext float %2018 to double
  %2020 = load ptr, ptr %3, align 8, !tbaa !5
  %2021 = getelementptr inbounds %struct.ImGuiContext, ptr %2020, i32 0, i32 63
  %2022 = load i8, ptr %2021, align 1, !tbaa !293, !range !13, !noundef !14
  %2023 = trunc i8 %2022 to i1
  %2024 = zext i1 %2023 to i32
  %2025 = load ptr, ptr %3, align 8, !tbaa !5
  %2026 = getelementptr inbounds %struct.ImGuiContext, ptr %2025, i32 0, i32 72
  %2027 = load i32, ptr %2026, align 8, !tbaa !294
  %2028 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %2027)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.650, i32 noundef %2012, i32 noundef %2015, double noundef %2019, i32 noundef %2024, ptr noundef %2028)
  %2029 = load ptr, ptr %3, align 8, !tbaa !5
  %2030 = getelementptr inbounds %struct.ImGuiContext, ptr %2029, i32 0, i32 59
  %2031 = load i32, ptr %2030, align 4, !tbaa !290
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %2031)
  %2032 = load ptr, ptr %3, align 8, !tbaa !5
  %2033 = getelementptr inbounds %struct.ImGuiContext, ptr %2032, i32 0, i32 71
  %2034 = load ptr, ptr %2033, align 8, !tbaa !295
  %2035 = icmp ne ptr %2034, null
  br i1 %2035, label %2036, label %2042

2036:                                             ; preds = %2008
  %2037 = load ptr, ptr %3, align 8, !tbaa !5
  %2038 = getelementptr inbounds %struct.ImGuiContext, ptr %2037, i32 0, i32 71
  %2039 = load ptr, ptr %2038, align 8, !tbaa !295
  %2040 = getelementptr inbounds %struct.ImGuiWindow, ptr %2039, i32 0, i32 1
  %2041 = load ptr, ptr %2040, align 8, !tbaa !130
  br label %2043

2042:                                             ; preds = %2008
  br label %2043

2043:                                             ; preds = %2042, %2036
  %2044 = phi ptr [ %2041, %2036 ], [ @.str.278, %2042 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.651, ptr noundef %2044)
  %2045 = load ptr, ptr %3, align 8, !tbaa !5
  %2046 = getelementptr inbounds %struct.ImGuiContext, ptr %2045, i32 0, i32 85
  %2047 = load i8, ptr %2046, align 4, !tbaa !279, !range !13, !noundef !14
  %2048 = trunc i8 %2047 to i1
  %2049 = zext i1 %2048 to i32
  %2050 = load ptr, ptr %3, align 8, !tbaa !5
  %2051 = getelementptr inbounds %struct.ImGuiContext, ptr %2050, i32 0, i32 84
  %2052 = load i32, ptr %2051, align 8, !tbaa !280
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.652, i32 noundef %2049, i32 noundef %2052)
  %2053 = load ptr, ptr %3, align 8, !tbaa !5
  %2054 = getelementptr inbounds %struct.ImGuiContext, ptr %2053, i32 0, i32 52
  %2055 = load i32, ptr %2054, align 8, !tbaa !296
  %2056 = load ptr, ptr %3, align 8, !tbaa !5
  %2057 = getelementptr inbounds %struct.ImGuiContext, ptr %2056, i32 0, i32 54
  %2058 = load float, ptr %2057, align 8, !tbaa !297
  %2059 = fpext float %2058 to double
  %2060 = load ptr, ptr %3, align 8, !tbaa !5
  %2061 = getelementptr inbounds %struct.ImGuiContext, ptr %2060, i32 0, i32 56
  %2062 = load i8, ptr %2061, align 8, !tbaa !298, !range !13, !noundef !14
  %2063 = trunc i8 %2062 to i1
  %2064 = zext i1 %2063 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.653, i32 noundef %2055, double noundef %2059, i32 noundef %2064)
  %2065 = load ptr, ptr %3, align 8, !tbaa !5
  %2066 = getelementptr inbounds %struct.ImGuiContext, ptr %2065, i32 0, i32 211
  %2067 = load i32, ptr %2066, align 8, !tbaa !299
  %2068 = load ptr, ptr %3, align 8, !tbaa !5
  %2069 = getelementptr inbounds %struct.ImGuiContext, ptr %2068, i32 0, i32 213
  %2070 = load float, ptr %2069, align 8, !tbaa !300
  %2071 = fpext float %2070 to double
  %2072 = load ptr, ptr %3, align 8, !tbaa !5
  %2073 = getelementptr inbounds %struct.ImGuiContext, ptr %2072, i32 0, i32 214
  %2074 = load float, ptr %2073, align 4, !tbaa !301
  %2075 = fpext float %2074 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.654, i32 noundef %2067, double noundef %2071, double noundef %2075)
  %2076 = load ptr, ptr %3, align 8, !tbaa !5
  %2077 = getelementptr inbounds %struct.ImGuiContext, ptr %2076, i32 0, i32 174
  %2078 = load i8, ptr %2077, align 4, !tbaa !302, !range !13, !noundef !14
  %2079 = trunc i8 %2078 to i1
  %2080 = zext i1 %2079 to i32
  %2081 = load ptr, ptr %3, align 8, !tbaa !5
  %2082 = getelementptr inbounds %struct.ImGuiContext, ptr %2081, i32 0, i32 181
  %2083 = getelementptr inbounds %struct.ImGuiPayload, ptr %2082, i32 0, i32 2
  %2084 = load i32, ptr %2083, align 4, !tbaa !303
  %2085 = load ptr, ptr %3, align 8, !tbaa !5
  %2086 = getelementptr inbounds %struct.ImGuiContext, ptr %2085, i32 0, i32 181
  %2087 = getelementptr inbounds %struct.ImGuiPayload, ptr %2086, i32 0, i32 5
  %2088 = getelementptr inbounds [33 x i8], ptr %2087, i64 0, i64 0
  %2089 = load ptr, ptr %3, align 8, !tbaa !5
  %2090 = getelementptr inbounds %struct.ImGuiContext, ptr %2089, i32 0, i32 181
  %2091 = getelementptr inbounds %struct.ImGuiPayload, ptr %2090, i32 0, i32 1
  %2092 = load i32, ptr %2091, align 8, !tbaa !304
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.655, i32 noundef %2080, i32 noundef %2084, ptr noundef %2088, i32 noundef %2092)
  %2093 = load ptr, ptr %3, align 8, !tbaa !5
  %2094 = getelementptr inbounds %struct.ImGuiContext, ptr %2093, i32 0, i32 181
  %2095 = getelementptr inbounds %struct.ImGuiPayload, ptr %2094, i32 0, i32 2
  %2096 = load i32, ptr %2095, align 4, !tbaa !303
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %2096)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.656)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %2097 = load ptr, ptr %3, align 8, !tbaa !5
  %2098 = getelementptr inbounds %struct.ImGuiContext, ptr %2097, i32 0, i32 119
  %2099 = load ptr, ptr %2098, align 8, !tbaa !129
  %2100 = icmp ne ptr %2099, null
  br i1 %2100, label %2101, label %2107

2101:                                             ; preds = %2043
  %2102 = load ptr, ptr %3, align 8, !tbaa !5
  %2103 = getelementptr inbounds %struct.ImGuiContext, ptr %2102, i32 0, i32 119
  %2104 = load ptr, ptr %2103, align 8, !tbaa !129
  %2105 = getelementptr inbounds %struct.ImGuiWindow, ptr %2104, i32 0, i32 1
  %2106 = load ptr, ptr %2105, align 8, !tbaa !130
  br label %2108

2107:                                             ; preds = %2043
  br label %2108

2108:                                             ; preds = %2107, %2101
  %2109 = phi ptr [ %2106, %2101 ], [ @.str.278, %2107 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.657, ptr noundef %2109)
  %2110 = load ptr, ptr %3, align 8, !tbaa !5
  %2111 = getelementptr inbounds %struct.ImGuiContext, ptr %2110, i32 0, i32 118
  %2112 = load i32, ptr %2111, align 8, !tbaa !305
  %2113 = load ptr, ptr %3, align 8, !tbaa !5
  %2114 = getelementptr inbounds %struct.ImGuiContext, ptr %2113, i32 0, i32 121
  %2115 = load i32, ptr %2114, align 4, !tbaa !306
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.658, i32 noundef %2112, i32 noundef %2115)
  %2116 = load ptr, ptr %3, align 8, !tbaa !5
  %2117 = getelementptr inbounds %struct.ImGuiContext, ptr %2116, i32 0, i32 118
  %2118 = load i32, ptr %2117, align 8, !tbaa !305
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %2118)
  %2119 = load ptr, ptr %3, align 8, !tbaa !5
  %2120 = getelementptr inbounds %struct.ImGuiContext, ptr %2119, i32 0, i32 131
  %2121 = load i32, ptr %2120, align 8, !tbaa !307
  %2122 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %2121)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.659, ptr noundef %2122)
  %2123 = load ptr, ptr %3, align 8, !tbaa !5
  %2124 = getelementptr inbounds %struct.ImGuiContext, ptr %2123, i32 0, i32 132
  %2125 = load i64, ptr %2124, align 8, !tbaa !308
  %2126 = load ptr, ptr %3, align 8, !tbaa !5
  %2127 = getelementptr inbounds %struct.ImGuiContext, ptr %2126, i32 0, i32 132
  %2128 = load i64, ptr %2127, align 8, !tbaa !308
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.660, i64 noundef %2125, i64 noundef %2128)
  %2129 = load ptr, ptr %3, align 8, !tbaa !5
  %2130 = getelementptr inbounds %struct.ImGuiContext, ptr %2129, i32 0, i32 2
  %2131 = getelementptr inbounds %struct.ImGuiIO, ptr %2130, i32 0, i32 65
  %2132 = load i8, ptr %2131, align 1, !tbaa !309, !range !13, !noundef !14
  %2133 = trunc i8 %2132 to i1
  %2134 = zext i1 %2133 to i32
  %2135 = load ptr, ptr %3, align 8, !tbaa !5
  %2136 = getelementptr inbounds %struct.ImGuiContext, ptr %2135, i32 0, i32 2
  %2137 = getelementptr inbounds %struct.ImGuiIO, ptr %2136, i32 0, i32 66
  %2138 = load i8, ptr %2137, align 2, !tbaa !310, !range !13, !noundef !14
  %2139 = trunc i8 %2138 to i1
  %2140 = zext i1 %2139 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.661, i32 noundef %2134, i32 noundef %2140)
  %2141 = load ptr, ptr %3, align 8, !tbaa !5
  %2142 = getelementptr inbounds %struct.ImGuiContext, ptr %2141, i32 0, i32 122
  %2143 = load i32, ptr %2142, align 8, !tbaa !311
  %2144 = load ptr, ptr %3, align 8, !tbaa !5
  %2145 = getelementptr inbounds %struct.ImGuiContext, ptr %2144, i32 0, i32 123
  %2146 = load i32, ptr %2145, align 4, !tbaa !312
  %2147 = load ptr, ptr %3, align 8, !tbaa !5
  %2148 = getelementptr inbounds %struct.ImGuiContext, ptr %2147, i32 0, i32 124
  %2149 = load i32, ptr %2148, align 8, !tbaa !313
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.662, i32 noundef %2143, i32 noundef %2146, i32 noundef %2149)
  %2150 = load ptr, ptr %3, align 8, !tbaa !5
  %2151 = getelementptr inbounds %struct.ImGuiContext, ptr %2150, i32 0, i32 125
  %2152 = load i32, ptr %2151, align 4, !tbaa !314
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.663, i32 noundef %2152)
  %2153 = load ptr, ptr %3, align 8, !tbaa !5
  %2154 = getelementptr inbounds %struct.ImGuiContext, ptr %2153, i32 0, i32 114
  %2155 = load i8, ptr %2154, align 4, !tbaa !315, !range !13, !noundef !14
  %2156 = trunc i8 %2155 to i1
  %2157 = zext i1 %2156 to i32
  %2158 = load ptr, ptr %3, align 8, !tbaa !5
  %2159 = getelementptr inbounds %struct.ImGuiContext, ptr %2158, i32 0, i32 115
  %2160 = load i8, ptr %2159, align 1, !tbaa !316, !range !13, !noundef !14
  %2161 = trunc i8 %2160 to i1
  %2162 = zext i1 %2161 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.664, i32 noundef %2157, i32 noundef %2162)
  %2163 = load ptr, ptr %3, align 8, !tbaa !5
  %2164 = getelementptr inbounds %struct.ImGuiContext, ptr %2163, i32 0, i32 120
  %2165 = load i32, ptr %2164, align 8, !tbaa !317
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.665, i32 noundef %2165)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.666)
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #10
  %2166 = load ptr, ptr %3, align 8, !tbaa !5
  %2167 = getelementptr inbounds %struct.ImGuiContext, ptr %2166, i32 0, i32 126
  %2168 = getelementptr inbounds %struct.ImVector.11, ptr %2167, i32 0, i32 0
  %2169 = load i32, ptr %2168, align 8, !tbaa !318
  %2170 = sub nsw i32 %2169, 1
  store i32 %2170, ptr %116, align 4, !tbaa !131
  br label %2171

2171:                                             ; preds = %2189, %2108
  %2172 = load i32, ptr %116, align 4, !tbaa !131
  %2173 = icmp sge i32 %2172, 0
  br i1 %2173, label %2175, label %2174

2174:                                             ; preds = %2171
  store i32 89, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #10
  br label %2192

2175:                                             ; preds = %2171
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #10
  %2176 = load ptr, ptr %3, align 8, !tbaa !5
  %2177 = getelementptr inbounds %struct.ImGuiContext, ptr %2176, i32 0, i32 126
  %2178 = load i32, ptr %116, align 4, !tbaa !131
  %2179 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZN8ImVectorI19ImGuiFocusScopeDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %2177, i32 noundef %2178)
  store ptr %2179, ptr %117, align 8, !tbaa !5
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef 0.000000e+00)
  %2180 = load ptr, ptr %117, align 8, !tbaa !5
  %2181 = getelementptr inbounds %struct.ImGuiFocusScopeData, ptr %2180, i32 0, i32 0
  %2182 = load i32, ptr %2181, align 4, !tbaa !319
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.667, i32 noundef %2182)
  %2183 = load ptr, ptr %117, align 8, !tbaa !5
  %2184 = getelementptr inbounds %struct.ImGuiFocusScopeData, ptr %2183, i32 0, i32 1
  %2185 = load i32, ptr %2184, align 4, !tbaa !321
  %2186 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %2185)
  %2187 = getelementptr inbounds %struct.ImGuiWindow, ptr %2186, i32 0, i32 1
  %2188 = load ptr, ptr %2187, align 8, !tbaa !130
  call void (ptr, ...) @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef @.str.668, ptr noundef %2188)
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #10
  br label %2189

2189:                                             ; preds = %2175
  %2190 = load i32, ptr %116, align 4, !tbaa !131
  %2191 = add nsw i32 %2190, -1
  store i32 %2191, ptr %116, align 4, !tbaa !131
  br label %2171, !llvm.loop !322

2192:                                             ; preds = %2174
  %2193 = load ptr, ptr %3, align 8, !tbaa !5
  %2194 = getelementptr inbounds %struct.ImGuiContext, ptr %2193, i32 0, i32 164
  %2195 = load ptr, ptr %2194, align 8, !tbaa !323
  %2196 = icmp ne ptr %2195, null
  br i1 %2196, label %2197, label %2203

2197:                                             ; preds = %2192
  %2198 = load ptr, ptr %3, align 8, !tbaa !5
  %2199 = getelementptr inbounds %struct.ImGuiContext, ptr %2198, i32 0, i32 164
  %2200 = load ptr, ptr %2199, align 8, !tbaa !323
  %2201 = getelementptr inbounds %struct.ImGuiWindow, ptr %2200, i32 0, i32 1
  %2202 = load ptr, ptr %2201, align 8, !tbaa !130
  br label %2204

2203:                                             ; preds = %2192
  br label %2204

2204:                                             ; preds = %2203, %2197
  %2205 = phi ptr [ %2202, %2197 ], [ @.str.278, %2203 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.669, ptr noundef %2205)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %2206

2206:                                             ; preds = %2204, %1918
  %2207 = load ptr, ptr %5, align 8, !tbaa !5
  %2208 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2207, i32 0, i32 2
  %2209 = load i8, ptr %2208, align 2, !tbaa !128, !range !13, !noundef !14
  %2210 = trunc i8 %2209 to i1
  br i1 %2210, label %2216, label %2211

2211:                                             ; preds = %2206
  %2212 = load ptr, ptr %5, align 8, !tbaa !5
  %2213 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2212, i32 0, i32 3
  %2214 = load i8, ptr %2213, align 1, !tbaa !324, !range !13, !noundef !14
  %2215 = trunc i8 %2214 to i1
  br i1 %2215, label %2216, label %2295

2216:                                             ; preds = %2211, %2206
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #10
  %2217 = load ptr, ptr %3, align 8, !tbaa !5
  %2218 = getelementptr inbounds %struct.ImGuiContext, ptr %2217, i32 0, i32 29
  store ptr %2218, ptr %118, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #10
  %2219 = load ptr, ptr %118, align 8, !tbaa !5
  %2220 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %2219)
  store ptr %2220, ptr %119, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #10
  %2221 = load ptr, ptr %118, align 8, !tbaa !5
  %2222 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %2221)
  store ptr %2222, ptr %120, align 8, !tbaa !5
  br label %2223

2223:                                             ; preds = %2291, %2216
  %2224 = load ptr, ptr %119, align 8, !tbaa !5
  %2225 = load ptr, ptr %120, align 8, !tbaa !5
  %2226 = icmp ne ptr %2224, %2225
  br i1 %2226, label %2228, label %2227

2227:                                             ; preds = %2223
  store i32 92, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #10
  br label %2294

2228:                                             ; preds = %2223
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #10
  %2229 = load ptr, ptr %119, align 8, !tbaa !5
  %2230 = load ptr, ptr %2229, align 8, !tbaa !5
  store ptr %2230, ptr %121, align 8, !tbaa !5
  %2231 = load ptr, ptr %121, align 8, !tbaa !5
  %2232 = getelementptr inbounds %struct.ImGuiWindow, ptr %2231, i32 0, i32 45
  %2233 = load i8, ptr %2232, align 2, !tbaa !325, !range !13, !noundef !14
  %2234 = trunc i8 %2233 to i1
  br i1 %2234, label %2236, label %2235

2235:                                             ; preds = %2228
  store i32 93, ptr %6, align 4
  br label %2288

2236:                                             ; preds = %2228
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #10
  %2237 = load ptr, ptr %121, align 8, !tbaa !5
  %2238 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %2237)
  store ptr %2238, ptr %122, align 8, !tbaa !5
  %2239 = load ptr, ptr %5, align 8, !tbaa !5
  %2240 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2239, i32 0, i32 2
  %2241 = load i8, ptr %2240, align 2, !tbaa !128, !range !13, !noundef !14
  %2242 = trunc i8 %2241 to i1
  br i1 %2242, label %2243, label %2256

2243:                                             ; preds = %2236
  call void @llvm.lifetime.start.p0(i64 16, ptr %123) #10
  %2244 = load ptr, ptr %121, align 8, !tbaa !5
  %2245 = load ptr, ptr %5, align 8, !tbaa !5
  %2246 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2245, i32 0, i32 9
  %2247 = load i32, ptr %2246, align 4, !tbaa !123
  %2248 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %2244, i32 noundef %2247)
  %2249 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %123, i32 0, i32 0
  %2250 = extractvalue { <2 x float>, <2 x float> } %2248, 0
  store <2 x float> %2250, ptr %2249, align 4
  %2251 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %123, i32 0, i32 1
  %2252 = extractvalue { <2 x float>, <2 x float> } %2248, 1
  store <2 x float> %2252, ptr %2251, align 4
  %2253 = load ptr, ptr %122, align 8, !tbaa !5
  %2254 = getelementptr inbounds %struct.ImRect, ptr %123, i32 0, i32 0
  %2255 = getelementptr inbounds %struct.ImRect, ptr %123, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %2253, ptr noundef nonnull align 4 dereferenceable(8) %2254, ptr noundef nonnull align 4 dereferenceable(8) %2255, 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 %123) #10
  br label %2256

2256:                                             ; preds = %2243, %2236
  %2257 = load ptr, ptr %5, align 8, !tbaa !5
  %2258 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2257, i32 0, i32 3
  %2259 = load i8, ptr %2258, align 1, !tbaa !324, !range !13, !noundef !14
  %2260 = trunc i8 %2259 to i1
  br i1 %2260, label %2261, label %2287

2261:                                             ; preds = %2256
  %2262 = load ptr, ptr %121, align 8, !tbaa !5
  %2263 = getelementptr inbounds %struct.ImGuiWindow, ptr %2262, i32 0, i32 3
  %2264 = load i32, ptr %2263, align 4, !tbaa !192
  %2265 = and i32 %2264, 16777216
  %2266 = icmp ne i32 %2265, 0
  br i1 %2266, label %2287, label %2267

2267:                                             ; preds = %2261
  call void @llvm.lifetime.start.p0(i64 32, ptr %124) #10
  %2268 = getelementptr inbounds [32 x i8], ptr %124, i64 0, i64 0
  %2269 = load ptr, ptr %121, align 8, !tbaa !5
  %2270 = getelementptr inbounds %struct.ImGuiWindow, ptr %2269, i32 0, i32 62
  %2271 = load i16, ptr %2270, align 2, !tbaa !326
  %2272 = sext i16 %2271 to i32
  %2273 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2268, i64 noundef 32, ptr noundef @.str.464, i32 noundef %2272)
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #10
  %2274 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  store float %2274, ptr %125, align 4, !tbaa !253
  %2275 = load ptr, ptr %122, align 8, !tbaa !5
  %2276 = load ptr, ptr %121, align 8, !tbaa !5
  %2277 = getelementptr inbounds %struct.ImGuiWindow, ptr %2276, i32 0, i32 11
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #10
  %2278 = load ptr, ptr %121, align 8, !tbaa !5
  %2279 = getelementptr inbounds %struct.ImGuiWindow, ptr %2278, i32 0, i32 11
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #10
  %2280 = load float, ptr %125, align 4, !tbaa !253
  %2281 = load float, ptr %125, align 4, !tbaa !253
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %127, float noundef %2280, float noundef %2281)
  %2282 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2279, ptr noundef nonnull align 4 dereferenceable(8) %127)
  store <2 x float> %2282, ptr %126, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(216) %2275, ptr noundef nonnull align 4 dereferenceable(8) %2277, ptr noundef nonnull align 4 dereferenceable(8) %126, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #10
  %2283 = load ptr, ptr %122, align 8, !tbaa !5
  %2284 = load ptr, ptr %121, align 8, !tbaa !5
  %2285 = getelementptr inbounds %struct.ImGuiWindow, ptr %2284, i32 0, i32 11
  %2286 = getelementptr inbounds [32 x i8], ptr %124, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(216) %2283, ptr noundef nonnull align 4 dereferenceable(8) %2285, i32 noundef -1, ptr noundef %2286, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #10
  br label %2287

2287:                                             ; preds = %2267, %2261, %2256
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  store i32 0, ptr %6, align 4
  br label %2288

2288:                                             ; preds = %2287, %2235
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #10
  %2289 = load i32, ptr %6, align 4
  switch i32 %2289, label %2550 [
    i32 0, label %2290
    i32 93, label %2291
  ]

2290:                                             ; preds = %2288
  br label %2291

2291:                                             ; preds = %2290, %2288
  %2292 = load ptr, ptr %119, align 8, !tbaa !5
  %2293 = getelementptr inbounds ptr, ptr %2292, i32 1
  store ptr %2293, ptr %119, align 8, !tbaa !5
  br label %2223

2294:                                             ; preds = %2227
  br label %2295

2295:                                             ; preds = %2294, %2211
  %2296 = load ptr, ptr %5, align 8, !tbaa !5
  %2297 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2296, i32 0, i32 4
  %2298 = load i8, ptr %2297, align 4, !tbaa !138, !range !13, !noundef !14
  %2299 = trunc i8 %2298 to i1
  br i1 %2299, label %2300, label %2399

2300:                                             ; preds = %2295
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #10
  store i32 0, ptr %128, align 4, !tbaa !131
  br label %2301

2301:                                             ; preds = %2395, %2300
  %2302 = load i32, ptr %128, align 4, !tbaa !131
  %2303 = load ptr, ptr %3, align 8, !tbaa !5
  %2304 = getelementptr inbounds %struct.ImGuiContext, ptr %2303, i32 0, i32 199
  %2305 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %2304)
  %2306 = icmp slt i32 %2302, %2305
  br i1 %2306, label %2308, label %2307

2307:                                             ; preds = %2301
  store i32 94, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #10
  br label %2398

2308:                                             ; preds = %2301
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #10
  %2309 = load ptr, ptr %3, align 8, !tbaa !5
  %2310 = getelementptr inbounds %struct.ImGuiContext, ptr %2309, i32 0, i32 199
  %2311 = load i32, ptr %128, align 4, !tbaa !131
  %2312 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %2310, i32 noundef %2311)
  store ptr %2312, ptr %129, align 8, !tbaa !5
  %2313 = load ptr, ptr %129, align 8, !tbaa !5
  %2314 = icmp eq ptr %2313, null
  br i1 %2314, label %2324, label %2315

2315:                                             ; preds = %2308
  %2316 = load ptr, ptr %129, align 8, !tbaa !5
  %2317 = getelementptr inbounds %struct.ImGuiTable, ptr %2316, i32 0, i32 12
  %2318 = load i32, ptr %2317, align 8, !tbaa !139
  %2319 = load ptr, ptr %3, align 8, !tbaa !5
  %2320 = getelementptr inbounds %struct.ImGuiContext, ptr %2319, i32 0, i32 14
  %2321 = load i32, ptr %2320, align 8, !tbaa !150
  %2322 = sub nsw i32 %2321, 1
  %2323 = icmp slt i32 %2318, %2322
  br i1 %2323, label %2324, label %2325

2324:                                             ; preds = %2315, %2308
  store i32 96, ptr %6, align 4
  br label %2392

2325:                                             ; preds = %2315
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #10
  %2326 = load ptr, ptr %129, align 8, !tbaa !5
  %2327 = getelementptr inbounds %struct.ImGuiTable, ptr %2326, i32 0, i32 55
  %2328 = load ptr, ptr %2327, align 8, !tbaa !151
  %2329 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %2328)
  store ptr %2329, ptr %130, align 8, !tbaa !5
  %2330 = load ptr, ptr %5, align 8, !tbaa !5
  %2331 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2330, i32 0, i32 10
  %2332 = load i32, ptr %2331, align 4, !tbaa !124
  %2333 = icmp sge i32 %2332, 6
  br i1 %2333, label %2334, label %2378

2334:                                             ; preds = %2325
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #10
  store i32 0, ptr %131, align 4, !tbaa !131
  br label %2335

2335:                                             ; preds = %2374, %2334
  %2336 = load i32, ptr %131, align 4, !tbaa !131
  %2337 = load ptr, ptr %129, align 8, !tbaa !5
  %2338 = getelementptr inbounds %struct.ImGuiTable, ptr %2337, i32 0, i32 13
  %2339 = load i32, ptr %2338, align 4, !tbaa !154
  %2340 = icmp slt i32 %2336, %2339
  br i1 %2340, label %2342, label %2341

2341:                                             ; preds = %2335
  store i32 97, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  br label %2377

2342:                                             ; preds = %2335
  call void @llvm.lifetime.start.p0(i64 16, ptr %132) #10
  %2343 = load ptr, ptr %129, align 8, !tbaa !5
  %2344 = load ptr, ptr %5, align 8, !tbaa !5
  %2345 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2344, i32 0, i32 10
  %2346 = load i32, ptr %2345, align 4, !tbaa !124
  %2347 = load i32, ptr %131, align 4, !tbaa !131
  %2348 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %2343, i32 noundef %2346, i32 noundef %2347)
  %2349 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %132, i32 0, i32 0
  %2350 = extractvalue { <2 x float>, <2 x float> } %2348, 0
  store <2 x float> %2350, ptr %2349, align 4
  %2351 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %132, i32 0, i32 1
  %2352 = extractvalue { <2 x float>, <2 x float> } %2348, 1
  store <2 x float> %2352, ptr %2351, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #10
  %2353 = load ptr, ptr %129, align 8, !tbaa !5
  %2354 = getelementptr inbounds %struct.ImGuiTable, ptr %2353, i32 0, i32 70
  %2355 = load i16, ptr %2354, align 2, !tbaa !327
  %2356 = sext i16 %2355 to i32
  %2357 = load i32, ptr %131, align 4, !tbaa !131
  %2358 = icmp eq i32 %2356, %2357
  %2359 = zext i1 %2358 to i64
  %2360 = select i1 %2358, i32 -8323073, i32 -8388353
  store i32 %2360, ptr %133, align 4, !tbaa !131
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #10
  %2361 = load ptr, ptr %129, align 8, !tbaa !5
  %2362 = getelementptr inbounds %struct.ImGuiTable, ptr %2361, i32 0, i32 70
  %2363 = load i16, ptr %2362, align 2, !tbaa !327
  %2364 = sext i16 %2363 to i32
  %2365 = load i32, ptr %131, align 4, !tbaa !131
  %2366 = icmp eq i32 %2364, %2365
  %2367 = zext i1 %2366 to i64
  %2368 = select i1 %2366, float 3.000000e+00, float 1.000000e+00
  store float %2368, ptr %134, align 4, !tbaa !253
  %2369 = load ptr, ptr %130, align 8, !tbaa !5
  %2370 = getelementptr inbounds %struct.ImRect, ptr %132, i32 0, i32 0
  %2371 = getelementptr inbounds %struct.ImRect, ptr %132, i32 0, i32 1
  %2372 = load i32, ptr %133, align 4, !tbaa !131
  %2373 = load float, ptr %134, align 4, !tbaa !253
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %2369, ptr noundef nonnull align 4 dereferenceable(8) %2370, ptr noundef nonnull align 4 dereferenceable(8) %2371, i32 noundef %2372, float noundef 0.000000e+00, i32 noundef 0, float noundef %2373)
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %132) #10
  br label %2374

2374:                                             ; preds = %2342
  %2375 = load i32, ptr %131, align 4, !tbaa !131
  %2376 = add nsw i32 %2375, 1
  store i32 %2376, ptr %131, align 4, !tbaa !131
  br label %2335, !llvm.loop !328

2377:                                             ; preds = %2341
  br label %2391

2378:                                             ; preds = %2325
  call void @llvm.lifetime.start.p0(i64 16, ptr %135) #10
  %2379 = load ptr, ptr %129, align 8, !tbaa !5
  %2380 = load ptr, ptr %5, align 8, !tbaa !5
  %2381 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2380, i32 0, i32 10
  %2382 = load i32, ptr %2381, align 4, !tbaa !124
  %2383 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %2379, i32 noundef %2382, i32 noundef -1)
  %2384 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %135, i32 0, i32 0
  %2385 = extractvalue { <2 x float>, <2 x float> } %2383, 0
  store <2 x float> %2385, ptr %2384, align 4
  %2386 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %135, i32 0, i32 1
  %2387 = extractvalue { <2 x float>, <2 x float> } %2383, 1
  store <2 x float> %2387, ptr %2386, align 4
  %2388 = load ptr, ptr %130, align 8, !tbaa !5
  %2389 = getelementptr inbounds %struct.ImRect, ptr %135, i32 0, i32 0
  %2390 = getelementptr inbounds %struct.ImRect, ptr %135, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %2388, ptr noundef nonnull align 4 dereferenceable(8) %2389, ptr noundef nonnull align 4 dereferenceable(8) %2390, 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 %135) #10
  br label %2391

2391:                                             ; preds = %2378, %2377
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #10
  store i32 0, ptr %6, align 4
  br label %2392

2392:                                             ; preds = %2391, %2324
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #10
  %2393 = load i32, ptr %6, align 4
  switch i32 %2393, label %2550 [
    i32 0, label %2394
    i32 96, label %2395
  ]

2394:                                             ; preds = %2392
  br label %2395

2395:                                             ; preds = %2394, %2392
  %2396 = load i32, ptr %128, align 4, !tbaa !131
  %2397 = add nsw i32 %2396, 1
  store i32 %2397, ptr %128, align 4, !tbaa !131
  br label %2301, !llvm.loop !329

2398:                                             ; preds = %2307
  br label %2399

2399:                                             ; preds = %2398, %2295
  %2400 = load ptr, ptr %5, align 8, !tbaa !5
  %2401 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %2400, i32 0, i32 8
  %2402 = load i8, ptr %2401, align 4, !tbaa !330, !range !13, !noundef !14
  %2403 = trunc i8 %2402 to i1
  br i1 %2403, label %2404, label %2541

2404:                                             ; preds = %2399
  %2405 = load ptr, ptr %3, align 8, !tbaa !5
  %2406 = getelementptr inbounds %struct.ImGuiContext, ptr %2405, i32 0, i32 2
  %2407 = getelementptr inbounds %struct.ImGuiIO, ptr %2406, i32 0, i32 80
  %2408 = load i8, ptr %2407, align 8, !tbaa !331, !range !13, !noundef !14
  %2409 = trunc i8 %2408 to i1
  br i1 %2409, label %2410, label %2541

2410:                                             ; preds = %2404
  %2411 = load ptr, ptr %3, align 8, !tbaa !5
  %2412 = getelementptr inbounds %struct.ImGuiContext, ptr %2411, i32 0, i32 305
  %2413 = load ptr, ptr %2412, align 8, !tbaa !284
  %2414 = icmp ne ptr %2413, null
  br i1 %2414, label %2415, label %2541

2415:                                             ; preds = %2410
  call void @llvm.lifetime.start.p0(i64 64, ptr %136) #10
  call void @llvm.memset.p0.i64(ptr align 16 %136, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #10
  %2416 = getelementptr inbounds [64 x i8], ptr %136, i64 0, i64 0
  store ptr %2416, ptr %137, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #10
  %2417 = load ptr, ptr %3, align 8, !tbaa !5
  %2418 = getelementptr inbounds %struct.ImGuiContext, ptr %2417, i32 0, i32 305
  %2419 = load ptr, ptr %2418, align 8, !tbaa !284
  store ptr %2419, ptr %138, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #10
  %2420 = load ptr, ptr %138, align 8, !tbaa !5
  %2421 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2420, i32 0, i32 16
  %2422 = load ptr, ptr %2421, align 8, !tbaa !332
  %2423 = icmp ne ptr %2422, null
  br i1 %2423, label %2424, label %2429

2424:                                             ; preds = %2415
  %2425 = load ptr, ptr %138, align 8, !tbaa !5
  %2426 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2425, i32 0, i32 16
  %2427 = load ptr, ptr %2426, align 8, !tbaa !332
  %2428 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %2427)
  br label %2432

2429:                                             ; preds = %2415
  %2430 = call noundef ptr @_ZN5ImGui15GetMainViewportEv()
  %2431 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef %2430)
  br label %2432

2432:                                             ; preds = %2429, %2424
  %2433 = phi ptr [ %2428, %2424 ], [ %2431, %2429 ]
  store ptr %2433, ptr %139, align 8, !tbaa !5
  %2434 = load ptr, ptr %137, align 8, !tbaa !5
  %2435 = getelementptr inbounds [64 x i8], ptr %136, i64 0, i64 0
  %2436 = getelementptr inbounds i8, ptr %2435, i64 64
  %2437 = load ptr, ptr %137, align 8, !tbaa !5
  %2438 = ptrtoint ptr %2436 to i64
  %2439 = ptrtoint ptr %2437 to i64
  %2440 = sub i64 %2438, %2439
  %2441 = load ptr, ptr %138, align 8, !tbaa !5
  %2442 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2441, i32 0, i32 0
  %2443 = load i32, ptr %2442, align 8, !tbaa !285
  %2444 = load ptr, ptr %138, align 8, !tbaa !5
  %2445 = call noundef zeroext i1 @_ZNK13ImGuiDockNode13IsCentralNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %2444)
  %2446 = zext i1 %2445 to i64
  %2447 = select i1 %2445, ptr @.str.671, ptr @.str.14
  %2448 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2434, i64 noundef %2440, ptr noundef @.str.670, i32 noundef %2443, ptr noundef %2447)
  %2449 = load ptr, ptr %137, align 8, !tbaa !5
  %2450 = sext i32 %2448 to i64
  %2451 = getelementptr inbounds i8, ptr %2449, i64 %2450
  store ptr %2451, ptr %137, align 8, !tbaa !5
  %2452 = load ptr, ptr %137, align 8, !tbaa !5
  %2453 = getelementptr inbounds [64 x i8], ptr %136, i64 0, i64 0
  %2454 = getelementptr inbounds i8, ptr %2453, i64 64
  %2455 = load ptr, ptr %137, align 8, !tbaa !5
  %2456 = ptrtoint ptr %2454 to i64
  %2457 = ptrtoint ptr %2455 to i64
  %2458 = sub i64 %2456, %2457
  %2459 = load ptr, ptr %138, align 8, !tbaa !5
  %2460 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2459, i32 0, i32 14
  %2461 = getelementptr inbounds %struct.ImGuiWindowClass, ptr %2460, i32 0, i32 0
  %2462 = load i32, ptr %2461, align 4, !tbaa !333
  %2463 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2452, i64 noundef %2458, ptr noundef @.str.672, i32 noundef %2462)
  %2464 = load ptr, ptr %137, align 8, !tbaa !5
  %2465 = sext i32 %2463 to i64
  %2466 = getelementptr inbounds i8, ptr %2464, i64 %2465
  store ptr %2466, ptr %137, align 8, !tbaa !5
  %2467 = load ptr, ptr %137, align 8, !tbaa !5
  %2468 = getelementptr inbounds [64 x i8], ptr %136, i64 0, i64 0
  %2469 = getelementptr inbounds i8, ptr %2468, i64 64
  %2470 = load ptr, ptr %137, align 8, !tbaa !5
  %2471 = ptrtoint ptr %2469 to i64
  %2472 = ptrtoint ptr %2470 to i64
  %2473 = sub i64 %2471, %2472
  %2474 = load ptr, ptr %138, align 8, !tbaa !5
  %2475 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2474, i32 0, i32 11
  %2476 = getelementptr inbounds %struct.ImVec2, ptr %2475, i32 0, i32 0
  %2477 = load float, ptr %2476, align 8, !tbaa !334
  %2478 = fpext float %2477 to double
  %2479 = load ptr, ptr %138, align 8, !tbaa !5
  %2480 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2479, i32 0, i32 11
  %2481 = getelementptr inbounds %struct.ImVec2, ptr %2480, i32 0, i32 1
  %2482 = load float, ptr %2481, align 4, !tbaa !335
  %2483 = fpext float %2482 to double
  %2484 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2467, i64 noundef %2473, ptr noundef @.str.673, double noundef %2478, double noundef %2483)
  %2485 = load ptr, ptr %137, align 8, !tbaa !5
  %2486 = sext i32 %2484 to i64
  %2487 = getelementptr inbounds i8, ptr %2485, i64 %2486
  store ptr %2487, ptr %137, align 8, !tbaa !5
  %2488 = load ptr, ptr %137, align 8, !tbaa !5
  %2489 = getelementptr inbounds [64 x i8], ptr %136, i64 0, i64 0
  %2490 = getelementptr inbounds i8, ptr %2489, i64 64
  %2491 = load ptr, ptr %137, align 8, !tbaa !5
  %2492 = ptrtoint ptr %2490 to i64
  %2493 = ptrtoint ptr %2491 to i64
  %2494 = sub i64 %2492, %2493
  %2495 = load ptr, ptr %138, align 8, !tbaa !5
  %2496 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2495, i32 0, i32 12
  %2497 = getelementptr inbounds %struct.ImVec2, ptr %2496, i32 0, i32 0
  %2498 = load float, ptr %2497, align 8, !tbaa !336
  %2499 = fpext float %2498 to double
  %2500 = load ptr, ptr %138, align 8, !tbaa !5
  %2501 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2500, i32 0, i32 12
  %2502 = getelementptr inbounds %struct.ImVec2, ptr %2501, i32 0, i32 1
  %2503 = load float, ptr %2502, align 4, !tbaa !337
  %2504 = fpext float %2503 to double
  %2505 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2488, i64 noundef %2494, ptr noundef @.str.674, double noundef %2499, double noundef %2504)
  %2506 = load ptr, ptr %137, align 8, !tbaa !5
  %2507 = sext i32 %2505 to i64
  %2508 = getelementptr inbounds i8, ptr %2506, i64 %2507
  store ptr %2508, ptr %137, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #10
  %2509 = load ptr, ptr %138, align 8, !tbaa !5
  %2510 = call noundef i32 @_ZN5ImGui16DockNodeGetDepthEPK13ImGuiDockNode(ptr noundef %2509)
  store i32 %2510, ptr %140, align 4, !tbaa !131
  %2511 = load ptr, ptr %139, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #10
  %2512 = load ptr, ptr %138, align 8, !tbaa !5
  %2513 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2512, i32 0, i32 10
  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)
  %2514 = load i32, ptr %140, align 4, !tbaa !131
  %2515 = sitofp i32 %2514 to float
  %2516 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %143, float noundef %2515)
  store <2 x float> %2516, ptr %142, align 4
  %2517 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2513, ptr noundef nonnull align 4 dereferenceable(8) %142)
  store <2 x float> %2517, ptr %141, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #10
  %2518 = load ptr, ptr %138, align 8, !tbaa !5
  %2519 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2518, i32 0, i32 10
  %2520 = load ptr, ptr %138, align 8, !tbaa !5
  %2521 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2520, i32 0, i32 11
  %2522 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2519, ptr noundef nonnull align 4 dereferenceable(8) %2521)
  store <2 x float> %2522, ptr %145, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %147, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %2523 = load i32, ptr %140, align 4, !tbaa !131
  %2524 = sitofp i32 %2523 to float
  %2525 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %147, float noundef %2524)
  store <2 x float> %2525, ptr %146, align 4
  %2526 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %145, ptr noundef nonnull align 4 dereferenceable(8) %146)
  store <2 x float> %2526, ptr %144, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %2511, ptr noundef nonnull align 4 dereferenceable(8) %141, ptr noundef nonnull align 4 dereferenceable(8) %144, 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 %147) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #10
  %2527 = load ptr, ptr %138, align 8, !tbaa !5
  %2528 = getelementptr inbounds %struct.ImGuiDockNode, ptr %2527, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %150, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %2529 = load i32, ptr %140, align 4, !tbaa !131
  %2530 = sitofp i32 %2529 to float
  %2531 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %150, float noundef %2530)
  store <2 x float> %2531, ptr %149, align 4
  %2532 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2528, ptr noundef nonnull align 4 dereferenceable(8) %149)
  store <2 x float> %2532, ptr %148, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #10
  %2533 = load ptr, ptr %139, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #10
  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)
  %2534 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %148, ptr noundef nonnull align 4 dereferenceable(8) %152)
  store <2 x float> %2534, ptr %151, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #10
  %2535 = getelementptr inbounds [64 x i8], ptr %136, i64 0, i64 0
  %2536 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %2535, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %2536, ptr %155, align 4
  %2537 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %148, ptr noundef nonnull align 4 dereferenceable(8) %155)
  store <2 x float> %2537, ptr %154, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %156, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %2538 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %154, ptr noundef nonnull align 4 dereferenceable(8) %156)
  store <2 x float> %2538, ptr %153, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(216) %2533, ptr noundef nonnull align 4 dereferenceable(8) %151, ptr noundef nonnull align 4 dereferenceable(8) %153, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #10
  %2539 = load ptr, ptr %139, align 8, !tbaa !5
  %2540 = getelementptr inbounds [64 x i8], ptr %136, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextEP6ImFontfRK6ImVec2jPKcS6_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(216) %2539, ptr noundef null, float noundef 0.000000e+00, ptr noundef nonnull align 4 dereferenceable(8) %148, i32 noundef -1, ptr noundef %2540, ptr noundef null, float noundef 0.000000e+00, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #10
  call void @llvm.lifetime.end.p0(i64 4, 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.end.p0(i64 64, ptr %136) #10
  br label %2541

2541:                                             ; preds = %2432, %2410, %2404, %2399
  call void @_ZN5ImGui3EndEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #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 %2542

2542:                                             ; preds = %2541, %186
  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
  %2543 = load i32, ptr %6, align 4
  switch i32 %2543, label %2550 [
    i32 0, label %2544
    i32 1, label %2544
  ]

2544:                                             ; preds = %2542, %2542
  ret void

2545:                                             ; preds = %854
  %2546 = load ptr, ptr %54, align 8
  %2547 = load i32, ptr %55, align 4
  %2548 = insertvalue { ptr, i32 } poison, ptr %2546, 0
  %2549 = insertvalue { ptr, i32 } %2548, i32 %2547, 1
  resume { ptr, i32 } %2549

2550:                                             ; preds = %2542, %2392, %2288, %1833, %569
  unreachable
}

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 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

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

declare void @_ZN5ImGui15SetNextItemOpenEbi(i1 noundef zeroext, i32 noundef) #7

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

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

; 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

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

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

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

declare void @_ZN5ImGui25DebugNodeMultiSelectStateEP21ImGuiMultiSelectState(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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #5 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress 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, !12, i64 20, !12, i64 24}
!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 272}
!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, !20, i64 176, !20, i64 180, !12, i64 184, !12, i64 188, !12, i64 192, !12, i64 196, !12, i64 200, !19, i64 204, !19, i64 212, !19, i64 220, !19, i64 228, !19, i64 236, !19, i64 244, !11, i64 252, !11, i64 253, !11, i64 254, !7, i64 255, !11, i64 256, !11, i64 257, !11, i64 258, !11, i64 259, !11, i64 260, !11, i64 261, !11, i64 262, !11, i64 263, !11, i64 264, !11, i64 265, !11, i64 266, !11, i64 267, !11, i64 268, !7, i64 269, !7, i64 270, !21, i64 272, !21, i64 274, !21, i64 276, !21, i64 278, !21, i64 280, !7, i64 282, !7, i64 283, !11, i64 284, !22, i64 288, !7, i64 292, !7, i64 293, !7, i64 294, !7, i64 295, !12, i64 296, !12, i64 297, !12, i64 298, !12, i64 299, !19, i64 300, !19, i64 308, !23, i64 320, !24, i64 336, !29, i64 600, !29, i64 616, !29, i64 632, !29, i64 648, !29, i64 664, !29, i64 680, !29, i64 696, !31, i64 712, !31, i64 716, !12, i64 720, !12, i64 724, !20, i64 728, !20, i64 732, !32, i64 736, !34, i64 752, !20, i64 768, !20, i64 772, !20, i64 776, !20, i64 780, !12, i64 784, !6, i64 792, !35, i64 800, !6, i64 1016, !6, i64 1024, !6, i64 1032, !6, i64 1040, !6, i64 1048, !6, i64 1056, !6, i64 1064, !6, i64 1072, !6, i64 1080, !7, i64 1088, !7, i64 1096, !7, i64 1128, !12, i64 1144, !12, i64 1148, !12, i64 1152, !11, i64 1156, !11, i64 1157, !11, i64 1157, !11, i64 1157, !11, i64 1157, !21, i64 1158, !48, i64 1160, !6, i64 1192, !6, i64 1200, !12, i64 1208}
!18 = !{!"_ZTS16ImGuiWindowClass", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !11, i64 28, !11, i64 29}
!19 = !{!"_ZTS6ImVec2", !20, i64 0, !20, i64 4}
!20 = !{!"float", !7, i64 0}
!21 = !{!"short", !7, i64 0}
!22 = !{!"_ZTS8ImGuiDir", !7, i64 0}
!23 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!24 = !{!"_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, !25, i64 68, !25, i64 72, !25, i64 76, !19, i64 80, !26, i64 88, !21, i64 92, !21, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !19, i64 100, !27, i64 108, !12, i64 136, !12, i64 140, !28, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !12, i64 192, !12, i64 196, !12, i64 200, !29, i64 204, !20, i64 220, !20, i64 224, !30, i64 232, !30, i64 248}
!25 = !{!"_ZTS6ImVec1", !20, i64 0}
!26 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!27 = !{!"_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}
!28 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!29 = !{!"_ZTS6ImRect", !19, i64 0, !19, i64 8}
!30 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!31 = !{!"_ZTS8ImVec2ih", !21, i64 0, !21, i64 2}
!32 = !{!"_ZTS12ImGuiStorage", !33, i64 0}
!33 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !12, i64 0, !12, i64 4, !6, i64 8}
!34 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!35 = !{!"_ZTS10ImDrawList", !36, i64 0, !37, i64 16, !38, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !39, i64 80, !40, i64 96, !43, i64 128, !45, i64 152, !46, i64 168, !47, i64 184, !20, i64 200, !6, i64 208}
!36 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!40 = !{!"_ZTS15ImDrawCmdHeader", !41, i64 0, !42, i64 16, !12, i64 24}
!41 = !{!"_ZTS6ImVec4", !20, i64 0, !20, i64 4, !20, i64 8, !20, i64 12}
!42 = !{!"long long", !7, i64 0}
!43 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !44, i64 8}
!44 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorIyE", !12, i64 0, !12, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!48 = !{!"_ZTS20ImGuiWindowDockStyle", !7, i64 0}
!49 = !{!7, !7, i64 0}
!50 = !{!51, !20, i64 192}
!51 = !{!"_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, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !11, i64 100, !11, i64 101, !11, i64 102, !11, i64 103, !11, i64 104, !20, i64 108, !20, i64 112, !20, i64 116, !20, i64 120, !20, i64 124, !20, i64 128, !11, i64 132, !11, i64 133, !11, i64 134, !11, i64 135, !11, i64 136, !11, i64 137, !11, i64 138, !11, i64 139, !11, i64 140, !11, i64 141, !11, i64 142, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !11, i64 184, !11, i64 185, !11, i64 186, !11, i64 187, !11, i64 188, !11, i64 189, !11, i64 190, !20, i64 192, !12, i64 196, !12, i64 200, !12, i64 204, !12, i64 208, !19, i64 212, !6, i64 224, !19, i64 232, !7, i64 240, !20, i64 248, !20, i64 252, !52, i64 256, !12, i64 260, !11, i64 264, !11, i64 265, !11, i64 266, !11, i64 267, !12, i64 268, !7, i64 272, !11, i64 2752, !19, i64 2756, !7, i64 2764, !7, i64 2808, !7, i64 2848, !7, i64 2853, !7, i64 2858, !7, i64 2868, !7, i64 2878, !7, i64 2888, !7, i64 2928, !7, i64 2933, !11, i64 2938, !11, i64 2939, !7, i64 2940, !7, i64 2960, !7, i64 2980, !7, i64 3020, !20, i64 3040, !11, i64 3044, !11, i64 3045, !21, i64 3046, !37, i64 3048, !6, i64 3064, !6, i64 3072, !6, i64 3080}
!52 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!53 = !{!51, !12, i64 196}
!54 = !{!51, !12, i64 200}
!55 = !{!51, !12, i64 204}
!56 = !{!57, !12, i64 10736}
!57 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !51, i64 8, !58, i64 3096, !61, i64 3392, !12, i64 4596, !12, i64 4600, !6, i64 4608, !20, i64 4616, !20, i64 4620, !20, i64 4624, !20, i64 4628, !62, i64 4632, !63, i64 5168, !12, i64 5176, !12, i64 5180, !12, i64 5184, !12, i64 5188, !12, i64 5192, !11, i64 5196, !11, i64 5197, !11, i64 5198, !11, i64 5199, !6, i64 5200, !7, i64 5208, !64, i64 5224, !64, i64 5240, !52, i64 5256, !12, i64 5260, !28, i64 5264, !28, i64 5280, !28, i64 5296, !65, i64 5312, !32, i64 5328, !12, i64 5344, !20, i64 5348, !12, i64 5352, !6, i64 5360, !6, i64 5368, !6, i64 5376, !6, i64 5384, !6, i64 5392, !6, i64 5400, !19, i64 5408, !12, i64 5416, !12, i64 5420, !20, i64 5424, !19, i64 5428, !19, i64 5436, !12, i64 5444, !12, i64 5448, !12, i64 5452, !12, i64 5456, !12, i64 5460, !20, i64 5464, !20, i64 5468, !11, i64 5472, !11, i64 5473, !11, i64 5474, !12, i64 5476, !12, i64 5480, !20, i64 5484, !11, i64 5488, !11, i64 5489, !11, i64 5490, !11, i64 5491, !11, i64 5492, !11, i64 5493, !11, i64 5494, !12, i64 5495, !19, i64 5496, !6, i64 5504, !66, i64 5512, !12, i64 5516, !67, i64 5520, !68, i64 5532, !12, i64 5540, !20, i64 5544, !63, i64 5552, !63, i64 5560, !63, i64 5568, !69, i64 5576, !7, i64 5596, !70, i64 7456, !12, i64 7800, !11, i64 7804, !12, i64 7808, !12, i64 7812, !12, i64 7816, !12, i64 7820, !72, i64 7824, !73, i64 7880, !74, i64 7960, !11, i64 8120, !12, i64 8124, !75, i64 8128, !76, i64 8144, !77, i64 8160, !78, i64 8176, !79, i64 8192, !80, i64 8208, !81, i64 8224, !81, i64 8240, !82, i64 8256, !83, i64 8272, !6, i64 8288, !6, i64 8296, !6, i64 8304, !12, i64 8312, !84, i64 8320, !29, i64 8368, !12, i64 8384, !12, i64 8388, !12, i64 8392, !11, i64 8396, !11, i64 8397, !11, i64 8398, !11, i64 8399, !12, i64 8400, !6, i64 8408, !12, i64 8416, !26, i64 8420, !12, i64 8424, !12, i64 8428, !12, i64 8432, !12, i64 8436, !78, i64 8440, !12, i64 8456, !20, i64 8460, !12, i64 8464, !12, i64 8468, !66, i64 8472, !42, i64 8480, !7, i64 8488, !11, i64 8489, !11, i64 8490, !11, i64 8491, !85, i64 8496, !11, i64 8552, !11, i64 8553, !11, i64 8554, !12, i64 8556, !12, i64 8560, !12, i64 8564, !22, i64 8568, !22, i64 8572, !22, i64 8576, !29, i64 8580, !29, i64 8596, !12, i64 8612, !12, i64 8616, !12, i64 8620, !85, i64 8624, !85, i64 8680, !85, i64 8736, !85, i64 8792, !12, i64 8848, !12, i64 8852, !12, i64 8856, !12, i64 8860, !11, i64 8864, !11, i64 8865, !12, i64 8868, !12, i64 8872, !6, i64 8880, !6, i64 8888, !6, i64 8896, !20, i64 8904, !20, i64 8908, !11, i64 8912, !86, i64 8916, !19, i64 8920, !19, i64 8928, !20, i64 8936, !11, i64 8940, !11, i64 8941, !11, i64 8942, !12, i64 8944, !12, i64 8948, !12, i64 8952, !87, i64 8960, !29, i64 9024, !29, i64 9040, !12, i64 9056, !12, i64 9060, !20, i64 9064, !12, i64 9068, !12, i64 9072, !12, i64 9076, !12, i64 9080, !47, i64 9088, !7, i64 9104, !12, i64 9120, !88, i64 9128, !6, i64 9144, !12, i64 9152, !12, i64 9156, !89, i64 9160, !90, i64 9176, !30, i64 9216, !44, i64 9232, !6, i64 9248, !92, i64 9256, !94, i64 9296, !95, i64 9312, !96, i64 9328, !6, i64 9432, !12, i64 9440, !97, i64 9448, !98, i64 9464, !12, i64 9504, !12, i64 9508, !20, i64 9512, !20, i64 9516, !12, i64 9520, !12, i64 9524, !12, i64 9528, !20, i64 9532, !19, i64 9536, !100, i64 9544, !102, i64 9664, !103, i64 9688, !12, i64 9808, !68, i64 9812, !12, i64 9820, !12, i64 9824, !12, i64 9828, !12, i64 9832, !12, i64 9836, !20, i64 9840, !20, i64 9844, !12, i64 9848, !41, i64 9852, !105, i64 9868, !29, i64 9916, !11, i64 9932, !21, i64 9934, !20, i64 9936, !20, i64 9940, !20, i64 9944, !11, i64 9948, !11, i64 9949, !20, i64 9952, !20, i64 9956, !20, i64 9960, !21, i64 9964, !21, i64 9966, !6, i64 9968, !101, i64 9976, !23, i64 9992, !106, i64 10008, !108, i64 10112, !108, i64 10128, !12, i64 10144, !109, i64 10152, !6, i64 10208, !11, i64 10216, !20, i64 10220, !112, i64 10224, !113, i64 10240, !114, i64 10256, !115, i64 10272, !116, i64 10288, !12, i64 10304, !7, i64 10312, !11, i64 10416, !12, i64 10420, !6, i64 10424, !6, i64 10432, !112, i64 10440, !6, i64 10456, !6, i64 10464, !20, i64 10472, !11, i64 10476, !12, i64 10480, !12, i64 10484, !12, i64 10488, !6, i64 10496, !6, i64 10504, !19, i64 10512, !11, i64 10520, !12, i64 10524, !117, i64 10528, !6, i64 10552, !12, i64 10560, !12, i64 10564, !112, i64 10568, !118, i64 10584, !12, i64 10608, !12, i64 10612, !7, i64 10616, !7, i64 10617, !11, i64 10618, !12, i64 10620, !7, i64 10624, !11, i64 10625, !7, i64 10626, !12, i64 10628, !20, i64 10632, !41, i64 10636, !10, i64 10652, !119, i64 10680, !121, i64 10736, !6, i64 10800, !7, i64 10808, !12, i64 11048, !12, i64 11052, !20, i64 11056, !12, i64 11060, !12, i64 11064, !12, i64 11068, !101, i64 11072, !7, i64 11088}
!58 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !21, 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, !6, i64 184, !6, i64 192, !6, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !59, i64 264, !60, i64 280}
!59 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !12, i64 0, !12, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS10ImGuiStyle", !20, i64 0, !20, i64 4, !19, i64 8, !20, i64 16, !20, i64 20, !20, i64 24, !19, i64 28, !19, i64 36, !22, i64 44, !20, i64 48, !20, i64 52, !20, i64 56, !20, i64 60, !19, i64 64, !20, i64 72, !20, i64 76, !19, i64 80, !19, i64 88, !19, i64 96, !19, i64 104, !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, !20, i64 156, !20, i64 160, !20, i64 164, !20, i64 168, !19, i64 172, !22, i64 180, !19, i64 184, !19, i64 192, !20, i64 200, !19, i64 204, !19, i64 212, !19, i64 220, !19, i64 228, !20, i64 236, !20, i64 240, !11, i64 244, !11, i64 245, !11, i64 246, !20, i64 248, !20, i64 252, !7, i64 256, !20, i64 1184, !20, i64 1188, !20, i64 1192, !12, i64 1196, !12, i64 1200}
!62 = !{!"_ZTS20ImDrawListSharedData", !19, i64 0, !6, i64 8, !6, i64 16, !20, i64 24, !20, i64 28, !20, i64 32, !20, i64 36, !20, i64 40, !12, i64 44, !41, i64 48, !39, i64 64, !7, i64 80, !20, i64 464, !7, i64 468}
!63 = !{!"double", !7, i64 0}
!64 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!66 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!67 = !{!"_ZTS24ImGuiDeactivatedItemData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!68 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!69 = !{!"_ZTS10ImBitArrayILi155ELin512EE", !7, i64 0}
!70 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !71, i64 312, !71, i64 328}
!71 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !12, i64 8, !42, i64 16, !20, i64 24, !12, i64 28, !12, i64 32, !11, i64 36, !7, i64 37, !68, i64 38, !12, i64 48}
!73 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !29, i64 12, !29, i64 28, !29, i64 44, !29, i64 60, !12, i64 76}
!74 = !{!"_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, !12, i64 64, !11, i64 68, !11, i64 69, !29, i64 72, !6, i64 88, !6, i64 96, !20, i64 104, !12, i64 108, !12, i64 112, !18, i64 116, !19, i64 148, !12, i64 156}
!75 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!80 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!81 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_ZTS20ImGuiPlatformMonitor", !19, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !20, i64 32, !6, i64 40}
!85 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !29, i64 16, !12, i64 32, !20, i64 36, !20, i64 40, !20, i64 44, !42, i64 48}
!86 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!87 = !{!"_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}
!88 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!89 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!90 = !{!"_ZTS6ImPoolI10ImGuiTableE", !91, i64 0, !32, i64 16, !12, i64 32, !12, i64 36}
!91 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!92 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !93, i64 0, !32, i64 16, !12, i64 32, !12, i64 36}
!93 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!94 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!95 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!96 = !{!"_ZTS19ImGuiBoxSelectState", !12, i64 0, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !11, i64 8, !12, i64 9, !19, i64 12, !19, i64 20, !19, i64 28, !6, i64 40, !11, i64 48, !29, i64 52, !29, i64 68, !29, i64 84}
!97 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!98 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !99, i64 0, !32, i64 16, !12, i64 32, !12, i64 36}
!99 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !12, i64 0, !12, i64 4, !6, i64 8}
!100 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !6, i64 32, !101, i64 40, !101, i64 56, !101, i64 72, !12, i64 88, !19, i64 92, !20, i64 100, !11, i64 104, !11, i64 105, !11, i64 106, !11, i64 107, !12, i64 108, !12, i64 112}
!101 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!102 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !101, i64 8}
!103 = !{!"_ZTS6ImFont", !30, i64 0, !20, i64 16, !20, i64 20, !37, i64 24, !104, 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, !20, i64 96, !20, i64 100, !20, i64 104, !12, i64 108, !11, i64 112, !7, i64 113}
!104 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!105 = !{!"_ZTS21ImGuiComboPreviewData", !29, i64 0, !19, i64 16, !19, i64 24, !19, i64 32, !20, i64 40, !12, i64 44}
!106 = !{!"_ZTS22ImGuiTypingSelectState", !107, i64 0, !7, i64 24, !12, i64 88, !12, i64 92, !20, i64 96, !11, i64 100}
!107 = !{!"_ZTS24ImGuiTypingSelectRequest", !12, i64 0, !12, i64 4, !6, i64 8, !11, i64 16, !11, i64 17, !7, i64 18}
!108 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !19, i64 4, !20, i64 12}
!109 = !{!"_ZTS16ImGuiDockContext", !32, i64 0, !110, i64 16, !111, i64 32, !11, i64 48}
!110 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !12, i64 0, !12, i64 4, !6, i64 8}
!111 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !12, i64 0, !12, i64 4, !6, i64 8}
!112 = !{!"_ZTS15ImGuiTextBuffer", !101, i64 0}
!113 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!114 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !101, i64 0}
!115 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !101, i64 0}
!116 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!117 = !{!"_ZTS23ImGuiErrorRecoveryState", !21, i64 0, !21, i64 2, !21, i64 4, !21, i64 6, !21, i64 8, !21, i64 10, !21, i64 12, !21, i64 14, !21, i64 16, !21, i64 18, !21, i64 20}
!118 = !{!"_ZTS14ImGuiTextIndex", !79, i64 0, !12, i64 16}
!119 = !{!"_ZTS16ImGuiIDStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !120, i64 16, !11, i64 32, !20, i64 36, !112, i64 40}
!120 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!121 = !{!"_ZTS19ImGuiDebugAllocInfo", !12, i64 0, !12, i64 4, !21, i64 8, !7, i64 12}
!122 = !{!57, !12, i64 10740}
!123 = !{!10, !12, i64 12}
!124 = !{!10, !12, i64 16}
!125 = !{!19, !20, i64 0}
!126 = !{!57, !20, i64 3604}
!127 = !{!57, !11, i64 10625}
!128 = !{!10, !11, i64 2}
!129 = !{!57, !6, i64 8408}
!130 = !{!17, !6, i64 8}
!131 = !{!12, !12, i64 0}
!132 = !{!29, !20, i64 0}
!133 = !{!29, !20, i64 4}
!134 = !{!29, !20, i64 8}
!135 = !{!29, !20, i64 12}
!136 = distinct !{!136, !137}
!137 = !{!"llvm.loop.mustprogress"}
!138 = !{!10, !11, i64 4}
!139 = !{!140, !12, i64 104}
!140 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !141, i64 24, !142, i64 40, !143, 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, !112, i64 400, !6, i64 416, !144, i64 424, !145, i64 448, !146, i64 464, !148, i64 480, !149, 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, !7, 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, !11, i64 586}
!141 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!142 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!143 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!144 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !20, i64 4, !20, i64 8, !20, i64 12, !12, i64 16, !12, i64 20}
!145 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!146 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !21, i64 4, !21, i64 6, !147, i64 8}
!147 = !{!"_ZTS18ImGuiSortDirection", !7, i64 0}
!148 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!149 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!150 = !{!57, !12, i64 5176}
!151 = !{!140, !6, i64 384}
!152 = !{!140, !6, i64 392}
!153 = !{!140, !12, i64 0}
!154 = !{!140, !12, i64 108}
!155 = distinct !{!155, !137}
!156 = distinct !{!156, !137}
!157 = distinct !{!157, !137}
!158 = !{!10, !11, i64 7}
!159 = !{!57, !12, i64 5264}
!160 = !{!17, !12, i64 720}
!161 = !{!28, !6, i64 8}
!162 = !{!28, !12, i64 0}
!163 = !{!164, !12, i64 192}
!164 = !{!"_ZTS14ImGuiViewportP", !165, i64 0, !6, i64 96, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !19, i64 120, !19, i64 128, !20, i64 136, !20, i64 140, !11, i64 144, !21, i64 146, !7, i64 148, !7, i64 160, !166, i64 176, !168, i64 240, !19, i64 272, !19, i64 280, !19, i64 288, !19, i64 296, !19, i64 304, !19, i64 312, !19, i64 320}
!165 = !{!"_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}
!166 = !{!"_ZTS10ImDrawData", !11, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !167, i64 16, !19, i64 32, !19, i64 40, !19, i64 48, !6, i64 56}
!167 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!168 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0, !167, i64 16}
!169 = !{!11, !11, i64 0}
!170 = !{!164, !12, i64 104}
!171 = !{!165, !12, i64 0}
!172 = !{!57, !12, i64 8272}
!173 = !{!10, !12, i64 20}
!174 = !{!57, !12, i64 3360}
!175 = distinct !{!175, !137}
!176 = !{!10, !12, i64 24}
!177 = !{!57, !6, i64 8296}
!178 = !{!57, !12, i64 268}
!179 = !{!57, !6, i64 8304}
!180 = !{!"branch_weights", i32 1, i32 1048575}
!181 = !{!83, !6, i64 8}
!182 = !{!57, !6, i64 8280}
!183 = !{!83, !12, i64 0}
!184 = !{!164, !12, i64 112}
!185 = !{!57, !6, i64 3232}
!186 = !{!165, !11, i64 88}
!187 = !{!164, !6, i64 96}
!188 = !{!57, !12, i64 8224}
!189 = !{!190, !6, i64 8}
!190 = !{!"_ZTS14ImGuiPopupData", !12, i64 0, !6, i64 8, !6, i64 16, !12, i64 24, !12, i64 28, !12, i64 32, !19, i64 36, !19, i64 44}
!191 = !{!190, !12, i64 0}
!192 = !{!17, !12, i64 20}
!193 = !{!190, !6, i64 16}
!194 = !{!17, !6, i64 1016}
!195 = distinct !{!195, !137}
!196 = distinct !{!196, !137}
!197 = !{!57, !6, i64 56}
!198 = !{!199, !12, i64 80}
!199 = !{!"_ZTS11ImFontAtlas", !12, i64 0, !42, i64 8, !12, i64 16, !12, i64 20, !6, i64 24, !11, i64 32, !11, i64 33, !11, i64 34, !6, i64 40, !6, i64 48, !12, i64 56, !12, i64 60, !19, i64 64, !19, i64 72, !77, i64 80, !200, i64 96, !201, i64 112, !7, i64 128, !6, i64 656, !12, i64 664, !12, i64 668, !12, i64 672}
!200 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!201 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!202 = !{!96, !12, i64 0}
!203 = !{!96, !11, i64 5}
!204 = !{!96, !11, i64 4}
!205 = distinct !{!205, !137}
!206 = !{!109, !11, i64 48}
!207 = !{!109, !12, i64 0}
!208 = distinct !{!208, !137}
!209 = !{!57, !6, i64 32}
!210 = !{!57, !20, i64 10220}
!211 = !{!57, !12, i64 10240}
!212 = !{!213, !6, i64 0}
!213 = !{!"_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}
!214 = distinct !{!214, !137}
!215 = distinct !{!215, !137}
!216 = !{!217, !12, i64 20}
!217 = !{!"_ZTS19ImGuiWindowSettings", !12, i64 0, !31, i64 4, !31, i64 8, !31, 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}
!218 = !{!217, !21, i64 28}
!219 = distinct !{!219, !137}
!220 = !{!109, !12, i64 32}
!221 = !{!222, !12, i64 12}
!222 = !{!"_ZTS21ImGuiDockNodeSettings", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !7, i64 16, !7, i64 17, !12, i64 20, !31, i64 24, !31, i64 28, !31, i64 32}
!223 = !{!222, !12, i64 0}
!224 = !{!222, !12, i64 4}
!225 = distinct !{!225, !137}
!226 = !{!57, !12, i64 10224}
!227 = !{!121, !12, i64 0}
!228 = !{!121, !12, i64 4}
!229 = !{!57, !11, i64 5198}
!230 = !{!121, !21, i64 8}
!231 = !{!232, !12, i64 0}
!232 = !{!"_ZTS20ImGuiDebugAllocEntry", !12, i64 0, !21, i64 4, !21, i64 6}
!233 = !{!232, !21, i64 4}
!234 = !{!232, !21, i64 6}
!235 = distinct !{!235, !137}
!236 = !{!86, !86, i64 0}
!237 = !{!238, !20, i64 4}
!238 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !20, i64 4, !20, i64 8, !20, i64 12}
!239 = distinct !{!239, !137}
!240 = distinct !{!240, !137}
!241 = distinct !{!241, !137}
!242 = !{!51, !11, i64 264}
!243 = !{!51, !11, i64 265}
!244 = !{!51, !11, i64 266}
!245 = !{!51, !11, i64 267}
!246 = !{!51, !12, i64 3048}
!247 = !{!21, !21, i64 0}
!248 = distinct !{!248, !137}
!249 = !{!51, !20, i64 232}
!250 = !{!51, !20, i64 236}
!251 = !{!51, !20, i64 212}
!252 = !{!51, !20, i64 216}
!253 = !{!20, !20, i64 0}
!254 = distinct !{!254, !137}
!255 = distinct !{!255, !137}
!256 = distinct !{!256, !137}
!257 = !{!51, !20, i64 248}
!258 = !{!57, !20, i64 9532}
!259 = !{!51, !52, i64 256}
!260 = !{!51, !20, i64 3040}
!261 = !{!57, !6, i64 5400}
!262 = !{!57, !20, i64 5424}
!263 = !{!57, !20, i64 5436}
!264 = !{!57, !20, i64 5440}
!265 = !{!266, !12, i64 0}
!266 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!267 = !{!266, !11, i64 9}
!268 = !{!266, !11, i64 8}
!269 = distinct !{!269, !137}
!270 = !{!271, !21, i64 2}
!271 = !{!"_ZTS19ImGuiKeyRoutingData", !21, i64 0, !21, i64 2, !7, i64 4, !7, i64 5, !12, i64 8, !12, i64 12}
!272 = !{!271, !12, i64 8}
!273 = !{!271, !7, i64 4}
!274 = !{!57, !11, i64 144}
!275 = !{!57, !12, i64 7808}
!276 = !{!271, !21, i64 0}
!277 = distinct !{!277, !137}
!278 = distinct !{!278, !137}
!279 = !{!57, !11, i64 7804}
!280 = !{!57, !12, i64 7800}
!281 = !{!57, !6, i64 5368}
!282 = !{!17, !6, i64 1048}
!283 = !{!57, !6, i64 5376}
!284 = !{!57, !6, i64 10800}
!285 = !{!286, !12, i64 0}
!286 = !{!"_ZTS13ImGuiDockNode", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !287, i64 20, !6, i64 24, !7, i64 32, !28, i64 48, !6, i64 64, !19, i64 72, !19, i64 80, !19, i64 88, !288, i64 96, !18, i64 100, !12, i64 132, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !12, i64 168, !12, i64 172, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !12, i64 192, !12, i64 196, !12, i64 200, !12, i64 200, !12, i64 200, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 202, !11, i64 202, !11, i64 202, !11, i64 202}
!287 = !{!"_ZTS18ImGuiDockNodeState", !7, i64 0}
!288 = !{!"_ZTS9ImGuiAxis", !7, i64 0}
!289 = !{!57, !6, i64 5392}
!290 = !{!57, !12, i64 5476}
!291 = !{!57, !12, i64 5516}
!292 = !{!57, !20, i64 5484}
!293 = !{!57, !11, i64 5489}
!294 = !{!57, !66, i64 5512}
!295 = !{!57, !6, i64 5504}
!296 = !{!57, !12, i64 5456}
!297 = !{!57, !20, i64 5464}
!298 = !{!57, !11, i64 5472}
!299 = !{!57, !12, i64 9504}
!300 = !{!57, !20, i64 9512}
!301 = !{!57, !20, i64 9516}
!302 = !{!57, !11, i64 8940}
!303 = !{!57, !12, i64 8972}
!304 = !{!57, !12, i64 8968}
!305 = !{!57, !12, i64 8400}
!306 = !{!57, !26, i64 8420}
!307 = !{!57, !66, i64 8472}
!308 = !{!57, !42, i64 8480}
!309 = !{!57, !11, i64 197}
!310 = !{!57, !11, i64 198}
!311 = !{!57, !12, i64 8424}
!312 = !{!57, !12, i64 8428}
!313 = !{!57, !12, i64 8432}
!314 = !{!57, !12, i64 8436}
!315 = !{!57, !11, i64 8396}
!316 = !{!57, !11, i64 8397}
!317 = !{!57, !12, i64 8416}
!318 = !{!57, !12, i64 8440}
!319 = !{!320, !12, i64 0}
!320 = !{!"_ZTS19ImGuiFocusScopeData", !12, i64 0, !12, i64 4}
!321 = !{!320, !12, i64 4}
!322 = distinct !{!322, !137}
!323 = !{!57, !6, i64 8880}
!324 = !{!10, !11, i64 3}
!325 = !{!17, !11, i64 258}
!326 = !{!17, !21, i64 278}
!327 = !{!140, !21, i64 522}
!328 = distinct !{!328, !137}
!329 = distinct !{!329, !137}
!330 = !{!10, !11, i64 8}
!331 = !{!57, !11, i64 272}
!332 = !{!286, !6, i64 136}
!333 = !{!286, !12, i64 100}
!334 = !{!286, !20, i64 80}
!335 = !{!286, !20, i64 84}
!336 = !{!286, !20, i64 88}
!337 = !{!286, !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.14 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.476 = 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.494 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [64 x i8], align 16
@.str.520 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.529 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.530 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.531 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.532 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.533 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.535 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.536 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.537 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.538 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.539 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.540 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.541 = 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.542 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.543 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.544 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.545 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.546 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.547 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.548 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.549 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.550 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.551 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.552 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.553 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.554 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.555 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.556 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.557 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.558 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.560 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.561 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.562 = external hidden unnamed_addr constant [46 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only = external hidden global i8, align 1
@.str.563 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.564 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.565 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.566 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.567 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.568 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.569 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.570 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.571 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.572 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.573 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.574 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.575 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.576 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.577 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.578 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.579 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.580 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.581 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.582 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.583 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.584 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.585 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.586 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.587 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.588 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.589 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.590 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.591 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.592 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.593 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.594 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.595 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.596 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.597 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.598 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.599 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.600 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.601 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.602 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.603 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.604 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.605 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.606 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.607 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.608 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.609 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.610 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.611 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.613 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.614 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.615 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.616 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.617 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.618 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.619 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.620 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.621 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.622 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.623 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.624 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.625 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.626 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.627 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.628 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.629 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.630 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.631 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.632 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.633 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.634 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.635 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.636 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.637 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.638 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.639 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.640 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.641 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.642 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.643 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.644 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.645 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.646 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.647 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.648 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.649 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.650 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.651 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.652 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.653 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.654 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.655 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.656 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.657 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.658 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.659 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.660 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.661 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.662 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.663 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.664 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.665 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.666 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.667 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.668 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.669 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.670 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.671 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.672 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.673 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.674 = 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 @_ZN8ImVectorI16ImGuiStoragePairEixEi(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 @_ZN10ImDrawList7AddTextEP6ImFontfRK6ImVec2jPKcS6_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(216), 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(216), 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(216), 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: 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: 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 @_ZN5ImGui15GetKeyChordNameEi(i32 noundef) local_unnamed_addr #9

; 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 nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef) local_unnamed_addr #1

; 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: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef) local_unnamed_addr #9

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

; 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

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

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

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

declare void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #7

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

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

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

declare void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef) local_unnamed_addr #7

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef 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 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

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

declare void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(216), 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

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

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

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

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

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

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

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

67:                                               ; preds = %61
  tail call void @_ZN5ImGui19DebugBreakClearDataEv()
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.472, ptr noundef nonnull @.str.111, i32 noundef 19190)
  %68 = getelementptr inbounds i8, ptr %49, i64 5208
  %69 = load i8, ptr %68, align 8, !tbaa !49
  %.not = icmp eq i8 %69, 0
  br i1 %.not, label %71, label %70

70:                                               ; preds = %67
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.473, ptr noundef nonnull %68)
  br label %71

71:                                               ; preds = %70, %67
  %72 = getelementptr inbounds i8, ptr %49, i64 200
  %73 = load float, ptr %72, align 8, !tbaa !50
  %74 = fdiv float 1.000000e+03, %73
  %75 = fpext float %74 to double
  %76 = fpext float %73 to double
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.474, double noundef %75, double noundef %76)
  %77 = getelementptr inbounds i8, ptr %49, i64 204
  %78 = load i32, ptr %77, align 4, !tbaa !53
  %79 = getelementptr inbounds i8, ptr %49, i64 208
  %80 = load i32, ptr %79, align 8, !tbaa !54
  %81 = sdiv i32 %80, 3
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.475, i32 noundef %78, i32 noundef %80, i32 noundef %81)
  %82 = getelementptr inbounds i8, ptr %49, i64 212
  %83 = load i32, ptr %82, align 4, !tbaa !55
  %84 = getelementptr inbounds i8, ptr %49, i64 10736
  %85 = load i32, ptr %84, align 8, !tbaa !56
  %86 = getelementptr inbounds i8, ptr %49, i64 10740
  %87 = load i32, ptr %86, align 4, !tbaa !122
  %88 = sub nsw i32 %85, %87
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.476, i32 noundef %83, i32 noundef %88)
  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)
  %89 = getelementptr inbounds i8, ptr %49, i64 10664
  %90 = load i32, ptr %89, align 4, !tbaa !123
  %91 = icmp slt i32 %90, 0
  br i1 %91, label %92, label %93

92:                                               ; preds = %71
  store i32 4, ptr %89, align 4, !tbaa !123
  br label %93

93:                                               ; preds = %92, %71
  %94 = getelementptr inbounds i8, ptr %49, i64 10668
  %95 = load i32, ptr %94, align 4, !tbaa !124
  %96 = icmp slt i32 %95, 0
  br i1 %96, label %97, label %98

97:                                               ; preds = %93
  store i32 2, ptr %94, align 4, !tbaa !124
  br label %98

98:                                               ; preds = %97, %93
  %99 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.494)
  br i1 %99, label %100, label %405

100:                                              ; preds = %98
  %101 = tail call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef nonnull @.str.496, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %101, i64 0
  %102 = getelementptr inbounds i8, ptr %49, i64 3604
  %103 = load float, ptr %102, align 4, !tbaa !125
  %104 = fadd float %.sroa.0.0.vec.extract, %103
  tail call void @_ZN5ImGui15SeparatorTextExEjPKcS1_f(i32 noundef 0, ptr noundef nonnull @.str.495, ptr noundef null, float noundef %104)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.497)
  %105 = getelementptr inbounds i8, ptr %49, i64 10625
  %106 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.498, ptr noundef nonnull %105)
  br i1 %106, label %107, label %111

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

110:                                              ; preds = %107
  tail call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %111

111:                                              ; preds = %110, %107, %100
  %112 = getelementptr inbounds i8, ptr %49, i64 144
  %113 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.499, ptr noundef nonnull %112)
  tail call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.500)
  %114 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.501, ptr noundef nonnull %50)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.502)
  %115 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.503, ptr noundef nonnull %55)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.504)
  %116 = getelementptr inbounds i8, ptr %49, i64 10655
  %117 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.505, ptr noundef nonnull %116)
  %118 = getelementptr inbounds i8, ptr %49, i64 10654
  %119 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.506, ptr noundef nonnull %118)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %120 = tail call noundef float @_ZN5ImGui11GetFontSizeEv()
  %121 = fmul float %120, 1.200000e+01
  tail call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %121)
  %122 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.507, ptr noundef nonnull %89, ptr noundef nonnull %2, i32 noundef 8, i32 noundef 8)
  %123 = load i8, ptr %118, align 2, !tbaa !127, !range !13, !noundef !14
  %124 = zext i1 %122 to i8
  %125 = or i8 %123, %124
  %.not643 = icmp eq i8 %125, 0
  store i8 %125, ptr %118, align 2, !tbaa !127
  br i1 %.not643, label %276, label %126

126:                                              ; preds = %111
  %127 = getelementptr inbounds i8, ptr %49, i64 8408
  %128 = load ptr, ptr %127, align 8, !tbaa !128
  %.not644 = icmp eq ptr %128, null
  br i1 %.not644, label %276, label %129

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

276:                                              ; preds = %129, %126, %111
  %277 = getelementptr inbounds i8, ptr %49, i64 10656
  %278 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.510, ptr noundef nonnull %277)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %279 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %280 = fmul float %279, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %280)
  %281 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.511, ptr noundef nonnull %94, ptr noundef nonnull %3, i32 noundef 13, i32 noundef 13)
  %282 = load i8, ptr %277, align 4, !tbaa !130, !range !13, !noundef !14
  %283 = zext i1 %281 to i8
  %284 = or i8 %282, %283
  %.not645 = icmp eq i8 %284, 0
  store i8 %284, ptr %277, align 4, !tbaa !130
  br i1 %.not645, label %.loopexit720, label %285

285:                                              ; preds = %276
  %286 = getelementptr inbounds i8, ptr %49, i64 8408
  %287 = load ptr, ptr %286, align 8, !tbaa !128
  %.not646 = icmp eq ptr %287, null
  br i1 %.not646, label %.loopexit720, label %.preheader719

.preheader719:                                    ; preds = %285
  %288 = getelementptr inbounds i8, ptr %49, i64 9176
  %289 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %288)
  %290 = icmp sgt i32 %289, 0
  br i1 %290, label %.lr.ph726, label %.loopexit720

.lr.ph726:                                        ; preds = %.preheader719
  %291 = getelementptr inbounds i8, ptr %49, i64 5176
  %292 = getelementptr inbounds i8, ptr %16, i64 8
  %293 = getelementptr inbounds i8, ptr %10, i64 8
  br label %294

294:                                              ; preds = %.lr.ph726, %388
  %.0569725 = phi i32 [ 0, %.lr.ph726 ], [ %389, %388 ]
  %295 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %288, i32 noundef %.0569725)
  %296 = icmp eq ptr %295, null
  br i1 %296, label %388, label %297

297:                                              ; preds = %294
  %298 = getelementptr inbounds i8, ptr %295, i64 104
  %299 = load i32, ptr %298, align 8, !tbaa !131
  %300 = load i32, ptr %291, align 8, !tbaa !142
  %301 = add nsw i32 %300, -1
  %302 = icmp slt i32 %299, %301
  br i1 %302, label %388, label %303

303:                                              ; preds = %297
  %304 = getelementptr inbounds i8, ptr %295, i64 384
  %305 = load ptr, ptr %304, align 8, !tbaa !143
  %306 = load ptr, ptr %286, align 8, !tbaa !128
  %.not695 = icmp eq ptr %305, %306
  br i1 %.not695, label %310, label %307

307:                                              ; preds = %303
  %308 = getelementptr inbounds i8, ptr %295, i64 392
  %309 = load ptr, ptr %308, align 8, !tbaa !144
  %.not696 = icmp eq ptr %309, %306
  br i1 %.not696, label %310, label %388

310:                                              ; preds = %307, %303
  %311 = load i32, ptr %295, align 8, !tbaa !145
  %312 = getelementptr inbounds i8, ptr %295, i64 108
  %313 = load i32, ptr %312, align 4, !tbaa !146
  %314 = getelementptr inbounds i8, ptr %305, i64 8
  %315 = load ptr, ptr %314, align 8, !tbaa !129
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.512, i32 noundef %311, i32 noundef %313, ptr noundef %315)
  %316 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %316, label %317, label %323

317:                                              ; preds = %310
  %318 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #11
  %319 = getelementptr inbounds i8, ptr %295, 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)
  %320 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %319, ptr noundef nonnull align 4 dereferenceable(8) %6)
  store <2 x float> %320, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #11
  %321 = getelementptr inbounds i8, ptr %295, 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)
  %322 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %321, ptr noundef nonnull align 4 dereferenceable(8) %8)
  store <2 x float> %322, ptr %7, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %318, 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 %323

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

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

325:                                              ; preds = %323, %.loopexit718
  %indvars.iv = phi i64 [ 0, %323 ], [ %indvars.iv.next, %.loopexit718 ]
  %326 = icmp ugt i64 %indvars.iv, 5
  br i1 %326, label %327, label %361

327:                                              ; preds = %325
  %328 = trunc nuw nsw i64 %indvars.iv to i32
  switch i32 %328, label %.loopexit718 [
    i32 8, label %329
    i32 6, label %329
  ]

329:                                              ; preds = %327, %327
  %330 = load i32, ptr %312, align 4, !tbaa !146
  %331 = icmp sgt i32 %330, 0
  br i1 %331, label %.lr.ph, label %.loopexit718

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

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

353:                                              ; preds = %333
  %354 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef null)
  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)
  %355 = 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> %355, 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)
  %356 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %293, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %356, ptr %14, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %354, 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 %357

357:                                              ; preds = %353, %333
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #11
  %358 = add nuw nsw i32 %.0571722, 1
  %359 = load i32, ptr %312, align 4, !tbaa !146
  %360 = icmp slt i32 %358, %359
  br i1 %360, label %333, label %.loopexit718, !llvm.loop !147

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

383:                                              ; preds = %361
  %384 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef null)
  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)
  %385 = 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> %385, 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)
  %386 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %292, ptr noundef nonnull align 4 dereferenceable(8) %21)
  store <2 x float> %386, ptr %20, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %384, 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 %387

387:                                              ; preds = %383, %361
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #11
  br label %.loopexit718

.loopexit718:                                     ; preds = %357, %329, %327, %387
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 13
  br i1 %exitcond.not, label %324, label %325, !llvm.loop !149

388:                                              ; preds = %294, %297, %307, %324
  %389 = add nuw nsw i32 %.0569725, 1
  %390 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %288)
  %391 = icmp slt i32 %389, %390
  br i1 %391, label %294, label %.loopexit720, !llvm.loop !150

.loopexit720:                                     ; preds = %388, %.preheader719, %285, %276
  %392 = getelementptr inbounds i8, ptr %49, i64 8120
  %393 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.514, ptr noundef nonnull %392)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.515)
  %394 = getelementptr inbounds i8, ptr %49, i64 148
  %395 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.516, ptr noundef nonnull %394)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.517)
  %396 = getelementptr inbounds i8, ptr %49, i64 10659
  %397 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.518, ptr noundef nonnull %396)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.519)
  %398 = load i8, ptr %396, align 1, !tbaa !151, !range !13, !noundef !14
  %399 = trunc nuw i8 %398 to i1
  br i1 %399, label %400, label %404

400:                                              ; preds = %.loopexit720
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %401 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.520, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 64, i32 noundef 0, ptr noundef null, ptr noundef null)
  %402 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !49
  %.not647 = icmp eq i8 %402, 0
  br i1 %.not647, label %404, label %403

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

404:                                              ; preds = %400, %403, %.loopexit720
  call void @_ZN5ImGui7TreePopEv()
  br label %405

405:                                              ; preds = %404, %98
  %406 = getelementptr inbounds i8, ptr %49, i64 5264
  %407 = load i32, ptr %406, align 8, !tbaa !152
  %408 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.521, ptr noundef nonnull @.str.522, i32 noundef %407)
  br i1 %408, label %409, label %433

409:                                              ; preds = %405
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %406, ptr noundef nonnull @.str.523)
  %410 = getelementptr inbounds i8, ptr %49, i64 5280
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %410, ptr noundef nonnull @.str.524)
  %411 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.525)
  br i1 %411, label %412, label %432

412:                                              ; preds = %409
  %413 = getelementptr inbounds i8, ptr %49, i64 5296
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %413, i32 noundef 0)
  %414 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %406)
  %415 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %406)
  %.not648727 = icmp eq ptr %414, %415
  br i1 %.not648727, label %._crit_edge, label %.lr.ph729

.lr.ph729:                                        ; preds = %412
  %416 = getelementptr inbounds i8, ptr %49, i64 5176
  br label %423

._crit_edge:                                      ; preds = %430, %412
  %417 = getelementptr inbounds i8, ptr %49, i64 5304
  %418 = load ptr, ptr %417, align 8, !tbaa !153
  %419 = load i32, ptr %413, align 8, !tbaa !154
  %420 = sext i32 %419 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %418, i64 noundef %420, i64 noundef 8, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %421 = load ptr, ptr %417, align 8, !tbaa !153
  %422 = load i32, ptr %413, align 8, !tbaa !154
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %421, i32 noundef %422, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %432

423:                                              ; preds = %.lr.ph729, %430
  %.0573728 = phi ptr [ %414, %.lr.ph729 ], [ %431, %430 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %424 = load ptr, ptr %.0573728, align 8, !tbaa !5
  store ptr %424, ptr %22, align 8, !tbaa !5
  %425 = getelementptr inbounds i8, ptr %424, i64 720
  %426 = load i32, ptr %425, align 8, !tbaa !155
  %427 = add nsw i32 %426, 1
  %428 = load i32, ptr %416, align 8, !tbaa !142
  %.not694 = icmp slt i32 %427, %428
  br i1 %.not694, label %430, label %429

429:                                              ; preds = %423
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %413, ptr noundef nonnull align 8 dereferenceable(8) %22)
  br label %430

430:                                              ; preds = %429, %423
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  %431 = getelementptr inbounds i8, ptr %.0573728, i64 8
  %.not648 = icmp eq ptr %431, %415
  br i1 %.not648, label %._crit_edge, label %423

432:                                              ; preds = %._crit_edge, %409
  call void @_ZN5ImGui7TreePopEv()
  br label %433

433:                                              ; preds = %432, %405
  %434 = getelementptr inbounds i8, ptr %49, i64 8272
  %435 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %434)
  %436 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %434)
  %.not649730 = icmp eq ptr %435, %436
  br i1 %.not649730, label %._crit_edge735, label %.lr.ph734

._crit_edge735:                                   ; preds = %.lr.ph734, %433
  %.0574.lcssa = phi i32 [ 0, %433 ], [ %441, %.lr.ph734 ]
  %437 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.526, ptr noundef nonnull @.str.527, i32 noundef %.0574.lcssa)
  br i1 %437, label %443, label %463

.lr.ph734:                                        ; preds = %433, %.lr.ph734
  %.0574732 = phi i32 [ %441, %.lr.ph734 ], [ 0, %433 ]
  %.0576731 = phi ptr [ %442, %.lr.ph734 ], [ %435, %433 ]
  %438 = load ptr, ptr %.0576731, align 8, !tbaa !5
  %439 = getelementptr inbounds i8, ptr %438, i64 192
  %440 = load i32, ptr %439, align 8, !tbaa !156
  %441 = add nsw i32 %440, %.0574732
  %442 = getelementptr inbounds i8, ptr %.0576731, i64 8
  %.not649 = icmp eq ptr %442, %436
  br i1 %.not649, label %._crit_edge735, label %.lr.ph734

443:                                              ; preds = %._crit_edge735
  %444 = getelementptr inbounds i8, ptr %49, i64 10657
  %445 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.528, ptr noundef nonnull %444)
  %446 = getelementptr inbounds i8, ptr %49, i64 10658
  %447 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.529, ptr noundef nonnull %446)
  %448 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %434)
  %449 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %434)
  %.not650742 = icmp eq ptr %448, %449
  br i1 %.not650742, label %._crit_edge746, label %.lr.ph745

._crit_edge746:                                   ; preds = %._crit_edge741, %443
  call void @_ZN5ImGui7TreePopEv()
  br label %463

.lr.ph745:                                        ; preds = %443, %._crit_edge741
  %.0577743 = phi ptr [ %460, %._crit_edge741 ], [ %448, %443 ]
  %450 = load ptr, ptr %.0577743, align 8, !tbaa !5
  %451 = getelementptr inbounds i8, ptr %450, i64 192
  %452 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %451)
  %453 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %451)
  %.not693736 = icmp eq ptr %452, %453
  br i1 %.not693736, label %._crit_edge741, label %454

454:                                              ; preds = %.lr.ph745
  %455 = load ptr, ptr %452, align 8, !tbaa !5
  %456 = getelementptr inbounds i8, ptr %450, i64 104
  %457 = load i32, ptr %456, align 8, !tbaa !162
  %458 = load i32, ptr %450, align 8, !tbaa !163
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.530, i32 noundef %457, i32 noundef %458)
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef nonnull %450, ptr noundef %455, ptr noundef nonnull @.str.531)
  %459 = getelementptr inbounds i8, ptr %452, i64 8
  %.not693.peel = icmp eq ptr %459, %453
  br i1 %.not693.peel, label %._crit_edge741, label %.peel.next

._crit_edge741:                                   ; preds = %.peel.next, %454, %.lr.ph745
  %460 = getelementptr inbounds i8, ptr %.0577743, i64 8
  %.not650 = icmp eq ptr %460, %449
  br i1 %.not650, label %._crit_edge746, label %.lr.ph745

.peel.next:                                       ; preds = %454, %.peel.next
  %.0579737 = phi ptr [ %462, %.peel.next ], [ %459, %454 ]
  %461 = load ptr, ptr %.0579737, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef nonnull %450, ptr noundef %461, ptr noundef nonnull @.str.531)
  %462 = getelementptr inbounds i8, ptr %.0579737, i64 8
  %.not693 = icmp eq ptr %462, %453
  br i1 %.not693, label %._crit_edge741, label %.peel.next, !llvm.loop !164

463:                                              ; preds = %._crit_edge746, %._crit_edge735
  %464 = load i32, ptr %434, align 8, !tbaa !166
  %465 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.532, ptr noundef nonnull @.str.533, i32 noundef %464)
  br i1 %465, label %466, label %557

466:                                              ; preds = %463
  %467 = getelementptr inbounds i8, ptr %49, i64 10672
  store i32 -1, ptr %467, align 4, !tbaa !167
  %468 = getelementptr inbounds i8, ptr %49, i64 3360
  %469 = load i32, ptr %468, align 8, !tbaa !168
  %470 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.534, ptr noundef nonnull @.str.535, i32 noundef %469)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.536)
  br i1 %470, label %.preheader717, label %481

.preheader717:                                    ; preds = %466
  %471 = load i32, ptr %468, align 8, !tbaa !168
  %472 = icmp sgt i32 %471, 0
  br i1 %472, label %.lr.ph748, label %._crit_edge749

._crit_edge749:                                   ; preds = %477, %.preheader717
  %473 = getelementptr inbounds i8, ptr %49, i64 8320
  call void @_ZN5ImGui24DebugNodePlatformMonitorEP20ImGuiPlatformMonitorPKci(ptr noundef nonnull %473, ptr noundef nonnull @.str.538, i32 noundef 0)
  call void @_ZN5ImGui7TreePopEv()
  br label %481

.lr.ph748:                                        ; preds = %.preheader717, %477
  %.0581747 = phi i32 [ %478, %477 ], [ 0, %.preheader717 ]
  %474 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI20ImGuiPlatformMonitorEixEi(ptr noundef nonnull align 8 dereferenceable(16) %468, i32 noundef %.0581747)
  call void @_ZN5ImGui24DebugNodePlatformMonitorEP20ImGuiPlatformMonitorPKci(ptr noundef nonnull %474, ptr noundef nonnull @.str.537, i32 noundef %.0581747)
  %475 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %475, label %476, label %477

476:                                              ; preds = %.lr.ph748
  store i32 %.0581747, ptr %467, align 4, !tbaa !167
  br label %477

477:                                              ; preds = %.lr.ph748, %476
  %478 = add nuw nsw i32 %.0581747, 1
  %479 = load i32, ptr %468, align 8, !tbaa !168
  %480 = icmp slt i32 %478, %479
  br i1 %480, label %.lr.ph748, label %._crit_edge749, !llvm.loop !169

481:                                              ; preds = %._crit_edge749, %466
  call void @_ZN5ImGui15SetNextItemOpenEbi(i1 noundef zeroext true, i32 noundef 2)
  %482 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.539)
  br i1 %482, label %483, label %484

483:                                              ; preds = %481
  call void @_ZL25RenderViewportsThumbnailsv()
  call void @_ZN5ImGui7TreePopEv()
  br label %484

484:                                              ; preds = %483, %481
  %485 = getelementptr inbounds i8, ptr %49, i64 10676
  store i32 0, ptr %485, align 4, !tbaa !170
  %486 = getelementptr inbounds i8, ptr %49, i64 8296
  %487 = load ptr, ptr %486, align 8, !tbaa !171
  %.not651 = icmp eq ptr %487, null
  br i1 %.not651, label %490, label %488

488:                                              ; preds = %484
  %489 = load i32, ptr %487, align 8, !tbaa !163
  br label %490

490:                                              ; preds = %484, %488
  %491 = phi i32 [ %489, %488 ], [ 0, %484 ]
  %492 = getelementptr inbounds i8, ptr %49, i64 268
  %493 = load i32, ptr %492, align 4, !tbaa !172
  %494 = getelementptr inbounds i8, ptr %49, i64 8304
  %495 = load ptr, ptr %494, align 8, !tbaa !173
  %.not652 = icmp eq ptr %495, null
  br i1 %.not652, label %498, label %496

496:                                              ; preds = %490
  %497 = load i32, ptr %495, align 8, !tbaa !163
  br label %498

498:                                              ; preds = %490, %496
  %499 = phi i32 [ %497, %496 ], [ 0, %490 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.540, i32 noundef %491, i32 noundef %493, i32 noundef %499)
  %500 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.541)
  br i1 %500, label %501, label %552

501:                                              ; preds = %498
  %502 = load atomic i8, ptr @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports acquire, align 8
  %503 = icmp eq i8 %502, 0
  br i1 %503, label %504, label %508, !prof !174

504:                                              ; preds = %501
  %505 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5ImGui17ShowMetricsWindowEPbE9viewports) #11
  %.not653 = icmp eq i32 %505, 0
  br i1 %.not653, label %508, label %506

506:                                              ; preds = %504
  call void @_ZN8ImVectorIP14ImGuiViewportPEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  %507 = 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 %508

508:                                              ; preds = %506, %504, %501
  %509 = load i32, ptr %434, align 8, !tbaa !166
  call void @_ZN8ImVectorIP14ImGuiViewportPE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i32 noundef %509)
  %510 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i64 8), align 8, !tbaa !175
  %511 = getelementptr inbounds i8, ptr %49, i64 8280
  %512 = load ptr, ptr %511, align 8, !tbaa !176
  %513 = call noundef i32 @_ZNK8ImVectorIP14ImGuiViewportPE13size_in_bytesEv(ptr noundef nonnull align 8 dereferenceable(16) %434)
  %514 = sext i32 %513 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %510, ptr align 8 %512, i64 %514, i1 false)
  %515 = load i32, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, align 8, !tbaa !177
  %516 = icmp sgt i32 %515, 1
  br i1 %516, label %517, label %520

517:                                              ; preds = %508
  %518 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports, i64 8), align 8, !tbaa !175
  %519 = zext nneg i32 %515 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %518, i64 noundef %519, i64 noundef 8, ptr noundef nonnull @_ZL39ViewportComparerByLastFocusedStampCountPKvS0_)
  br label %520

520:                                              ; preds = %517, %508
  %521 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  %522 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN5ImGui17ShowMetricsWindowEPbE9viewports)
  %.not654750 = icmp eq ptr %521, %522
  br i1 %.not654750, label %._crit_edge754, label %.lr.ph753

.lr.ph753:                                        ; preds = %520
  %523 = getelementptr inbounds i8, ptr %49, i64 3232
  br label %524

._crit_edge754:                                   ; preds = %550, %520
  call void @_ZN5ImGui7TreePopEv()
  br label %552

524:                                              ; preds = %.lr.ph753, %550
  %.0582751 = phi ptr [ %521, %.lr.ph753 ], [ %551, %550 ]
  %525 = load ptr, ptr %.0582751, align 8, !tbaa !5
  %526 = getelementptr inbounds i8, ptr %525, i64 104
  %527 = load i32, ptr %526, align 8, !tbaa !162
  %528 = load i32, ptr %525, align 8, !tbaa !163
  %529 = getelementptr inbounds i8, ptr %525, i64 112
  %530 = load i32, ptr %529, align 8, !tbaa !178
  %531 = load ptr, ptr %523, align 8, !tbaa !179
  %.not691 = icmp eq ptr %531, null
  br i1 %.not691, label %538, label %532

532:                                              ; preds = %524
  %533 = getelementptr inbounds i8, ptr %525, i64 88
  %534 = load i8, ptr %533, align 8, !tbaa !180, !range !13, !noundef !14
  %535 = trunc nuw i8 %534 to i1
  br i1 %535, label %536, label %538

536:                                              ; preds = %532
  %537 = call noundef zeroext i1 %531(ptr noundef nonnull %525)
  %.str.543..str.92 = select i1 %537, ptr @.str.543, ptr @.str.92
  br label %538

538:                                              ; preds = %524, %532, %536
  %539 = phi ptr [ %.str.543..str.92, %536 ], [ @.str.544, %532 ], [ @.str.544, %524 ]
  %540 = getelementptr inbounds i8, ptr %525, i64 96
  %541 = load ptr, ptr %540, align 8, !tbaa !181
  %.not692 = icmp eq ptr %541, null
  br i1 %.not692, label %545, label %542

542:                                              ; preds = %538
  %543 = getelementptr inbounds i8, ptr %541, i64 8
  %544 = load ptr, ptr %543, align 8, !tbaa !129
  br label %545

545:                                              ; preds = %538, %542
  %546 = phi ptr [ %544, %542 ], [ @.str.544, %538 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.542, i32 noundef %527, i32 noundef %528, i32 noundef %530, ptr noundef nonnull %539, ptr noundef %546)
  %547 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %547, label %548, label %550

548:                                              ; preds = %545
  %549 = load i32, ptr %525, align 8, !tbaa !163
  store i32 %549, ptr %485, align 4, !tbaa !170
  br label %550

550:                                              ; preds = %548, %545
  %551 = getelementptr inbounds i8, ptr %.0582751, i64 8
  %.not654 = icmp eq ptr %551, %522
  br i1 %.not654, label %._crit_edge754, label %524

552:                                              ; preds = %._crit_edge754, %498
  %553 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %434)
  %554 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %434)
  %.not655755 = icmp eq ptr %553, %554
  br i1 %.not655755, label %._crit_edge759, label %.lr.ph758

._crit_edge759:                                   ; preds = %.lr.ph758, %552
  call void @_ZN5ImGui7TreePopEv()
  br label %557

.lr.ph758:                                        ; preds = %552, %.lr.ph758
  %.0584756 = phi ptr [ %556, %.lr.ph758 ], [ %553, %552 ]
  %555 = load ptr, ptr %.0584756, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %555)
  %556 = getelementptr inbounds i8, ptr %.0584756, i64 8
  %.not655 = icmp eq ptr %556, %554
  br i1 %.not655, label %._crit_edge759, label %.lr.ph758

557:                                              ; preds = %._crit_edge759, %463
  %558 = getelementptr inbounds i8, ptr %49, i64 8224
  %559 = load i32, ptr %558, align 8, !tbaa !182
  %560 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.545, ptr noundef nonnull @.str.546, i32 noundef %559)
  br i1 %560, label %561, label %593

561:                                              ; preds = %557
  %562 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %558)
  %563 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %558)
  %.not656760 = icmp eq ptr %562, %563
  br i1 %.not656760, label %._crit_edge764, label %.lr.ph763

._crit_edge764:                                   ; preds = %590, %561
  call void @_ZN5ImGui7TreePopEv()
  br label %593

.lr.ph763:                                        ; preds = %561, %590
  %.0585761 = phi ptr [ %592, %590 ], [ %562, %561 ]
  %564 = getelementptr inbounds i8, ptr %.0585761, i64 8
  %565 = load ptr, ptr %564, align 8, !tbaa !183
  %566 = load i32, ptr %.0585761, align 8, !tbaa !185
  %.not688 = icmp eq ptr %565, null
  br i1 %.not688, label %.thread701, label %567

567:                                              ; preds = %.lr.ph763
  %568 = getelementptr inbounds i8, ptr %565, i64 8
  %569 = load ptr, ptr %568, align 8, !tbaa !129
  %570 = getelementptr inbounds i8, ptr %565, i64 20
  %571 = load i32, ptr %570, align 4, !tbaa !186
  %.fr706 = freeze i32 %571
  %572 = and i32 %.fr706, 16777216
  %.not705 = icmp eq i32 %572, 0
  %spec.select = select i1 %.not705, ptr @.str.14, ptr @.str.548
  %573 = and i32 %.fr706, 268435456
  %.not707 = icmp eq i32 %573, 0
  %spec.select703 = select i1 %.not707, ptr @.str.14, ptr @.str.549
  br label %.thread701

.thread701:                                       ; preds = %567, %.lr.ph763
  %574 = phi ptr [ @.str.278, %.lr.ph763 ], [ %569, %567 ]
  %575 = phi ptr [ @.str.14, %.lr.ph763 ], [ %spec.select, %567 ]
  %576 = phi ptr [ @.str.14, %.lr.ph763 ], [ %spec.select703, %567 ]
  %577 = getelementptr inbounds i8, ptr %.0585761, i64 16
  %578 = load ptr, ptr %577, align 8, !tbaa !187
  %.not689 = icmp eq ptr %578, null
  br i1 %.not689, label %582, label %579

579:                                              ; preds = %.thread701
  %580 = getelementptr inbounds i8, ptr %578, i64 8
  %581 = load ptr, ptr %580, align 8, !tbaa !129
  br label %582

582:                                              ; preds = %.thread701, %579
  %583 = phi ptr [ %581, %579 ], [ @.str.278, %.thread701 ]
  br i1 %.not688, label %590, label %584

584:                                              ; preds = %582
  %585 = getelementptr inbounds i8, ptr %565, i64 1016
  %586 = load ptr, ptr %585, align 8, !tbaa !188
  %.not690 = icmp eq ptr %586, null
  br i1 %.not690, label %590, label %587

587:                                              ; preds = %584
  %588 = getelementptr inbounds i8, ptr %586, i64 8
  %589 = load ptr, ptr %588, align 8, !tbaa !129
  br label %590

590:                                              ; preds = %582, %584, %587
  %591 = phi ptr [ %589, %587 ], [ @.str.278, %584 ], [ @.str.278, %582 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.547, i32 noundef %566, ptr noundef %574, ptr noundef nonnull %575, ptr noundef nonnull %576, ptr noundef %583, ptr noundef %591)
  %592 = getelementptr inbounds i8, ptr %.0585761, i64 56
  %.not656 = icmp eq ptr %592, %563
  br i1 %.not656, label %._crit_edge764, label %.lr.ph763

593:                                              ; preds = %._crit_edge764, %557
  %594 = getelementptr inbounds i8, ptr %49, i64 9256
  %595 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %594)
  %596 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.550, ptr noundef nonnull @.str.551, i32 noundef %595)
  br i1 %596, label %.preheader716, label %605

.preheader716:                                    ; preds = %593
  %597 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %594)
  %598 = icmp sgt i32 %597, 0
  br i1 %598, label %.lr.ph766, label %._crit_edge767

._crit_edge767:                                   ; preds = %601, %.preheader716
  call void @_ZN5ImGui7TreePopEv()
  br label %605

.lr.ph766:                                        ; preds = %.preheader716, %601
  %.0587765 = phi i32 [ %602, %601 ], [ 0, %.preheader716 ]
  %599 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %594, i32 noundef %.0587765)
  %.not687 = icmp eq ptr %599, null
  br i1 %.not687, label %601, label %600

600:                                              ; preds = %.lr.ph766
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef nonnull %599)
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef nonnull %599, ptr noundef nonnull @.str.552)
  call void @_ZN5ImGui5PopIDEv()
  br label %601

601:                                              ; preds = %600, %.lr.ph766
  %602 = add nuw nsw i32 %.0587765, 1
  %603 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %594)
  %604 = icmp slt i32 %602, %603
  br i1 %604, label %.lr.ph766, label %._crit_edge767, !llvm.loop !189

605:                                              ; preds = %._crit_edge767, %593
  %606 = getelementptr inbounds i8, ptr %49, i64 9176
  %607 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %606)
  %608 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.553, ptr noundef nonnull @.str.554, i32 noundef %607)
  br i1 %608, label %.preheader715, label %617

.preheader715:                                    ; preds = %605
  %609 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %606)
  %610 = icmp sgt i32 %609, 0
  br i1 %610, label %.lr.ph769, label %._crit_edge770

._crit_edge770:                                   ; preds = %613, %.preheader715
  call void @_ZN5ImGui7TreePopEv()
  br label %617

.lr.ph769:                                        ; preds = %.preheader715, %613
  %.0589768 = phi i32 [ %614, %613 ], [ 0, %.preheader715 ]
  %611 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %606, i32 noundef %.0589768)
  %.not686 = icmp eq ptr %611, null
  br i1 %.not686, label %613, label %612

612:                                              ; preds = %.lr.ph769
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef nonnull %611)
  br label %613

613:                                              ; preds = %612, %.lr.ph769
  %614 = add nuw nsw i32 %.0589768, 1
  %615 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %606)
  %616 = icmp slt i32 %614, %615
  br i1 %616, label %.lr.ph769, label %._crit_edge770, !llvm.loop !190

617:                                              ; preds = %._crit_edge770, %605
  %618 = getelementptr inbounds i8, ptr %49, i64 56
  %619 = load ptr, ptr %618, align 8, !tbaa !191
  %620 = getelementptr inbounds i8, ptr %619, i64 80
  %621 = load i32, ptr %620, align 8, !tbaa !192
  %622 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.555, ptr noundef nonnull @.str.556, i32 noundef %621)
  br i1 %622, label %623, label %624

623:                                              ; preds = %617
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef nonnull %619)
  call void @_ZN5ImGui7TreePopEv()
  br label %624

624:                                              ; preds = %623, %617
  %625 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.557)
  br i1 %625, label %626, label %628

626:                                              ; preds = %624
  %627 = getelementptr inbounds i8, ptr %49, i64 9544
  call void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef nonnull %627)
  call void @_ZN5ImGui7TreePopEv()
  br label %628

628:                                              ; preds = %626, %624
  %629 = getelementptr inbounds i8, ptr %49, i64 10032
  %630 = load i8, ptr %629, align 8, !tbaa !49
  %.not657 = icmp ne i8 %630, 0
  %631 = zext i1 %.not657 to i32
  %632 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.558, ptr noundef nonnull @.str.559, i32 noundef %631)
  br i1 %632, label %633, label %635

633:                                              ; preds = %628
  %634 = getelementptr inbounds i8, ptr %49, i64 10008
  call void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef nonnull %634)
  call void @_ZN5ImGui7TreePopEv()
  br label %635

635:                                              ; preds = %633, %628
  %636 = getelementptr inbounds i8, ptr %49, i64 9464
  %637 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %636)
  %638 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.560, ptr noundef nonnull @.str.561, i32 noundef %637)
  br i1 %638, label %639, label %656

639:                                              ; preds = %635
  %640 = getelementptr inbounds i8, ptr %49, i64 9328
  %641 = load i32, ptr %640, align 8, !tbaa !196
  %642 = getelementptr inbounds i8, ptr %49, i64 9333
  %643 = load i8, ptr %642, align 1, !tbaa !197, !range !13, !noundef !14
  %644 = zext nneg i8 %643 to i32
  %645 = getelementptr inbounds i8, ptr %49, i64 9332
  %646 = load i8, ptr %645, align 4, !tbaa !198, !range !13, !noundef !14
  %647 = zext nneg i8 %646 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.562, i32 noundef %641, i32 noundef %644, i32 noundef %647)
  %648 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %636)
  %649 = icmp sgt i32 %648, 0
  br i1 %649, label %.lr.ph773, label %._crit_edge774

._crit_edge774:                                   ; preds = %652, %639
  call void @_ZN5ImGui7TreePopEv()
  br label %656

.lr.ph773:                                        ; preds = %639, %652
  %.0594771 = phi i32 [ %653, %652 ], [ 0, %639 ]
  %650 = call noundef ptr @_ZN6ImPoolI21ImGuiMultiSelectStateE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %636, i32 noundef %.0594771)
  %.not685 = icmp eq ptr %650, null
  br i1 %.not685, label %652, label %651

651:                                              ; preds = %.lr.ph773
  call void @_ZN5ImGui25DebugNodeMultiSelectStateEP21ImGuiMultiSelectState(ptr noundef nonnull %650)
  br label %652

652:                                              ; preds = %651, %.lr.ph773
  %653 = add nuw nsw i32 %.0594771, 1
  %654 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %636)
  %655 = icmp slt i32 %653, %654
  br i1 %655, label %.lr.ph773, label %._crit_edge774, !llvm.loop !199

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

658:                                              ; preds = %656
  %659 = getelementptr inbounds i8, ptr %49, i64 10152
  %660 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.563, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE15root_nodes_only)
  %661 = getelementptr inbounds i8, ptr %49, i64 10660
  %662 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.564, ptr noundef nonnull %661)
  %663 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.565)
  br i1 %663, label %664, label %665

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

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

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

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

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

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

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

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

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

681:                                              ; preds = %678, %680, %.lr.ph777
  %682 = add nuw nsw i32 %.0595775, 1
  %683 = load i32, ptr %659, align 8, !tbaa !201
  %684 = icmp slt i32 %682, %683
  br i1 %684, label %.lr.ph777, label %._crit_edge778, !llvm.loop !203

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

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

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

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

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

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

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

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

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

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

704:                                              ; preds = %703, %702
  %705 = getelementptr inbounds i8, ptr %49, i64 150
  %706 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.573, ptr noundef nonnull %705)
  %707 = getelementptr inbounds i8, ptr %49, i64 10220
  %708 = load float, ptr %707, align 4, !tbaa !205
  %709 = fpext float %708 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.574, double noundef %709)
  %710 = getelementptr inbounds i8, ptr %49, i64 10240
  %711 = load i32, ptr %710, align 8, !tbaa !206
  %712 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.575, ptr noundef nonnull @.str.576, i32 noundef %711)
  br i1 %712, label %713, label %718

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

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

.lr.ph782:                                        ; preds = %713, %.lr.ph782
  %.0600780 = phi ptr [ %717, %.lr.ph782 ], [ %714, %713 ]
  %716 = load ptr, ptr %.0600780, align 8, !tbaa !207
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.572, ptr noundef %716)
  %717 = getelementptr inbounds i8, ptr %.0600780, i64 72
  %.not659 = icmp eq ptr %717, %715
  br i1 %.not659, label %._crit_edge783, label %.lr.ph782

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

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

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

.lr.ph787:                                        ; preds = %722, %.lr.ph787
  %.0602785 = phi ptr [ %724, %.lr.ph787 ], [ %723, %722 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0602785)
  %724 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %719, ptr noundef nonnull %.0602785)
  %.not660 = icmp eq ptr %724, null
  br i1 %.not660, label %._crit_edge788, label %.lr.ph787, !llvm.loop !209

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

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

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

.lr.ph792:                                        ; preds = %729, %.lr.ph792
  %.0603790 = phi ptr [ %731, %.lr.ph792 ], [ %730, %729 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0603790)
  %731 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %726, ptr noundef nonnull %.0603790)
  %.not661 = icmp eq ptr %731, null
  br i1 %.not661, label %._crit_edge793, label %.lr.ph792, !llvm.loop !210

732:                                              ; preds = %._crit_edge793, %725
  %733 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.581, ptr noundef nonnull @.str.582)
  br i1 %733, label %734, label %772

734:                                              ; preds = %732
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.583)
  %735 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %719)
  %.not662794 = icmp eq ptr %735, null
  br i1 %.not662794, label %._crit_edge798, label %.lr.ph797

._crit_edge798:                                   ; preds = %747, %734
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.585)
  %736 = getelementptr inbounds i8, ptr %49, i64 10184
  %737 = load i32, ptr %736, align 8, !tbaa !211
  %738 = icmp sgt i32 %737, 0
  br i1 %738, label %.lr.ph801, label %._crit_edge802

.lr.ph797:                                        ; preds = %734, %747
  %.0604795 = phi ptr [ %748, %747 ], [ %735, %734 ]
  %739 = getelementptr inbounds i8, ptr %.0604795, i64 20
  %740 = load i32, ptr %739, align 4, !tbaa !212
  %.not683 = icmp eq i32 %740, 0
  br i1 %.not683, label %747, label %741

741:                                              ; preds = %.lr.ph797
  %742 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(34) %.0604795)
  %743 = load i32, ptr %739, align 4, !tbaa !212
  %744 = getelementptr inbounds i8, ptr %.0604795, i64 28
  %745 = load i16, ptr %744, align 4, !tbaa !214
  %746 = sext i16 %745 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.584, ptr noundef %742, i32 noundef %743, i32 noundef %746)
  br label %747

747:                                              ; preds = %.lr.ph797, %741
  %748 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %719, ptr noundef nonnull %.0604795)
  %.not662 = icmp eq ptr %748, null
  br i1 %.not662, label %._crit_edge798, label %.lr.ph797, !llvm.loop !215

._crit_edge802:                                   ; preds = %762, %._crit_edge798
  call void @_ZN5ImGui7TreePopEv()
  br label %772

.lr.ph801:                                        ; preds = %._crit_edge798, %762
  %.0605799 = phi i32 [ %769, %762 ], [ 0, %._crit_edge798 ]
  %749 = call noundef nonnull align 4 dereferenceable(36) ptr @_ZN8ImVectorI21ImGuiDockNodeSettingsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %736, i32 noundef %.0605799)
  %750 = getelementptr inbounds i8, ptr %749, i64 12
  %751 = load i32, ptr %750, align 4, !tbaa !216
  %.not678 = icmp eq i32 %751, 0
  br i1 %.not678, label %762, label %752

752:                                              ; preds = %.lr.ph801
  %753 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %751)
  %.not679 = icmp eq ptr %753, null
  br i1 %.not679, label %757, label %754

754:                                              ; preds = %752
  %755 = getelementptr inbounds i8, ptr %753, i64 8
  %756 = load ptr, ptr %755, align 8, !tbaa !129
  br label %762

757:                                              ; preds = %752
  %758 = load i32, ptr %750, align 4, !tbaa !216
  %759 = call noundef ptr @_ZN5ImGui22FindWindowSettingsByIDEj(i32 noundef %758)
  %.not680 = icmp eq ptr %759, null
  br i1 %.not680, label %762, label %760

760:                                              ; preds = %757
  %761 = call noundef ptr @_ZN19ImGuiWindowSettings7GetNameEv(ptr noundef nonnull align 4 dereferenceable(34) %759)
  br label %762

762:                                              ; preds = %754, %760, %757, %.lr.ph801
  %.2 = phi ptr [ null, %.lr.ph801 ], [ %756, %754 ], [ %761, %760 ], [ null, %757 ]
  %763 = load i32, ptr %749, align 4, !tbaa !218
  %764 = getelementptr inbounds i8, ptr %749, i64 4
  %765 = load i32, ptr %764, align 4, !tbaa !219
  %766 = load i32, ptr %750, align 4, !tbaa !216
  %.not681 = icmp eq ptr %.2, null
  %.not682 = icmp eq i32 %766, 0
  %767 = select i1 %.not682, ptr @.str.14, ptr @.str.544
  %768 = select i1 %.not681, ptr %767, ptr %.2
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.586, i32 noundef %763, i32 noundef %765, i32 noundef %766, ptr noundef nonnull %768)
  %769 = add nuw nsw i32 %.0605799, 1
  %770 = load i32, ptr %736, align 8, !tbaa !211
  %771 = icmp slt i32 %769, %770
  br i1 %771, label %.lr.ph801, label %._crit_edge802, !llvm.loop !220

772:                                              ; preds = %._crit_edge802, %732
  %773 = getelementptr inbounds i8, ptr %49, i64 10224
  %774 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %773)
  %775 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.587, ptr noundef nonnull @.str.588, i32 noundef %774)
  br i1 %775, label %776, label %783

776:                                              ; preds = %772
  %777 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %773)
  %778 = load i32, ptr %773, align 8, !tbaa !221
  %779 = sext i32 %778 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #11
  %780 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %781 = fmul float %780, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0xB810000000000000, float noundef %781)
  %782 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.589, ptr noundef %777, i64 noundef %779, ptr noundef nonnull align 4 dereferenceable(8) %23, i32 noundef 512, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  call void @_ZN5ImGui7TreePopEv()
  br label %783

783:                                              ; preds = %776, %772
  call void @_ZN5ImGui7TreePopEv()
  br label %784

784:                                              ; preds = %783, %685
  %785 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.590)
  br i1 %785, label %786, label %879

786:                                              ; preds = %784
  %787 = load i32, ptr %84, align 4, !tbaa !222
  %788 = load i32, ptr %86, align 4, !tbaa !223
  %789 = sub nsw i32 %787, %788
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.591, i32 noundef %789)
  %790 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.592)
  br i1 %790, label %791, label %793

791:                                              ; preds = %786
  %792 = getelementptr inbounds i8, ptr %49, i64 5198
  store i8 1, ptr %792, align 2, !tbaa !224
  br label %793

793:                                              ; preds = %791, %786
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.593)
  %794 = getelementptr inbounds i8, ptr %49, i64 10748
  %795 = getelementptr inbounds i8, ptr %49, i64 10744
  %796 = getelementptr inbounds i8, ptr %49, i64 5176
  %797 = load i16, ptr %795, align 4, !tbaa !225
  %798 = sext i16 %797 to i32
  %799 = add nsw i32 %798, 1
  %800 = srem i32 %799, 6
  %801 = sext i32 %800 to i64
  %802 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %794, i64 0, i64 %801
  %803 = load i32, ptr %802, align 4, !tbaa !226
  %804 = getelementptr inbounds i8, ptr %802, i64 4
  %805 = load i16, ptr %804, align 4, !tbaa !228
  %806 = sext i16 %805 to i32
  %807 = getelementptr inbounds i8, ptr %802, i64 6
  %808 = load i16, ptr %807, align 2, !tbaa !229
  %809 = sext i16 %808 to i32
  %810 = sub nsw i32 %806, %809
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.594, i32 noundef %803, i32 noundef %810, i32 noundef %806, i32 noundef %809)
  %.pre = load i16, ptr %795, align 4, !tbaa !225
  %811 = sext i16 %.pre to i32
  %812 = add nsw i32 %811, 2
  %813 = srem i32 %812, 6
  %814 = sext i32 %813 to i64
  %815 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %794, i64 0, i64 %814
  %816 = load i32, ptr %815, align 4, !tbaa !226
  %817 = getelementptr inbounds i8, ptr %815, i64 4
  %818 = load i16, ptr %817, align 4, !tbaa !228
  %819 = sext i16 %818 to i32
  %820 = getelementptr inbounds i8, ptr %815, i64 6
  %821 = load i16, ptr %820, align 2, !tbaa !229
  %822 = sext i16 %821 to i32
  %823 = sub nsw i32 %819, %822
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.594, i32 noundef %816, i32 noundef %823, i32 noundef %819, i32 noundef %822)
  %.pre856 = load i16, ptr %795, align 4, !tbaa !225
  %824 = sext i16 %.pre856 to i32
  %825 = add nsw i32 %824, 3
  %826 = srem i32 %825, 6
  %827 = sext i32 %826 to i64
  %828 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %794, i64 0, i64 %827
  %829 = load i32, ptr %828, align 4, !tbaa !226
  %830 = getelementptr inbounds i8, ptr %828, i64 4
  %831 = load i16, ptr %830, align 4, !tbaa !228
  %832 = sext i16 %831 to i32
  %833 = getelementptr inbounds i8, ptr %828, i64 6
  %834 = load i16, ptr %833, align 2, !tbaa !229
  %835 = sext i16 %834 to i32
  %836 = sub nsw i32 %832, %835
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.594, i32 noundef %829, i32 noundef %836, i32 noundef %832, i32 noundef %835)
  %.pre858 = load i16, ptr %795, align 4, !tbaa !225
  %837 = sext i16 %.pre858 to i32
  %838 = add nsw i32 %837, 4
  %839 = srem i32 %838, 6
  %840 = sext i32 %839 to i64
  %841 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %794, i64 0, i64 %840
  %842 = load i32, ptr %841, align 4, !tbaa !226
  %843 = getelementptr inbounds i8, ptr %841, i64 4
  %844 = load i16, ptr %843, align 4, !tbaa !228
  %845 = sext i16 %844 to i32
  %846 = getelementptr inbounds i8, ptr %841, i64 6
  %847 = load i16, ptr %846, align 2, !tbaa !229
  %848 = sext i16 %847 to i32
  %849 = sub nsw i32 %845, %848
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.594, i32 noundef %842, i32 noundef %849, i32 noundef %845, i32 noundef %848)
  %.pre860 = load i16, ptr %795, align 4, !tbaa !225
  %850 = sext i16 %.pre860 to i32
  %851 = add nsw i32 %850, 5
  %852 = srem i32 %851, 6
  %853 = sext i32 %852 to i64
  %854 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %794, i64 0, i64 %853
  %855 = load i32, ptr %854, align 4, !tbaa !226
  %856 = getelementptr inbounds i8, ptr %854, i64 4
  %857 = load i16, ptr %856, align 4, !tbaa !228
  %858 = sext i16 %857 to i32
  %859 = getelementptr inbounds i8, ptr %854, i64 6
  %860 = load i16, ptr %859, align 2, !tbaa !229
  %861 = sext i16 %860 to i32
  %862 = sub nsw i32 %858, %861
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.594, i32 noundef %855, i32 noundef %862, i32 noundef %858, i32 noundef %861)
  %.pre862 = load i16, ptr %795, align 4, !tbaa !225
  %863 = sext i16 %.pre862 to i32
  %864 = add nsw i32 %863, 6
  %865 = srem i32 %864, 6
  %866 = sext i32 %865 to i64
  %867 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %794, i64 0, i64 %866
  %868 = load i32, ptr %867, align 4, !tbaa !226
  %869 = getelementptr inbounds i8, ptr %867, i64 4
  %870 = load i16, ptr %869, align 4, !tbaa !228
  %871 = sext i16 %870 to i32
  %872 = getelementptr inbounds i8, ptr %867, i64 6
  %873 = load i16, ptr %872, align 2, !tbaa !229
  %874 = sext i16 %873 to i32
  %875 = sub nsw i32 %871, %874
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.594, i32 noundef %868, i32 noundef %875, i32 noundef %871, i32 noundef %874)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %876 = load i32, ptr %796, align 8, !tbaa !142
  %877 = load i32, ptr %867, align 4, !tbaa !226
  %878 = sub nsw i32 %876, %877
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.595, i32 noundef %878)
  call void @_ZN5ImGui7TreePopEv()
  br label %879

879:                                              ; preds = %793, %784
  %880 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.596)
  br i1 %880, label %881, label %1122

881:                                              ; preds = %879
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.597)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.598)
  br label %883

882:                                              ; preds = %893
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.601)
  br label %896

883:                                              ; preds = %881, %893
  %.0599804 = phi i32 [ 512, %881 ], [ %894, %893 ]
  %884 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %.0599804)
  br i1 %884, label %885, label %893

885:                                              ; preds = %883
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %886 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0599804)
  %887 = select i1 %886, ptr @.str.572, ptr @.str.599
  %888 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0599804)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %887, ptr noundef %888, i32 noundef %.0599804)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %889 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %.0599804)
  %890 = getelementptr inbounds i8, ptr %889, i64 4
  %891 = load float, ptr %890, align 4, !tbaa !230
  %892 = fpext float %891 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.600, double noundef %892)
  br label %893

893:                                              ; preds = %883, %885
  %894 = add nuw nsw i32 %.0599804, 1
  %exitcond837.not = icmp eq i32 %894, 667
  br i1 %exitcond837.not, label %882, label %883, !llvm.loop !232

895:                                              ; preds = %902
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.602)
  br label %924

896:                                              ; preds = %882, %902
  %.0598805 = phi i32 [ 512, %882 ], [ %903, %902 ]
  %897 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %.0598805, i1 noundef zeroext true)
  br i1 %897, label %898, label %902

898:                                              ; preds = %896
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %899 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0598805)
  %900 = select i1 %899, ptr @.str.572, ptr @.str.599
  %901 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0598805)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %900, ptr noundef %901, i32 noundef %.0598805)
  br label %902

902:                                              ; preds = %896, %898
  %903 = add nuw nsw i32 %.0598805, 1
  %exitcond838.not = icmp eq i32 %903, 667
  br i1 %exitcond838.not, label %895, label %896, !llvm.loop !233

904:                                              ; preds = %930
  %905 = getelementptr inbounds i8, ptr %49, i64 272
  %906 = load i8, ptr %905, align 8, !tbaa !234, !range !13, !noundef !14
  %907 = trunc nuw i8 %906 to i1
  %908 = select i1 %907, ptr @.str.604, ptr @.str.14
  %909 = getelementptr inbounds i8, ptr %49, i64 273
  %910 = load i8, ptr %909, align 1, !tbaa !235, !range !13, !noundef !14
  %911 = trunc nuw i8 %910 to i1
  %912 = select i1 %911, ptr @.str.605, ptr @.str.14
  %913 = getelementptr inbounds i8, ptr %49, i64 274
  %914 = load i8, ptr %913, align 2, !tbaa !236, !range !13, !noundef !14
  %915 = trunc nuw i8 %914 to i1
  %916 = select i1 %915, ptr @.str.606, ptr @.str.14
  %917 = getelementptr inbounds i8, ptr %49, i64 275
  %918 = load i8, ptr %917, align 1, !tbaa !237, !range !13, !noundef !14
  %919 = trunc nuw i8 %918 to i1
  %920 = select i1 %919, ptr @.str.607, ptr @.str.14
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.603, ptr noundef nonnull %908, ptr noundef nonnull %912, ptr noundef nonnull %916, ptr noundef nonnull %920)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.608)
  %921 = getelementptr inbounds i8, ptr %49, i64 3056
  %922 = load i32, ptr %921, align 8, !tbaa !238
  %923 = icmp sgt i32 %922, 0
  br i1 %923, label %.lr.ph809, label %._crit_edge810

924:                                              ; preds = %895, %930
  %.0597806 = phi i32 [ 512, %895 ], [ %931, %930 ]
  %925 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %.0597806)
  br i1 %925, label %926, label %930

926:                                              ; preds = %924
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %927 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0597806)
  %928 = select i1 %927, ptr @.str.572, ptr @.str.599
  %929 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0597806)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %928, ptr noundef %929, i32 noundef %.0597806)
  br label %930

930:                                              ; preds = %924, %926
  %931 = add nuw nsw i32 %.0597806, 1
  %exitcond839.not = icmp eq i32 %931, 667
  br i1 %exitcond839.not, label %904, label %924, !llvm.loop !239

._crit_edge810:                                   ; preds = %.lr.ph809, %904
  %932 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %932)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.610)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %933 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %933, label %943, label %950

.lr.ph809:                                        ; preds = %904, %.lr.ph809
  %.0596807 = phi i32 [ %940, %.lr.ph809 ], [ 0, %904 ]
  %934 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %921, i32 noundef %.0596807)
  %935 = load i16, ptr %934, align 2, !tbaa !240
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %936 = zext i16 %935 to i32
  %937 = add i16 %935, -33
  %or.cond4 = icmp ult i16 %937, 223
  %sext = shl i32 %936, 24
  %938 = ashr exact i32 %sext, 24
  %939 = select i1 %or.cond4, i32 %938, i32 63
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.609, i32 noundef %939, i32 noundef %936)
  %940 = add nuw nsw i32 %.0596807, 1
  %941 = load i32, ptr %921, align 8, !tbaa !238
  %942 = icmp slt i32 %940, %941
  br i1 %942, label %.lr.ph809, label %._crit_edge810, !llvm.loop !241

943:                                              ; preds = %._crit_edge810
  %944 = getelementptr inbounds i8, ptr %49, i64 240
  %945 = load float, ptr %944, align 8, !tbaa !242
  %946 = fpext float %945 to double
  %947 = getelementptr inbounds i8, ptr %49, i64 244
  %948 = load float, ptr %947, align 4, !tbaa !243
  %949 = fpext float %948 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.611, double noundef %946, double noundef %949)
  br label %951

950:                                              ; preds = %._crit_edge810
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.612)
  br label %951

951:                                              ; preds = %950, %943
  %952 = getelementptr inbounds i8, ptr %49, i64 220
  %953 = load float, ptr %952, align 4, !tbaa !244
  %954 = fpext float %953 to double
  %955 = getelementptr inbounds i8, ptr %49, i64 224
  %956 = load float, ptr %955, align 4, !tbaa !245
  %957 = fpext float %956 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.613, double noundef %954, double noundef %957)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.614)
  %958 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 0)
  br i1 %958, label %959, label %963

959:                                              ; preds = %951
  %960 = getelementptr inbounds i8, ptr %49, i64 2948
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %961 = load float, ptr %960, align 4, !tbaa !246
  %962 = fpext float %961 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.615, i32 noundef 0, double noundef %962)
  br label %963

963:                                              ; preds = %951, %959
  %964 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 1)
  br i1 %964, label %965, label %969

965:                                              ; preds = %963
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %966 = getelementptr inbounds i8, ptr %49, i64 2952
  %967 = load float, ptr %966, align 4, !tbaa !246
  %968 = fpext float %967 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.615, i32 noundef 1, double noundef %968)
  br label %969

969:                                              ; preds = %965, %963
  %970 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 2)
  br i1 %970, label %971, label %975

971:                                              ; preds = %969
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %972 = getelementptr inbounds i8, ptr %49, i64 2956
  %973 = load float, ptr %972, align 4, !tbaa !246
  %974 = fpext float %973 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.615, i32 noundef 2, double noundef %974)
  br label %975

975:                                              ; preds = %971, %969
  %976 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 3)
  br i1 %976, label %977, label %981

977:                                              ; preds = %975
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %978 = getelementptr inbounds i8, ptr %49, i64 2960
  %979 = load float, ptr %978, align 4, !tbaa !246
  %980 = fpext float %979 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.615, i32 noundef 3, double noundef %980)
  br label %981

981:                                              ; preds = %977, %975
  %982 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 4)
  br i1 %982, label %983, label %987

983:                                              ; preds = %981
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %984 = getelementptr inbounds i8, ptr %49, i64 2964
  %985 = load float, ptr %984, align 4, !tbaa !246
  %986 = fpext float %985 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.615, i32 noundef 4, double noundef %986)
  br label %987

987:                                              ; preds = %983, %981
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.616)
  %988 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
  br i1 %988, label %989, label %993

989:                                              ; preds = %987
  %990 = getelementptr inbounds i8, ptr %49, i64 2866
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %991 = load i16, ptr %990, align 2, !tbaa !240
  %992 = zext i16 %991 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.617, i32 noundef 0, i32 noundef %992)
  br label %993

993:                                              ; preds = %987, %989
  %994 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 1, i1 noundef zeroext false)
  br i1 %994, label %995, label %999

995:                                              ; preds = %993
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %996 = getelementptr inbounds i8, ptr %49, i64 2868
  %997 = load i16, ptr %996, align 2, !tbaa !240
  %998 = zext i16 %997 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.617, i32 noundef 1, i32 noundef %998)
  br label %999

999:                                              ; preds = %995, %993
  %1000 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 2, i1 noundef zeroext false)
  br i1 %1000, label %1001, label %1005

1001:                                             ; preds = %999
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1002 = getelementptr inbounds i8, ptr %49, i64 2870
  %1003 = load i16, ptr %1002, align 2, !tbaa !240
  %1004 = zext i16 %1003 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.617, i32 noundef 2, i32 noundef %1004)
  br label %1005

1005:                                             ; preds = %1001, %999
  %1006 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 3, i1 noundef zeroext false)
  br i1 %1006, label %1007, label %1011

1007:                                             ; preds = %1005
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1008 = getelementptr inbounds i8, ptr %49, i64 2872
  %1009 = load i16, ptr %1008, align 2, !tbaa !240
  %1010 = zext i16 %1009 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.617, i32 noundef 3, i32 noundef %1010)
  br label %1011

1011:                                             ; preds = %1007, %1005
  %1012 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 4, i1 noundef zeroext false)
  br i1 %1012, label %1013, label %1017

1013:                                             ; preds = %1011
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1014 = getelementptr inbounds i8, ptr %49, i64 2874
  %1015 = load i16, ptr %1014, align 2, !tbaa !240
  %1016 = zext i16 %1015 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.617, i32 noundef 4, i32 noundef %1016)
  br label %1017

1017:                                             ; preds = %1013, %1011
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.618)
  %1018 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 0)
  br i1 %1018, label %1019, label %1020

1019:                                             ; preds = %1017
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.619, i32 noundef 0)
  br label %1020

1020:                                             ; preds = %1017, %1019
  %1021 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 1)
  br i1 %1021, label %1022, label %1023

1022:                                             ; preds = %1020
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.619, i32 noundef 1)
  br label %1023

1023:                                             ; preds = %1022, %1020
  %1024 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 2)
  br i1 %1024, label %1025, label %1026

1025:                                             ; preds = %1023
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.619, i32 noundef 2)
  br label %1026

1026:                                             ; preds = %1025, %1023
  %1027 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 3)
  br i1 %1027, label %1028, label %1029

1028:                                             ; preds = %1026
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.619, i32 noundef 3)
  br label %1029

1029:                                             ; preds = %1028, %1026
  %1030 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 4)
  br i1 %1030, label %1031, label %1032

1031:                                             ; preds = %1029
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.619, i32 noundef 4)
  br label %1032

1032:                                             ; preds = %1031, %1029
  %1033 = getelementptr inbounds i8, ptr %49, i64 256
  %1034 = load float, ptr %1033, align 8, !tbaa !247
  %1035 = fpext float %1034 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.620, double noundef %1035)
  %1036 = getelementptr inbounds i8, ptr %49, i64 9532
  %1037 = load float, ptr %1036, align 4, !tbaa !248
  %1038 = fpext float %1037 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.621, double noundef %1038)
  %1039 = getelementptr inbounds i8, ptr %49, i64 264
  %1040 = load i32, ptr %1039, align 8, !tbaa !249
  %1041 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %1040)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.622, ptr noundef %1041)
  %1042 = getelementptr inbounds i8, ptr %49, i64 3048
  %1043 = load float, ptr %1042, align 8, !tbaa !250
  %1044 = fpext float %1043 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.623, double noundef %1044)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.624)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1045 = getelementptr inbounds i8, ptr %49, i64 5400
  %1046 = load ptr, ptr %1045, align 8, !tbaa !251
  %.not663 = icmp eq ptr %1046, null
  br i1 %.not663, label %1050, label %1047

1047:                                             ; preds = %1032
  %1048 = getelementptr inbounds i8, ptr %1046, i64 8
  %1049 = load ptr, ptr %1048, align 8, !tbaa !129
  br label %1050

1050:                                             ; preds = %1032, %1047
  %1051 = phi ptr [ %1049, %1047 ], [ @.str.278, %1032 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.625, ptr noundef %1051)
  %1052 = getelementptr inbounds i8, ptr %49, i64 5424
  %1053 = load float, ptr %1052, align 8, !tbaa !252
  %1054 = fpext float %1053 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.626, double noundef %1054)
  %1055 = getelementptr inbounds i8, ptr %49, i64 5436
  %1056 = load float, ptr %1055, align 4, !tbaa !253
  %1057 = fpext float %1056 to double
  %1058 = getelementptr inbounds i8, ptr %49, i64 5440
  %1059 = load float, ptr %1058, align 4, !tbaa !254
  %1060 = fpext float %1059 to double
  %1061 = fcmp ogt float %1056, %1059
  %1062 = fcmp olt float %1056, %1059
  %1063 = select i1 %1062, ptr @.str.628, ptr @.str.629
  %1064 = select i1 %1061, ptr @.str.455, ptr %1063
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.627, double noundef %1057, double noundef %1060, ptr noundef nonnull %1064)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.630)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #11
  %1065 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1066 = fmul float %1065, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 0xB810000000000000, float noundef %1066)
  %1067 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef nonnull @.str.631, 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 %1067, label %.preheader713, label %.loopexit714

.preheader713:                                    ; preds = %1050, %1085
  %.0590814 = phi i32 [ %1086, %1085 ], [ 512, %1050 ]
  %1068 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %49, i32 noundef %.0590814)
  %1069 = load i32, ptr %1068, align 4, !tbaa !255
  %1070 = icmp eq i32 %1069, -1
  br i1 %1070, label %1085, label %1071

1071:                                             ; preds = %.preheader713
  %1072 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0590814)
  %1073 = load i32, ptr %1068, align 4, !tbaa !255
  %1074 = getelementptr inbounds i8, ptr %1068, i64 9
  %1075 = load i8, ptr %1074, align 1, !tbaa !257, !range !13, !noundef !14
  %1076 = trunc nuw i8 %1075 to i1
  br i1 %1076, label %1082, label %1077

1077:                                             ; preds = %1071
  %1078 = getelementptr inbounds i8, ptr %1068, i64 8
  %1079 = load i8, ptr %1078, align 4, !tbaa !258, !range !13, !noundef !14
  %1080 = trunc nuw i8 %1079 to i1
  %1081 = select i1 %1080, ptr @.str.634, ptr @.str.14
  br label %1082

1082:                                             ; preds = %1071, %1077
  %1083 = phi ptr [ %1081, %1077 ], [ @.str.633, %1071 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.632, ptr noundef %1072, i32 noundef %1073, ptr noundef nonnull %1083)
  %1084 = load i32, ptr %1068, align 4, !tbaa !255
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1084)
  br label %1085

1085:                                             ; preds = %.preheader713, %1082
  %1086 = add nuw nsw i32 %.0590814, 1
  %exitcond849.not = icmp eq i32 %1086, 667
  br i1 %exitcond849.not, label %.loopexit714, label %.preheader713, !llvm.loop !259

.loopexit714:                                     ; preds = %1085, %1050
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.635)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.636)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #11
  %1087 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1088 = fmul float %1087, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef 0xB810000000000000, float noundef %1088)
  %1089 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef nonnull @.str.637, 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 %1089, label %.preheader711, label %.loopexit712

.preheader711:                                    ; preds = %.loopexit714
  %1090 = getelementptr inbounds i8, ptr %49, i64 7456
  %1091 = getelementptr inbounds i8, ptr %49, i64 7768
  %1092 = getelementptr inbounds i8, ptr %49, i64 144
  %1093 = getelementptr inbounds i8, ptr %49, i64 7808
  br label %1094

1094:                                             ; preds = %.preheader711, %._crit_edge820
  %indvars.iv850 = phi i64 [ 512, %.preheader711 ], [ %indvars.iv.next851, %._crit_edge820 ]
  %1095 = add nsw i64 %indvars.iv850, -512
  %1096 = getelementptr inbounds [155 x i16], ptr %1090, i64 0, i64 %1095
  %.0586815 = load i16, ptr %1096, align 2, !tbaa !240
  %.not677816 = icmp eq i16 %.0586815, -1
  br i1 %.not677816, label %._crit_edge820, label %.lr.ph819.preheader

.lr.ph819.preheader:                              ; preds = %1094
  %1097 = trunc nuw nsw i64 %indvars.iv850 to i32
  br label %.lr.ph819

._crit_edge820:                                   ; preds = %1116, %1094
  %indvars.iv.next851 = add nuw nsw i64 %indvars.iv850, 1
  %exitcond853.not = icmp eq i64 %indvars.iv.next851, 667
  br i1 %exitcond853.not, label %.loopexit712, label %1094, !llvm.loop !260

.lr.ph819:                                        ; preds = %.lr.ph819.preheader, %1116
  %.0586817 = phi i16 [ %.0586, %1116 ], [ %.0586815, %.lr.ph819.preheader ]
  %1098 = sext i16 %.0586817 to i32
  %1099 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1091, i32 noundef %1098)
  %1100 = getelementptr inbounds i8, ptr %1099, i64 2
  %1101 = load i16, ptr %1100, align 2, !tbaa !261
  %1102 = zext i16 %1101 to i32
  %1103 = or i32 %1097, %1102
  %1104 = call noundef ptr @_ZN5ImGui15GetKeyChordNameEi(i32 noundef %1103)
  %1105 = getelementptr inbounds i8, ptr %1099, i64 8
  %1106 = load i32, ptr %1105, align 4, !tbaa !263
  %1107 = getelementptr inbounds i8, ptr %1099, i64 4
  %1108 = load i8, ptr %1107, align 4, !tbaa !264
  %1109 = zext i8 %1108 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.638, ptr noundef %1104, i32 noundef %1106, i32 noundef %1109)
  %1110 = load i32, ptr %1105, align 4, !tbaa !263
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1110)
  %1111 = load i8, ptr %1092, align 8, !tbaa !265, !range !13, !noundef !14
  %1112 = trunc nuw i8 %1111 to i1
  br i1 %1112, label %1113, label %1116

1113:                                             ; preds = %.lr.ph819
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1114 = call noundef zeroext i1 @_ZN5ImGui16DebugBreakButtonEPKcS1_(ptr noundef nonnull @.str.639, ptr noundef nonnull @.str.640)
  br i1 %1114, label %1115, label %1116

1115:                                             ; preds = %1113
  store i32 %1103, ptr %1093, align 8, !tbaa !266
  br label %1116

1116:                                             ; preds = %1113, %1115, %.lr.ph819
  %.0586 = load i16, ptr %1099, align 4, !tbaa !240
  %.not677 = icmp eq i16 %.0586, -1
  br i1 %.not677, label %._crit_edge820, label %.lr.ph819, !llvm.loop !267

.loopexit712:                                     ; preds = %._crit_edge820, %.loopexit714
  call void @_ZN5ImGui8EndChildEv()
  %1117 = getelementptr inbounds i8, ptr %49, i64 7804
  %1118 = load i8, ptr %1117, align 4, !tbaa !268, !range !13, !noundef !14
  %1119 = zext nneg i8 %1118 to i32
  %1120 = getelementptr inbounds i8, ptr %49, i64 7800
  %1121 = load i32, ptr %1120, align 8, !tbaa !269
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.641, i32 noundef %1119, i32 noundef %1121)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1122

1122:                                             ; preds = %.loopexit712, %879
  %1123 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.642)
  br i1 %1123, label %1124, label %1279

1124:                                             ; preds = %1122
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.643)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1125 = getelementptr inbounds i8, ptr %49, i64 5368
  %1126 = load ptr, ptr %1125, align 8, !tbaa !270
  %.not664 = icmp eq ptr %1126, null
  br i1 %.not664, label %1130, label %1127

1127:                                             ; preds = %1124
  %1128 = getelementptr inbounds i8, ptr %1126, i64 8
  %1129 = load ptr, ptr %1128, align 8, !tbaa !129
  br label %1130

1130:                                             ; preds = %1124, %1127
  %1131 = phi ptr [ %1129, %1127 ], [ @.str.278, %1124 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.644, ptr noundef %1131)
  %1132 = load ptr, ptr %1125, align 8, !tbaa !270
  %.not665 = icmp eq ptr %1132, null
  br i1 %.not665, label %1138, label %1133

1133:                                             ; preds = %1130
  %1134 = getelementptr inbounds i8, ptr %1132, i64 1048
  %1135 = load ptr, ptr %1134, align 8, !tbaa !271
  %1136 = getelementptr inbounds i8, ptr %1135, i64 8
  %1137 = load ptr, ptr %1136, align 8, !tbaa !129
  br label %1138

1138:                                             ; preds = %1130, %1133
  %1139 = phi ptr [ %1137, %1133 ], [ @.str.278, %1130 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.645, ptr noundef %1139)
  %1140 = getelementptr inbounds i8, ptr %49, i64 5376
  %1141 = load ptr, ptr %1140, align 8, !tbaa !272
  %.not666 = icmp eq ptr %1141, null
  br i1 %.not666, label %1145, label %1142

1142:                                             ; preds = %1138
  %1143 = getelementptr inbounds i8, ptr %1141, i64 8
  %1144 = load ptr, ptr %1143, align 8, !tbaa !129
  br label %1145

1145:                                             ; preds = %1138, %1142
  %1146 = phi ptr [ %1144, %1142 ], [ @.str.278, %1138 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.646, ptr noundef %1146)
  %1147 = getelementptr inbounds i8, ptr %49, i64 10800
  %1148 = load ptr, ptr %1147, align 8, !tbaa !273
  %.not667 = icmp eq ptr %1148, null
  br i1 %.not667, label %1151, label %1149

1149:                                             ; preds = %1145
  %1150 = load i32, ptr %1148, align 8, !tbaa !274
  br label %1151

1151:                                             ; preds = %1145, %1149
  %1152 = phi i32 [ %1150, %1149 ], [ 0, %1145 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.647, i32 noundef %1152)
  %1153 = getelementptr inbounds i8, ptr %49, i64 5392
  %1154 = load ptr, ptr %1153, align 8, !tbaa !278
  %.not668 = icmp eq ptr %1154, null
  br i1 %.not668, label %1158, label %1155

1155:                                             ; preds = %1151
  %1156 = getelementptr inbounds i8, ptr %1154, i64 8
  %1157 = load ptr, ptr %1156, align 8, !tbaa !129
  br label %1158

1158:                                             ; preds = %1151, %1155
  %1159 = phi ptr [ %1157, %1155 ], [ @.str.278, %1151 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.648, ptr noundef %1159)
  %1160 = getelementptr inbounds i8, ptr %49, i64 8296
  %1161 = load ptr, ptr %1160, align 8, !tbaa !171
  %1162 = load i32, ptr %1161, align 8, !tbaa !163
  %1163 = getelementptr inbounds i8, ptr %49, i64 268
  %1164 = load i32, ptr %1163, align 4, !tbaa !172
  %1165 = getelementptr inbounds i8, ptr %49, i64 8304
  %1166 = load ptr, ptr %1165, align 8, !tbaa !173
  %.not669 = icmp eq ptr %1166, null
  br i1 %.not669, label %1169, label %1167

1167:                                             ; preds = %1158
  %1168 = load i32, ptr %1166, align 8, !tbaa !163
  br label %1169

1169:                                             ; preds = %1158, %1167
  %1170 = phi i32 [ %1168, %1167 ], [ 0, %1158 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.540, i32 noundef %1162, i32 noundef %1164, i32 noundef %1170)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.649)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1171 = getelementptr inbounds i8, ptr %49, i64 5476
  %1172 = load i32, ptr %1171, align 4, !tbaa !279
  %1173 = getelementptr inbounds i8, ptr %49, i64 5516
  %1174 = load i32, ptr %1173, align 4, !tbaa !280
  %1175 = getelementptr inbounds i8, ptr %49, i64 5484
  %1176 = load float, ptr %1175, align 4, !tbaa !281
  %1177 = fpext float %1176 to double
  %1178 = getelementptr inbounds i8, ptr %49, i64 5489
  %1179 = load i8, ptr %1178, align 1, !tbaa !282, !range !13, !noundef !14
  %1180 = zext nneg i8 %1179 to i32
  %1181 = getelementptr inbounds i8, ptr %49, i64 5512
  %1182 = load i32, ptr %1181, align 8, !tbaa !283
  %1183 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1182)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.650, i32 noundef %1172, i32 noundef %1174, double noundef %1177, i32 noundef %1180, ptr noundef %1183)
  %1184 = load i32, ptr %1171, align 4, !tbaa !279
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1184)
  %1185 = getelementptr inbounds i8, ptr %49, i64 5504
  %1186 = load ptr, ptr %1185, align 8, !tbaa !284
  %.not670 = icmp eq ptr %1186, null
  br i1 %.not670, label %1190, label %1187

1187:                                             ; preds = %1169
  %1188 = getelementptr inbounds i8, ptr %1186, i64 8
  %1189 = load ptr, ptr %1188, align 8, !tbaa !129
  br label %1190

1190:                                             ; preds = %1169, %1187
  %1191 = phi ptr [ %1189, %1187 ], [ @.str.278, %1169 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.651, ptr noundef %1191)
  %1192 = getelementptr inbounds i8, ptr %49, i64 7804
  %1193 = load i8, ptr %1192, align 4, !tbaa !268, !range !13, !noundef !14
  %1194 = zext nneg i8 %1193 to i32
  %1195 = getelementptr inbounds i8, ptr %49, i64 7800
  %1196 = load i32, ptr %1195, align 8, !tbaa !269
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.652, i32 noundef %1194, i32 noundef %1196)
  %1197 = getelementptr inbounds i8, ptr %49, i64 5456
  %1198 = load i32, ptr %1197, align 8, !tbaa !285
  %1199 = getelementptr inbounds i8, ptr %49, i64 5464
  %1200 = load float, ptr %1199, align 8, !tbaa !286
  %1201 = fpext float %1200 to double
  %1202 = getelementptr inbounds i8, ptr %49, i64 5472
  %1203 = load i8, ptr %1202, align 8, !tbaa !287, !range !13, !noundef !14
  %1204 = zext nneg i8 %1203 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.653, i32 noundef %1198, double noundef %1201, i32 noundef %1204)
  %1205 = getelementptr inbounds i8, ptr %49, i64 9504
  %1206 = load i32, ptr %1205, align 8, !tbaa !288
  %1207 = getelementptr inbounds i8, ptr %49, i64 9512
  %1208 = load float, ptr %1207, align 8, !tbaa !289
  %1209 = fpext float %1208 to double
  %1210 = getelementptr inbounds i8, ptr %49, i64 9516
  %1211 = load float, ptr %1210, align 4, !tbaa !290
  %1212 = fpext float %1211 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.654, i32 noundef %1206, double noundef %1209, double noundef %1212)
  %1213 = getelementptr inbounds i8, ptr %49, i64 8940
  %1214 = load i8, ptr %1213, align 4, !tbaa !291, !range !13, !noundef !14
  %1215 = zext nneg i8 %1214 to i32
  %1216 = getelementptr inbounds i8, ptr %49, i64 8972
  %1217 = load i32, ptr %1216, align 4, !tbaa !292
  %1218 = getelementptr inbounds i8, ptr %49, i64 8984
  %1219 = getelementptr inbounds i8, ptr %49, i64 8968
  %1220 = load i32, ptr %1219, align 8, !tbaa !293
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.655, i32 noundef %1215, i32 noundef %1217, ptr noundef nonnull %1218, i32 noundef %1220)
  %1221 = load i32, ptr %1216, align 4, !tbaa !292
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1221)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.656)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1222 = getelementptr inbounds i8, ptr %49, i64 8408
  %1223 = load ptr, ptr %1222, align 8, !tbaa !128
  %.not671 = icmp eq ptr %1223, null
  br i1 %.not671, label %1227, label %1224

1224:                                             ; preds = %1190
  %1225 = getelementptr inbounds i8, ptr %1223, i64 8
  %1226 = load ptr, ptr %1225, align 8, !tbaa !129
  br label %1227

1227:                                             ; preds = %1190, %1224
  %1228 = phi ptr [ %1226, %1224 ], [ @.str.278, %1190 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.657, ptr noundef %1228)
  %1229 = getelementptr inbounds i8, ptr %49, i64 8400
  %1230 = load i32, ptr %1229, align 8, !tbaa !294
  %1231 = getelementptr inbounds i8, ptr %49, i64 8420
  %1232 = load i32, ptr %1231, align 4, !tbaa !295
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.658, i32 noundef %1230, i32 noundef %1232)
  %1233 = load i32, ptr %1229, align 8, !tbaa !294
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1233)
  %1234 = getelementptr inbounds i8, ptr %49, i64 8472
  %1235 = load i32, ptr %1234, align 8, !tbaa !296
  %1236 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1235)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.659, ptr noundef %1236)
  %1237 = getelementptr inbounds i8, ptr %49, i64 8480
  %1238 = load i64, ptr %1237, align 8, !tbaa !297
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.660, i64 noundef %1238, i64 noundef %1238)
  %1239 = getelementptr inbounds i8, ptr %49, i64 197
  %1240 = load i8, ptr %1239, align 1, !tbaa !298, !range !13, !noundef !14
  %1241 = zext nneg i8 %1240 to i32
  %1242 = getelementptr inbounds i8, ptr %49, i64 198
  %1243 = load i8, ptr %1242, align 2, !tbaa !299, !range !13, !noundef !14
  %1244 = zext nneg i8 %1243 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.661, i32 noundef %1241, i32 noundef %1244)
  %1245 = getelementptr inbounds i8, ptr %49, i64 8424
  %1246 = load i32, ptr %1245, align 8, !tbaa !300
  %1247 = getelementptr inbounds i8, ptr %49, i64 8428
  %1248 = load i32, ptr %1247, align 4, !tbaa !301
  %1249 = getelementptr inbounds i8, ptr %49, i64 8432
  %1250 = load i32, ptr %1249, align 8, !tbaa !302
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.662, i32 noundef %1246, i32 noundef %1248, i32 noundef %1250)
  %1251 = getelementptr inbounds i8, ptr %49, i64 8436
  %1252 = load i32, ptr %1251, align 4, !tbaa !303
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.663, i32 noundef %1252)
  %1253 = getelementptr inbounds i8, ptr %49, i64 8396
  %1254 = load i8, ptr %1253, align 4, !tbaa !304, !range !13, !noundef !14
  %1255 = zext nneg i8 %1254 to i32
  %1256 = getelementptr inbounds i8, ptr %49, i64 8397
  %1257 = load i8, ptr %1256, align 1, !tbaa !305, !range !13, !noundef !14
  %1258 = zext nneg i8 %1257 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.664, i32 noundef %1255, i32 noundef %1258)
  %1259 = getelementptr inbounds i8, ptr %49, i64 8416
  %1260 = load i32, ptr %1259, align 8, !tbaa !306
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.665, i32 noundef %1260)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.666)
  %1261 = getelementptr inbounds i8, ptr %49, i64 8440
  %1262 = load i32, ptr %1261, align 8, !tbaa !307
  %1263 = icmp sgt i32 %1262, 0
  br i1 %1263, label %.lr.ph824, label %._crit_edge825

._crit_edge825:                                   ; preds = %.lr.ph824, %1227
  %1264 = getelementptr inbounds i8, ptr %49, i64 8880
  %1265 = load ptr, ptr %1264, align 8, !tbaa !308
  %.not672 = icmp eq ptr %1265, null
  br i1 %.not672, label %1277, label %1274

.lr.ph824:                                        ; preds = %1227, %.lr.ph824
  %.0583.in822 = phi i32 [ %.0583, %.lr.ph824 ], [ %1262, %1227 ]
  %.0583 = add nsw i32 %.0583.in822, -1
  %1266 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZN8ImVectorI19ImGuiFocusScopeDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1261, i32 noundef %.0583)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef 0.000000e+00)
  %1267 = load i32, ptr %1266, align 4, !tbaa !309
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.667, i32 noundef %1267)
  %1268 = getelementptr inbounds i8, ptr %1266, i64 4
  %1269 = load i32, ptr %1268, align 4, !tbaa !311
  %1270 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %1269)
  %1271 = getelementptr inbounds i8, ptr %1270, i64 8
  %1272 = load ptr, ptr %1271, align 8, !tbaa !129
  call void (ptr, ...) @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef nonnull @.str.668, ptr noundef %1272)
  %1273 = icmp ugt i32 %.0583.in822, 1
  br i1 %1273, label %.lr.ph824, label %._crit_edge825, !llvm.loop !312

1274:                                             ; preds = %._crit_edge825
  %1275 = getelementptr inbounds i8, ptr %1265, i64 8
  %1276 = load ptr, ptr %1275, align 8, !tbaa !129
  br label %1277

1277:                                             ; preds = %._crit_edge825, %1274
  %1278 = phi ptr [ %1276, %1274 ], [ @.str.278, %._crit_edge825 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.669, ptr noundef %1278)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1279

1279:                                             ; preds = %1277, %1122
  %1280 = getelementptr inbounds i8, ptr %49, i64 10654
  %1281 = load i8, ptr %1280, align 2, !tbaa !127, !range !13, !noundef !14
  %1282 = trunc nuw i8 %1281 to i1
  br i1 %1282, label %1287, label %1283

1283:                                             ; preds = %1279
  %1284 = getelementptr inbounds i8, ptr %49, i64 10655
  %1285 = load i8, ptr %1284, align 1, !tbaa !313, !range !13, !noundef !14
  %1286 = trunc nuw i8 %1285 to i1
  br i1 %1286, label %1287, label %.loopexit710

1287:                                             ; preds = %1283, %1279
  %1288 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %406)
  %1289 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %406)
  %.not673826 = icmp eq ptr %1288, %1289
  br i1 %.not673826, label %.loopexit710, label %.lr.ph829

.lr.ph829:                                        ; preds = %1287
  %1290 = getelementptr inbounds i8, ptr %26, i64 8
  %1291 = getelementptr inbounds i8, ptr %49, i64 10655
  br label %1292

1292:                                             ; preds = %.lr.ph829, %1321
  %.0580827 = phi ptr [ %1288, %.lr.ph829 ], [ %1322, %1321 ]
  %1293 = load ptr, ptr %.0580827, align 8, !tbaa !5
  %1294 = getelementptr inbounds i8, ptr %1293, i64 258
  %1295 = load i8, ptr %1294, align 2, !tbaa !314, !range !13, !noundef !14
  %1296 = trunc nuw i8 %1295 to i1
  br i1 %1296, label %1297, label %1321

1297:                                             ; preds = %1292
  %1298 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %1293)
  %1299 = load i8, ptr %1280, align 2, !tbaa !127, !range !13, !noundef !14
  %1300 = trunc nuw i8 %1299 to i1
  br i1 %1300, label %1301, label %1306

1301:                                             ; preds = %1297
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #11
  %1302 = load i32, ptr %89, align 4, !tbaa !123
  %1303 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef nonnull %1293, i32 noundef %1302)
  %1304 = extractvalue { <2 x float>, <2 x float> } %1303, 0
  store <2 x float> %1304, ptr %26, align 8
  %1305 = extractvalue { <2 x float>, <2 x float> } %1303, 1
  store <2 x float> %1305, ptr %1290, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %1298, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %1290, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #11
  br label %1306

1306:                                             ; preds = %1301, %1297
  %1307 = load i8, ptr %1291, align 1, !tbaa !313, !range !13, !noundef !14
  %1308 = trunc nuw i8 %1307 to i1
  br i1 %1308, label %1309, label %1321

1309:                                             ; preds = %1306
  %1310 = getelementptr inbounds i8, ptr %1293, i64 20
  %1311 = load i32, ptr %1310, align 4, !tbaa !186
  %1312 = and i32 %1311, 16777216
  %.not676 = icmp eq i32 %1312, 0
  br i1 %.not676, label %1313, label %1321

1313:                                             ; preds = %1309
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #11
  %1314 = getelementptr inbounds i8, ptr %1293, i64 278
  %1315 = load i16, ptr %1314, align 2, !tbaa !315
  %1316 = sext i16 %1315 to i32
  %1317 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %27, i64 noundef 32, ptr noundef nonnull @.str.464, i32 noundef %1316)
  %1318 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %1319 = getelementptr inbounds i8, ptr %1293, i64 88
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %29, float noundef %1318, float noundef %1318)
  %1320 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1319, ptr noundef nonnull align 4 dereferenceable(8) %29)
  store <2 x float> %1320, ptr %28, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(216) %1298, ptr noundef nonnull align 4 dereferenceable(8) %1319, ptr noundef nonnull align 4 dereferenceable(8) %28, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #11
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(216) %1298, ptr noundef nonnull align 4 dereferenceable(8) %1319, i32 noundef -1, ptr noundef nonnull %27, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #11
  br label %1321

1321:                                             ; preds = %1306, %1309, %1313, %1292
  %1322 = getelementptr inbounds i8, ptr %.0580827, i64 8
  %.not673 = icmp eq ptr %1322, %1289
  br i1 %.not673, label %.loopexit710, label %1292

.loopexit710:                                     ; preds = %1321, %1287, %1283
  %1323 = getelementptr inbounds i8, ptr %49, i64 10656
  %1324 = load i8, ptr %1323, align 4, !tbaa !130, !range !13, !noundef !14
  %1325 = trunc nuw i8 %1324 to i1
  br i1 %1325, label %.preheader708, label %.loopexit709

.preheader708:                                    ; preds = %.loopexit710
  %1326 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %606)
  %1327 = icmp sgt i32 %1326, 0
  br i1 %1327, label %.lr.ph833, label %.loopexit709

.lr.ph833:                                        ; preds = %.preheader708
  %1328 = getelementptr inbounds i8, ptr %49, i64 5176
  %1329 = getelementptr inbounds i8, ptr %31, i64 8
  %1330 = getelementptr inbounds i8, ptr %30, i64 8
  br label %1331

1331:                                             ; preds = %.lr.ph833, %.loopexit
  %.0575832 = phi i32 [ 0, %.lr.ph833 ], [ %1367, %.loopexit ]
  %1332 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %606, i32 noundef %.0575832)
  %1333 = icmp eq ptr %1332, null
  br i1 %1333, label %.loopexit, label %1334

1334:                                             ; preds = %1331
  %1335 = getelementptr inbounds i8, ptr %1332, i64 104
  %1336 = load i32, ptr %1335, align 8, !tbaa !131
  %1337 = load i32, ptr %1328, align 8, !tbaa !142
  %1338 = add nsw i32 %1337, -1
  %1339 = icmp slt i32 %1336, %1338
  br i1 %1339, label %.loopexit, label %1340

1340:                                             ; preds = %1334
  %1341 = getelementptr inbounds i8, ptr %1332, i64 384
  %1342 = load ptr, ptr %1341, align 8, !tbaa !143
  %1343 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1342)
  %1344 = load i32, ptr %94, align 4, !tbaa !124
  %1345 = icmp sgt i32 %1344, 5
  br i1 %1345, label %.preheader, label %1363

.preheader:                                       ; preds = %1340
  %1346 = getelementptr inbounds i8, ptr %1332, i64 108
  %1347 = load i32, ptr %1346, align 4, !tbaa !146
  %1348 = icmp sgt i32 %1347, 0
  br i1 %1348, label %.lr.ph831, label %.loopexit

.lr.ph831:                                        ; preds = %.preheader
  %1349 = getelementptr inbounds i8, ptr %1332, i64 522
  br label %1350

1350:                                             ; preds = %.lr.ph831, %1350
  %.0572830 = phi i32 [ 0, %.lr.ph831 ], [ %1360, %1350 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #11
  %1351 = load i32, ptr %94, align 4, !tbaa !124
  %1352 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1332, i32 noundef %1351, i32 noundef %.0572830)
  %1353 = extractvalue { <2 x float>, <2 x float> } %1352, 0
  store <2 x float> %1353, ptr %30, align 8
  %1354 = extractvalue { <2 x float>, <2 x float> } %1352, 1
  store <2 x float> %1354, ptr %1330, align 8
  %1355 = load i16, ptr %1349, align 2, !tbaa !316
  %1356 = sext i16 %1355 to i32
  %1357 = icmp eq i32 %.0572830, %1356
  %1358 = select i1 %1357, i32 -8323073, i32 -8388353
  %1359 = select i1 %1357, float 3.000000e+00, float 1.000000e+00
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %1343, ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %1330, i32 noundef %1358, float noundef 0.000000e+00, i32 noundef 0, float noundef %1359)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #11
  %1360 = add nuw nsw i32 %.0572830, 1
  %1361 = load i32, ptr %1346, align 4, !tbaa !146
  %1362 = icmp slt i32 %1360, %1361
  br i1 %1362, label %1350, label %.loopexit, !llvm.loop !317

1363:                                             ; preds = %1340
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #11
  %1364 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1332, i32 noundef %1344, i32 noundef -1)
  %1365 = extractvalue { <2 x float>, <2 x float> } %1364, 0
  store <2 x float> %1365, ptr %31, align 8
  %1366 = extractvalue { <2 x float>, <2 x float> } %1364, 1
  store <2 x float> %1366, ptr %1329, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %1343, ptr noundef nonnull align 4 dereferenceable(8) %31, ptr noundef nonnull align 4 dereferenceable(8) %1329, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #11
  br label %.loopexit

.loopexit:                                        ; preds = %1350, %.preheader, %1363, %1331, %1334
  %1367 = add nuw nsw i32 %.0575832, 1
  %1368 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %606)
  %1369 = icmp slt i32 %1367, %1368
  br i1 %1369, label %1331, label %.loopexit709, !llvm.loop !318

.loopexit709:                                     ; preds = %.loopexit, %.preheader708, %.loopexit710
  %1370 = getelementptr inbounds i8, ptr %49, i64 10660
  %1371 = load i8, ptr %1370, align 4, !tbaa !319, !range !13, !noundef !14
  %1372 = trunc nuw i8 %1371 to i1
  br i1 %1372, label %1373, label %1437

1373:                                             ; preds = %.loopexit709
  %1374 = getelementptr inbounds i8, ptr %49, i64 272
  %1375 = load i8, ptr %1374, align 8, !tbaa !320, !range !13, !noundef !14
  %1376 = trunc nuw i8 %1375 to i1
  br i1 %1376, label %1377, label %1437

1377:                                             ; preds = %1373
  %1378 = getelementptr inbounds i8, ptr %49, i64 10800
  %1379 = load ptr, ptr %1378, align 8, !tbaa !273
  %.not674 = icmp eq ptr %1379, null
  br i1 %.not674, label %1437, label %1380

1380:                                             ; preds = %1377
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %32) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %32, i8 0, i64 64, i1 false)
  %1381 = getelementptr inbounds i8, ptr %1379, i64 136
  %1382 = load ptr, ptr %1381, align 8, !tbaa !321
  %.not675 = icmp eq ptr %1382, null
  br i1 %.not675, label %1385, label %1383

1383:                                             ; preds = %1380
  %1384 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %1382)
  br label %1388

1385:                                             ; preds = %1380
  %1386 = call noundef ptr @_ZN5ImGui15GetMainViewportEv()
  %1387 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP13ImGuiViewport(ptr noundef %1386)
  br label %1388

1388:                                             ; preds = %1385, %1383
  %1389 = phi ptr [ %1384, %1383 ], [ %1387, %1385 ]
  %1390 = getelementptr inbounds i8, ptr %32, i64 64
  %1391 = ptrtoint ptr %1390 to i64
  %1392 = load i32, ptr %1379, align 8, !tbaa !274
  %1393 = call noundef zeroext i1 @_ZNK13ImGuiDockNode13IsCentralNodeEv(ptr noundef nonnull align 8 dereferenceable(203) %1379)
  %1394 = select i1 %1393, ptr @.str.671, ptr @.str.14
  %1395 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %32, i64 noundef 64, ptr noundef nonnull @.str.670, i32 noundef %1392, ptr noundef nonnull %1394)
  %1396 = sext i32 %1395 to i64
  %1397 = getelementptr inbounds i8, ptr %32, i64 %1396
  %gepdiff = sub nsw i64 64, %1396
  %1398 = getelementptr inbounds i8, ptr %1379, i64 100
  %1399 = load i32, ptr %1398, align 4, !tbaa !322
  %1400 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %1397, i64 noundef %gepdiff, ptr noundef nonnull @.str.672, i32 noundef %1399)
  %1401 = sext i32 %1400 to i64
  %1402 = getelementptr inbounds i8, ptr %1397, i64 %1401
  %1403 = ptrtoint ptr %1402 to i64
  %1404 = sub i64 %1391, %1403
  %1405 = getelementptr inbounds i8, ptr %1379, i64 80
  %1406 = load float, ptr %1405, align 8, !tbaa !323
  %1407 = fpext float %1406 to double
  %1408 = getelementptr inbounds i8, ptr %1379, i64 84
  %1409 = load float, ptr %1408, align 4, !tbaa !324
  %1410 = fpext float %1409 to double
  %1411 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %1402, i64 noundef %1404, ptr noundef nonnull @.str.673, double noundef %1407, double noundef %1410)
  %1412 = sext i32 %1411 to i64
  %1413 = getelementptr inbounds i8, ptr %1402, i64 %1412
  %1414 = ptrtoint ptr %1413 to i64
  %1415 = sub i64 %1391, %1414
  %1416 = getelementptr inbounds i8, ptr %1379, i64 88
  %1417 = load float, ptr %1416, align 8, !tbaa !325
  %1418 = fpext float %1417 to double
  %1419 = getelementptr inbounds i8, ptr %1379, i64 92
  %1420 = load float, ptr %1419, align 4, !tbaa !326
  %1421 = fpext float %1420 to double
  %1422 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %1413, i64 noundef %1415, ptr noundef nonnull @.str.674, double noundef %1418, double noundef %1421)
  %1423 = call noundef i32 @_ZN5ImGui16DockNodeGetDepthEPK13ImGuiDockNode(ptr noundef nonnull %1379)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #11
  %1424 = getelementptr inbounds i8, ptr %1379, i64 72
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %35, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %1425 = sitofp i32 %1423 to float
  %1426 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %35, float noundef %1425)
  store <2 x float> %1426, ptr %34, align 8
  %1427 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1424, ptr noundef nonnull align 4 dereferenceable(8) %34)
  store <2 x float> %1427, ptr %33, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #11
  %1428 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1424, ptr noundef nonnull align 4 dereferenceable(8) %1405)
  store <2 x float> %1428, ptr %37, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %1429 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef %1425)
  store <2 x float> %1429, ptr %38, align 8
  %1430 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %38)
  store <2 x float> %1430, ptr %36, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %1389, ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %36, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %42, float noundef 3.000000e+00, float noundef 3.000000e+00)
  %1431 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %42, float noundef %1425)
  store <2 x float> %1431, ptr %41, align 8
  %1432 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1424, ptr noundef nonnull align 4 dereferenceable(8) %41)
  store <2 x float> %1432, ptr %40, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %1433 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(8) %44)
  store <2 x float> %1433, ptr %43, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #11
  %1434 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef nonnull %32, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %1434, ptr %47, align 8
  %1435 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(8) %47)
  store <2 x float> %1435, ptr %46, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %48, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %1436 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %46, ptr noundef nonnull align 4 dereferenceable(8) %48)
  store <2 x float> %1436, ptr %45, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(216) %1389, ptr noundef nonnull align 4 dereferenceable(8) %43, ptr noundef nonnull align 4 dereferenceable(8) %45, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #11
  call void @_ZN10ImDrawList7AddTextEP6ImFontfRK6ImVec2jPKcS6_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(216) %1389, ptr noundef null, float noundef 0.000000e+00, ptr noundef nonnull align 4 dereferenceable(8) %40, i32 noundef -1, ptr noundef nonnull %32, ptr noundef null, float noundef 0.000000e+00, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %32) #11
  br label %1437

1437:                                             ; preds = %1388, %1377, %1373, %.loopexit709
  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 %1438

1438:                                             ; preds = %1437, %66
  ret void
}

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

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

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

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

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

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

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

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

; 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

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

declare void @_ZN5ImGui15SetNextItemOpenEbi(i1 noundef zeroext, i32 noundef) 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: 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

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

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

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

declare void @_ZN5ImGui25DebugNodeMultiSelectStateEP21ImGuiMultiSelectState(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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #5 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress 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, !12, i64 20, !12, i64 24}
!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 272}
!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, !20, i64 176, !20, i64 180, !12, i64 184, !12, i64 188, !12, i64 192, !12, i64 196, !12, i64 200, !19, i64 204, !19, i64 212, !19, i64 220, !19, i64 228, !19, i64 236, !19, i64 244, !11, i64 252, !11, i64 253, !11, i64 254, !7, i64 255, !11, i64 256, !11, i64 257, !11, i64 258, !11, i64 259, !11, i64 260, !11, i64 261, !11, i64 262, !11, i64 263, !11, i64 264, !11, i64 265, !11, i64 266, !11, i64 267, !11, i64 268, !7, i64 269, !7, i64 270, !21, i64 272, !21, i64 274, !21, i64 276, !21, i64 278, !21, i64 280, !7, i64 282, !7, i64 283, !11, i64 284, !22, i64 288, !7, i64 292, !7, i64 293, !7, i64 294, !7, i64 295, !12, i64 296, !12, i64 297, !12, i64 298, !12, i64 299, !19, i64 300, !19, i64 308, !23, i64 320, !24, i64 336, !29, i64 600, !29, i64 616, !29, i64 632, !29, i64 648, !29, i64 664, !29, i64 680, !29, i64 696, !31, i64 712, !31, i64 716, !12, i64 720, !12, i64 724, !20, i64 728, !20, i64 732, !32, i64 736, !34, i64 752, !20, i64 768, !20, i64 772, !20, i64 776, !20, i64 780, !12, i64 784, !6, i64 792, !35, i64 800, !6, i64 1016, !6, i64 1024, !6, i64 1032, !6, i64 1040, !6, i64 1048, !6, i64 1056, !6, i64 1064, !6, i64 1072, !6, i64 1080, !7, i64 1088, !7, i64 1096, !7, i64 1128, !12, i64 1144, !12, i64 1148, !12, i64 1152, !11, i64 1156, !11, i64 1157, !11, i64 1157, !11, i64 1157, !11, i64 1157, !21, i64 1158, !48, i64 1160, !6, i64 1192, !6, i64 1200, !12, i64 1208}
!18 = !{!"_ZTS16ImGuiWindowClass", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !11, i64 28, !11, i64 29}
!19 = !{!"_ZTS6ImVec2", !20, i64 0, !20, i64 4}
!20 = !{!"float", !7, i64 0}
!21 = !{!"short", !7, i64 0}
!22 = !{!"_ZTS8ImGuiDir", !7, i64 0}
!23 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!24 = !{!"_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, !25, i64 68, !25, i64 72, !25, i64 76, !19, i64 80, !26, i64 88, !21, i64 92, !21, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !19, i64 100, !27, i64 108, !12, i64 136, !12, i64 140, !28, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !12, i64 192, !12, i64 196, !12, i64 200, !29, i64 204, !20, i64 220, !20, i64 224, !30, i64 232, !30, i64 248}
!25 = !{!"_ZTS6ImVec1", !20, i64 0}
!26 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!27 = !{!"_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}
!28 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!29 = !{!"_ZTS6ImRect", !19, i64 0, !19, i64 8}
!30 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!31 = !{!"_ZTS8ImVec2ih", !21, i64 0, !21, i64 2}
!32 = !{!"_ZTS12ImGuiStorage", !33, i64 0}
!33 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !12, i64 0, !12, i64 4, !6, i64 8}
!34 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!35 = !{!"_ZTS10ImDrawList", !36, i64 0, !37, i64 16, !38, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !39, i64 80, !40, i64 96, !43, i64 128, !45, i64 152, !46, i64 168, !47, i64 184, !20, i64 200, !6, i64 208}
!36 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!40 = !{!"_ZTS15ImDrawCmdHeader", !41, i64 0, !42, i64 16, !12, i64 24}
!41 = !{!"_ZTS6ImVec4", !20, i64 0, !20, i64 4, !20, i64 8, !20, i64 12}
!42 = !{!"long long", !7, i64 0}
!43 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !44, i64 8}
!44 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorIyE", !12, i64 0, !12, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!48 = !{!"_ZTS20ImGuiWindowDockStyle", !7, i64 0}
!49 = !{!7, !7, i64 0}
!50 = !{!51, !20, i64 192}
!51 = !{!"_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, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !11, i64 100, !11, i64 101, !11, i64 102, !11, i64 103, !11, i64 104, !20, i64 108, !20, i64 112, !20, i64 116, !20, i64 120, !20, i64 124, !20, i64 128, !11, i64 132, !11, i64 133, !11, i64 134, !11, i64 135, !11, i64 136, !11, i64 137, !11, i64 138, !11, i64 139, !11, i64 140, !11, i64 141, !11, i64 142, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !11, i64 184, !11, i64 185, !11, i64 186, !11, i64 187, !11, i64 188, !11, i64 189, !11, i64 190, !20, i64 192, !12, i64 196, !12, i64 200, !12, i64 204, !12, i64 208, !19, i64 212, !6, i64 224, !19, i64 232, !7, i64 240, !20, i64 248, !20, i64 252, !52, i64 256, !12, i64 260, !11, i64 264, !11, i64 265, !11, i64 266, !11, i64 267, !12, i64 268, !7, i64 272, !11, i64 2752, !19, i64 2756, !7, i64 2764, !7, i64 2808, !7, i64 2848, !7, i64 2853, !7, i64 2858, !7, i64 2868, !7, i64 2878, !7, i64 2888, !7, i64 2928, !7, i64 2933, !11, i64 2938, !11, i64 2939, !7, i64 2940, !7, i64 2960, !7, i64 2980, !7, i64 3020, !20, i64 3040, !11, i64 3044, !11, i64 3045, !21, i64 3046, !37, i64 3048, !6, i64 3064, !6, i64 3072, !6, i64 3080}
!52 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!53 = !{!51, !12, i64 196}
!54 = !{!51, !12, i64 200}
!55 = !{!51, !12, i64 204}
!56 = !{!57, !12, i64 10736}
!57 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !51, i64 8, !58, i64 3096, !61, i64 3392, !12, i64 4596, !12, i64 4600, !6, i64 4608, !20, i64 4616, !20, i64 4620, !20, i64 4624, !20, i64 4628, !62, i64 4632, !63, i64 5168, !12, i64 5176, !12, i64 5180, !12, i64 5184, !12, i64 5188, !12, i64 5192, !11, i64 5196, !11, i64 5197, !11, i64 5198, !11, i64 5199, !6, i64 5200, !7, i64 5208, !64, i64 5224, !64, i64 5240, !52, i64 5256, !12, i64 5260, !28, i64 5264, !28, i64 5280, !28, i64 5296, !65, i64 5312, !32, i64 5328, !12, i64 5344, !20, i64 5348, !12, i64 5352, !6, i64 5360, !6, i64 5368, !6, i64 5376, !6, i64 5384, !6, i64 5392, !6, i64 5400, !19, i64 5408, !12, i64 5416, !12, i64 5420, !20, i64 5424, !19, i64 5428, !19, i64 5436, !12, i64 5444, !12, i64 5448, !12, i64 5452, !12, i64 5456, !12, i64 5460, !20, i64 5464, !20, i64 5468, !11, i64 5472, !11, i64 5473, !11, i64 5474, !12, i64 5476, !12, i64 5480, !20, i64 5484, !11, i64 5488, !11, i64 5489, !11, i64 5490, !11, i64 5491, !11, i64 5492, !11, i64 5493, !11, i64 5494, !12, i64 5495, !19, i64 5496, !6, i64 5504, !66, i64 5512, !12, i64 5516, !67, i64 5520, !68, i64 5532, !12, i64 5540, !20, i64 5544, !63, i64 5552, !63, i64 5560, !63, i64 5568, !69, i64 5576, !7, i64 5596, !70, i64 7456, !12, i64 7800, !11, i64 7804, !12, i64 7808, !12, i64 7812, !12, i64 7816, !12, i64 7820, !72, i64 7824, !73, i64 7880, !74, i64 7960, !11, i64 8120, !12, i64 8124, !75, i64 8128, !76, i64 8144, !77, i64 8160, !78, i64 8176, !79, i64 8192, !80, i64 8208, !81, i64 8224, !81, i64 8240, !82, i64 8256, !83, i64 8272, !6, i64 8288, !6, i64 8296, !6, i64 8304, !12, i64 8312, !84, i64 8320, !29, i64 8368, !12, i64 8384, !12, i64 8388, !12, i64 8392, !11, i64 8396, !11, i64 8397, !11, i64 8398, !11, i64 8399, !12, i64 8400, !6, i64 8408, !12, i64 8416, !26, i64 8420, !12, i64 8424, !12, i64 8428, !12, i64 8432, !12, i64 8436, !78, i64 8440, !12, i64 8456, !20, i64 8460, !12, i64 8464, !12, i64 8468, !66, i64 8472, !42, i64 8480, !7, i64 8488, !11, i64 8489, !11, i64 8490, !11, i64 8491, !85, i64 8496, !11, i64 8552, !11, i64 8553, !11, i64 8554, !12, i64 8556, !12, i64 8560, !12, i64 8564, !22, i64 8568, !22, i64 8572, !22, i64 8576, !29, i64 8580, !29, i64 8596, !12, i64 8612, !12, i64 8616, !12, i64 8620, !85, i64 8624, !85, i64 8680, !85, i64 8736, !85, i64 8792, !12, i64 8848, !12, i64 8852, !12, i64 8856, !12, i64 8860, !11, i64 8864, !11, i64 8865, !12, i64 8868, !12, i64 8872, !6, i64 8880, !6, i64 8888, !6, i64 8896, !20, i64 8904, !20, i64 8908, !11, i64 8912, !86, i64 8916, !19, i64 8920, !19, i64 8928, !20, i64 8936, !11, i64 8940, !11, i64 8941, !11, i64 8942, !12, i64 8944, !12, i64 8948, !12, i64 8952, !87, i64 8960, !29, i64 9024, !29, i64 9040, !12, i64 9056, !12, i64 9060, !20, i64 9064, !12, i64 9068, !12, i64 9072, !12, i64 9076, !12, i64 9080, !47, i64 9088, !7, i64 9104, !12, i64 9120, !88, i64 9128, !6, i64 9144, !12, i64 9152, !12, i64 9156, !89, i64 9160, !90, i64 9176, !30, i64 9216, !44, i64 9232, !6, i64 9248, !92, i64 9256, !94, i64 9296, !95, i64 9312, !96, i64 9328, !6, i64 9432, !12, i64 9440, !97, i64 9448, !98, i64 9464, !12, i64 9504, !12, i64 9508, !20, i64 9512, !20, i64 9516, !12, i64 9520, !12, i64 9524, !12, i64 9528, !20, i64 9532, !19, i64 9536, !100, i64 9544, !102, i64 9664, !103, i64 9688, !12, i64 9808, !68, i64 9812, !12, i64 9820, !12, i64 9824, !12, i64 9828, !12, i64 9832, !12, i64 9836, !20, i64 9840, !20, i64 9844, !12, i64 9848, !41, i64 9852, !105, i64 9868, !29, i64 9916, !11, i64 9932, !21, i64 9934, !20, i64 9936, !20, i64 9940, !20, i64 9944, !11, i64 9948, !11, i64 9949, !20, i64 9952, !20, i64 9956, !20, i64 9960, !21, i64 9964, !21, i64 9966, !6, i64 9968, !101, i64 9976, !23, i64 9992, !106, i64 10008, !108, i64 10112, !108, i64 10128, !12, i64 10144, !109, i64 10152, !6, i64 10208, !11, i64 10216, !20, i64 10220, !112, i64 10224, !113, i64 10240, !114, i64 10256, !115, i64 10272, !116, i64 10288, !12, i64 10304, !7, i64 10312, !11, i64 10416, !12, i64 10420, !6, i64 10424, !6, i64 10432, !112, i64 10440, !6, i64 10456, !6, i64 10464, !20, i64 10472, !11, i64 10476, !12, i64 10480, !12, i64 10484, !12, i64 10488, !6, i64 10496, !6, i64 10504, !19, i64 10512, !11, i64 10520, !12, i64 10524, !117, i64 10528, !6, i64 10552, !12, i64 10560, !12, i64 10564, !112, i64 10568, !118, i64 10584, !12, i64 10608, !12, i64 10612, !7, i64 10616, !7, i64 10617, !11, i64 10618, !12, i64 10620, !7, i64 10624, !11, i64 10625, !7, i64 10626, !12, i64 10628, !20, i64 10632, !41, i64 10636, !10, i64 10652, !119, i64 10680, !121, i64 10736, !6, i64 10800, !7, i64 10808, !12, i64 11048, !12, i64 11052, !20, i64 11056, !12, i64 11060, !12, i64 11064, !12, i64 11068, !101, i64 11072, !7, i64 11088}
!58 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !21, 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, !6, i64 184, !6, i64 192, !6, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !59, i64 264, !60, i64 280}
!59 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !12, i64 0, !12, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS10ImGuiStyle", !20, i64 0, !20, i64 4, !19, i64 8, !20, i64 16, !20, i64 20, !20, i64 24, !19, i64 28, !19, i64 36, !22, i64 44, !20, i64 48, !20, i64 52, !20, i64 56, !20, i64 60, !19, i64 64, !20, i64 72, !20, i64 76, !19, i64 80, !19, i64 88, !19, i64 96, !19, i64 104, !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, !20, i64 156, !20, i64 160, !20, i64 164, !20, i64 168, !19, i64 172, !22, i64 180, !19, i64 184, !19, i64 192, !20, i64 200, !19, i64 204, !19, i64 212, !19, i64 220, !19, i64 228, !20, i64 236, !20, i64 240, !11, i64 244, !11, i64 245, !11, i64 246, !20, i64 248, !20, i64 252, !7, i64 256, !20, i64 1184, !20, i64 1188, !20, i64 1192, !12, i64 1196, !12, i64 1200}
!62 = !{!"_ZTS20ImDrawListSharedData", !19, i64 0, !6, i64 8, !6, i64 16, !20, i64 24, !20, i64 28, !20, i64 32, !20, i64 36, !20, i64 40, !12, i64 44, !41, i64 48, !39, i64 64, !7, i64 80, !20, i64 464, !7, i64 468}
!63 = !{!"double", !7, i64 0}
!64 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!66 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!67 = !{!"_ZTS24ImGuiDeactivatedItemData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!68 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!69 = !{!"_ZTS10ImBitArrayILi155ELin512EE", !7, i64 0}
!70 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !71, i64 312, !71, i64 328}
!71 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !12, i64 8, !42, i64 16, !20, i64 24, !12, i64 28, !12, i64 32, !11, i64 36, !7, i64 37, !68, i64 38, !12, i64 48}
!73 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !29, i64 12, !29, i64 28, !29, i64 44, !29, i64 60, !12, i64 76}
!74 = !{!"_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, !12, i64 64, !11, i64 68, !11, i64 69, !29, i64 72, !6, i64 88, !6, i64 96, !20, i64 104, !12, i64 108, !12, i64 112, !18, i64 116, !19, i64 148, !12, i64 156}
!75 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!80 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!81 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_ZTS20ImGuiPlatformMonitor", !19, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !20, i64 32, !6, i64 40}
!85 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !29, i64 16, !12, i64 32, !20, i64 36, !20, i64 40, !20, i64 44, !42, i64 48}
!86 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!87 = !{!"_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}
!88 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!89 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!90 = !{!"_ZTS6ImPoolI10ImGuiTableE", !91, i64 0, !32, i64 16, !12, i64 32, !12, i64 36}
!91 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!92 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !93, i64 0, !32, i64 16, !12, i64 32, !12, i64 36}
!93 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!94 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!95 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!96 = !{!"_ZTS19ImGuiBoxSelectState", !12, i64 0, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !11, i64 8, !12, i64 9, !19, i64 12, !19, i64 20, !19, i64 28, !6, i64 40, !11, i64 48, !29, i64 52, !29, i64 68, !29, i64 84}
!97 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!98 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !99, i64 0, !32, i64 16, !12, i64 32, !12, i64 36}
!99 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !12, i64 0, !12, i64 4, !6, i64 8}
!100 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !6, i64 32, !101, i64 40, !101, i64 56, !101, i64 72, !12, i64 88, !19, i64 92, !20, i64 100, !11, i64 104, !11, i64 105, !11, i64 106, !11, i64 107, !12, i64 108, !12, i64 112}
!101 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!102 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !101, i64 8}
!103 = !{!"_ZTS6ImFont", !30, i64 0, !20, i64 16, !20, i64 20, !37, i64 24, !104, 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, !20, i64 96, !20, i64 100, !20, i64 104, !12, i64 108, !11, i64 112, !7, i64 113}
!104 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!105 = !{!"_ZTS21ImGuiComboPreviewData", !29, i64 0, !19, i64 16, !19, i64 24, !19, i64 32, !20, i64 40, !12, i64 44}
!106 = !{!"_ZTS22ImGuiTypingSelectState", !107, i64 0, !7, i64 24, !12, i64 88, !12, i64 92, !20, i64 96, !11, i64 100}
!107 = !{!"_ZTS24ImGuiTypingSelectRequest", !12, i64 0, !12, i64 4, !6, i64 8, !11, i64 16, !11, i64 17, !7, i64 18}
!108 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !19, i64 4, !20, i64 12}
!109 = !{!"_ZTS16ImGuiDockContext", !32, i64 0, !110, i64 16, !111, i64 32, !11, i64 48}
!110 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !12, i64 0, !12, i64 4, !6, i64 8}
!111 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !12, i64 0, !12, i64 4, !6, i64 8}
!112 = !{!"_ZTS15ImGuiTextBuffer", !101, i64 0}
!113 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!114 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !101, i64 0}
!115 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !101, i64 0}
!116 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!117 = !{!"_ZTS23ImGuiErrorRecoveryState", !21, i64 0, !21, i64 2, !21, i64 4, !21, i64 6, !21, i64 8, !21, i64 10, !21, i64 12, !21, i64 14, !21, i64 16, !21, i64 18, !21, i64 20}
!118 = !{!"_ZTS14ImGuiTextIndex", !79, i64 0, !12, i64 16}
!119 = !{!"_ZTS16ImGuiIDStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !120, i64 16, !11, i64 32, !20, i64 36, !112, i64 40}
!120 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!121 = !{!"_ZTS19ImGuiDebugAllocInfo", !12, i64 0, !12, i64 4, !21, i64 8, !7, i64 12}
!122 = !{!57, !12, i64 10740}
!123 = !{!10, !12, i64 12}
!124 = !{!10, !12, i64 16}
!125 = !{!57, !20, i64 3604}
!126 = !{!57, !11, i64 10625}
!127 = !{!10, !11, i64 2}
!128 = !{!57, !6, i64 8408}
!129 = !{!17, !6, i64 8}
!130 = !{!10, !11, i64 4}
!131 = !{!132, !12, i64 104}
!132 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !133, i64 24, !134, i64 40, !135, 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, !112, i64 400, !6, i64 416, !136, i64 424, !137, i64 448, !138, i64 464, !140, i64 480, !141, i64 496, !21, i64 512, !21, i64 514, !21, i64 516, !21, i64 518, !21, i64 520, !21, i64 522, !21, i64 524, !21, i64 526, !21, i64 528, !21, i64 530, !21, i64 532, !21, i64 534, !21, i64 536, !21, i64 538, !21, i64 540, !21, i64 542, !21, i64 544, !21, i64 546, !21, i64 548, !21, i64 550, !21, i64 552, !21, i64 554, !21, i64 556, !21, i64 558, !21, i64 560, !21, i64 562, !21, i64 564, !7, 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, !11, i64 586}
!133 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!134 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!135 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!136 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !20, i64 4, !20, i64 8, !20, i64 12, !12, i64 16, !12, i64 20}
!137 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!138 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !21, i64 4, !21, i64 6, !139, i64 8}
!139 = !{!"_ZTS18ImGuiSortDirection", !7, i64 0}
!140 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!141 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!142 = !{!57, !12, i64 5176}
!143 = !{!132, !6, i64 384}
!144 = !{!132, !6, i64 392}
!145 = !{!132, !12, i64 0}
!146 = !{!132, !12, i64 108}
!147 = distinct !{!147, !148}
!148 = !{!"llvm.loop.mustprogress"}
!149 = distinct !{!149, !148}
!150 = distinct !{!150, !148}
!151 = !{!10, !11, i64 7}
!152 = !{!57, !12, i64 5264}
!153 = !{!28, !6, i64 8}
!154 = !{!28, !12, i64 0}
!155 = !{!17, !12, i64 720}
!156 = !{!157, !12, i64 192}
!157 = !{!"_ZTS14ImGuiViewportP", !158, i64 0, !6, i64 96, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !19, i64 120, !19, i64 128, !20, i64 136, !20, i64 140, !11, i64 144, !21, i64 146, !7, i64 148, !7, i64 160, !159, i64 176, !161, i64 240, !19, i64 272, !19, i64 280, !19, i64 288, !19, i64 296, !19, i64 304, !19, i64 312, !19, i64 320}
!158 = !{!"_ZTS13ImGuiViewport", !12, i64 0, !12, i64 4, !19, i64 8, !19, i64 16, !19, i64 24, !19, i64 32, !20, i64 40, !12, i64 44, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !11, i64 88, !11, i64 89, !11, i64 90, !11, i64 91}
!159 = !{!"_ZTS10ImDrawData", !11, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !160, i64 16, !19, i64 32, !19, i64 40, !19, i64 48, !6, i64 56}
!160 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!161 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0, !160, i64 16}
!162 = !{!157, !12, i64 104}
!163 = !{!158, !12, i64 0}
!164 = distinct !{!164, !165}
!165 = !{!"llvm.loop.peeled.count", i32 1}
!166 = !{!57, !12, i64 8272}
!167 = !{!10, !12, i64 20}
!168 = !{!57, !12, i64 3360}
!169 = distinct !{!169, !148}
!170 = !{!10, !12, i64 24}
!171 = !{!57, !6, i64 8296}
!172 = !{!57, !12, i64 268}
!173 = !{!57, !6, i64 8304}
!174 = !{!"branch_weights", i32 1, i32 1048575}
!175 = !{!83, !6, i64 8}
!176 = !{!57, !6, i64 8280}
!177 = !{!83, !12, i64 0}
!178 = !{!157, !12, i64 112}
!179 = !{!57, !6, i64 3232}
!180 = !{!158, !11, i64 88}
!181 = !{!157, !6, i64 96}
!182 = !{!57, !12, i64 8224}
!183 = !{!184, !6, i64 8}
!184 = !{!"_ZTS14ImGuiPopupData", !12, i64 0, !6, i64 8, !6, i64 16, !12, i64 24, !12, i64 28, !12, i64 32, !19, i64 36, !19, i64 44}
!185 = !{!184, !12, i64 0}
!186 = !{!17, !12, i64 20}
!187 = !{!184, !6, i64 16}
!188 = !{!17, !6, i64 1016}
!189 = distinct !{!189, !148}
!190 = distinct !{!190, !148}
!191 = !{!57, !6, i64 56}
!192 = !{!193, !12, i64 80}
!193 = !{!"_ZTS11ImFontAtlas", !12, i64 0, !42, i64 8, !12, i64 16, !12, i64 20, !6, i64 24, !11, i64 32, !11, i64 33, !11, i64 34, !6, i64 40, !6, i64 48, !12, i64 56, !12, i64 60, !19, i64 64, !19, i64 72, !77, i64 80, !194, i64 96, !195, i64 112, !7, i64 128, !6, i64 656, !12, i64 664, !12, i64 668, !12, i64 672}
!194 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!195 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!196 = !{!96, !12, i64 0}
!197 = !{!96, !11, i64 5}
!198 = !{!96, !11, i64 4}
!199 = distinct !{!199, !148}
!200 = !{!109, !11, i64 48}
!201 = !{!109, !12, i64 0}
!202 = !{!11, !11, i64 0}
!203 = distinct !{!203, !148}
!204 = !{!57, !6, i64 32}
!205 = !{!57, !20, i64 10220}
!206 = !{!57, !12, i64 10240}
!207 = !{!208, !6, i64 0}
!208 = !{!"_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}
!209 = distinct !{!209, !148}
!210 = distinct !{!210, !148}
!211 = !{!109, !12, i64 32}
!212 = !{!213, !12, i64 20}
!213 = !{!"_ZTS19ImGuiWindowSettings", !12, i64 0, !31, i64 4, !31, i64 8, !31, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !21, i64 28, !11, i64 30, !11, i64 31, !11, i64 32, !11, i64 33}
!214 = !{!213, !21, i64 28}
!215 = distinct !{!215, !148}
!216 = !{!217, !12, i64 12}
!217 = !{!"_ZTS21ImGuiDockNodeSettings", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !7, i64 16, !7, i64 17, !12, i64 20, !31, i64 24, !31, i64 28, !31, i64 32}
!218 = !{!217, !12, i64 0}
!219 = !{!217, !12, i64 4}
!220 = distinct !{!220, !148}
!221 = !{!57, !12, i64 10224}
!222 = !{!121, !12, i64 0}
!223 = !{!121, !12, i64 4}
!224 = !{!57, !11, i64 5198}
!225 = !{!121, !21, i64 8}
!226 = !{!227, !12, i64 0}
!227 = !{!"_ZTS20ImGuiDebugAllocEntry", !12, i64 0, !21, i64 4, !21, i64 6}
!228 = !{!227, !21, i64 4}
!229 = !{!227, !21, i64 6}
!230 = !{!231, !20, i64 4}
!231 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !20, i64 4, !20, i64 8, !20, i64 12}
!232 = distinct !{!232, !148}
!233 = distinct !{!233, !148}
!234 = !{!51, !11, i64 264}
!235 = !{!51, !11, i64 265}
!236 = !{!51, !11, i64 266}
!237 = !{!51, !11, i64 267}
!238 = !{!51, !12, i64 3048}
!239 = distinct !{!239, !148}
!240 = !{!21, !21, i64 0}
!241 = distinct !{!241, !148}
!242 = !{!51, !20, i64 232}
!243 = !{!51, !20, i64 236}
!244 = !{!51, !20, i64 212}
!245 = !{!51, !20, i64 216}
!246 = !{!20, !20, i64 0}
!247 = !{!51, !20, i64 248}
!248 = !{!57, !20, i64 9532}
!249 = !{!51, !52, i64 256}
!250 = !{!51, !20, i64 3040}
!251 = !{!57, !6, i64 5400}
!252 = !{!57, !20, i64 5424}
!253 = !{!57, !20, i64 5436}
!254 = !{!57, !20, i64 5440}
!255 = !{!256, !12, i64 0}
!256 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!257 = !{!256, !11, i64 9}
!258 = !{!256, !11, i64 8}
!259 = distinct !{!259, !148}
!260 = distinct !{!260, !148}
!261 = !{!262, !21, i64 2}
!262 = !{!"_ZTS19ImGuiKeyRoutingData", !21, i64 0, !21, i64 2, !7, i64 4, !7, i64 5, !12, i64 8, !12, i64 12}
!263 = !{!262, !12, i64 8}
!264 = !{!262, !7, i64 4}
!265 = !{!57, !11, i64 144}
!266 = !{!57, !12, i64 7808}
!267 = distinct !{!267, !148}
!268 = !{!57, !11, i64 7804}
!269 = !{!57, !12, i64 7800}
!270 = !{!57, !6, i64 5368}
!271 = !{!17, !6, i64 1048}
!272 = !{!57, !6, i64 5376}
!273 = !{!57, !6, i64 10800}
!274 = !{!275, !12, i64 0}
!275 = !{!"_ZTS13ImGuiDockNode", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !276, i64 20, !6, i64 24, !7, i64 32, !28, i64 48, !6, i64 64, !19, i64 72, !19, i64 80, !19, i64 88, !277, i64 96, !18, i64 100, !12, i64 132, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !12, i64 168, !12, i64 172, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !12, i64 192, !12, i64 196, !12, i64 200, !12, i64 200, !12, i64 200, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 201, !11, i64 202, !11, i64 202, !11, i64 202, !11, i64 202}
!276 = !{!"_ZTS18ImGuiDockNodeState", !7, i64 0}
!277 = !{!"_ZTS9ImGuiAxis", !7, i64 0}
!278 = !{!57, !6, i64 5392}
!279 = !{!57, !12, i64 5476}
!280 = !{!57, !12, i64 5516}
!281 = !{!57, !20, i64 5484}
!282 = !{!57, !11, i64 5489}
!283 = !{!57, !66, i64 5512}
!284 = !{!57, !6, i64 5504}
!285 = !{!57, !12, i64 5456}
!286 = !{!57, !20, i64 5464}
!287 = !{!57, !11, i64 5472}
!288 = !{!57, !12, i64 9504}
!289 = !{!57, !20, i64 9512}
!290 = !{!57, !20, i64 9516}
!291 = !{!57, !11, i64 8940}
!292 = !{!57, !12, i64 8972}
!293 = !{!57, !12, i64 8968}
!294 = !{!57, !12, i64 8400}
!295 = !{!57, !26, i64 8420}
!296 = !{!57, !66, i64 8472}
!297 = !{!57, !42, i64 8480}
!298 = !{!57, !11, i64 197}
!299 = !{!57, !11, i64 198}
!300 = !{!57, !12, i64 8424}
!301 = !{!57, !12, i64 8428}
!302 = !{!57, !12, i64 8432}
!303 = !{!57, !12, i64 8436}
!304 = !{!57, !11, i64 8396}
!305 = !{!57, !11, i64 8397}
!306 = !{!57, !12, i64 8416}
!307 = !{!57, !12, i64 8440}
!308 = !{!57, !6, i64 8880}
!309 = !{!310, !12, i64 0}
!310 = !{!"_ZTS19ImGuiFocusScopeData", !12, i64 0, !12, i64 4}
!311 = !{!310, !12, i64 4}
!312 = distinct !{!312, !148}
!313 = !{!10, !11, i64 3}
!314 = !{!17, !11, i64 258}
!315 = !{!17, !21, i64 278}
!316 = !{!132, !21, i64 522}
!317 = distinct !{!317, !148}
!318 = distinct !{!318, !148}
!319 = !{!10, !11, i64 8}
!320 = !{!57, !11, i64 272}
!321 = !{!275, !6, i64 136}
!322 = !{!275, !12, i64 100}
!323 = !{!275, !20, i64 80}
!324 = !{!275, !20, i64 84}
!325 = !{!275, !20, i64 88}
!326 = !{!275, !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