; LLVM IR from Adeon18/Shift :: Source/Graphics/UI/imgui/imgui.ll (ZN5ImGui17ShowMetricsWindowEPb)

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

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

@GImGui = external dso_local global ptr, align 8
@.str.17 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.360 = 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.378 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [64 x i8], align 16
@.str.404 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.422 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.423 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.494 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.520 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [25 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 nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef) #3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui7TreePopEv() #6

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

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

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

; 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, ...) #8

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

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

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

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

; 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 @_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) #8 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef %0) #7 {
  %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 ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca ptr, align 8
  %59 = alloca ptr, align 8
  %60 = alloca i32, align 4
  %61 = alloca ptr, align 8
  %62 = alloca i32, align 4
  %63 = alloca ptr, align 8
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca ptr, align 8
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca %struct.ImVec2, align 4
  %72 = alloca ptr, align 8
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca ptr, align 8
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i16, align 2
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca %struct.ImVec2, align 4
  %86 = alloca i32, align 4
  %87 = alloca ptr, align 8
  %88 = alloca %struct.ImVec2, align 4
  %89 = alloca i32, align 4
  %90 = alloca ptr, align 8
  %91 = alloca i16, align 2
  %92 = alloca ptr, align 8
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca ptr, align 8
  %96 = alloca ptr, align 8
  %97 = alloca ptr, align 8
  %98 = alloca ptr, align 8
  %99 = alloca ptr, align 8
  %100 = alloca ptr, align 8
  %101 = alloca %struct.ImRect, align 4
  %102 = alloca [32 x i8], align 16
  %103 = alloca float, align 4
  %104 = alloca %struct.ImVec2, align 4
  %105 = alloca %struct.ImVec2, align 4
  %106 = alloca i32, align 4
  %107 = alloca ptr, align 8
  %108 = alloca ptr, align 8
  %109 = alloca i32, align 4
  %110 = alloca %struct.ImRect, align 4
  %111 = alloca i32, align 4
  %112 = alloca float, align 4
  %113 = alloca %struct.ImRect, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #9
  %114 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %114, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #9
  %115 = load ptr, ptr %3, align 8, !tbaa !5
  %116 = getelementptr inbounds %struct.ImGuiContext, ptr %115, i32 0, i32 2
  store ptr %116, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #9
  %117 = load ptr, ptr %3, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct.ImGuiContext, ptr %117, i32 0, i32 262
  store ptr %118, ptr %5, align 8, !tbaa !5
  %119 = load ptr, ptr %5, align 8, !tbaa !5
  %120 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %119, i32 0, i32 0
  %121 = load i8, ptr %120, align 4, !tbaa !9, !range !13, !noundef !14
  %122 = trunc i8 %121 to i1
  br i1 %122, label %123, label %126

123:                                              ; preds = %1
  %124 = load ptr, ptr %5, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %124, i32 0, i32 0
  call void @_ZN5ImGui18ShowDebugLogWindowEPb(ptr noundef %125)
  br label %126

126:                                              ; preds = %123, %1
  %127 = load ptr, ptr %5, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %127, i32 0, i32 1
  %129 = load i8, ptr %128, align 1, !tbaa !15, !range !13, !noundef !14
  %130 = trunc i8 %129 to i1
  br i1 %130, label %131, label %134

131:                                              ; preds = %126
  %132 = load ptr, ptr %5, align 8, !tbaa !5
  %133 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %132, i32 0, i32 1
  call void @_ZN5ImGui21ShowIDStackToolWindowEPb(ptr noundef %133)
  br label %134

134:                                              ; preds = %131, %126
  %135 = load ptr, ptr %2, align 8, !tbaa !5
  %136 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.356, ptr noundef %135, i32 noundef 0)
  br i1 %136, label %137, label %143

137:                                              ; preds = %134
  %138 = call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %139 = getelementptr inbounds %struct.ImGuiWindow, ptr %138, i32 0, i32 47
  %140 = load i16, ptr %139, align 4, !tbaa !16
  %141 = sext i16 %140 to i32
  %142 = icmp sgt i32 %141, 1
  br i1 %142, label %143, label %144

143:                                              ; preds = %137, %134
  call void @_ZN5ImGui3EndEv()
  store i32 1, ptr %6, align 4
  br label %1934

144:                                              ; preds = %137
  call void @_ZN5ImGui19DebugBreakClearDataEv()
  %145 = call noundef ptr @_ZN5ImGui10GetVersionEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.357, ptr noundef %145)
  %146 = load ptr, ptr %4, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.ImGuiIO, ptr %146, i32 0, i32 49
  %148 = load float, ptr %147, align 4, !tbaa !44
  %149 = fdiv float 1.000000e+03, %148
  %150 = fpext float %149 to double
  %151 = load ptr, ptr %4, align 8, !tbaa !5
  %152 = getelementptr inbounds %struct.ImGuiIO, ptr %151, i32 0, i32 49
  %153 = load float, ptr %152, align 4, !tbaa !44
  %154 = fpext float %153 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.358, double noundef %150, double noundef %154)
  %155 = load ptr, ptr %4, align 8, !tbaa !5
  %156 = getelementptr inbounds %struct.ImGuiIO, ptr %155, i32 0, i32 50
  %157 = load i32, ptr %156, align 8, !tbaa !47
  %158 = load ptr, ptr %4, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.ImGuiIO, ptr %158, i32 0, i32 51
  %160 = load i32, ptr %159, align 4, !tbaa !48
  %161 = load ptr, ptr %4, align 8, !tbaa !5
  %162 = getelementptr inbounds %struct.ImGuiIO, ptr %161, i32 0, i32 51
  %163 = load i32, ptr %162, align 4, !tbaa !48
  %164 = sdiv i32 %163, 3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.359, i32 noundef %157, i32 noundef %160, i32 noundef %164)
  %165 = load ptr, ptr %4, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.ImGuiIO, ptr %165, i32 0, i32 52
  %167 = load i32, ptr %166, align 8, !tbaa !49
  %168 = load ptr, ptr %3, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.ImGuiContext, ptr %168, i32 0, i32 264
  %170 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %169, i32 0, i32 0
  %171 = load i32, ptr %170, align 8, !tbaa !50
  %172 = load ptr, ptr %3, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.ImGuiContext, ptr %172, i32 0, i32 264
  %174 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %173, i32 0, i32 1
  %175 = load i32, ptr %174, align 4, !tbaa !107
  %176 = sub nsw i32 %171, %175
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.360, i32 noundef %167, i32 noundef %176)
  call void @_ZN5ImGui9SeparatorEv()
  call void @llvm.lifetime.start.p0(i64 64, ptr %7) #9
  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) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %8, ptr align 16 @__const._ZN5ImGui17ShowMetricsWindowEPb.trt_rects_names, i64 104, i1 false)
  %177 = load ptr, ptr %5, align 8, !tbaa !5
  %178 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %177, i32 0, i32 9
  %179 = load i32, ptr %178, align 4, !tbaa !108
  %180 = icmp slt i32 %179, 0
  br i1 %180, label %181, label %184

181:                                              ; preds = %144
  %182 = load ptr, ptr %5, align 8, !tbaa !5
  %183 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %182, i32 0, i32 9
  store i32 4, ptr %183, align 4, !tbaa !108
  br label %184

184:                                              ; preds = %181, %144
  %185 = load ptr, ptr %5, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %185, i32 0, i32 10
  %187 = load i32, ptr %186, align 4, !tbaa !109
  %188 = icmp slt i32 %187, 0
  br i1 %188, label %189, label %192

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

192:                                              ; preds = %189, %184
  %193 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.378)
  br i1 %193, label %194, label %545

194:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  %195 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef @.str.380, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %195, ptr %9, align 4
  %196 = getelementptr inbounds %struct.ImVec2, ptr %9, i32 0, i32 0
  %197 = load float, ptr %196, align 4, !tbaa !110
  %198 = load ptr, ptr %3, align 8, !tbaa !5
  %199 = getelementptr inbounds %struct.ImGuiContext, ptr %198, i32 0, i32 3
  %200 = getelementptr inbounds %struct.ImGuiStyle, ptr %199, i32 0, i32 36
  %201 = getelementptr inbounds %struct.ImVec2, ptr %200, i32 0, i32 0
  %202 = load float, ptr %201, align 4, !tbaa !111
  %203 = fadd float %197, %202
  call void @_ZN5ImGui15SeparatorTextExEjPKcS1_f(i32 noundef 0, ptr noundef @.str.379, ptr noundef null, float noundef %203)
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.381)
  %204 = load ptr, ptr %3, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.ImGuiContext, ptr %204, i32 0, i32 257
  %206 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.382, ptr noundef %205)
  br i1 %206, label %207, label %213

207:                                              ; preds = %194
  %208 = load ptr, ptr %3, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.ImGuiContext, ptr %208, i32 0, i32 257
  %210 = load i8, ptr %209, align 1, !tbaa !112, !range !13, !noundef !14
  %211 = trunc i8 %210 to i1
  br i1 %211, label %212, label %213

212:                                              ; preds = %207
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %213

213:                                              ; preds = %212, %207, %194
  %214 = load ptr, ptr %3, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.ImGuiContext, ptr %214, i32 0, i32 2
  %216 = getelementptr inbounds %struct.ImGuiIO, ptr %215, i32 0, i32 27
  %217 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.383, ptr noundef %216)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.384)
  %218 = load ptr, ptr %5, align 8, !tbaa !5
  %219 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %218, i32 0, i32 0
  %220 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.385, ptr noundef %219)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.386)
  %221 = load ptr, ptr %5, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %221, i32 0, i32 1
  %223 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.387, ptr noundef %222)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.388)
  %224 = load ptr, ptr %5, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %224, i32 0, i32 3
  %226 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.389, ptr noundef %225)
  %227 = load ptr, ptr %5, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %227, i32 0, i32 2
  %229 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.390, ptr noundef %228)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %230 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %231 = fmul float %230, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %231)
  %232 = load ptr, ptr %5, align 8, !tbaa !5
  %233 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %232, i32 0, i32 9
  %234 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 0
  %235 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.391, ptr noundef %233, ptr noundef %234, i32 noundef 8, i32 noundef 8)
  %236 = zext i1 %235 to i32
  %237 = load ptr, ptr %5, align 8, !tbaa !5
  %238 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %237, i32 0, i32 2
  %239 = load i8, ptr %238, align 2, !tbaa !113, !range !13, !noundef !14
  %240 = trunc i8 %239 to i1
  %241 = zext i1 %240 to i32
  %242 = or i32 %241, %236
  %243 = icmp ne i32 %242, 0
  %244 = zext i1 %243 to i8
  store i8 %244, ptr %238, align 2, !tbaa !113
  %245 = load ptr, ptr %5, align 8, !tbaa !5
  %246 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %245, i32 0, i32 2
  %247 = load i8, ptr %246, align 2, !tbaa !113, !range !13, !noundef !14
  %248 = trunc i8 %247 to i1
  br i1 %248, label %249, label %302

249:                                              ; preds = %213
  %250 = load ptr, ptr %3, align 8, !tbaa !5
  %251 = getelementptr inbounds %struct.ImGuiContext, ptr %250, i32 0, i32 98
  %252 = load ptr, ptr %251, align 8, !tbaa !114
  %253 = icmp ne ptr %252, null
  br i1 %253, label %254, label %302

254:                                              ; preds = %249
  %255 = load ptr, ptr %3, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.ImGuiContext, ptr %255, i32 0, i32 98
  %257 = load ptr, ptr %256, align 8, !tbaa !114
  %258 = getelementptr inbounds %struct.ImGuiWindow, ptr %257, i32 0, i32 1
  %259 = load ptr, ptr %258, align 8, !tbaa !115
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.392, ptr noundef %259)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  store i32 0, ptr %10, align 4, !tbaa !116
  br label %260

260:                                              ; preds = %298, %254
  %261 = load i32, ptr %10, align 4, !tbaa !116
  %262 = icmp slt i32 %261, 8
  br i1 %262, label %264, label %263

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

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

298:                                              ; preds = %264
  %299 = load i32, ptr %10, align 4, !tbaa !116
  %300 = add nsw i32 %299, 1
  store i32 %300, ptr %10, align 4, !tbaa !116
  br label %260, !llvm.loop !121

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

302:                                              ; preds = %301, %249, %213
  %303 = load ptr, ptr %5, align 8, !tbaa !5
  %304 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %303, i32 0, i32 4
  %305 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.394, ptr noundef %304)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %306 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %307 = fmul float %306, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %307)
  %308 = load ptr, ptr %5, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %308, i32 0, i32 10
  %310 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 0
  %311 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.395, ptr noundef %309, ptr noundef %310, i32 noundef 13, i32 noundef 13)
  %312 = zext i1 %311 to i32
  %313 = load ptr, ptr %5, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %313, i32 0, i32 4
  %315 = load i8, ptr %314, align 4, !tbaa !123, !range !13, !noundef !14
  %316 = trunc i8 %315 to i1
  %317 = zext i1 %316 to i32
  %318 = or i32 %317, %312
  %319 = icmp ne i32 %318, 0
  %320 = zext i1 %319 to i8
  store i8 %320, ptr %314, align 4, !tbaa !123
  %321 = load ptr, ptr %5, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %321, i32 0, i32 4
  %323 = load i8, ptr %322, align 4, !tbaa !123, !range !13, !noundef !14
  %324 = trunc i8 %323 to i1
  br i1 %324, label %325, label %523

325:                                              ; preds = %302
  %326 = load ptr, ptr %3, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.ImGuiContext, ptr %326, i32 0, i32 98
  %328 = load ptr, ptr %327, align 8, !tbaa !114
  %329 = icmp ne ptr %328, null
  br i1 %329, label %330, label %523

330:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  store i32 0, ptr %12, align 4, !tbaa !116
  br label %331

331:                                              ; preds = %519, %330
  %332 = load i32, ptr %12, align 4, !tbaa !116
  %333 = load ptr, ptr %3, align 8, !tbaa !5
  %334 = getelementptr inbounds %struct.ImGuiContext, ptr %333, i32 0, i32 180
  %335 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %334)
  %336 = icmp slt i32 %332, %335
  br i1 %336, label %338, label %337

337:                                              ; preds = %331
  store i32 5, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %522

338:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %339 = load ptr, ptr %3, align 8, !tbaa !5
  %340 = getelementptr inbounds %struct.ImGuiContext, ptr %339, i32 0, i32 180
  %341 = load i32, ptr %12, align 4, !tbaa !116
  %342 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %340, i32 noundef %341)
  store ptr %342, ptr %13, align 8, !tbaa !5
  %343 = load ptr, ptr %13, align 8, !tbaa !5
  %344 = icmp eq ptr %343, null
  br i1 %344, label %370, label %345

345:                                              ; preds = %338
  %346 = load ptr, ptr %13, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.ImGuiTable, ptr %346, i32 0, i32 12
  %348 = load i32, ptr %347, align 8, !tbaa !124
  %349 = load ptr, ptr %3, align 8, !tbaa !5
  %350 = getelementptr inbounds %struct.ImGuiContext, ptr %349, i32 0, i32 9
  %351 = load i32, ptr %350, align 8, !tbaa !134
  %352 = sub nsw i32 %351, 1
  %353 = icmp slt i32 %348, %352
  br i1 %353, label %370, label %354

354:                                              ; preds = %345
  %355 = load ptr, ptr %13, align 8, !tbaa !5
  %356 = getelementptr inbounds %struct.ImGuiTable, ptr %355, i32 0, i32 55
  %357 = load ptr, ptr %356, align 8, !tbaa !135
  %358 = load ptr, ptr %3, align 8, !tbaa !5
  %359 = getelementptr inbounds %struct.ImGuiContext, ptr %358, i32 0, i32 98
  %360 = load ptr, ptr %359, align 8, !tbaa !114
  %361 = icmp ne ptr %357, %360
  br i1 %361, label %362, label %371

362:                                              ; preds = %354
  %363 = load ptr, ptr %13, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.ImGuiTable, ptr %363, i32 0, i32 56
  %365 = load ptr, ptr %364, align 8, !tbaa !136
  %366 = load ptr, ptr %3, align 8, !tbaa !5
  %367 = getelementptr inbounds %struct.ImGuiContext, ptr %366, i32 0, i32 98
  %368 = load ptr, ptr %367, align 8, !tbaa !114
  %369 = icmp ne ptr %365, %368
  br i1 %369, label %370, label %371

370:                                              ; preds = %362, %345, %338
  store i32 7, ptr %6, align 4
  br label %516

371:                                              ; preds = %362, %354
  %372 = load ptr, ptr %13, align 8, !tbaa !5
  %373 = getelementptr inbounds %struct.ImGuiTable, ptr %372, i32 0, i32 0
  %374 = load i32, ptr %373, align 8, !tbaa !137
  %375 = load ptr, ptr %13, align 8, !tbaa !5
  %376 = getelementptr inbounds %struct.ImGuiTable, ptr %375, i32 0, i32 13
  %377 = load i32, ptr %376, align 4, !tbaa !138
  %378 = load ptr, ptr %13, align 8, !tbaa !5
  %379 = getelementptr inbounds %struct.ImGuiTable, ptr %378, i32 0, i32 55
  %380 = load ptr, ptr %379, align 8, !tbaa !135
  %381 = getelementptr inbounds %struct.ImGuiWindow, ptr %380, i32 0, i32 1
  %382 = load ptr, ptr %381, align 8, !tbaa !115
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.396, i32 noundef %374, i32 noundef %377, ptr noundef %382)
  %383 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %383, label %384, label %394

384:                                              ; preds = %371
  %385 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %386 = load ptr, ptr %13, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.ImGuiTable, ptr %386, i32 0, i32 46
  %388 = getelementptr inbounds %struct.ImRect, ptr %387, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %389 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %388, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %389, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %390 = load ptr, ptr %13, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.ImGuiTable, ptr %390, i32 0, i32 46
  %392 = getelementptr inbounds %struct.ImRect, ptr %391, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %393 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %392, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %393, ptr %16, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %385, 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) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  br label %394

394:                                              ; preds = %384, %371
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 128, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  store i32 0, ptr %19, align 4, !tbaa !116
  br label %395

395:                                              ; preds = %512, %394
  %396 = load i32, ptr %19, align 4, !tbaa !116
  %397 = icmp slt i32 %396, 13
  br i1 %397, label %399, label %398

398:                                              ; preds = %395
  store i32 8, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %515

399:                                              ; preds = %395
  %400 = load i32, ptr %19, align 4, !tbaa !116
  %401 = icmp sge i32 %400, 6
  br i1 %401, label %402, label %467

402:                                              ; preds = %399
  %403 = load i32, ptr %19, align 4, !tbaa !116
  %404 = icmp ne i32 %403, 6
  br i1 %404, label %405, label %409

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

408:                                              ; preds = %405
  br label %512

409:                                              ; preds = %405, %402
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store i32 0, ptr %20, align 4, !tbaa !116
  br label %410

410:                                              ; preds = %463, %409
  %411 = load i32, ptr %20, align 4, !tbaa !116
  %412 = load ptr, ptr %13, align 8, !tbaa !5
  %413 = getelementptr inbounds %struct.ImGuiTable, ptr %412, i32 0, i32 13
  %414 = load i32, ptr %413, align 4, !tbaa !138
  %415 = icmp slt i32 %411, %414
  br i1 %415, label %417, label %416

416:                                              ; preds = %410
  store i32 11, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %466

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

456:                                              ; preds = %417
  %457 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %458 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %459 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %458, ptr noundef nonnull align 4 dereferenceable(8) %24)
  store <2 x float> %459, ptr %23, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %460 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %26, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %461 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %460, ptr noundef nonnull align 4 dereferenceable(8) %26)
  store <2 x float> %461, ptr %25, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %457, 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) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  br label %462

462:                                              ; preds = %456, %417
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #9
  br label %463

463:                                              ; preds = %462
  %464 = load i32, ptr %20, align 4, !tbaa !116
  %465 = add nsw i32 %464, 1
  store i32 %465, ptr %20, align 4, !tbaa !116
  br label %410, !llvm.loop !139

466:                                              ; preds = %416
  br label %511

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

504:                                              ; preds = %467
  %505 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %506 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %507 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %506, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %507, ptr %29, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %508 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %509 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %508, ptr noundef nonnull align 4 dereferenceable(8) %32)
  store <2 x float> %509, ptr %31, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %505, 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) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  br label %510

510:                                              ; preds = %504, %467
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #9
  br label %511

511:                                              ; preds = %510, %466
  br label %512

512:                                              ; preds = %511, %408
  %513 = load i32, ptr %19, align 4, !tbaa !116
  %514 = add nsw i32 %513, 1
  store i32 %514, ptr %19, align 4, !tbaa !116
  br label %395, !llvm.loop !140

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

516:                                              ; preds = %515, %370
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  %517 = load i32, ptr %6, align 4
  switch i32 %517, label %1937 [
    i32 0, label %518
    i32 7, label %519
  ]

518:                                              ; preds = %516
  br label %519

519:                                              ; preds = %518, %516
  %520 = load i32, ptr %12, align 4, !tbaa !116
  %521 = add nsw i32 %520, 1
  store i32 %521, ptr %12, align 4, !tbaa !116
  br label %331, !llvm.loop !141

522:                                              ; preds = %337
  br label %523

523:                                              ; preds = %522, %325, %302
  %524 = load ptr, ptr %3, align 8, !tbaa !5
  %525 = getelementptr inbounds %struct.ImGuiContext, ptr %524, i32 0, i32 86
  %526 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.398, ptr noundef %525)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.399)
  %527 = load ptr, ptr %4, align 8, !tbaa !5
  %528 = getelementptr inbounds %struct.ImGuiIO, ptr %527, i32 0, i32 29
  %529 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.400, ptr noundef %528)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.401)
  %530 = load ptr, ptr %5, align 8, !tbaa !5
  %531 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %530, i32 0, i32 7
  %532 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.402, ptr noundef %531)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.403)
  %533 = load ptr, ptr %5, align 8, !tbaa !5
  %534 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %533, i32 0, i32 7
  %535 = load i8, ptr %534, align 1, !tbaa !142, !range !13, !noundef !14
  %536 = trunc i8 %535 to i1
  br i1 %536, label %537, label %544

537:                                              ; preds = %523
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %538 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.404, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 64, i32 noundef 0, ptr noundef null, ptr noundef null)
  %539 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !143
  %540 = sext i8 %539 to i32
  %541 = icmp ne i32 %540, 0
  br i1 %541, label %542, label %543

542:                                              ; preds = %537
  call void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf)
  br label %543

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

544:                                              ; preds = %543, %523
  call void @_ZN5ImGui7TreePopEv()
  br label %545

545:                                              ; preds = %544, %192
  %546 = load ptr, ptr %3, align 8, !tbaa !5
  %547 = getelementptr inbounds %struct.ImGuiContext, ptr %546, i32 0, i32 22
  %548 = getelementptr inbounds %struct.ImVector.2, ptr %547, i32 0, i32 0
  %549 = load i32, ptr %548, align 8, !tbaa !144
  %550 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.405, ptr noundef @.str.406, i32 noundef %549)
  br i1 %550, label %551, label %604

551:                                              ; preds = %545
  %552 = load ptr, ptr %3, align 8, !tbaa !5
  %553 = getelementptr inbounds %struct.ImGuiContext, ptr %552, i32 0, i32 22
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %553, ptr noundef @.str.407)
  %554 = load ptr, ptr %3, align 8, !tbaa !5
  %555 = getelementptr inbounds %struct.ImGuiContext, ptr %554, i32 0, i32 23
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %555, ptr noundef @.str.408)
  %556 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.409)
  br i1 %556, label %557, label %603

557:                                              ; preds = %551
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %558 = load ptr, ptr %3, align 8, !tbaa !5
  %559 = getelementptr inbounds %struct.ImGuiContext, ptr %558, i32 0, i32 24
  store ptr %559, ptr %33, align 8, !tbaa !5
  %560 = load ptr, ptr %33, align 8, !tbaa !5
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %560, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  %561 = load ptr, ptr %3, align 8, !tbaa !5
  %562 = getelementptr inbounds %struct.ImGuiContext, ptr %561, i32 0, i32 22
  store ptr %562, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #9
  %563 = load ptr, ptr %34, align 8, !tbaa !5
  %564 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %563)
  store ptr %564, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  %565 = load ptr, ptr %34, align 8, !tbaa !5
  %566 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %565)
  store ptr %566, ptr %36, align 8, !tbaa !5
  br label %567

567:                                              ; preds = %586, %557
  %568 = load ptr, ptr %35, align 8, !tbaa !5
  %569 = load ptr, ptr %36, align 8, !tbaa !5
  %570 = icmp ne ptr %568, %569
  br i1 %570, label %572, label %571

571:                                              ; preds = %567
  store i32 14, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  br label %589

572:                                              ; preds = %567
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  %573 = load ptr, ptr %35, align 8, !tbaa !5
  %574 = load ptr, ptr %573, align 8, !tbaa !5
  store ptr %574, ptr %37, align 8, !tbaa !5
  %575 = load ptr, ptr %37, align 8, !tbaa !5
  %576 = getelementptr inbounds %struct.ImGuiWindow, ptr %575, i32 0, i32 78
  %577 = load i32, ptr %576, align 8, !tbaa !145
  %578 = add nsw i32 %577, 1
  %579 = load ptr, ptr %3, align 8, !tbaa !5
  %580 = getelementptr inbounds %struct.ImGuiContext, ptr %579, i32 0, i32 9
  %581 = load i32, ptr %580, align 8, !tbaa !134
  %582 = icmp sge i32 %578, %581
  br i1 %582, label %583, label %585

583:                                              ; preds = %572
  %584 = load ptr, ptr %33, align 8, !tbaa !5
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %584, ptr noundef nonnull align 8 dereferenceable(8) %37)
  br label %585

585:                                              ; preds = %583, %572
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  br label %586

586:                                              ; preds = %585
  %587 = load ptr, ptr %35, align 8, !tbaa !5
  %588 = getelementptr inbounds ptr, ptr %587, i32 1
  store ptr %588, ptr %35, align 8, !tbaa !5
  br label %567

589:                                              ; preds = %571
  %590 = load ptr, ptr %33, align 8, !tbaa !5
  %591 = getelementptr inbounds %struct.ImVector.2, ptr %590, i32 0, i32 2
  %592 = load ptr, ptr %591, align 8, !tbaa !146
  %593 = load ptr, ptr %33, align 8, !tbaa !5
  %594 = getelementptr inbounds %struct.ImVector.2, ptr %593, i32 0, i32 0
  %595 = load i32, ptr %594, align 8, !tbaa !147
  %596 = sext i32 %595 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %592, i64 noundef %596, i64 noundef 8, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %597 = load ptr, ptr %33, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.ImVector.2, ptr %597, i32 0, i32 2
  %599 = load ptr, ptr %598, align 8, !tbaa !146
  %600 = load ptr, ptr %33, align 8, !tbaa !5
  %601 = getelementptr inbounds %struct.ImVector.2, ptr %600, i32 0, i32 0
  %602 = load i32, ptr %601, align 8, !tbaa !147
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %599, i32 noundef %602, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  br label %603

603:                                              ; preds = %589, %551
  call void @_ZN5ImGui7TreePopEv()
  br label %604

604:                                              ; preds = %603, %545
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  store i32 0, ptr %38, align 4, !tbaa !116
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #9
  %605 = load ptr, ptr %3, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.ImGuiContext, ptr %605, i32 0, i32 97
  store ptr %606, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  %607 = load ptr, ptr %39, align 8, !tbaa !5
  %608 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %607)
  store ptr %608, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  %609 = load ptr, ptr %39, align 8, !tbaa !5
  %610 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %609)
  store ptr %610, ptr %41, align 8, !tbaa !5
  br label %611

611:                                              ; preds = %626, %604
  %612 = load ptr, ptr %40, align 8, !tbaa !5
  %613 = load ptr, ptr %41, align 8, !tbaa !5
  %614 = icmp ne ptr %612, %613
  br i1 %614, label %616, label %615

615:                                              ; preds = %611
  store i32 16, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  br label %629

616:                                              ; preds = %611
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  %617 = load ptr, ptr %40, align 8, !tbaa !5
  %618 = load ptr, ptr %617, align 8, !tbaa !5
  store ptr %618, ptr %42, align 8, !tbaa !5
  %619 = load ptr, ptr %42, align 8, !tbaa !5
  %620 = getelementptr inbounds %struct.ImGuiViewportP, ptr %619, i32 0, i32 3
  %621 = getelementptr inbounds %struct.ImDrawData, ptr %620, i32 0, i32 4
  %622 = getelementptr inbounds %struct.ImVector.47, ptr %621, i32 0, i32 0
  %623 = load i32, ptr %622, align 8, !tbaa !148
  %624 = load i32, ptr %38, align 4, !tbaa !116
  %625 = add nsw i32 %624, %623
  store i32 %625, ptr %38, align 4, !tbaa !116
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  br label %626

626:                                              ; preds = %616
  %627 = load ptr, ptr %40, align 8, !tbaa !5
  %628 = getelementptr inbounds ptr, ptr %627, i32 1
  store ptr %628, ptr %40, align 8, !tbaa !5
  br label %611

629:                                              ; preds = %615
  %630 = load i32, ptr %38, align 4, !tbaa !116
  %631 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.410, ptr noundef @.str.411, i32 noundef %630)
  br i1 %631, label %632, label %678

632:                                              ; preds = %629
  %633 = load ptr, ptr %5, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %633, i32 0, i32 5
  %635 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.412, ptr noundef %634)
  %636 = load ptr, ptr %5, align 8, !tbaa !5
  %637 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %636, i32 0, i32 6
  %638 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.413, ptr noundef %637)
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  %639 = load ptr, ptr %3, align 8, !tbaa !5
  %640 = getelementptr inbounds %struct.ImGuiContext, ptr %639, i32 0, i32 97
  store ptr %640, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  %641 = load ptr, ptr %43, align 8, !tbaa !5
  %642 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %641)
  store ptr %642, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  %643 = load ptr, ptr %43, align 8, !tbaa !5
  %644 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %643)
  store ptr %644, ptr %45, align 8, !tbaa !5
  br label %645

645:                                              ; preds = %674, %632
  %646 = load ptr, ptr %44, align 8, !tbaa !5
  %647 = load ptr, ptr %45, align 8, !tbaa !5
  %648 = icmp ne ptr %646, %647
  br i1 %648, label %650, label %649

649:                                              ; preds = %645
  store i32 18, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  br label %677

650:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #9
  %651 = load ptr, ptr %44, align 8, !tbaa !5
  %652 = load ptr, ptr %651, align 8, !tbaa !5
  store ptr %652, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  %653 = load ptr, ptr %46, align 8, !tbaa !5
  %654 = getelementptr inbounds %struct.ImGuiViewportP, ptr %653, i32 0, i32 3
  %655 = getelementptr inbounds %struct.ImDrawData, ptr %654, i32 0, i32 4
  store ptr %655, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  %656 = load ptr, ptr %47, align 8, !tbaa !5
  %657 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %656)
  store ptr %657, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %658 = load ptr, ptr %47, align 8, !tbaa !5
  %659 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %658)
  store ptr %659, ptr %49, align 8, !tbaa !5
  br label %660

660:                                              ; preds = %670, %650
  %661 = load ptr, ptr %48, align 8, !tbaa !5
  %662 = load ptr, ptr %49, align 8, !tbaa !5
  %663 = icmp ne ptr %661, %662
  br i1 %663, label %665, label %664

664:                                              ; preds = %660
  store i32 20, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  br label %673

665:                                              ; preds = %660
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %666 = load ptr, ptr %48, align 8, !tbaa !5
  %667 = load ptr, ptr %666, align 8, !tbaa !5
  store ptr %667, ptr %50, align 8, !tbaa !5
  %668 = load ptr, ptr %46, align 8, !tbaa !5
  %669 = load ptr, ptr %50, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef %668, ptr noundef %669, ptr noundef @.str.414)
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  br label %670

670:                                              ; preds = %665
  %671 = load ptr, ptr %48, align 8, !tbaa !5
  %672 = getelementptr inbounds ptr, ptr %671, i32 1
  store ptr %672, ptr %48, align 8, !tbaa !5
  br label %660

673:                                              ; preds = %664
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  br label %674

674:                                              ; preds = %673
  %675 = load ptr, ptr %44, align 8, !tbaa !5
  %676 = getelementptr inbounds ptr, ptr %675, i32 1
  store ptr %676, ptr %44, align 8, !tbaa !5
  br label %645

677:                                              ; preds = %649
  call void @_ZN5ImGui7TreePopEv()
  br label %678

678:                                              ; preds = %677, %629
  %679 = load ptr, ptr %3, align 8, !tbaa !5
  %680 = getelementptr inbounds %struct.ImGuiContext, ptr %679, i32 0, i32 97
  %681 = getelementptr inbounds %struct.ImVector.14, ptr %680, i32 0, i32 0
  %682 = load i32, ptr %681, align 8, !tbaa !154
  %683 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.415, ptr noundef @.str.416, i32 noundef %682)
  br i1 %683, label %684, label %709

684:                                              ; preds = %678
  call void @_ZN5ImGui15SetNextItemOpenEbi(i1 noundef zeroext true, i32 noundef 2)
  %685 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.417)
  br i1 %685, label %686, label %687

686:                                              ; preds = %684
  call void @_ZL25RenderViewportsThumbnailsv()
  call void @_ZN5ImGui7TreePopEv()
  br label %687

687:                                              ; preds = %686, %684
  %688 = load ptr, ptr %5, align 8, !tbaa !5
  %689 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %688, i32 0, i32 12
  store i32 0, ptr %689, align 4, !tbaa !155
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  %690 = load ptr, ptr %3, align 8, !tbaa !5
  %691 = getelementptr inbounds %struct.ImGuiContext, ptr %690, i32 0, i32 97
  store ptr %691, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  %692 = load ptr, ptr %51, align 8, !tbaa !5
  %693 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %692)
  store ptr %693, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %694 = load ptr, ptr %51, align 8, !tbaa !5
  %695 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %694)
  store ptr %695, ptr %53, align 8, !tbaa !5
  br label %696

696:                                              ; preds = %705, %687
  %697 = load ptr, ptr %52, align 8, !tbaa !5
  %698 = load ptr, ptr %53, align 8, !tbaa !5
  %699 = icmp ne ptr %697, %698
  br i1 %699, label %701, label %700

700:                                              ; preds = %696
  store i32 22, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  br label %708

701:                                              ; preds = %696
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  %702 = load ptr, ptr %52, align 8, !tbaa !5
  %703 = load ptr, ptr %702, align 8, !tbaa !5
  store ptr %703, ptr %54, align 8, !tbaa !5
  %704 = load ptr, ptr %54, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %704)
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  br label %705

705:                                              ; preds = %701
  %706 = load ptr, ptr %52, align 8, !tbaa !5
  %707 = getelementptr inbounds ptr, ptr %706, i32 1
  store ptr %707, ptr %52, align 8, !tbaa !5
  br label %696

708:                                              ; preds = %700
  call void @_ZN5ImGui7TreePopEv()
  br label %709

709:                                              ; preds = %708, %678
  %710 = load ptr, ptr %3, align 8, !tbaa !5
  %711 = getelementptr inbounds %struct.ImGuiContext, ptr %710, i32 0, i32 94
  %712 = getelementptr inbounds %struct.ImVector.12, ptr %711, i32 0, i32 0
  %713 = load i32, ptr %712, align 8, !tbaa !156
  %714 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.418, ptr noundef @.str.419, i32 noundef %713)
  br i1 %714, label %715, label %801

715:                                              ; preds = %709
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  %716 = load ptr, ptr %3, align 8, !tbaa !5
  %717 = getelementptr inbounds %struct.ImGuiContext, ptr %716, i32 0, i32 94
  store ptr %717, ptr %55, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %718 = load ptr, ptr %55, align 8, !tbaa !5
  %719 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %718)
  store ptr %719, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #9
  %720 = load ptr, ptr %55, align 8, !tbaa !5
  %721 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %720)
  store ptr %721, ptr %57, align 8, !tbaa !5
  br label %722

722:                                              ; preds = %797, %715
  %723 = load ptr, ptr %56, align 8, !tbaa !5
  %724 = load ptr, ptr %57, align 8, !tbaa !5
  %725 = icmp ne ptr %723, %724
  br i1 %725, label %727, label %726

726:                                              ; preds = %722
  store i32 24, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  br label %800

727:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #9
  %728 = load ptr, ptr %56, align 8, !tbaa !5
  store ptr %728, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #9
  %729 = load ptr, ptr %58, align 8, !tbaa !5
  %730 = getelementptr inbounds %struct.ImGuiPopupData, ptr %729, i32 0, i32 2
  %731 = load ptr, ptr %730, align 8, !tbaa !157
  store ptr %731, ptr %59, align 8, !tbaa !5
  %732 = load ptr, ptr %58, align 8, !tbaa !5
  %733 = getelementptr inbounds %struct.ImGuiPopupData, ptr %732, i32 0, i32 0
  %734 = load i32, ptr %733, align 8, !tbaa !159
  %735 = load ptr, ptr %59, align 8, !tbaa !5
  %736 = icmp ne ptr %735, null
  br i1 %736, label %737, label %741

737:                                              ; preds = %727
  %738 = load ptr, ptr %59, align 8, !tbaa !5
  %739 = getelementptr inbounds %struct.ImGuiWindow, ptr %738, i32 0, i32 1
  %740 = load ptr, ptr %739, align 8, !tbaa !115
  br label %742

741:                                              ; preds = %727
  br label %742

742:                                              ; preds = %741, %737
  %743 = phi ptr [ %740, %737 ], [ @.str.421, %741 ]
  %744 = load ptr, ptr %59, align 8, !tbaa !5
  %745 = icmp ne ptr %744, null
  br i1 %745, label %746, label %752

746:                                              ; preds = %742
  %747 = load ptr, ptr %59, align 8, !tbaa !5
  %748 = getelementptr inbounds %struct.ImGuiWindow, ptr %747, i32 0, i32 3
  %749 = load i32, ptr %748, align 4, !tbaa !160
  %750 = and i32 %749, 16777216
  %751 = icmp ne i32 %750, 0
  br label %752

752:                                              ; preds = %746, %742
  %753 = phi i1 [ false, %742 ], [ %751, %746 ]
  %754 = zext i1 %753 to i64
  %755 = select i1 %753, ptr @.str.422, ptr @.str.17
  %756 = load ptr, ptr %59, align 8, !tbaa !5
  %757 = icmp ne ptr %756, null
  br i1 %757, label %758, label %764

758:                                              ; preds = %752
  %759 = load ptr, ptr %59, align 8, !tbaa !5
  %760 = getelementptr inbounds %struct.ImGuiWindow, ptr %759, i32 0, i32 3
  %761 = load i32, ptr %760, align 4, !tbaa !160
  %762 = and i32 %761, 268435456
  %763 = icmp ne i32 %762, 0
  br label %764

764:                                              ; preds = %758, %752
  %765 = phi i1 [ false, %752 ], [ %763, %758 ]
  %766 = zext i1 %765 to i64
  %767 = select i1 %765, ptr @.str.423, ptr @.str.17
  %768 = load ptr, ptr %58, align 8, !tbaa !5
  %769 = getelementptr inbounds %struct.ImGuiPopupData, ptr %768, i32 0, i32 3
  %770 = load ptr, ptr %769, align 8, !tbaa !161
  %771 = icmp ne ptr %770, null
  br i1 %771, label %772, label %778

772:                                              ; preds = %764
  %773 = load ptr, ptr %58, align 8, !tbaa !5
  %774 = getelementptr inbounds %struct.ImGuiPopupData, ptr %773, i32 0, i32 3
  %775 = load ptr, ptr %774, align 8, !tbaa !161
  %776 = getelementptr inbounds %struct.ImGuiWindow, ptr %775, i32 0, i32 1
  %777 = load ptr, ptr %776, align 8, !tbaa !115
  br label %779

778:                                              ; preds = %764
  br label %779

779:                                              ; preds = %778, %772
  %780 = phi ptr [ %777, %772 ], [ @.str.421, %778 ]
  %781 = load ptr, ptr %59, align 8, !tbaa !5
  %782 = icmp ne ptr %781, null
  br i1 %782, label %783, label %794

783:                                              ; preds = %779
  %784 = load ptr, ptr %59, align 8, !tbaa !5
  %785 = getelementptr inbounds %struct.ImGuiWindow, ptr %784, i32 0, i32 88
  %786 = load ptr, ptr %785, align 8, !tbaa !162
  %787 = icmp ne ptr %786, null
  br i1 %787, label %788, label %794

788:                                              ; preds = %783
  %789 = load ptr, ptr %59, align 8, !tbaa !5
  %790 = getelementptr inbounds %struct.ImGuiWindow, ptr %789, i32 0, i32 88
  %791 = load ptr, ptr %790, align 8, !tbaa !162
  %792 = getelementptr inbounds %struct.ImGuiWindow, ptr %791, i32 0, i32 1
  %793 = load ptr, ptr %792, align 8, !tbaa !115
  br label %795

794:                                              ; preds = %783, %779
  br label %795

795:                                              ; preds = %794, %788
  %796 = phi ptr [ %793, %788 ], [ @.str.421, %794 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.420, i32 noundef %734, ptr noundef %743, ptr noundef %755, ptr noundef %767, ptr noundef %780, ptr noundef %796)
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  br label %797

797:                                              ; preds = %795
  %798 = load ptr, ptr %56, align 8, !tbaa !5
  %799 = getelementptr inbounds %struct.ImGuiPopupData, ptr %798, i32 1
  store ptr %799, ptr %56, align 8, !tbaa !5
  br label %722

800:                                              ; preds = %726
  call void @_ZN5ImGui7TreePopEv()
  br label %801

801:                                              ; preds = %800, %709
  %802 = load ptr, ptr %3, align 8, !tbaa !5
  %803 = getelementptr inbounds %struct.ImGuiContext, ptr %802, i32 0, i32 184
  %804 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %803)
  %805 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.424, ptr noundef @.str.425, i32 noundef %804)
  br i1 %805, label %806, label %829

806:                                              ; preds = %801
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  store i32 0, ptr %60, align 4, !tbaa !116
  br label %807

807:                                              ; preds = %825, %806
  %808 = load i32, ptr %60, align 4, !tbaa !116
  %809 = load ptr, ptr %3, align 8, !tbaa !5
  %810 = getelementptr inbounds %struct.ImGuiContext, ptr %809, i32 0, i32 184
  %811 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %810)
  %812 = icmp slt i32 %808, %811
  br i1 %812, label %814, label %813

813:                                              ; preds = %807
  store i32 26, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %828

814:                                              ; preds = %807
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #9
  %815 = load ptr, ptr %3, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.ImGuiContext, ptr %815, i32 0, i32 184
  %817 = load i32, ptr %60, align 4, !tbaa !116
  %818 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %816, i32 noundef %817)
  store ptr %818, ptr %61, align 8, !tbaa !5
  %819 = load ptr, ptr %61, align 8, !tbaa !5
  %820 = icmp ne ptr %819, null
  br i1 %820, label %821, label %824

821:                                              ; preds = %814
  %822 = load ptr, ptr %61, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef %822)
  %823 = load ptr, ptr %61, align 8, !tbaa !5
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef %823, ptr noundef @.str.426)
  call void @_ZN5ImGui5PopIDEv()
  br label %824

824:                                              ; preds = %821, %814
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  br label %825

825:                                              ; preds = %824
  %826 = load i32, ptr %60, align 4, !tbaa !116
  %827 = add nsw i32 %826, 1
  store i32 %827, ptr %60, align 4, !tbaa !116
  br label %807, !llvm.loop !163

828:                                              ; preds = %813
  call void @_ZN5ImGui7TreePopEv()
  br label %829

829:                                              ; preds = %828, %801
  %830 = load ptr, ptr %3, align 8, !tbaa !5
  %831 = getelementptr inbounds %struct.ImGuiContext, ptr %830, i32 0, i32 180
  %832 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %831)
  %833 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.427, ptr noundef @.str.428, i32 noundef %832)
  br i1 %833, label %834, label %856

834:                                              ; preds = %829
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  store i32 0, ptr %62, align 4, !tbaa !116
  br label %835

835:                                              ; preds = %852, %834
  %836 = load i32, ptr %62, align 4, !tbaa !116
  %837 = load ptr, ptr %3, align 8, !tbaa !5
  %838 = getelementptr inbounds %struct.ImGuiContext, ptr %837, i32 0, i32 180
  %839 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %838)
  %840 = icmp slt i32 %836, %839
  br i1 %840, label %842, label %841

841:                                              ; preds = %835
  store i32 29, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %855

842:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  %843 = load ptr, ptr %3, align 8, !tbaa !5
  %844 = getelementptr inbounds %struct.ImGuiContext, ptr %843, i32 0, i32 180
  %845 = load i32, ptr %62, align 4, !tbaa !116
  %846 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %844, i32 noundef %845)
  store ptr %846, ptr %63, align 8, !tbaa !5
  %847 = load ptr, ptr %63, align 8, !tbaa !5
  %848 = icmp ne ptr %847, null
  br i1 %848, label %849, label %851

849:                                              ; preds = %842
  %850 = load ptr, ptr %63, align 8, !tbaa !5
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef %850)
  br label %851

851:                                              ; preds = %849, %842
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  br label %852

852:                                              ; preds = %851
  %853 = load i32, ptr %62, align 4, !tbaa !116
  %854 = add nsw i32 %853, 1
  store i32 %854, ptr %62, align 4, !tbaa !116
  br label %835, !llvm.loop !164

855:                                              ; preds = %841
  call void @_ZN5ImGui7TreePopEv()
  br label %856

856:                                              ; preds = %855, %829
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  %857 = load ptr, ptr %3, align 8, !tbaa !5
  %858 = getelementptr inbounds %struct.ImGuiContext, ptr %857, i32 0, i32 2
  %859 = getelementptr inbounds %struct.ImGuiIO, ptr %858, i32 0, i32 8
  %860 = load ptr, ptr %859, align 8, !tbaa !165
  store ptr %860, ptr %64, align 8, !tbaa !5
  %861 = load ptr, ptr %64, align 8, !tbaa !5
  %862 = getelementptr inbounds %struct.ImFontAtlas, ptr %861, i32 0, i32 17
  %863 = getelementptr inbounds %struct.ImVector.8, ptr %862, i32 0, i32 0
  %864 = load i32, ptr %863, align 8, !tbaa !166
  %865 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.429, ptr noundef @.str.430, i32 noundef %864)
  br i1 %865, label %866, label %868

866:                                              ; preds = %856
  %867 = load ptr, ptr %64, align 8, !tbaa !5
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef %867)
  call void @_ZN5ImGui7TreePopEv()
  br label %868

868:                                              ; preds = %866, %856
  %869 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.431)
  br i1 %869, label %870, label %873

870:                                              ; preds = %868
  %871 = load ptr, ptr %3, align 8, !tbaa !5
  %872 = getelementptr inbounds %struct.ImGuiContext, ptr %871, i32 0, i32 196
  call void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef %872)
  call void @_ZN5ImGui7TreePopEv()
  br label %873

873:                                              ; preds = %870, %868
  %874 = load ptr, ptr %3, align 8, !tbaa !5
  %875 = getelementptr inbounds %struct.ImGuiContext, ptr %874, i32 0, i32 225
  %876 = getelementptr inbounds %struct.ImGuiTypingSelectState, ptr %875, i32 0, i32 1
  %877 = getelementptr inbounds [64 x i8], ptr %876, i64 0, i64 0
  %878 = load i8, ptr %877, align 8, !tbaa !143
  %879 = sext i8 %878 to i32
  %880 = icmp ne i32 %879, 0
  %881 = zext i1 %880 to i64
  %882 = select i1 %880, i32 1, i32 0
  %883 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.432, ptr noundef @.str.433, i32 noundef %882)
  br i1 %883, label %884, label %887

884:                                              ; preds = %873
  %885 = load ptr, ptr %3, align 8, !tbaa !5
  %886 = getelementptr inbounds %struct.ImGuiContext, ptr %885, i32 0, i32 225
  call void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef %886)
  call void @_ZN5ImGui7TreePopEv()
  br label %887

887:                                              ; preds = %884, %873
  %888 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.434)
  br i1 %888, label %889, label %1010

889:                                              ; preds = %887
  %890 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.435)
  br i1 %890, label %891, label %892

891:                                              ; preds = %889
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %892

892:                                              ; preds = %891, %889
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %893 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.436)
  br i1 %893, label %894, label %896

894:                                              ; preds = %892
  %895 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %896

896:                                              ; preds = %894, %892
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %897 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.437)
  br i1 %897, label %898, label %903

898:                                              ; preds = %896
  %899 = load ptr, ptr %3, align 8, !tbaa !5
  %900 = getelementptr inbounds %struct.ImGuiContext, ptr %899, i32 0, i32 2
  %901 = getelementptr inbounds %struct.ImGuiIO, ptr %900, i32 0, i32 5
  %902 = load ptr, ptr %901, align 8, !tbaa !170
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %902)
  br label %903

903:                                              ; preds = %898, %896
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %904 = load ptr, ptr %3, align 8, !tbaa !5
  %905 = getelementptr inbounds %struct.ImGuiContext, ptr %904, i32 0, i32 2
  %906 = getelementptr inbounds %struct.ImGuiIO, ptr %905, i32 0, i32 5
  %907 = load ptr, ptr %906, align 8, !tbaa !170
  %908 = icmp ne ptr %907, null
  br i1 %908, label %909, label %914

909:                                              ; preds = %903
  %910 = load ptr, ptr %3, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.ImGuiContext, ptr %910, i32 0, i32 2
  %912 = getelementptr inbounds %struct.ImGuiIO, ptr %911, i32 0, i32 5
  %913 = load ptr, ptr %912, align 8, !tbaa !170
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.438, ptr noundef %913)
  br label %915

914:                                              ; preds = %903
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef @.str.162, ptr noundef null)
  br label %915

915:                                              ; preds = %914, %909
  %916 = load ptr, ptr %4, align 8, !tbaa !5
  %917 = getelementptr inbounds %struct.ImGuiIO, ptr %916, i32 0, i32 31
  %918 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.439, ptr noundef %917)
  %919 = load ptr, ptr %3, align 8, !tbaa !5
  %920 = getelementptr inbounds %struct.ImGuiContext, ptr %919, i32 0, i32 229
  %921 = load float, ptr %920, align 4, !tbaa !171
  %922 = fpext float %921 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.440, double noundef %922)
  %923 = load ptr, ptr %3, align 8, !tbaa !5
  %924 = getelementptr inbounds %struct.ImGuiContext, ptr %923, i32 0, i32 231
  %925 = getelementptr inbounds %struct.ImVector.28, ptr %924, i32 0, i32 0
  %926 = load i32, ptr %925, align 8, !tbaa !172
  %927 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.441, ptr noundef @.str.442, i32 noundef %926)
  br i1 %927, label %928, label %949

928:                                              ; preds = %915
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %929 = load ptr, ptr %3, align 8, !tbaa !5
  %930 = getelementptr inbounds %struct.ImGuiContext, ptr %929, i32 0, i32 231
  store ptr %930, ptr %65, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  %931 = load ptr, ptr %65, align 8, !tbaa !5
  %932 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %931)
  store ptr %932, ptr %66, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #9
  %933 = load ptr, ptr %65, align 8, !tbaa !5
  %934 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %933)
  store ptr %934, ptr %67, align 8, !tbaa !5
  br label %935

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

939:                                              ; preds = %935
  store i32 32, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  br label %948

940:                                              ; preds = %935
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #9
  %941 = load ptr, ptr %66, align 8, !tbaa !5
  store ptr %941, ptr %68, align 8, !tbaa !5
  %942 = load ptr, ptr %68, align 8, !tbaa !5
  %943 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %942, i32 0, i32 0
  %944 = load ptr, ptr %943, align 8, !tbaa !173
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.438, ptr noundef %944)
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  br label %945

945:                                              ; preds = %940
  %946 = load ptr, ptr %66, align 8, !tbaa !5
  %947 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %946, i32 1
  store ptr %947, ptr %66, align 8, !tbaa !5
  br label %935

948:                                              ; preds = %939
  call void @_ZN5ImGui7TreePopEv()
  br label %949

949:                                              ; preds = %948, %915
  %950 = load ptr, ptr %3, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.ImGuiContext, ptr %950, i32 0, i32 232
  %952 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %951)
  %953 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.443, ptr noundef @.str.444, i32 noundef %952)
  br i1 %953, label %954, label %970

954:                                              ; preds = %949
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #9
  %955 = load ptr, ptr %3, align 8, !tbaa !5
  %956 = getelementptr inbounds %struct.ImGuiContext, ptr %955, i32 0, i32 232
  %957 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %956)
  store ptr %957, ptr %69, align 8, !tbaa !5
  br label %958

958:                                              ; preds = %964, %954
  %959 = load ptr, ptr %69, align 8, !tbaa !5
  %960 = icmp ne ptr %959, null
  br i1 %960, label %962, label %961

961:                                              ; preds = %958
  store i32 34, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #9
  br label %969

962:                                              ; preds = %958
  %963 = load ptr, ptr %69, align 8, !tbaa !5
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef %963)
  br label %964

964:                                              ; preds = %962
  %965 = load ptr, ptr %3, align 8, !tbaa !5
  %966 = getelementptr inbounds %struct.ImGuiContext, ptr %965, i32 0, i32 232
  %967 = load ptr, ptr %69, align 8, !tbaa !5
  %968 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %966, ptr noundef %967)
  store ptr %968, ptr %69, align 8, !tbaa !5
  br label %958, !llvm.loop !175

969:                                              ; preds = %961
  call void @_ZN5ImGui7TreePopEv()
  br label %970

970:                                              ; preds = %969, %949
  %971 = load ptr, ptr %3, align 8, !tbaa !5
  %972 = getelementptr inbounds %struct.ImGuiContext, ptr %971, i32 0, i32 233
  %973 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %972)
  %974 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.445, ptr noundef @.str.446, i32 noundef %973)
  br i1 %974, label %975, label %991

975:                                              ; preds = %970
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #9
  %976 = load ptr, ptr %3, align 8, !tbaa !5
  %977 = getelementptr inbounds %struct.ImGuiContext, ptr %976, i32 0, i32 233
  %978 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %977)
  store ptr %978, ptr %70, align 8, !tbaa !5
  br label %979

979:                                              ; preds = %985, %975
  %980 = load ptr, ptr %70, align 8, !tbaa !5
  %981 = icmp ne ptr %980, null
  br i1 %981, label %983, label %982

982:                                              ; preds = %979
  store i32 37, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  br label %990

983:                                              ; preds = %979
  %984 = load ptr, ptr %70, align 8, !tbaa !5
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef %984)
  br label %985

985:                                              ; preds = %983
  %986 = load ptr, ptr %3, align 8, !tbaa !5
  %987 = getelementptr inbounds %struct.ImGuiContext, ptr %986, i32 0, i32 233
  %988 = load ptr, ptr %70, align 8, !tbaa !5
  %989 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %987, ptr noundef %988)
  store ptr %989, ptr %70, align 8, !tbaa !5
  br label %979, !llvm.loop !176

990:                                              ; preds = %982
  call void @_ZN5ImGui7TreePopEv()
  br label %991

991:                                              ; preds = %990, %970
  %992 = load ptr, ptr %3, align 8, !tbaa !5
  %993 = getelementptr inbounds %struct.ImGuiContext, ptr %992, i32 0, i32 230
  %994 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %993)
  %995 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.447, ptr noundef @.str.448, i32 noundef %994)
  br i1 %995, label %996, label %1009

996:                                              ; preds = %991
  %997 = load ptr, ptr %3, align 8, !tbaa !5
  %998 = getelementptr inbounds %struct.ImGuiContext, ptr %997, i32 0, i32 230
  %999 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %998)
  %1000 = load ptr, ptr %3, align 8, !tbaa !5
  %1001 = getelementptr inbounds %struct.ImGuiContext, ptr %1000, i32 0, i32 230
  %1002 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %1001, i32 0, i32 0
  %1003 = getelementptr inbounds %struct.ImVector.25, ptr %1002, i32 0, i32 0
  %1004 = load i32, ptr %1003, align 8, !tbaa !177
  %1005 = sext i32 %1004 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  %1006 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %1007 = fmul float %1006, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %71, float noundef 0xB810000000000000, float noundef %1007)
  %1008 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.449, ptr noundef %999, i64 noundef %1005, ptr noundef nonnull align 4 dereferenceable(8) %71, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @_ZN5ImGui7TreePopEv()
  br label %1009

1009:                                             ; preds = %996, %991
  call void @_ZN5ImGui7TreePopEv()
  br label %1010

1010:                                             ; preds = %1009, %887
  %1011 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.450)
  br i1 %1011, label %1012, label %1076

1012:                                             ; preds = %1010
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #9
  %1013 = load ptr, ptr %3, align 8, !tbaa !5
  %1014 = getelementptr inbounds %struct.ImGuiContext, ptr %1013, i32 0, i32 264
  store ptr %1014, ptr %72, align 8, !tbaa !5
  %1015 = load ptr, ptr %72, align 8, !tbaa !5
  %1016 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1015, i32 0, i32 0
  %1017 = load i32, ptr %1016, align 4, !tbaa !178
  %1018 = load ptr, ptr %72, align 8, !tbaa !5
  %1019 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1018, i32 0, i32 1
  %1020 = load i32, ptr %1019, align 4, !tbaa !179
  %1021 = sub nsw i32 %1017, %1020
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.451, i32 noundef %1021)
  %1022 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.452)
  br i1 %1022, label %1023, label %1026

1023:                                             ; preds = %1012
  %1024 = load ptr, ptr %3, align 8, !tbaa !5
  %1025 = getelementptr inbounds %struct.ImGuiContext, ptr %1024, i32 0, i32 15
  store i8 1, ptr %1025, align 1, !tbaa !180
  br label %1026

1026:                                             ; preds = %1023, %1012
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.453)
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  store i32 6, ptr %73, align 4, !tbaa !116
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %1027 = load i32, ptr %73, align 4, !tbaa !116
  %1028 = sub nsw i32 %1027, 1
  store i32 %1028, ptr %74, align 4, !tbaa !116
  br label %1029

1029:                                             ; preds = %1072, %1026
  %1030 = load i32, ptr %74, align 4, !tbaa !116
  %1031 = icmp sge i32 %1030, 0
  br i1 %1031, label %1033, label %1032

1032:                                             ; preds = %1029
  store i32 40, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %1075

1033:                                             ; preds = %1029
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #9
  %1034 = load ptr, ptr %72, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1034, i32 0, i32 3
  %1036 = load ptr, ptr %72, align 8, !tbaa !5
  %1037 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1036, i32 0, i32 2
  %1038 = load i16, ptr %1037, align 4, !tbaa !181
  %1039 = sext i16 %1038 to i32
  %1040 = load i32, ptr %74, align 4, !tbaa !116
  %1041 = sub nsw i32 %1039, %1040
  %1042 = load i32, ptr %73, align 4, !tbaa !116
  %1043 = add nsw i32 %1041, %1042
  %1044 = load i32, ptr %73, align 4, !tbaa !116
  %1045 = srem i32 %1043, %1044
  %1046 = sext i32 %1045 to i64
  %1047 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %1035, i64 0, i64 %1046
  store ptr %1047, ptr %75, align 8, !tbaa !5
  %1048 = load ptr, ptr %75, align 8, !tbaa !5
  %1049 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1048, i32 0, i32 0
  %1050 = load i32, ptr %1049, align 4, !tbaa !182
  %1051 = load ptr, ptr %75, align 8, !tbaa !5
  %1052 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1051, i32 0, i32 1
  %1053 = load i16, ptr %1052, align 4, !tbaa !184
  %1054 = sext i16 %1053 to i32
  %1055 = load ptr, ptr %75, align 8, !tbaa !5
  %1056 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1055, i32 0, i32 2
  %1057 = load i16, ptr %1056, align 2, !tbaa !185
  %1058 = sext i16 %1057 to i32
  %1059 = sub nsw i32 %1054, %1058
  %1060 = load ptr, ptr %75, align 8, !tbaa !5
  %1061 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1060, i32 0, i32 1
  %1062 = load i16, ptr %1061, align 4, !tbaa !184
  %1063 = sext i16 %1062 to i32
  %1064 = load ptr, ptr %75, align 8, !tbaa !5
  %1065 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1064, i32 0, i32 2
  %1066 = load i16, ptr %1065, align 2, !tbaa !185
  %1067 = sext i16 %1066 to i32
  %1068 = load i32, ptr %74, align 4, !tbaa !116
  %1069 = icmp eq i32 %1068, 0
  %1070 = zext i1 %1069 to i64
  %1071 = select i1 %1069, ptr @.str.455, ptr @.str.17
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.454, i32 noundef %1050, i32 noundef %1059, i32 noundef %1063, i32 noundef %1067, ptr noundef %1071)
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  br label %1072

1072:                                             ; preds = %1033
  %1073 = load i32, ptr %74, align 4, !tbaa !116
  %1074 = add nsw i32 %1073, -1
  store i32 %1074, ptr %74, align 4, !tbaa !116
  br label %1029, !llvm.loop !186

1075:                                             ; preds = %1032
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #9
  br label %1076

1076:                                             ; preds = %1075, %1010
  %1077 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.456)
  br i1 %1077, label %1078, label %1487

1078:                                             ; preds = %1076
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.457)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.458)
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  store i32 0, ptr %76, align 4, !tbaa !187
  br label %1079

1079:                                             ; preds = %1103, %1078
  %1080 = load i32, ptr %76, align 4, !tbaa !187
  %1081 = icmp slt i32 %1080, 666
  br i1 %1081, label %1083, label %1082

1082:                                             ; preds = %1079
  store i32 43, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %1106

1083:                                             ; preds = %1079
  %1084 = load i32, ptr %76, align 4, !tbaa !187
  %1085 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1084)
  br i1 %1085, label %1089, label %1086

1086:                                             ; preds = %1083
  %1087 = load i32, ptr %76, align 4, !tbaa !187
  %1088 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %1087)
  br i1 %1088, label %1090, label %1089

1089:                                             ; preds = %1086, %1083
  br label %1103

1090:                                             ; preds = %1086
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1091 = load i32, ptr %76, align 4, !tbaa !187
  %1092 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1091)
  %1093 = zext i1 %1092 to i64
  %1094 = select i1 %1092, ptr @.str.438, ptr @.str.459
  %1095 = load i32, ptr %76, align 4, !tbaa !187
  %1096 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1095)
  %1097 = load i32, ptr %76, align 4, !tbaa !187
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1094, ptr noundef %1096, i32 noundef %1097)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1098 = load i32, ptr %76, align 4, !tbaa !187
  %1099 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %1098)
  %1100 = getelementptr inbounds %struct.ImGuiKeyData, ptr %1099, i32 0, i32 1
  %1101 = load float, ptr %1100, align 4, !tbaa !188
  %1102 = fpext float %1101 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.460, double noundef %1102)
  br label %1103

1103:                                             ; preds = %1090, %1089
  %1104 = load i32, ptr %76, align 4, !tbaa !187
  %1105 = add nsw i32 %1104, 1
  store i32 %1105, ptr %76, align 4, !tbaa !187
  br label %1079, !llvm.loop !190

1106:                                             ; preds = %1082
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.461)
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  store i32 0, ptr %77, align 4, !tbaa !187
  br label %1107

1107:                                             ; preds = %1126, %1106
  %1108 = load i32, ptr %77, align 4, !tbaa !187
  %1109 = icmp slt i32 %1108, 666
  br i1 %1109, label %1111, label %1110

1110:                                             ; preds = %1107
  store i32 46, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %1129

1111:                                             ; preds = %1107
  %1112 = load i32, ptr %77, align 4, !tbaa !187
  %1113 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1112)
  br i1 %1113, label %1117, label %1114

1114:                                             ; preds = %1111
  %1115 = load i32, ptr %77, align 4, !tbaa !187
  %1116 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %1115, i1 noundef zeroext true)
  br i1 %1116, label %1118, label %1117

1117:                                             ; preds = %1114, %1111
  br label %1126

1118:                                             ; preds = %1114
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1119 = load i32, ptr %77, align 4, !tbaa !187
  %1120 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1119)
  %1121 = zext i1 %1120 to i64
  %1122 = select i1 %1120, ptr @.str.438, ptr @.str.459
  %1123 = load i32, ptr %77, align 4, !tbaa !187
  %1124 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1123)
  %1125 = load i32, ptr %77, align 4, !tbaa !187
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1122, ptr noundef %1124, i32 noundef %1125)
  br label %1126

1126:                                             ; preds = %1118, %1117
  %1127 = load i32, ptr %77, align 4, !tbaa !187
  %1128 = add nsw i32 %1127, 1
  store i32 %1128, ptr %77, align 4, !tbaa !187
  br label %1107, !llvm.loop !191

1129:                                             ; preds = %1110
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.462)
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #9
  store i32 0, ptr %78, align 4, !tbaa !187
  br label %1130

1130:                                             ; preds = %1149, %1129
  %1131 = load i32, ptr %78, align 4, !tbaa !187
  %1132 = icmp slt i32 %1131, 666
  br i1 %1132, label %1134, label %1133

1133:                                             ; preds = %1130
  store i32 49, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %1152

1134:                                             ; preds = %1130
  %1135 = load i32, ptr %78, align 4, !tbaa !187
  %1136 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1135)
  br i1 %1136, label %1140, label %1137

1137:                                             ; preds = %1134
  %1138 = load i32, ptr %78, align 4, !tbaa !187
  %1139 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %1138)
  br i1 %1139, label %1141, label %1140

1140:                                             ; preds = %1137, %1134
  br label %1149

1141:                                             ; preds = %1137
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1142 = load i32, ptr %78, align 4, !tbaa !187
  %1143 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1142)
  %1144 = zext i1 %1143 to i64
  %1145 = select i1 %1143, ptr @.str.438, ptr @.str.459
  %1146 = load i32, ptr %78, align 4, !tbaa !187
  %1147 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1146)
  %1148 = load i32, ptr %78, align 4, !tbaa !187
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1145, ptr noundef %1147, i32 noundef %1148)
  br label %1149

1149:                                             ; preds = %1141, %1140
  %1150 = load i32, ptr %78, align 4, !tbaa !187
  %1151 = add nsw i32 %1150, 1
  store i32 %1151, ptr %78, align 4, !tbaa !187
  br label %1130, !llvm.loop !192

1152:                                             ; preds = %1133
  %1153 = load ptr, ptr %4, align 8, !tbaa !5
  %1154 = getelementptr inbounds %struct.ImGuiIO, ptr %1153, i32 0, i32 64
  %1155 = load i8, ptr %1154, align 4, !tbaa !193, !range !13, !noundef !14
  %1156 = trunc i8 %1155 to i1
  %1157 = zext i1 %1156 to i64
  %1158 = select i1 %1156, ptr @.str.464, ptr @.str.17
  %1159 = load ptr, ptr %4, align 8, !tbaa !5
  %1160 = getelementptr inbounds %struct.ImGuiIO, ptr %1159, i32 0, i32 65
  %1161 = load i8, ptr %1160, align 1, !tbaa !194, !range !13, !noundef !14
  %1162 = trunc i8 %1161 to i1
  %1163 = zext i1 %1162 to i64
  %1164 = select i1 %1162, ptr @.str.465, ptr @.str.17
  %1165 = load ptr, ptr %4, align 8, !tbaa !5
  %1166 = getelementptr inbounds %struct.ImGuiIO, ptr %1165, i32 0, i32 66
  %1167 = load i8, ptr %1166, align 2, !tbaa !195, !range !13, !noundef !14
  %1168 = trunc i8 %1167 to i1
  %1169 = zext i1 %1168 to i64
  %1170 = select i1 %1168, ptr @.str.466, ptr @.str.17
  %1171 = load ptr, ptr %4, align 8, !tbaa !5
  %1172 = getelementptr inbounds %struct.ImGuiIO, ptr %1171, i32 0, i32 67
  %1173 = load i8, ptr %1172, align 1, !tbaa !196, !range !13, !noundef !14
  %1174 = trunc i8 %1173 to i1
  %1175 = zext i1 %1174 to i64
  %1176 = select i1 %1174, ptr @.str.467, ptr @.str.17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.463, ptr noundef %1158, ptr noundef %1164, ptr noundef %1170, ptr noundef %1176)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.468)
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  store i32 0, ptr %79, align 4, !tbaa !116
  br label %1177

1177:                                             ; preds = %1207, %1152
  %1178 = load i32, ptr %79, align 4, !tbaa !116
  %1179 = load ptr, ptr %4, align 8, !tbaa !5
  %1180 = getelementptr inbounds %struct.ImGuiIO, ptr %1179, i32 0, i32 91
  %1181 = getelementptr inbounds %struct.ImVector, ptr %1180, i32 0, i32 0
  %1182 = load i32, ptr %1181, align 8, !tbaa !197
  %1183 = icmp slt i32 %1178, %1182
  br i1 %1183, label %1185, label %1184

1184:                                             ; preds = %1177
  store i32 52, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %1210

1185:                                             ; preds = %1177
  call void @llvm.lifetime.start.p0(i64 2, ptr %80) #9
  %1186 = load ptr, ptr %4, align 8, !tbaa !5
  %1187 = getelementptr inbounds %struct.ImGuiIO, ptr %1186, i32 0, i32 91
  %1188 = load i32, ptr %79, align 4, !tbaa !116
  %1189 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1187, i32 noundef %1188)
  %1190 = load i16, ptr %1189, align 2, !tbaa !198
  store i16 %1190, ptr %80, align 2, !tbaa !198
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1191 = load i16, ptr %80, align 2, !tbaa !198
  %1192 = zext i16 %1191 to i32
  %1193 = icmp sgt i32 %1192, 32
  br i1 %1193, label %1194, label %1201

1194:                                             ; preds = %1185
  %1195 = load i16, ptr %80, align 2, !tbaa !198
  %1196 = zext i16 %1195 to i32
  %1197 = icmp sle i32 %1196, 255
  br i1 %1197, label %1198, label %1201

1198:                                             ; preds = %1194
  %1199 = load i16, ptr %80, align 2, !tbaa !198
  %1200 = trunc i16 %1199 to i8
  br label %1202

1201:                                             ; preds = %1194, %1185
  br label %1202

1202:                                             ; preds = %1201, %1198
  %1203 = phi i8 [ %1200, %1198 ], [ 63, %1201 ]
  %1204 = sext i8 %1203 to i32
  %1205 = load i16, ptr %80, align 2, !tbaa !198
  %1206 = zext i16 %1205 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.469, i32 noundef %1204, i32 noundef %1206)
  call void @llvm.lifetime.end.p0(i64 2, ptr %80) #9
  br label %1207

1207:                                             ; preds = %1202
  %1208 = load i32, ptr %79, align 4, !tbaa !116
  %1209 = add nsw i32 %1208, 1
  store i32 %1209, ptr %79, align 4, !tbaa !116
  br label %1177, !llvm.loop !199

1210:                                             ; preds = %1184
  %1211 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %1211)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.470)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1212 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %1212, label %1213, label %1224

1213:                                             ; preds = %1210
  %1214 = load ptr, ptr %4, align 8, !tbaa !5
  %1215 = getelementptr inbounds %struct.ImGuiIO, ptr %1214, i32 0, i32 59
  %1216 = getelementptr inbounds %struct.ImVec2, ptr %1215, i32 0, i32 0
  %1217 = load float, ptr %1216, align 8, !tbaa !200
  %1218 = fpext float %1217 to double
  %1219 = load ptr, ptr %4, align 8, !tbaa !5
  %1220 = getelementptr inbounds %struct.ImGuiIO, ptr %1219, i32 0, i32 59
  %1221 = getelementptr inbounds %struct.ImVec2, ptr %1220, i32 0, i32 1
  %1222 = load float, ptr %1221, align 4, !tbaa !201
  %1223 = fpext float %1222 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.471, double noundef %1218, double noundef %1223)
  br label %1225

1224:                                             ; preds = %1210
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.472)
  br label %1225

1225:                                             ; preds = %1224, %1213
  %1226 = load ptr, ptr %4, align 8, !tbaa !5
  %1227 = getelementptr inbounds %struct.ImGuiIO, ptr %1226, i32 0, i32 54
  %1228 = getelementptr inbounds %struct.ImVec2, ptr %1227, i32 0, i32 0
  %1229 = load float, ptr %1228, align 8, !tbaa !202
  %1230 = fpext float %1229 to double
  %1231 = load ptr, ptr %4, align 8, !tbaa !5
  %1232 = getelementptr inbounds %struct.ImGuiIO, ptr %1231, i32 0, i32 54
  %1233 = getelementptr inbounds %struct.ImVec2, ptr %1232, i32 0, i32 1
  %1234 = load float, ptr %1233, align 4, !tbaa !203
  %1235 = fpext float %1234 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.473, double noundef %1230, double noundef %1235)
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #9
  store i32 5, ptr %81, align 4, !tbaa !116
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.474)
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  store i32 0, ptr %82, align 4, !tbaa !116
  br label %1236

1236:                                             ; preds = %1254, %1225
  %1237 = load i32, ptr %82, align 4, !tbaa !116
  %1238 = load i32, ptr %81, align 4, !tbaa !116
  %1239 = icmp slt i32 %1237, %1238
  br i1 %1239, label %1241, label %1240

1240:                                             ; preds = %1236
  store i32 55, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %1257

1241:                                             ; preds = %1236
  %1242 = load i32, ptr %82, align 4, !tbaa !116
  %1243 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef %1242)
  br i1 %1243, label %1244, label %1253

1244:                                             ; preds = %1241
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1245 = load i32, ptr %82, align 4, !tbaa !116
  %1246 = load ptr, ptr %4, align 8, !tbaa !5
  %1247 = getelementptr inbounds %struct.ImGuiIO, ptr %1246, i32 0, i32 82
  %1248 = load i32, ptr %82, align 4, !tbaa !116
  %1249 = sext i32 %1248 to i64
  %1250 = getelementptr inbounds [5 x float], ptr %1247, i64 0, i64 %1249
  %1251 = load float, ptr %1250, align 4, !tbaa !204
  %1252 = fpext float %1251 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.475, i32 noundef %1245, double noundef %1252)
  br label %1253

1253:                                             ; preds = %1244, %1241
  br label %1254

1254:                                             ; preds = %1253
  %1255 = load i32, ptr %82, align 4, !tbaa !116
  %1256 = add nsw i32 %1255, 1
  store i32 %1256, ptr %82, align 4, !tbaa !116
  br label %1236, !llvm.loop !205

1257:                                             ; preds = %1240
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.476)
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  store i32 0, ptr %83, align 4, !tbaa !116
  br label %1258

1258:                                             ; preds = %1276, %1257
  %1259 = load i32, ptr %83, align 4, !tbaa !116
  %1260 = load i32, ptr %81, align 4, !tbaa !116
  %1261 = icmp slt i32 %1259, %1260
  br i1 %1261, label %1263, label %1262

1262:                                             ; preds = %1258
  store i32 58, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %1279

1263:                                             ; preds = %1258
  %1264 = load i32, ptr %83, align 4, !tbaa !116
  %1265 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef %1264, i1 noundef zeroext false)
  br i1 %1265, label %1266, label %1275

1266:                                             ; preds = %1263
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1267 = load i32, ptr %83, align 4, !tbaa !116
  %1268 = load ptr, ptr %4, align 8, !tbaa !5
  %1269 = getelementptr inbounds %struct.ImGuiIO, ptr %1268, i32 0, i32 76
  %1270 = load i32, ptr %83, align 4, !tbaa !116
  %1271 = sext i32 %1270 to i64
  %1272 = getelementptr inbounds [5 x i16], ptr %1269, i64 0, i64 %1271
  %1273 = load i16, ptr %1272, align 2, !tbaa !198
  %1274 = zext i16 %1273 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.477, i32 noundef %1267, i32 noundef %1274)
  br label %1275

1275:                                             ; preds = %1266, %1263
  br label %1276

1276:                                             ; preds = %1275
  %1277 = load i32, ptr %83, align 4, !tbaa !116
  %1278 = add nsw i32 %1277, 1
  store i32 %1278, ptr %83, align 4, !tbaa !116
  br label %1258, !llvm.loop !206

1279:                                             ; preds = %1262
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.478)
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #9
  store i32 0, ptr %84, align 4, !tbaa !116
  br label %1280

1280:                                             ; preds = %1291, %1279
  %1281 = load i32, ptr %84, align 4, !tbaa !116
  %1282 = load i32, ptr %81, align 4, !tbaa !116
  %1283 = icmp slt i32 %1281, %1282
  br i1 %1283, label %1285, label %1284

1284:                                             ; preds = %1280
  store i32 61, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %1294

1285:                                             ; preds = %1280
  %1286 = load i32, ptr %84, align 4, !tbaa !116
  %1287 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef %1286)
  br i1 %1287, label %1288, label %1290

1288:                                             ; preds = %1285
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1289 = load i32, ptr %84, align 4, !tbaa !116
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.479, i32 noundef %1289)
  br label %1290

1290:                                             ; preds = %1288, %1285
  br label %1291

1291:                                             ; preds = %1290
  %1292 = load i32, ptr %84, align 4, !tbaa !116
  %1293 = add nsw i32 %1292, 1
  store i32 %1293, ptr %84, align 4, !tbaa !116
  br label %1280, !llvm.loop !207

1294:                                             ; preds = %1284
  %1295 = load ptr, ptr %4, align 8, !tbaa !5
  %1296 = getelementptr inbounds %struct.ImGuiIO, ptr %1295, i32 0, i32 61
  %1297 = load float, ptr %1296, align 8, !tbaa !208
  %1298 = fpext float %1297 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.480, double noundef %1298)
  %1299 = load ptr, ptr %3, align 8, !tbaa !5
  %1300 = getelementptr inbounds %struct.ImGuiContext, ptr %1299, i32 0, i32 194
  %1301 = load float, ptr %1300, align 4, !tbaa !209
  %1302 = fpext float %1301 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.481, double noundef %1302)
  %1303 = load ptr, ptr %4, align 8, !tbaa !5
  %1304 = getelementptr inbounds %struct.ImGuiIO, ptr %1303, i32 0, i32 63
  %1305 = load i32, ptr %1304, align 8, !tbaa !210
  %1306 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %1305)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.482, ptr noundef %1306)
  %1307 = load ptr, ptr %4, align 8, !tbaa !5
  %1308 = getelementptr inbounds %struct.ImGuiIO, ptr %1307, i32 0, i32 85
  %1309 = load float, ptr %1308, align 4, !tbaa !211
  %1310 = fpext float %1309 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.483, double noundef %1310)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #9
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.484)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1311 = load ptr, ptr %3, align 8, !tbaa !5
  %1312 = getelementptr inbounds %struct.ImGuiContext, ptr %1311, i32 0, i32 34
  %1313 = load ptr, ptr %1312, align 8, !tbaa !212
  %1314 = icmp ne ptr %1313, null
  br i1 %1314, label %1315, label %1321

1315:                                             ; preds = %1294
  %1316 = load ptr, ptr %3, align 8, !tbaa !5
  %1317 = getelementptr inbounds %struct.ImGuiContext, ptr %1316, i32 0, i32 34
  %1318 = load ptr, ptr %1317, align 8, !tbaa !212
  %1319 = getelementptr inbounds %struct.ImGuiWindow, ptr %1318, i32 0, i32 1
  %1320 = load ptr, ptr %1319, align 8, !tbaa !115
  br label %1322

1321:                                             ; preds = %1294
  br label %1322

1322:                                             ; preds = %1321, %1315
  %1323 = phi ptr [ %1320, %1315 ], [ @.str.421, %1321 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.485, ptr noundef %1323)
  %1324 = load ptr, ptr %3, align 8, !tbaa !5
  %1325 = getelementptr inbounds %struct.ImGuiContext, ptr %1324, i32 0, i32 38
  %1326 = load float, ptr %1325, align 8, !tbaa !213
  %1327 = fpext float %1326 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.486, double noundef %1327)
  %1328 = load ptr, ptr %3, align 8, !tbaa !5
  %1329 = getelementptr inbounds %struct.ImGuiContext, ptr %1328, i32 0, i32 40
  %1330 = getelementptr inbounds %struct.ImVec2, ptr %1329, i32 0, i32 0
  %1331 = load float, ptr %1330, align 4, !tbaa !214
  %1332 = fpext float %1331 to double
  %1333 = load ptr, ptr %3, align 8, !tbaa !5
  %1334 = getelementptr inbounds %struct.ImGuiContext, ptr %1333, i32 0, i32 40
  %1335 = getelementptr inbounds %struct.ImVec2, ptr %1334, i32 0, i32 1
  %1336 = load float, ptr %1335, align 4, !tbaa !215
  %1337 = fpext float %1336 to double
  %1338 = load ptr, ptr %3, align 8, !tbaa !5
  %1339 = getelementptr inbounds %struct.ImGuiContext, ptr %1338, i32 0, i32 40
  %1340 = getelementptr inbounds %struct.ImVec2, ptr %1339, i32 0, i32 0
  %1341 = load float, ptr %1340, align 4, !tbaa !214
  %1342 = load ptr, ptr %3, align 8, !tbaa !5
  %1343 = getelementptr inbounds %struct.ImGuiContext, ptr %1342, i32 0, i32 40
  %1344 = getelementptr inbounds %struct.ImVec2, ptr %1343, i32 0, i32 1
  %1345 = load float, ptr %1344, align 4, !tbaa !215
  %1346 = fcmp ogt float %1341, %1345
  br i1 %1346, label %1347, label %1348

1347:                                             ; preds = %1322
  br label %1360

1348:                                             ; preds = %1322
  %1349 = load ptr, ptr %3, align 8, !tbaa !5
  %1350 = getelementptr inbounds %struct.ImGuiContext, ptr %1349, i32 0, i32 40
  %1351 = getelementptr inbounds %struct.ImVec2, ptr %1350, i32 0, i32 0
  %1352 = load float, ptr %1351, align 4, !tbaa !214
  %1353 = load ptr, ptr %3, align 8, !tbaa !5
  %1354 = getelementptr inbounds %struct.ImGuiContext, ptr %1353, i32 0, i32 40
  %1355 = getelementptr inbounds %struct.ImVec2, ptr %1354, i32 0, i32 1
  %1356 = load float, ptr %1355, align 4, !tbaa !215
  %1357 = fcmp olt float %1352, %1356
  %1358 = zext i1 %1357 to i64
  %1359 = select i1 %1357, ptr @.str.488, ptr @.str.489
  br label %1360

1360:                                             ; preds = %1348, %1347
  %1361 = phi ptr [ @.str.339, %1347 ], [ %1359, %1348 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.487, double noundef %1332, double noundef %1337, ptr noundef %1361)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.490)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #9
  %1362 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1363 = fmul float %1362, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %85, float noundef 0xB810000000000000, float noundef %1363)
  %1364 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef @.str.491, ptr noundef nonnull align 4 dereferenceable(8) %85, i32 noundef 136, i32 noundef 256)
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  br i1 %1364, label %1365, label %1409

1365:                                             ; preds = %1360
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  store i32 512, ptr %86, align 4, !tbaa !187
  br label %1366

1366:                                             ; preds = %1405, %1365
  %1367 = load i32, ptr %86, align 4, !tbaa !187
  %1368 = icmp slt i32 %1367, 666
  br i1 %1368, label %1370, label %1369

1369:                                             ; preds = %1366
  store i32 64, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %1408

1370:                                             ; preds = %1366
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #9
  %1371 = load ptr, ptr %3, align 8, !tbaa !5
  %1372 = load i32, ptr %86, align 4, !tbaa !187
  %1373 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %1371, i32 noundef %1372)
  store ptr %1373, ptr %87, align 8, !tbaa !5
  %1374 = load ptr, ptr %87, align 8, !tbaa !5
  %1375 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1374, i32 0, i32 0
  %1376 = load i32, ptr %1375, align 4, !tbaa !216
  %1377 = icmp eq i32 %1376, -1
  br i1 %1377, label %1378, label %1379

1378:                                             ; preds = %1370
  store i32 66, ptr %6, align 4
  br label %1402

1379:                                             ; preds = %1370
  %1380 = load i32, ptr %86, align 4, !tbaa !187
  %1381 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1380)
  %1382 = load ptr, ptr %87, align 8, !tbaa !5
  %1383 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1382, i32 0, i32 0
  %1384 = load i32, ptr %1383, align 4, !tbaa !216
  %1385 = load ptr, ptr %87, align 8, !tbaa !5
  %1386 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1385, i32 0, i32 3
  %1387 = load i8, ptr %1386, align 1, !tbaa !218, !range !13, !noundef !14
  %1388 = trunc i8 %1387 to i1
  br i1 %1388, label %1389, label %1390

1389:                                             ; preds = %1379
  br label %1397

1390:                                             ; preds = %1379
  %1391 = load ptr, ptr %87, align 8, !tbaa !5
  %1392 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1391, i32 0, i32 2
  %1393 = load i8, ptr %1392, align 4, !tbaa !219, !range !13, !noundef !14
  %1394 = trunc i8 %1393 to i1
  %1395 = zext i1 %1394 to i64
  %1396 = select i1 %1394, ptr @.str.494, ptr @.str.17
  br label %1397

1397:                                             ; preds = %1390, %1389
  %1398 = phi ptr [ @.str.493, %1389 ], [ %1396, %1390 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.492, ptr noundef %1381, i32 noundef %1384, ptr noundef %1398)
  %1399 = load ptr, ptr %87, align 8, !tbaa !5
  %1400 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1399, i32 0, i32 0
  %1401 = load i32, ptr %1400, align 4, !tbaa !216
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1401)
  store i32 0, ptr %6, align 4
  br label %1402

1402:                                             ; preds = %1397, %1378
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  %1403 = load i32, ptr %6, align 4
  switch i32 %1403, label %1937 [
    i32 0, label %1404
    i32 66, label %1405
  ]

1404:                                             ; preds = %1402
  br label %1405

1405:                                             ; preds = %1404, %1402
  %1406 = load i32, ptr %86, align 4, !tbaa !187
  %1407 = add nsw i32 %1406, 1
  store i32 %1407, ptr %86, align 4, !tbaa !187
  br label %1366, !llvm.loop !220

1408:                                             ; preds = %1369
  br label %1409

1409:                                             ; preds = %1408, %1360
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.495)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.496)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #9
  %1410 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1411 = fmul float %1410, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %88, float noundef 0xB810000000000000, float noundef %1411)
  %1412 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef @.str.497, ptr noundef nonnull align 4 dereferenceable(8) %88, i32 noundef 136, i32 noundef 256)
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  br i1 %1412, label %1413, label %1478

1413:                                             ; preds = %1409
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  store i32 512, ptr %89, align 4, !tbaa !187
  br label %1414

1414:                                             ; preds = %1474, %1413
  %1415 = load i32, ptr %89, align 4, !tbaa !187
  %1416 = icmp slt i32 %1415, 666
  br i1 %1416, label %1418, label %1417

1417:                                             ; preds = %1414
  store i32 67, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %1477

1418:                                             ; preds = %1414
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #9
  %1419 = load ptr, ptr %3, align 8, !tbaa !5
  %1420 = getelementptr inbounds %struct.ImGuiContext, ptr %1419, i32 0, i32 73
  store ptr %1420, ptr %90, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %91) #9
  %1421 = load ptr, ptr %90, align 8, !tbaa !5
  %1422 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1421, i32 0, i32 0
  %1423 = load i32, ptr %89, align 4, !tbaa !187
  %1424 = sub nsw i32 %1423, 512
  %1425 = sext i32 %1424 to i64
  %1426 = getelementptr inbounds [154 x i16], ptr %1422, i64 0, i64 %1425
  %1427 = load i16, ptr %1426, align 2, !tbaa !198
  store i16 %1427, ptr %91, align 2, !tbaa !198
  br label %1428

1428:                                             ; preds = %1469, %1418
  %1429 = load i16, ptr %91, align 2, !tbaa !198
  %1430 = sext i16 %1429 to i32
  %1431 = icmp ne i32 %1430, -1
  br i1 %1431, label %1433, label %1432

1432:                                             ; preds = %1428
  store i32 70, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %91) #9
  br label %1473

1433:                                             ; preds = %1428
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #9
  %1434 = load ptr, ptr %90, align 8, !tbaa !5
  %1435 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1434, i32 0, i32 1
  %1436 = load i16, ptr %91, align 2, !tbaa !198
  %1437 = sext i16 %1436 to i32
  %1438 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1435, i32 noundef %1437)
  store ptr %1438, ptr %92, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  %1439 = load i32, ptr %89, align 4, !tbaa !187
  %1440 = load ptr, ptr %92, align 8, !tbaa !5
  %1441 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1440, i32 0, i32 1
  %1442 = load i16, ptr %1441, align 2, !tbaa !221
  %1443 = zext i16 %1442 to i32
  %1444 = or i32 %1439, %1443
  store i32 %1444, ptr %93, align 4, !tbaa !116
  %1445 = load i32, ptr %93, align 4, !tbaa !116
  %1446 = call noundef ptr @_ZN5ImGui15GetKeyChordNameEi(i32 noundef %1445)
  %1447 = load ptr, ptr %92, align 8, !tbaa !5
  %1448 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1447, i32 0, i32 4
  %1449 = load i32, ptr %1448, align 4, !tbaa !223
  %1450 = load ptr, ptr %92, align 8, !tbaa !5
  %1451 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1450, i32 0, i32 2
  %1452 = load i8, ptr %1451, align 4, !tbaa !224
  %1453 = zext i8 %1452 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.498, ptr noundef %1446, i32 noundef %1449, i32 noundef %1453)
  %1454 = load ptr, ptr %92, align 8, !tbaa !5
  %1455 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1454, i32 0, i32 4
  %1456 = load i32, ptr %1455, align 4, !tbaa !223
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1456)
  %1457 = load ptr, ptr %3, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.ImGuiContext, ptr %1457, i32 0, i32 2
  %1459 = getelementptr inbounds %struct.ImGuiIO, ptr %1458, i32 0, i32 27
  %1460 = load i8, ptr %1459, align 8, !tbaa !225, !range !13, !noundef !14
  %1461 = trunc i8 %1460 to i1
  br i1 %1461, label %1462, label %1469

1462:                                             ; preds = %1433
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1463 = call noundef zeroext i1 @_ZN5ImGui16DebugBreakButtonEPKcS1_(ptr noundef @.str.499, ptr noundef @.str.500)
  br i1 %1463, label %1464, label %1468

1464:                                             ; preds = %1462
  %1465 = load i32, ptr %93, align 4, !tbaa !116
  %1466 = load ptr, ptr %3, align 8, !tbaa !5
  %1467 = getelementptr inbounds %struct.ImGuiContext, ptr %1466, i32 0, i32 76
  store i32 %1465, ptr %1467, align 8, !tbaa !226
  br label %1468

1468:                                             ; preds = %1464, %1462
  br label %1469

1469:                                             ; preds = %1468, %1433
  %1470 = load ptr, ptr %92, align 8, !tbaa !5
  %1471 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1470, i32 0, i32 0
  %1472 = load i16, ptr %1471, align 4, !tbaa !227
  store i16 %1472, ptr %91, align 2, !tbaa !198
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #9
  br label %1428, !llvm.loop !228

1473:                                             ; preds = %1432
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #9
  br label %1474

1474:                                             ; preds = %1473
  %1475 = load i32, ptr %89, align 4, !tbaa !187
  %1476 = add nsw i32 %1475, 1
  store i32 %1476, ptr %89, align 4, !tbaa !187
  br label %1414, !llvm.loop !229

1477:                                             ; preds = %1417
  br label %1478

1478:                                             ; preds = %1477, %1409
  call void @_ZN5ImGui8EndChildEv()
  %1479 = load ptr, ptr %3, align 8, !tbaa !5
  %1480 = getelementptr inbounds %struct.ImGuiContext, ptr %1479, i32 0, i32 75
  %1481 = load i8, ptr %1480, align 4, !tbaa !230, !range !13, !noundef !14
  %1482 = trunc i8 %1481 to i1
  %1483 = zext i1 %1482 to i32
  %1484 = load ptr, ptr %3, align 8, !tbaa !5
  %1485 = getelementptr inbounds %struct.ImGuiContext, ptr %1484, i32 0, i32 74
  %1486 = load i32, ptr %1485, align 8, !tbaa !231
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.501, i32 noundef %1483, i32 noundef %1486)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1487

1487:                                             ; preds = %1478, %1076
  %1488 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.502)
  br i1 %1488, label %1489, label %1740

1489:                                             ; preds = %1487
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.503)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1490 = load ptr, ptr %3, align 8, !tbaa !5
  %1491 = getelementptr inbounds %struct.ImGuiContext, ptr %1490, i32 0, i32 31
  %1492 = load ptr, ptr %1491, align 8, !tbaa !232
  %1493 = icmp ne ptr %1492, null
  br i1 %1493, label %1494, label %1500

1494:                                             ; preds = %1489
  %1495 = load ptr, ptr %3, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.ImGuiContext, ptr %1495, i32 0, i32 31
  %1497 = load ptr, ptr %1496, align 8, !tbaa !232
  %1498 = getelementptr inbounds %struct.ImGuiWindow, ptr %1497, i32 0, i32 1
  %1499 = load ptr, ptr %1498, align 8, !tbaa !115
  br label %1501

1500:                                             ; preds = %1489
  br label %1501

1501:                                             ; preds = %1500, %1494
  %1502 = phi ptr [ %1499, %1494 ], [ @.str.421, %1500 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.504, ptr noundef %1502)
  %1503 = load ptr, ptr %3, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.ImGuiContext, ptr %1503, i32 0, i32 31
  %1505 = load ptr, ptr %1504, align 8, !tbaa !232
  %1506 = icmp ne ptr %1505, null
  br i1 %1506, label %1507, label %1515

1507:                                             ; preds = %1501
  %1508 = load ptr, ptr %3, align 8, !tbaa !5
  %1509 = getelementptr inbounds %struct.ImGuiContext, ptr %1508, i32 0, i32 31
  %1510 = load ptr, ptr %1509, align 8, !tbaa !232
  %1511 = getelementptr inbounds %struct.ImGuiWindow, ptr %1510, i32 0, i32 90
  %1512 = load ptr, ptr %1511, align 8, !tbaa !233
  %1513 = getelementptr inbounds %struct.ImGuiWindow, ptr %1512, i32 0, i32 1
  %1514 = load ptr, ptr %1513, align 8, !tbaa !115
  br label %1516

1515:                                             ; preds = %1501
  br label %1516

1516:                                             ; preds = %1515, %1507
  %1517 = phi ptr [ %1514, %1507 ], [ @.str.421, %1515 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.505, ptr noundef %1517)
  %1518 = load ptr, ptr %3, align 8, !tbaa !5
  %1519 = getelementptr inbounds %struct.ImGuiContext, ptr %1518, i32 0, i32 32
  %1520 = load ptr, ptr %1519, align 8, !tbaa !234
  %1521 = icmp ne ptr %1520, null
  br i1 %1521, label %1522, label %1528

1522:                                             ; preds = %1516
  %1523 = load ptr, ptr %3, align 8, !tbaa !5
  %1524 = getelementptr inbounds %struct.ImGuiContext, ptr %1523, i32 0, i32 32
  %1525 = load ptr, ptr %1524, align 8, !tbaa !234
  %1526 = getelementptr inbounds %struct.ImGuiWindow, ptr %1525, i32 0, i32 1
  %1527 = load ptr, ptr %1526, align 8, !tbaa !115
  br label %1529

1528:                                             ; preds = %1516
  br label %1529

1529:                                             ; preds = %1528, %1522
  %1530 = phi ptr [ %1527, %1522 ], [ @.str.421, %1528 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.506, ptr noundef %1530)
  %1531 = load ptr, ptr %3, align 8, !tbaa !5
  %1532 = getelementptr inbounds %struct.ImGuiContext, ptr %1531, i32 0, i32 33
  %1533 = load ptr, ptr %1532, align 8, !tbaa !235
  %1534 = icmp ne ptr %1533, null
  br i1 %1534, label %1535, label %1541

1535:                                             ; preds = %1529
  %1536 = load ptr, ptr %3, align 8, !tbaa !5
  %1537 = getelementptr inbounds %struct.ImGuiContext, ptr %1536, i32 0, i32 33
  %1538 = load ptr, ptr %1537, align 8, !tbaa !235
  %1539 = getelementptr inbounds %struct.ImGuiWindow, ptr %1538, i32 0, i32 1
  %1540 = load ptr, ptr %1539, align 8, !tbaa !115
  br label %1542

1541:                                             ; preds = %1529
  br label %1542

1542:                                             ; preds = %1541, %1535
  %1543 = phi ptr [ %1540, %1535 ], [ @.str.421, %1541 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.507, ptr noundef %1543)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.508)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1544 = load ptr, ptr %3, align 8, !tbaa !5
  %1545 = getelementptr inbounds %struct.ImGuiContext, ptr %1544, i32 0, i32 48
  %1546 = load i32, ptr %1545, align 4, !tbaa !236
  %1547 = load ptr, ptr %3, align 8, !tbaa !5
  %1548 = getelementptr inbounds %struct.ImGuiContext, ptr %1547, i32 0, i32 62
  %1549 = load i32, ptr %1548, align 4, !tbaa !237
  %1550 = load ptr, ptr %3, align 8, !tbaa !5
  %1551 = getelementptr inbounds %struct.ImGuiContext, ptr %1550, i32 0, i32 50
  %1552 = load float, ptr %1551, align 4, !tbaa !238
  %1553 = fpext float %1552 to double
  %1554 = load ptr, ptr %3, align 8, !tbaa !5
  %1555 = getelementptr inbounds %struct.ImGuiContext, ptr %1554, i32 0, i32 52
  %1556 = load i8, ptr %1555, align 1, !tbaa !239, !range !13, !noundef !14
  %1557 = trunc i8 %1556 to i1
  %1558 = zext i1 %1557 to i32
  %1559 = load ptr, ptr %3, align 8, !tbaa !5
  %1560 = getelementptr inbounds %struct.ImGuiContext, ptr %1559, i32 0, i32 61
  %1561 = load i32, ptr %1560, align 8, !tbaa !240
  %1562 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1561)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.509, i32 noundef %1546, i32 noundef %1549, double noundef %1553, i32 noundef %1558, ptr noundef %1562)
  %1563 = load ptr, ptr %3, align 8, !tbaa !5
  %1564 = getelementptr inbounds %struct.ImGuiContext, ptr %1563, i32 0, i32 48
  %1565 = load i32, ptr %1564, align 4, !tbaa !236
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1565)
  %1566 = load ptr, ptr %3, align 8, !tbaa !5
  %1567 = getelementptr inbounds %struct.ImGuiContext, ptr %1566, i32 0, i32 60
  %1568 = load ptr, ptr %1567, align 8, !tbaa !241
  %1569 = icmp ne ptr %1568, null
  br i1 %1569, label %1570, label %1576

1570:                                             ; preds = %1542
  %1571 = load ptr, ptr %3, align 8, !tbaa !5
  %1572 = getelementptr inbounds %struct.ImGuiContext, ptr %1571, i32 0, i32 60
  %1573 = load ptr, ptr %1572, align 8, !tbaa !241
  %1574 = getelementptr inbounds %struct.ImGuiWindow, ptr %1573, i32 0, i32 1
  %1575 = load ptr, ptr %1574, align 8, !tbaa !115
  br label %1577

1576:                                             ; preds = %1542
  br label %1577

1577:                                             ; preds = %1576, %1570
  %1578 = phi ptr [ %1575, %1570 ], [ @.str.421, %1576 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.510, ptr noundef %1578)
  %1579 = load ptr, ptr %3, align 8, !tbaa !5
  %1580 = getelementptr inbounds %struct.ImGuiContext, ptr %1579, i32 0, i32 75
  %1581 = load i8, ptr %1580, align 4, !tbaa !230, !range !13, !noundef !14
  %1582 = trunc i8 %1581 to i1
  %1583 = zext i1 %1582 to i32
  %1584 = load ptr, ptr %3, align 8, !tbaa !5
  %1585 = getelementptr inbounds %struct.ImGuiContext, ptr %1584, i32 0, i32 74
  %1586 = load i32, ptr %1585, align 8, !tbaa !231
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.511, i32 noundef %1583, i32 noundef %1586)
  %1587 = load ptr, ptr %3, align 8, !tbaa !5
  %1588 = getelementptr inbounds %struct.ImGuiContext, ptr %1587, i32 0, i32 43
  %1589 = load i32, ptr %1588, align 4, !tbaa !242
  %1590 = load ptr, ptr %3, align 8, !tbaa !5
  %1591 = getelementptr inbounds %struct.ImGuiContext, ptr %1590, i32 0, i32 46
  %1592 = load float, ptr %1591, align 4, !tbaa !243
  %1593 = fpext float %1592 to double
  %1594 = load ptr, ptr %3, align 8, !tbaa !5
  %1595 = getelementptr inbounds %struct.ImGuiContext, ptr %1594, i32 0, i32 44
  %1596 = load i8, ptr %1595, align 8, !tbaa !244, !range !13, !noundef !14
  %1597 = trunc i8 %1596 to i1
  %1598 = zext i1 %1597 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.512, i32 noundef %1589, double noundef %1593, i32 noundef %1598)
  %1599 = load ptr, ptr %3, align 8, !tbaa !5
  %1600 = getelementptr inbounds %struct.ImGuiContext, ptr %1599, i32 0, i32 187
  %1601 = load i32, ptr %1600, align 8, !tbaa !245
  %1602 = load ptr, ptr %3, align 8, !tbaa !5
  %1603 = getelementptr inbounds %struct.ImGuiContext, ptr %1602, i32 0, i32 189
  %1604 = load float, ptr %1603, align 8, !tbaa !246
  %1605 = fpext float %1604 to double
  %1606 = load ptr, ptr %3, align 8, !tbaa !5
  %1607 = getelementptr inbounds %struct.ImGuiContext, ptr %1606, i32 0, i32 190
  %1608 = load float, ptr %1607, align 4, !tbaa !247
  %1609 = fpext float %1608 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.513, i32 noundef %1601, double noundef %1605, double noundef %1609)
  %1610 = load ptr, ptr %3, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.ImGuiContext, ptr %1610, i32 0, i32 155
  %1612 = load i8, ptr %1611, align 4, !tbaa !248, !range !13, !noundef !14
  %1613 = trunc i8 %1612 to i1
  %1614 = zext i1 %1613 to i32
  %1615 = load ptr, ptr %3, align 8, !tbaa !5
  %1616 = getelementptr inbounds %struct.ImGuiContext, ptr %1615, i32 0, i32 162
  %1617 = getelementptr inbounds %struct.ImGuiPayload, ptr %1616, i32 0, i32 2
  %1618 = load i32, ptr %1617, align 4, !tbaa !249
  %1619 = load ptr, ptr %3, align 8, !tbaa !5
  %1620 = getelementptr inbounds %struct.ImGuiContext, ptr %1619, i32 0, i32 162
  %1621 = getelementptr inbounds %struct.ImGuiPayload, ptr %1620, i32 0, i32 5
  %1622 = getelementptr inbounds [33 x i8], ptr %1621, i64 0, i64 0
  %1623 = load ptr, ptr %3, align 8, !tbaa !5
  %1624 = getelementptr inbounds %struct.ImGuiContext, ptr %1623, i32 0, i32 162
  %1625 = getelementptr inbounds %struct.ImGuiPayload, ptr %1624, i32 0, i32 1
  %1626 = load i32, ptr %1625, align 8, !tbaa !250
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.514, i32 noundef %1614, i32 noundef %1618, ptr noundef %1622, i32 noundef %1626)
  %1627 = load ptr, ptr %3, align 8, !tbaa !5
  %1628 = getelementptr inbounds %struct.ImGuiContext, ptr %1627, i32 0, i32 162
  %1629 = getelementptr inbounds %struct.ImGuiPayload, ptr %1628, i32 0, i32 2
  %1630 = load i32, ptr %1629, align 4, !tbaa !249
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1630)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.515)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1631 = load ptr, ptr %3, align 8, !tbaa !5
  %1632 = getelementptr inbounds %struct.ImGuiContext, ptr %1631, i32 0, i32 98
  %1633 = load ptr, ptr %1632, align 8, !tbaa !114
  %1634 = icmp ne ptr %1633, null
  br i1 %1634, label %1635, label %1641

1635:                                             ; preds = %1577
  %1636 = load ptr, ptr %3, align 8, !tbaa !5
  %1637 = getelementptr inbounds %struct.ImGuiContext, ptr %1636, i32 0, i32 98
  %1638 = load ptr, ptr %1637, align 8, !tbaa !114
  %1639 = getelementptr inbounds %struct.ImGuiWindow, ptr %1638, i32 0, i32 1
  %1640 = load ptr, ptr %1639, align 8, !tbaa !115
  br label %1642

1641:                                             ; preds = %1577
  br label %1642

1642:                                             ; preds = %1641, %1635
  %1643 = phi ptr [ %1640, %1635 ], [ @.str.421, %1641 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.516, ptr noundef %1643)
  %1644 = load ptr, ptr %3, align 8, !tbaa !5
  %1645 = getelementptr inbounds %struct.ImGuiContext, ptr %1644, i32 0, i32 99
  %1646 = load i32, ptr %1645, align 8, !tbaa !251
  %1647 = load ptr, ptr %3, align 8, !tbaa !5
  %1648 = getelementptr inbounds %struct.ImGuiContext, ptr %1647, i32 0, i32 114
  %1649 = load i32, ptr %1648, align 8, !tbaa !252
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.517, i32 noundef %1646, i32 noundef %1649)
  %1650 = load ptr, ptr %3, align 8, !tbaa !5
  %1651 = getelementptr inbounds %struct.ImGuiContext, ptr %1650, i32 0, i32 99
  %1652 = load i32, ptr %1651, align 8, !tbaa !251
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1652)
  %1653 = load ptr, ptr %3, align 8, !tbaa !5
  %1654 = getelementptr inbounds %struct.ImGuiContext, ptr %1653, i32 0, i32 113
  %1655 = load i32, ptr %1654, align 4, !tbaa !253
  %1656 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1655)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.518, ptr noundef %1656)
  %1657 = load ptr, ptr %3, align 8, !tbaa !5
  %1658 = getelementptr inbounds %struct.ImGuiContext, ptr %1657, i32 0, i32 115
  %1659 = load i64, ptr %1658, align 8, !tbaa !254
  %1660 = load ptr, ptr %3, align 8, !tbaa !5
  %1661 = getelementptr inbounds %struct.ImGuiContext, ptr %1660, i32 0, i32 115
  %1662 = load i64, ptr %1661, align 8, !tbaa !254
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.519, i64 noundef %1659, i64 noundef %1662)
  %1663 = load ptr, ptr %3, align 8, !tbaa !5
  %1664 = getelementptr inbounds %struct.ImGuiContext, ptr %1663, i32 0, i32 2
  %1665 = getelementptr inbounds %struct.ImGuiIO, ptr %1664, i32 0, i32 47
  %1666 = load i8, ptr %1665, align 1, !tbaa !255, !range !13, !noundef !14
  %1667 = trunc i8 %1666 to i1
  %1668 = zext i1 %1667 to i32
  %1669 = load ptr, ptr %3, align 8, !tbaa !5
  %1670 = getelementptr inbounds %struct.ImGuiContext, ptr %1669, i32 0, i32 2
  %1671 = getelementptr inbounds %struct.ImGuiIO, ptr %1670, i32 0, i32 48
  %1672 = load i8, ptr %1671, align 8, !tbaa !256, !range !13, !noundef !14
  %1673 = trunc i8 %1672 to i1
  %1674 = zext i1 %1673 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.520, i32 noundef %1668, i32 noundef %1674)
  %1675 = load ptr, ptr %3, align 8, !tbaa !5
  %1676 = getelementptr inbounds %struct.ImGuiContext, ptr %1675, i32 0, i32 102
  %1677 = load i32, ptr %1676, align 8, !tbaa !257
  %1678 = load ptr, ptr %3, align 8, !tbaa !5
  %1679 = getelementptr inbounds %struct.ImGuiContext, ptr %1678, i32 0, i32 103
  %1680 = load i32, ptr %1679, align 4, !tbaa !258
  %1681 = load ptr, ptr %3, align 8, !tbaa !5
  %1682 = getelementptr inbounds %struct.ImGuiContext, ptr %1681, i32 0, i32 104
  %1683 = load i32, ptr %1682, align 8, !tbaa !259
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.521, i32 noundef %1677, i32 noundef %1680, i32 noundef %1683)
  %1684 = load ptr, ptr %3, align 8, !tbaa !5
  %1685 = getelementptr inbounds %struct.ImGuiContext, ptr %1684, i32 0, i32 105
  %1686 = load i32, ptr %1685, align 4, !tbaa !260
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.522, i32 noundef %1686)
  %1687 = load ptr, ptr %3, align 8, !tbaa !5
  %1688 = getelementptr inbounds %struct.ImGuiContext, ptr %1687, i32 0, i32 118
  %1689 = load i8, ptr %1688, align 2, !tbaa !261, !range !13, !noundef !14
  %1690 = trunc i8 %1689 to i1
  %1691 = zext i1 %1690 to i32
  %1692 = load ptr, ptr %3, align 8, !tbaa !5
  %1693 = getelementptr inbounds %struct.ImGuiContext, ptr %1692, i32 0, i32 119
  %1694 = load i8, ptr %1693, align 1, !tbaa !262, !range !13, !noundef !14
  %1695 = trunc i8 %1694 to i1
  %1696 = zext i1 %1695 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.523, i32 noundef %1691, i32 noundef %1696)
  %1697 = load ptr, ptr %3, align 8, !tbaa !5
  %1698 = getelementptr inbounds %struct.ImGuiContext, ptr %1697, i32 0, i32 100
  %1699 = load i32, ptr %1698, align 4, !tbaa !263
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.524, i32 noundef %1699)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.525)
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #9
  %1700 = load ptr, ptr %3, align 8, !tbaa !5
  %1701 = getelementptr inbounds %struct.ImGuiContext, ptr %1700, i32 0, i32 101
  %1702 = getelementptr inbounds %struct.ImVector.9, ptr %1701, i32 0, i32 0
  %1703 = load i32, ptr %1702, align 8, !tbaa !264
  %1704 = sub nsw i32 %1703, 1
  store i32 %1704, ptr %94, align 4, !tbaa !116
  br label %1705

1705:                                             ; preds = %1723, %1642
  %1706 = load i32, ptr %94, align 4, !tbaa !116
  %1707 = icmp sge i32 %1706, 0
  br i1 %1707, label %1709, label %1708

1708:                                             ; preds = %1705
  store i32 72, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  br label %1726

1709:                                             ; preds = %1705
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #9
  %1710 = load ptr, ptr %3, align 8, !tbaa !5
  %1711 = getelementptr inbounds %struct.ImGuiContext, ptr %1710, i32 0, i32 101
  %1712 = load i32, ptr %94, align 4, !tbaa !116
  %1713 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZN8ImVectorI19ImGuiFocusScopeDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1711, i32 noundef %1712)
  store ptr %1713, ptr %95, align 8, !tbaa !5
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef 0.000000e+00)
  %1714 = load ptr, ptr %95, align 8, !tbaa !5
  %1715 = getelementptr inbounds %struct.ImGuiFocusScopeData, ptr %1714, i32 0, i32 0
  %1716 = load i32, ptr %1715, align 4, !tbaa !265
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.526, i32 noundef %1716)
  %1717 = load ptr, ptr %95, align 8, !tbaa !5
  %1718 = getelementptr inbounds %struct.ImGuiFocusScopeData, ptr %1717, i32 0, i32 1
  %1719 = load i32, ptr %1718, align 4, !tbaa !267
  %1720 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %1719)
  %1721 = getelementptr inbounds %struct.ImGuiWindow, ptr %1720, i32 0, i32 1
  %1722 = load ptr, ptr %1721, align 8, !tbaa !115
  call void (ptr, ...) @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef @.str.527, ptr noundef %1722)
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #9
  br label %1723

1723:                                             ; preds = %1709
  %1724 = load i32, ptr %94, align 4, !tbaa !116
  %1725 = add nsw i32 %1724, -1
  store i32 %1725, ptr %94, align 4, !tbaa !116
  br label %1705, !llvm.loop !268

1726:                                             ; preds = %1708
  %1727 = load ptr, ptr %3, align 8, !tbaa !5
  %1728 = getelementptr inbounds %struct.ImGuiContext, ptr %1727, i32 0, i32 145
  %1729 = load ptr, ptr %1728, align 8, !tbaa !269
  %1730 = icmp ne ptr %1729, null
  br i1 %1730, label %1731, label %1737

1731:                                             ; preds = %1726
  %1732 = load ptr, ptr %3, align 8, !tbaa !5
  %1733 = getelementptr inbounds %struct.ImGuiContext, ptr %1732, i32 0, i32 145
  %1734 = load ptr, ptr %1733, align 8, !tbaa !269
  %1735 = getelementptr inbounds %struct.ImGuiWindow, ptr %1734, i32 0, i32 1
  %1736 = load ptr, ptr %1735, align 8, !tbaa !115
  br label %1738

1737:                                             ; preds = %1726
  br label %1738

1738:                                             ; preds = %1737, %1731
  %1739 = phi ptr [ %1736, %1731 ], [ @.str.421, %1737 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.528, ptr noundef %1739)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1740

1740:                                             ; preds = %1738, %1487
  %1741 = load ptr, ptr %5, align 8, !tbaa !5
  %1742 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1741, i32 0, i32 2
  %1743 = load i8, ptr %1742, align 2, !tbaa !113, !range !13, !noundef !14
  %1744 = trunc i8 %1743 to i1
  br i1 %1744, label %1750, label %1745

1745:                                             ; preds = %1740
  %1746 = load ptr, ptr %5, align 8, !tbaa !5
  %1747 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1746, i32 0, i32 3
  %1748 = load i8, ptr %1747, align 1, !tbaa !270, !range !13, !noundef !14
  %1749 = trunc i8 %1748 to i1
  br i1 %1749, label %1750, label %1829

1750:                                             ; preds = %1745, %1740
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #9
  %1751 = load ptr, ptr %3, align 8, !tbaa !5
  %1752 = getelementptr inbounds %struct.ImGuiContext, ptr %1751, i32 0, i32 22
  store ptr %1752, ptr %96, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #9
  %1753 = load ptr, ptr %96, align 8, !tbaa !5
  %1754 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1753)
  store ptr %1754, ptr %97, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #9
  %1755 = load ptr, ptr %96, align 8, !tbaa !5
  %1756 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %1755)
  store ptr %1756, ptr %98, align 8, !tbaa !5
  br label %1757

1757:                                             ; preds = %1825, %1750
  %1758 = load ptr, ptr %97, align 8, !tbaa !5
  %1759 = load ptr, ptr %98, align 8, !tbaa !5
  %1760 = icmp ne ptr %1758, %1759
  br i1 %1760, label %1762, label %1761

1761:                                             ; preds = %1757
  store i32 75, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #9
  br label %1828

1762:                                             ; preds = %1757
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #9
  %1763 = load ptr, ptr %97, align 8, !tbaa !5
  %1764 = load ptr, ptr %1763, align 8, !tbaa !5
  store ptr %1764, ptr %99, align 8, !tbaa !5
  %1765 = load ptr, ptr %99, align 8, !tbaa !5
  %1766 = getelementptr inbounds %struct.ImGuiWindow, ptr %1765, i32 0, i32 34
  %1767 = load i8, ptr %1766, align 1, !tbaa !271, !range !13, !noundef !14
  %1768 = trunc i8 %1767 to i1
  br i1 %1768, label %1770, label %1769

1769:                                             ; preds = %1762
  store i32 76, ptr %6, align 4
  br label %1822

1770:                                             ; preds = %1762
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #9
  %1771 = load ptr, ptr %99, align 8, !tbaa !5
  %1772 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1771)
  store ptr %1772, ptr %100, align 8, !tbaa !5
  %1773 = load ptr, ptr %5, align 8, !tbaa !5
  %1774 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1773, i32 0, i32 2
  %1775 = load i8, ptr %1774, align 2, !tbaa !113, !range !13, !noundef !14
  %1776 = trunc i8 %1775 to i1
  br i1 %1776, label %1777, label %1790

1777:                                             ; preds = %1770
  call void @llvm.lifetime.start.p0(i64 16, ptr %101) #9
  %1778 = load ptr, ptr %99, align 8, !tbaa !5
  %1779 = load ptr, ptr %5, align 8, !tbaa !5
  %1780 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1779, i32 0, i32 9
  %1781 = load i32, ptr %1780, align 4, !tbaa !108
  %1782 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %1778, i32 noundef %1781)
  %1783 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %101, i32 0, i32 0
  %1784 = extractvalue { <2 x float>, <2 x float> } %1782, 0
  store <2 x float> %1784, ptr %1783, align 4
  %1785 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %101, i32 0, i32 1
  %1786 = extractvalue { <2 x float>, <2 x float> } %1782, 1
  store <2 x float> %1786, ptr %1785, align 4
  %1787 = load ptr, ptr %100, align 8, !tbaa !5
  %1788 = getelementptr inbounds %struct.ImRect, ptr %101, i32 0, i32 0
  %1789 = getelementptr inbounds %struct.ImRect, ptr %101, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1787, ptr noundef nonnull align 4 dereferenceable(8) %1788, ptr noundef nonnull align 4 dereferenceable(8) %1789, 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 %101) #9
  br label %1790

1790:                                             ; preds = %1777, %1770
  %1791 = load ptr, ptr %5, align 8, !tbaa !5
  %1792 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1791, i32 0, i32 3
  %1793 = load i8, ptr %1792, align 1, !tbaa !270, !range !13, !noundef !14
  %1794 = trunc i8 %1793 to i1
  br i1 %1794, label %1795, label %1821

1795:                                             ; preds = %1790
  %1796 = load ptr, ptr %99, align 8, !tbaa !5
  %1797 = getelementptr inbounds %struct.ImGuiWindow, ptr %1796, i32 0, i32 3
  %1798 = load i32, ptr %1797, align 4, !tbaa !160
  %1799 = and i32 %1798, 16777216
  %1800 = icmp ne i32 %1799, 0
  br i1 %1800, label %1821, label %1801

1801:                                             ; preds = %1795
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #9
  %1802 = getelementptr inbounds [32 x i8], ptr %102, i64 0, i64 0
  %1803 = load ptr, ptr %99, align 8, !tbaa !5
  %1804 = getelementptr inbounds %struct.ImGuiWindow, ptr %1803, i32 0, i32 50
  %1805 = load i16, ptr %1804, align 2, !tbaa !272
  %1806 = sext i16 %1805 to i32
  %1807 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %1802, i64 noundef 32, ptr noundef @.str.348, i32 noundef %1806)
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #9
  %1808 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  store float %1808, ptr %103, align 4, !tbaa !204
  %1809 = load ptr, ptr %100, align 8, !tbaa !5
  %1810 = load ptr, ptr %99, align 8, !tbaa !5
  %1811 = getelementptr inbounds %struct.ImGuiWindow, ptr %1810, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #9
  %1812 = load ptr, ptr %99, align 8, !tbaa !5
  %1813 = getelementptr inbounds %struct.ImGuiWindow, ptr %1812, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #9
  %1814 = load float, ptr %103, align 4, !tbaa !204
  %1815 = load float, ptr %103, align 4, !tbaa !204
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %105, float noundef %1814, float noundef %1815)
  %1816 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1813, ptr noundef nonnull align 4 dereferenceable(8) %105)
  store <2 x float> %1816, ptr %104, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1809, ptr noundef nonnull align 4 dereferenceable(8) %1811, ptr noundef nonnull align 4 dereferenceable(8) %104, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #9
  %1817 = load ptr, ptr %100, align 8, !tbaa !5
  %1818 = load ptr, ptr %99, align 8, !tbaa !5
  %1819 = getelementptr inbounds %struct.ImGuiWindow, ptr %1818, i32 0, i32 7
  %1820 = getelementptr inbounds [32 x i8], ptr %102, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1817, ptr noundef nonnull align 4 dereferenceable(8) %1819, i32 noundef -1, ptr noundef %1820, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #9
  br label %1821

1821:                                             ; preds = %1801, %1795, %1790
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #9
  store i32 0, ptr %6, align 4
  br label %1822

1822:                                             ; preds = %1821, %1769
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #9
  %1823 = load i32, ptr %6, align 4
  switch i32 %1823, label %1937 [
    i32 0, label %1824
    i32 76, label %1825
  ]

1824:                                             ; preds = %1822
  br label %1825

1825:                                             ; preds = %1824, %1822
  %1826 = load ptr, ptr %97, align 8, !tbaa !5
  %1827 = getelementptr inbounds ptr, ptr %1826, i32 1
  store ptr %1827, ptr %97, align 8, !tbaa !5
  br label %1757

1828:                                             ; preds = %1761
  br label %1829

1829:                                             ; preds = %1828, %1745
  %1830 = load ptr, ptr %5, align 8, !tbaa !5
  %1831 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1830, i32 0, i32 4
  %1832 = load i8, ptr %1831, align 4, !tbaa !123, !range !13, !noundef !14
  %1833 = trunc i8 %1832 to i1
  br i1 %1833, label %1834, label %1933

1834:                                             ; preds = %1829
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #9
  store i32 0, ptr %106, align 4, !tbaa !116
  br label %1835

1835:                                             ; preds = %1929, %1834
  %1836 = load i32, ptr %106, align 4, !tbaa !116
  %1837 = load ptr, ptr %3, align 8, !tbaa !5
  %1838 = getelementptr inbounds %struct.ImGuiContext, ptr %1837, i32 0, i32 180
  %1839 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1838)
  %1840 = icmp slt i32 %1836, %1839
  br i1 %1840, label %1842, label %1841

1841:                                             ; preds = %1835
  store i32 77, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #9
  br label %1932

1842:                                             ; preds = %1835
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #9
  %1843 = load ptr, ptr %3, align 8, !tbaa !5
  %1844 = getelementptr inbounds %struct.ImGuiContext, ptr %1843, i32 0, i32 180
  %1845 = load i32, ptr %106, align 4, !tbaa !116
  %1846 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1844, i32 noundef %1845)
  store ptr %1846, ptr %107, align 8, !tbaa !5
  %1847 = load ptr, ptr %107, align 8, !tbaa !5
  %1848 = icmp eq ptr %1847, null
  br i1 %1848, label %1858, label %1849

1849:                                             ; preds = %1842
  %1850 = load ptr, ptr %107, align 8, !tbaa !5
  %1851 = getelementptr inbounds %struct.ImGuiTable, ptr %1850, i32 0, i32 12
  %1852 = load i32, ptr %1851, align 8, !tbaa !124
  %1853 = load ptr, ptr %3, align 8, !tbaa !5
  %1854 = getelementptr inbounds %struct.ImGuiContext, ptr %1853, i32 0, i32 9
  %1855 = load i32, ptr %1854, align 8, !tbaa !134
  %1856 = sub nsw i32 %1855, 1
  %1857 = icmp slt i32 %1852, %1856
  br i1 %1857, label %1858, label %1859

1858:                                             ; preds = %1849, %1842
  store i32 79, ptr %6, align 4
  br label %1926

1859:                                             ; preds = %1849
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #9
  %1860 = load ptr, ptr %107, align 8, !tbaa !5
  %1861 = getelementptr inbounds %struct.ImGuiTable, ptr %1860, i32 0, i32 55
  %1862 = load ptr, ptr %1861, align 8, !tbaa !135
  %1863 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1862)
  store ptr %1863, ptr %108, align 8, !tbaa !5
  %1864 = load ptr, ptr %5, align 8, !tbaa !5
  %1865 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1864, i32 0, i32 10
  %1866 = load i32, ptr %1865, align 4, !tbaa !109
  %1867 = icmp sge i32 %1866, 6
  br i1 %1867, label %1868, label %1912

1868:                                             ; preds = %1859
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #9
  store i32 0, ptr %109, align 4, !tbaa !116
  br label %1869

1869:                                             ; preds = %1908, %1868
  %1870 = load i32, ptr %109, align 4, !tbaa !116
  %1871 = load ptr, ptr %107, align 8, !tbaa !5
  %1872 = getelementptr inbounds %struct.ImGuiTable, ptr %1871, i32 0, i32 13
  %1873 = load i32, ptr %1872, align 4, !tbaa !138
  %1874 = icmp slt i32 %1870, %1873
  br i1 %1874, label %1876, label %1875

1875:                                             ; preds = %1869
  store i32 80, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #9
  br label %1911

1876:                                             ; preds = %1869
  call void @llvm.lifetime.start.p0(i64 16, ptr %110) #9
  %1877 = load ptr, ptr %107, align 8, !tbaa !5
  %1878 = load ptr, ptr %5, align 8, !tbaa !5
  %1879 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1878, i32 0, i32 10
  %1880 = load i32, ptr %1879, align 4, !tbaa !109
  %1881 = load i32, ptr %109, align 4, !tbaa !116
  %1882 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1877, i32 noundef %1880, i32 noundef %1881)
  %1883 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %110, i32 0, i32 0
  %1884 = extractvalue { <2 x float>, <2 x float> } %1882, 0
  store <2 x float> %1884, ptr %1883, align 4
  %1885 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %110, i32 0, i32 1
  %1886 = extractvalue { <2 x float>, <2 x float> } %1882, 1
  store <2 x float> %1886, ptr %1885, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #9
  %1887 = load ptr, ptr %107, align 8, !tbaa !5
  %1888 = getelementptr inbounds %struct.ImGuiTable, ptr %1887, i32 0, i32 70
  %1889 = load i16, ptr %1888, align 2, !tbaa !273
  %1890 = sext i16 %1889 to i32
  %1891 = load i32, ptr %109, align 4, !tbaa !116
  %1892 = icmp eq i32 %1890, %1891
  %1893 = zext i1 %1892 to i64
  %1894 = select i1 %1892, i32 -8323073, i32 -8388353
  store i32 %1894, ptr %111, align 4, !tbaa !116
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #9
  %1895 = load ptr, ptr %107, align 8, !tbaa !5
  %1896 = getelementptr inbounds %struct.ImGuiTable, ptr %1895, i32 0, i32 70
  %1897 = load i16, ptr %1896, align 2, !tbaa !273
  %1898 = sext i16 %1897 to i32
  %1899 = load i32, ptr %109, align 4, !tbaa !116
  %1900 = icmp eq i32 %1898, %1899
  %1901 = zext i1 %1900 to i64
  %1902 = select i1 %1900, float 3.000000e+00, float 1.000000e+00
  store float %1902, ptr %112, align 4, !tbaa !204
  %1903 = load ptr, ptr %108, align 8, !tbaa !5
  %1904 = getelementptr inbounds %struct.ImRect, ptr %110, i32 0, i32 0
  %1905 = getelementptr inbounds %struct.ImRect, ptr %110, i32 0, i32 1
  %1906 = load i32, ptr %111, align 4, !tbaa !116
  %1907 = load float, ptr %112, align 4, !tbaa !204
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1903, ptr noundef nonnull align 4 dereferenceable(8) %1904, ptr noundef nonnull align 4 dereferenceable(8) %1905, i32 noundef %1906, float noundef 0.000000e+00, i32 noundef 0, float noundef %1907)
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %110) #9
  br label %1908

1908:                                             ; preds = %1876
  %1909 = load i32, ptr %109, align 4, !tbaa !116
  %1910 = add nsw i32 %1909, 1
  store i32 %1910, ptr %109, align 4, !tbaa !116
  br label %1869, !llvm.loop !274

1911:                                             ; preds = %1875
  br label %1925

1912:                                             ; preds = %1859
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #9
  %1913 = load ptr, ptr %107, align 8, !tbaa !5
  %1914 = load ptr, ptr %5, align 8, !tbaa !5
  %1915 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1914, i32 0, i32 10
  %1916 = load i32, ptr %1915, align 4, !tbaa !109
  %1917 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1913, i32 noundef %1916, i32 noundef -1)
  %1918 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %113, i32 0, i32 0
  %1919 = extractvalue { <2 x float>, <2 x float> } %1917, 0
  store <2 x float> %1919, ptr %1918, align 4
  %1920 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %113, i32 0, i32 1
  %1921 = extractvalue { <2 x float>, <2 x float> } %1917, 1
  store <2 x float> %1921, ptr %1920, align 4
  %1922 = load ptr, ptr %108, align 8, !tbaa !5
  %1923 = getelementptr inbounds %struct.ImRect, ptr %113, i32 0, i32 0
  %1924 = getelementptr inbounds %struct.ImRect, ptr %113, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1922, ptr noundef nonnull align 4 dereferenceable(8) %1923, ptr noundef nonnull align 4 dereferenceable(8) %1924, 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 %113) #9
  br label %1925

1925:                                             ; preds = %1912, %1911
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #9
  store i32 0, ptr %6, align 4
  br label %1926

1926:                                             ; preds = %1925, %1858
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #9
  %1927 = load i32, ptr %6, align 4
  switch i32 %1927, label %1937 [
    i32 0, label %1928
    i32 79, label %1929
  ]

1928:                                             ; preds = %1926
  br label %1929

1929:                                             ; preds = %1928, %1926
  %1930 = load i32, ptr %106, align 4, !tbaa !116
  %1931 = add nsw i32 %1930, 1
  store i32 %1931, ptr %106, align 4, !tbaa !116
  br label %1835, !llvm.loop !275

1932:                                             ; preds = %1841
  br label %1933

1933:                                             ; preds = %1932, %1829
  call void @_ZN5ImGui3EndEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 104, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %7) #9
  store i32 0, ptr %6, align 4
  br label %1934

1934:                                             ; preds = %1933, %143
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #9
  %1935 = load i32, ptr %6, align 4
  switch i32 %1935, label %1937 [
    i32 0, label %1936
    i32 1, label %1936
  ]

1936:                                             ; preds = %1934, %1934
  ret void

1937:                                             ; preds = %1934, %1926, %1822, %1402, %516
  unreachable
}

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

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

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

declare void @_ZN5ImGui9SeparatorEv() #6

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

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

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

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

declare void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef) #6

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

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

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

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

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

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

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

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

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

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

; 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) #8 align 2

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

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

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) #6

declare void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef) #6

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(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 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 #4 = { 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 #5 = { 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 #6 = { "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 = { 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 #8 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }

!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, !20, i64 204}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !6, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !18, i64 80, !18, i64 88, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !19, i64 124, !12, i64 128, !12, i64 132, !12, i64 136, !18, i64 140, !18, i64 148, !18, i64 156, !18, i64 164, !18, i64 172, !18, i64 180, !11, i64 188, !11, i64 189, !11, i64 190, !11, i64 191, !11, i64 192, !11, i64 193, !11, i64 194, !11, i64 195, !11, i64 196, !11, i64 197, !11, i64 198, !11, i64 199, !11, i64 200, !7, i64 201, !7, i64 202, !20, i64 204, !20, i64 206, !20, i64 208, !20, i64 210, !20, i64 212, !12, i64 216, !7, i64 220, !7, i64 221, !11, i64 222, !12, i64 224, !7, i64 228, !7, i64 229, !7, i64 230, !7, i64 231, !12, i64 232, !12, i64 233, !12, i64 234, !18, i64 236, !18, i64 244, !21, i64 256, !22, i64 272, !28, i64 504, !28, i64 520, !28, i64 536, !28, i64 552, !28, i64 568, !28, i64 584, !28, i64 600, !29, i64 616, !29, i64 620, !12, i64 624, !19, i64 628, !19, i64 632, !30, i64 640, !32, i64 656, !19, i64 672, !12, i64 676, !6, i64 680, !33, i64 688, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !6, i64 944, !7, i64 952, !7, i64 960, !7, i64 992, !12, i64 1008, !12, i64 1012, !12, i64 1016, !11, i64 1020}
!18 = !{!"_ZTS6ImVec2", !19, i64 0, !19, i64 4}
!19 = !{!"float", !7, i64 0}
!20 = !{!"short", !7, i64 0}
!21 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!22 = !{!"_ZTS19ImGuiWindowTempData", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !19, i64 56, !19, i64 60, !11, i64 64, !11, i64 65, !23, i64 68, !23, i64 72, !23, i64 76, !18, i64 80, !24, i64 88, !20, i64 92, !20, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !18, i64 100, !25, i64 108, !12, i64 136, !12, i64 140, !26, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !19, i64 192, !19, i64 196, !27, i64 200, !27, i64 216}
!23 = !{!"_ZTS6ImVec1", !19, i64 0}
!24 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!25 = !{!"_ZTS16ImGuiMenuColumns", !12, i64 0, !12, i64 4, !20, i64 8, !20, i64 10, !20, i64 12, !20, i64 14, !20, i64 16, !7, i64 18}
!26 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!28 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!29 = !{!"_ZTS8ImVec2ih", !20, i64 0, !20, i64 2}
!30 = !{!"_ZTS12ImGuiStorage", !31, i64 0}
!31 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !12, i64 0, !12, i64 4, !6, i64 8}
!32 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!33 = !{!"_ZTS10ImDrawList", !34, i64 0, !35, i64 16, !36, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !37, i64 88, !38, i64 104, !39, i64 120, !40, i64 136, !42, i64 168, !19, i64 192}
!34 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorIPvE", !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, !6, i64 16, !12, i64 24}
!41 = !{!"_ZTS6ImVec4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!42 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !43, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!44 = !{!45, !19, i64 204}
!45 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !19, i64 56, !11, i64 60, !6, i64 64, !18, 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, !19, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !11, i64 112, !11, i64 113, !11, i64 114, !11, i64 115, !11, i64 116, !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, !20, i64 192, !11, i64 194, !11, i64 195, !11, i64 196, !11, i64 197, !11, i64 198, !11, i64 199, !11, i64 200, !19, i64 204, !12, i64 208, !12, i64 212, !12, i64 216, !12, i64 220, !18, i64 224, !7, i64 232, !7, i64 2896, !7, i64 3564, !6, i64 3632, !18, i64 3640, !7, i64 3648, !19, i64 3656, !19, i64 3660, !46, i64 3664, !11, i64 3668, !11, i64 3669, !11, i64 3670, !11, i64 3671, !12, i64 3672, !7, i64 3676, !11, i64 14332, !18, i64 14336, !7, i64 14344, !7, i64 14384, !7, i64 14424, !7, i64 14429, !7, i64 14434, !7, i64 14444, !7, i64 14454, !7, i64 14459, !7, i64 14464, !11, i64 14469, !7, i64 14472, !7, i64 14492, !7, i64 14512, !19, i64 14532, !11, i64 14536, !11, i64 14537, !7, i64 14538, !11, i64 14539, !20, i64 14540, !35, i64 14544}
!46 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!47 = !{!45, !12, i64 208}
!48 = !{!45, !12, i64 212}
!49 = !{!45, !12, i64 216}
!50 = !{!51, !12, i64 24800}
!51 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !45, i64 8, !52, i64 14568, !6, i64 15664, !19, i64 15672, !19, i64 15676, !53, i64 15680, !54, i64 16208, !12, i64 16216, !12, i64 16220, !12, i64 16224, !11, i64 16228, !11, i64 16229, !11, i64 16230, !11, i64 16231, !11, i64 16232, !6, i64 16240, !55, i64 16248, !55, i64 16264, !46, i64 16280, !12, i64 16284, !26, i64 16288, !26, i64 16304, !26, i64 16320, !56, i64 16336, !30, i64 16352, !12, i64 16368, !18, i64 16372, !12, i64 16380, !6, i64 16384, !6, i64 16392, !6, i64 16400, !6, i64 16408, !6, i64 16416, !18, i64 16424, !12, i64 16432, !12, i64 16436, !19, i64 16440, !18, i64 16444, !18, i64 16452, !12, i64 16460, !12, i64 16464, !12, i64 16468, !11, i64 16472, !11, i64 16473, !19, i64 16476, !19, i64 16480, !12, i64 16484, !12, i64 16488, !19, i64 16492, !11, i64 16496, !11, i64 16497, !11, i64 16498, !11, i64 16499, !11, i64 16500, !11, i64 16501, !11, i64 16502, !12, i64 16503, !18, i64 16504, !6, i64 16512, !57, i64 16520, !12, i64 16524, !11, i64 16528, !11, i64 16529, !6, i64 16536, !12, i64 16544, !19, i64 16548, !54, i64 16552, !54, i64 16560, !54, i64 16568, !58, i64 16576, !7, i64 16596, !59, i64 18448, !12, i64 18792, !11, i64 18796, !12, i64 18800, !12, i64 18804, !12, i64 18808, !12, i64 18812, !12, i64 18816, !61, i64 18824, !63, i64 18856, !64, i64 18936, !11, i64 19048, !12, i64 19052, !65, i64 19056, !66, i64 19072, !67, i64 19088, !68, i64 19104, !69, i64 19120, !70, i64 19136, !71, i64 19152, !71, i64 19168, !72, i64 19184, !73, i64 19200, !6, i64 19216, !12, i64 19224, !12, i64 19228, !68, i64 19232, !12, i64 19248, !12, i64 19252, !12, i64 19256, !12, i64 19260, !12, i64 19264, !19, i64 19268, !12, i64 19272, !12, i64 19276, !12, i64 19280, !12, i64 19284, !12, i64 19288, !57, i64 19292, !24, i64 19296, !62, i64 19304, !11, i64 19312, !11, i64 19313, !11, i64 19314, !11, i64 19315, !11, i64 19316, !11, i64 19317, !11, i64 19318, !74, i64 19320, !11, i64 19384, !11, i64 19385, !11, i64 19386, !12, i64 19388, !12, i64 19392, !12, i64 19396, !12, i64 19400, !12, i64 19404, !12, i64 19408, !28, i64 19412, !28, i64 19428, !12, i64 19444, !12, i64 19448, !12, i64 19452, !74, i64 19456, !74, i64 19520, !74, i64 19584, !74, i64 19648, !12, i64 19712, !12, i64 19716, !6, i64 19720, !6, i64 19728, !6, i64 19736, !19, i64 19744, !19, i64 19748, !11, i64 19752, !75, i64 19756, !18, i64 19760, !18, i64 19768, !19, i64 19776, !11, i64 19780, !11, i64 19781, !11, i64 19782, !12, i64 19784, !12, i64 19788, !12, i64 19792, !76, i64 19800, !28, i64 19864, !28, i64 19880, !12, i64 19896, !12, i64 19900, !19, i64 19904, !12, i64 19908, !12, i64 19912, !12, i64 19916, !12, i64 19920, !77, i64 19928, !7, i64 19944, !12, i64 19960, !78, i64 19968, !6, i64 19984, !12, i64 19992, !12, i64 19996, !79, i64 20000, !80, i64 20016, !27, i64 20056, !43, i64 20072, !6, i64 20088, !82, i64 20096, !84, i64 20136, !85, i64 20152, !12, i64 20168, !12, i64 20172, !19, i64 20176, !19, i64 20180, !12, i64 20184, !12, i64 20188, !12, i64 20192, !19, i64 20196, !18, i64 20200, !86, i64 20208, !90, i64 23944, !91, i64 23968, !12, i64 24088, !12, i64 24092, !12, i64 24096, !12, i64 24100, !12, i64 24104, !12, i64 24108, !19, i64 24112, !19, i64 24116, !12, i64 24120, !41, i64 24124, !93, i64 24140, !28, i64 24188, !11, i64 24204, !19, i64 24208, !19, i64 24212, !11, i64 24216, !11, i64 24217, !19, i64 24220, !19, i64 24224, !19, i64 24228, !19, i64 24232, !20, i64 24236, !20, i64 24238, !20, i64 24240, !87, i64 24248, !21, i64 24264, !94, i64 24280, !96, i64 24384, !96, i64 24400, !11, i64 24416, !19, i64 24420, !97, i64 24424, !98, i64 24440, !99, i64 24456, !100, i64 24472, !101, i64 24488, !12, i64 24504, !7, i64 24512, !11, i64 24576, !102, i64 24580, !6, i64 24584, !97, i64 24592, !6, i64 24608, !6, i64 24616, !19, i64 24624, !11, i64 24628, !12, i64 24632, !12, i64 24636, !12, i64 24640, !12, i64 24644, !97, i64 24648, !103, i64 24664, !12, i64 24688, !7, i64 24692, !7, i64 24693, !11, i64 24694, !12, i64 24696, !7, i64 24700, !11, i64 24701, !7, i64 24702, !12, i64 24704, !19, i64 24708, !41, i64 24712, !10, i64 24728, !104, i64 24760, !106, i64 24800, !7, i64 24860, !12, i64 25100, !12, i64 25104, !19, i64 25108, !12, i64 25112, !12, i64 25116, !12, i64 25120, !87, i64 25128, !7, i64 25144}
!52 = !{!"_ZTS10ImGuiStyle", !19, i64 0, !19, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !18, i64 24, !18, i64 32, !12, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !18, i64 60, !19, i64 68, !19, i64 72, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !19, i64 148, !19, i64 152, !12, i64 156, !18, i64 160, !18, i64 168, !19, i64 176, !18, i64 180, !18, i64 188, !18, i64 196, !18, i64 204, !19, i64 212, !11, i64 216, !11, i64 217, !11, i64 218, !19, i64 220, !19, i64 224, !7, i64 228, !19, i64 1076, !19, i64 1080, !19, i64 1084, !12, i64 1088, !12, i64 1092}
!53 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !19, i64 16, !19, i64 20, !19, i64 24, !41, i64 28, !12, i64 44, !39, i64 48, !7, i64 64, !19, i64 448, !7, i64 452, !6, i64 520}
!54 = !{!"double", !7, i64 0}
!55 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!57 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!58 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!59 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !60, i64 312, !60, i64 328}
!60 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !62, i64 8, !19, i64 16, !12, i64 20, !11, i64 24, !12, i64 25}
!62 = !{!"long long", !7, i64 0}
!63 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !28, i64 12, !28, i64 28, !28, i64 44, !28, i64 60}
!64 = !{!"_ZTS19ImGuiNextWindowData", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !12, i64 56, !11, i64 60, !28, i64 64, !6, i64 80, !6, i64 88, !19, i64 96, !18, i64 100}
!65 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI20ImGuiNavTreeNodeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !28, i64 16, !12, i64 32, !62, i64 40, !19, i64 48, !19, i64 52, !19, i64 56}
!75 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!76 = !{!"_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}
!77 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!80 = !{!"_ZTS6ImPoolI10ImGuiTableE", !81, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!81 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !83, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!83 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!86 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !35, i64 24, !87, i64 40, !87, i64 56, !11, i64 72, !12, i64 76, !19, i64 80, !88, i64 84, !19, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !12, i64 3720, !11, i64 3724, !12, i64 3728, !12, i64 3732}
!87 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!88 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !12, i64 0, !12, i64 4, !12, i64 8, !7, i64 12, !12, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !19, i64 28, !89, i64 32}
!89 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !20, i64 3582, !20, i64 3584, !12, i64 3588, !12, i64 3592}
!90 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !87, i64 8}
!91 = !{!"_ZTS6ImFont", !27, i64 0, !19, i64 16, !19, i64 20, !35, i64 24, !92, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !20, i64 80, !20, i64 82, !20, i64 84, !20, i64 86, !19, i64 88, !19, i64 92, !11, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !12, i64 112, !7, i64 116}
!92 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!93 = !{!"_ZTS21ImGuiComboPreviewData", !28, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !19, i64 40, !12, i64 44}
!94 = !{!"_ZTS22ImGuiTypingSelectState", !95, i64 0, !7, i64 24, !12, i64 88, !12, i64 92, !19, i64 96, !11, i64 100}
!95 = !{!"_ZTS24ImGuiTypingSelectRequest", !12, i64 0, !12, i64 4, !6, i64 8, !11, i64 16, !11, i64 17, !7, i64 18}
!96 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !18, i64 4, !19, i64 12}
!97 = !{!"_ZTS15ImGuiTextBuffer", !87, i64 0}
!98 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!99 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !87, i64 0}
!100 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !87, i64 0}
!101 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!102 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!103 = !{!"_ZTS14ImGuiTextIndex", !69, i64 0, !12, i64 16}
!104 = !{!"_ZTS16ImGuiIDStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !105, i64 16, !11, i64 32, !19, i64 36}
!105 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!106 = !{!"_ZTS19ImGuiDebugAllocInfo", !12, i64 0, !12, i64 4, !20, i64 8, !7, i64 12}
!107 = !{!51, !12, i64 24804}
!108 = !{!10, !12, i64 12}
!109 = !{!10, !12, i64 16}
!110 = !{!18, !19, i64 0}
!111 = !{!51, !19, i64 14756}
!112 = !{!51, !11, i64 24701}
!113 = !{!10, !11, i64 2}
!114 = !{!51, !6, i64 19216}
!115 = !{!17, !6, i64 8}
!116 = !{!12, !12, i64 0}
!117 = !{!28, !19, i64 0}
!118 = !{!28, !19, i64 4}
!119 = !{!28, !19, i64 8}
!120 = !{!28, !19, i64 12}
!121 = distinct !{!121, !122}
!122 = !{!"llvm.loop.mustprogress"}
!123 = !{!10, !11, i64 4}
!124 = !{!125, !12, i64 104}
!125 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !126, i64 24, !127, i64 40, !128, i64 56, !6, i64 72, !6, i64 80, !6, i64 88, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !20, i64 120, !20, i64 122, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !12, i64 148, !12, i64 150, !12, i64 152, !7, i64 156, !12, i64 164, !12, i64 168, !19, i64 172, !19, i64 176, !19, i64 180, !19, i64 184, !19, i64 188, !19, i64 192, !19, i64 196, !19, i64 200, !19, i64 204, !19, i64 208, !19, i64 212, !19, i64 216, !19, i64 220, !19, i64 224, !19, i64 228, !19, i64 232, !19, i64 236, !28, i64 240, !28, i64 256, !28, i64 272, !28, i64 288, !28, i64 304, !28, i64 320, !28, i64 336, !28, i64 352, !28, i64 368, !6, i64 384, !6, i64 392, !97, i64 400, !6, i64 416, !129, i64 424, !130, i64 448, !131, i64 464, !132, i64 480, !133, i64 496, !20, i64 512, !20, i64 514, !20, i64 516, !20, i64 518, !20, i64 520, !20, i64 522, !20, i64 524, !20, i64 526, !20, i64 528, !20, i64 530, !20, i64 532, !20, i64 534, !20, i64 536, !20, i64 538, !20, i64 540, !20, i64 542, !20, i64 544, !20, i64 546, !20, i64 548, !20, i64 550, !20, i64 552, !20, i64 554, !20, i64 556, !20, i64 558, !20, i64 560, !20, i64 562, !20, i64 564, !11, i64 566, !11, i64 567, !11, i64 568, !11, i64 569, !11, i64 570, !11, i64 571, !11, i64 572, !11, i64 573, !11, i64 574, !11, i64 575, !11, i64 576, !11, i64 577, !11, i64 578, !11, i64 579, !11, i64 580, !11, i64 581, !11, i64 582, !11, i64 583, !11, i64 584, !11, i64 585}
!126 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!127 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!128 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!129 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !19, i64 4, !19, i64 8, !19, i64 12, !12, i64 16, !12, i64 20}
!130 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!131 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !20, i64 4, !20, i64 6, !12, i64 8}
!132 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!133 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!134 = !{!51, !12, i64 16216}
!135 = !{!125, !6, i64 384}
!136 = !{!125, !6, i64 392}
!137 = !{!125, !12, i64 0}
!138 = !{!125, !12, i64 108}
!139 = distinct !{!139, !122}
!140 = distinct !{!140, !122}
!141 = distinct !{!141, !122}
!142 = !{!10, !11, i64 7}
!143 = !{!7, !7, i64 0}
!144 = !{!51, !12, i64 16288}
!145 = !{!17, !12, i64 624}
!146 = !{!26, !6, i64 8}
!147 = !{!26, !12, i64 0}
!148 = !{!149, !12, i64 88}
!149 = !{!"_ZTS14ImGuiViewportP", !150, i64 0, !7, i64 48, !7, i64 56, !151, i64 72, !153, i64 136, !18, i64 168, !18, i64 176, !18, i64 184, !18, i64 192}
!150 = !{!"_ZTS13ImGuiViewport", !12, i64 0, !12, i64 4, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !6, i64 40}
!151 = !{!"_ZTS10ImDrawData", !11, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !152, i64 16, !18, i64 32, !18, i64 40, !18, i64 48, !6, i64 56}
!152 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!153 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0, !152, i64 16}
!154 = !{!51, !12, i64 19200}
!155 = !{!10, !12, i64 24}
!156 = !{!51, !12, i64 19152}
!157 = !{!158, !6, i64 8}
!158 = !{!"_ZTS14ImGuiPopupData", !12, i64 0, !6, i64 8, !6, i64 16, !12, i64 24, !12, i64 28, !12, i64 32, !18, i64 36, !18, i64 44}
!159 = !{!158, !12, i64 0}
!160 = !{!17, !12, i64 20}
!161 = !{!158, !6, i64 16}
!162 = !{!17, !6, i64 888}
!163 = distinct !{!163, !122}
!164 = distinct !{!164, !122}
!165 = !{!51, !6, i64 56}
!166 = !{!167, !12, i64 88}
!167 = !{!"_ZTS11ImFontAtlas", !12, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !11, i64 24, !6, i64 32, !11, i64 40, !11, i64 41, !6, i64 48, !6, i64 56, !12, i64 64, !12, i64 68, !18, i64 72, !18, i64 80, !67, i64 88, !168, i64 104, !169, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!168 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!169 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!170 = !{!51, !6, i64 32}
!171 = !{!51, !19, i64 24420}
!172 = !{!51, !12, i64 24440}
!173 = !{!174, !6, i64 0}
!174 = !{!"_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}
!175 = distinct !{!175, !122}
!176 = distinct !{!176, !122}
!177 = !{!51, !12, i64 24424}
!178 = !{!106, !12, i64 0}
!179 = !{!106, !12, i64 4}
!180 = !{!51, !11, i64 16231}
!181 = !{!106, !20, i64 8}
!182 = !{!183, !12, i64 0}
!183 = !{!"_ZTS20ImGuiDebugAllocEntry", !12, i64 0, !20, i64 4, !20, i64 6}
!184 = !{!183, !20, i64 4}
!185 = !{!183, !20, i64 6}
!186 = distinct !{!186, !122}
!187 = !{!75, !75, i64 0}
!188 = !{!189, !19, i64 4}
!189 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!190 = distinct !{!190, !122}
!191 = distinct !{!191, !122}
!192 = distinct !{!192, !122}
!193 = !{!45, !11, i64 3668}
!194 = !{!45, !11, i64 3669}
!195 = !{!45, !11, i64 3670}
!196 = !{!45, !11, i64 3671}
!197 = !{!45, !12, i64 14544}
!198 = !{!20, !20, i64 0}
!199 = distinct !{!199, !122}
!200 = !{!45, !19, i64 3640}
!201 = !{!45, !19, i64 3644}
!202 = !{!45, !19, i64 224}
!203 = !{!45, !19, i64 228}
!204 = !{!19, !19, i64 0}
!205 = distinct !{!205, !122}
!206 = distinct !{!206, !122}
!207 = distinct !{!207, !122}
!208 = !{!45, !19, i64 3656}
!209 = !{!51, !19, i64 20196}
!210 = !{!45, !46, i64 3664}
!211 = !{!45, !19, i64 14532}
!212 = !{!51, !6, i64 16416}
!213 = !{!51, !19, i64 16440}
!214 = !{!51, !19, i64 16452}
!215 = !{!51, !19, i64 16456}
!216 = !{!217, !12, i64 0}
!217 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!218 = !{!217, !11, i64 9}
!219 = !{!217, !11, i64 8}
!220 = distinct !{!220, !122}
!221 = !{!222, !20, i64 2}
!222 = !{!"_ZTS19ImGuiKeyRoutingData", !20, i64 0, !20, i64 2, !7, i64 4, !7, i64 5, !12, i64 8, !12, i64 12}
!223 = !{!222, !12, i64 8}
!224 = !{!222, !7, i64 4}
!225 = !{!51, !11, i64 120}
!226 = !{!51, !12, i64 18800}
!227 = !{!222, !20, i64 0}
!228 = distinct !{!228, !122}
!229 = distinct !{!229, !122}
!230 = !{!51, !11, i64 18796}
!231 = !{!51, !12, i64 18792}
!232 = !{!51, !6, i64 16392}
!233 = !{!17, !6, i64 904}
!234 = !{!51, !6, i64 16400}
!235 = !{!51, !6, i64 16408}
!236 = !{!51, !12, i64 16484}
!237 = !{!51, !12, i64 16524}
!238 = !{!51, !19, i64 16492}
!239 = !{!51, !11, i64 16497}
!240 = !{!51, !57, i64 16520}
!241 = !{!51, !6, i64 16512}
!242 = !{!51, !12, i64 16468}
!243 = !{!51, !19, i64 16476}
!244 = !{!51, !11, i64 16472}
!245 = !{!51, !12, i64 20168}
!246 = !{!51, !19, i64 20176}
!247 = !{!51, !19, i64 20180}
!248 = !{!51, !11, i64 19780}
!249 = !{!51, !12, i64 19812}
!250 = !{!51, !12, i64 19808}
!251 = !{!51, !12, i64 19224}
!252 = !{!51, !24, i64 19296}
!253 = !{!51, !57, i64 19292}
!254 = !{!51, !62, i64 19304}
!255 = !{!51, !11, i64 207}
!256 = !{!51, !11, i64 208}
!257 = !{!51, !12, i64 19248}
!258 = !{!51, !12, i64 19252}
!259 = !{!51, !12, i64 19256}
!260 = !{!51, !12, i64 19260}
!261 = !{!51, !11, i64 19314}
!262 = !{!51, !11, i64 19315}
!263 = !{!51, !12, i64 19228}
!264 = !{!51, !12, i64 19232}
!265 = !{!266, !12, i64 0}
!266 = !{!"_ZTS19ImGuiFocusScopeData", !12, i64 0, !12, i64 4}
!267 = !{!266, !12, i64 4}
!268 = distinct !{!268, !122}
!269 = !{!51, !6, i64 19720}
!270 = !{!10, !11, i64 3}
!271 = !{!17, !11, i64 191}
!272 = !{!17, !20, i64 210}
!273 = !{!125, !20, i64 522}
!274 = distinct !{!274, !122}
!275 = distinct !{!275, !122}


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

@GImGui = external dso_local local_unnamed_addr global ptr, align 8
@.str.17 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.360 = 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.378 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [64 x i8], align 16
@.str.404 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.422 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.423 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.494 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.520 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [25 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 nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui7TreePopEv() local_unnamed_addr #6

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

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

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

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

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

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

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

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

; 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 @_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 #8 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef %0) local_unnamed_addr #7 {
  %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 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %33 = getelementptr inbounds i8, ptr %32, i64 24728
  %34 = load i8, ptr %33, align 4, !tbaa !9, !range !13, !noundef !14
  %35 = trunc nuw i8 %34 to i1
  br i1 %35, label %36, label %37

36:                                               ; preds = %1
  tail call void @_ZN5ImGui18ShowDebugLogWindowEPb(ptr noundef nonnull %33)
  br label %37

37:                                               ; preds = %36, %1
  %38 = getelementptr inbounds i8, ptr %32, i64 24729
  %39 = load i8, ptr %38, align 1, !tbaa !15, !range !13, !noundef !14
  %40 = trunc nuw i8 %39 to i1
  br i1 %40, label %41, label %42

41:                                               ; preds = %37
  tail call void @_ZN5ImGui21ShowIDStackToolWindowEPb(ptr noundef nonnull %38)
  br label %42

42:                                               ; preds = %41, %37
  %43 = tail call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.356, ptr noundef %0, i32 noundef 0)
  br i1 %43, label %44, label %49

44:                                               ; preds = %42
  %45 = tail call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %46 = getelementptr inbounds i8, ptr %45, i64 204
  %47 = load i16, ptr %46, align 4, !tbaa !16
  %48 = icmp sgt i16 %47, 1
  br i1 %48, label %49, label %50

49:                                               ; preds = %44, %42
  tail call void @_ZN5ImGui3EndEv()
  br label %1162

50:                                               ; preds = %44
  tail call void @_ZN5ImGui19DebugBreakClearDataEv()
  %51 = tail call noundef ptr @_ZN5ImGui10GetVersionEv()
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.357, ptr noundef %51)
  %52 = getelementptr inbounds i8, ptr %32, i64 212
  %53 = load float, ptr %52, align 4, !tbaa !44
  %54 = fdiv float 1.000000e+03, %53
  %55 = fpext float %54 to double
  %56 = fpext float %53 to double
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.358, double noundef %55, double noundef %56)
  %57 = getelementptr inbounds i8, ptr %32, i64 216
  %58 = load i32, ptr %57, align 8, !tbaa !47
  %59 = getelementptr inbounds i8, ptr %32, i64 220
  %60 = load i32, ptr %59, align 4, !tbaa !48
  %61 = sdiv i32 %60, 3
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.359, i32 noundef %58, i32 noundef %60, i32 noundef %61)
  %62 = getelementptr inbounds i8, ptr %32, i64 224
  %63 = load i32, ptr %62, align 8, !tbaa !49
  %64 = getelementptr inbounds i8, ptr %32, i64 24800
  %65 = load i32, ptr %64, align 8, !tbaa !50
  %66 = getelementptr inbounds i8, ptr %32, i64 24804
  %67 = load i32, ptr %66, align 4, !tbaa !107
  %68 = sub nsw i32 %65, %67
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.360, i32 noundef %63, i32 noundef %68)
  tail call void @_ZN5ImGui9SeparatorEv()
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %2) #9
  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) #9
  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)
  %69 = getelementptr inbounds i8, ptr %32, i64 24740
  %70 = load i32, ptr %69, align 4, !tbaa !108
  %71 = icmp slt i32 %70, 0
  br i1 %71, label %72, label %73

72:                                               ; preds = %50
  store i32 4, ptr %69, align 4, !tbaa !108
  br label %73

73:                                               ; preds = %72, %50
  %74 = getelementptr inbounds i8, ptr %32, i64 24744
  %75 = load i32, ptr %74, align 4, !tbaa !109
  %76 = icmp slt i32 %75, 0
  br i1 %76, label %77, label %78

77:                                               ; preds = %73
  store i32 2, ptr %74, align 4, !tbaa !109
  br label %78

78:                                               ; preds = %77, %73
  %79 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.378)
  br i1 %79, label %80, label %385

80:                                               ; preds = %78
  %81 = tail call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef nonnull @.str.380, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %81, i64 0
  %82 = getelementptr inbounds i8, ptr %32, i64 14756
  %83 = load float, ptr %82, align 4, !tbaa !110
  %84 = fadd float %.sroa.0.0.vec.extract, %83
  tail call void @_ZN5ImGui15SeparatorTextExEjPKcS1_f(i32 noundef 0, ptr noundef nonnull @.str.379, ptr noundef null, float noundef %84)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.381)
  %85 = getelementptr inbounds i8, ptr %32, i64 24701
  %86 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.382, ptr noundef nonnull %85)
  br i1 %86, label %87, label %91

87:                                               ; preds = %80
  %88 = load i8, ptr %85, align 1, !tbaa !111, !range !13, !noundef !14
  %89 = trunc nuw i8 %88 to i1
  br i1 %89, label %90, label %91

90:                                               ; preds = %87
  tail call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %91

91:                                               ; preds = %90, %87, %80
  %92 = getelementptr inbounds i8, ptr %32, i64 120
  %93 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.383, ptr noundef nonnull %92)
  tail call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.384)
  %94 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.385, ptr noundef nonnull %33)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.386)
  %95 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.387, ptr noundef nonnull %38)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.388)
  %96 = getelementptr inbounds i8, ptr %32, i64 24731
  %97 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.389, ptr noundef nonnull %96)
  %98 = getelementptr inbounds i8, ptr %32, i64 24730
  %99 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.390, ptr noundef nonnull %98)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %100 = tail call noundef float @_ZN5ImGui11GetFontSizeEv()
  %101 = fmul float %100, 1.200000e+01
  tail call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %101)
  %102 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.391, ptr noundef nonnull %69, ptr noundef nonnull %2, i32 noundef 8, i32 noundef 8)
  %103 = load i8, ptr %98, align 2, !tbaa !112, !range !13, !noundef !14
  %104 = zext i1 %102 to i8
  %105 = or i8 %103, %104
  %.not = icmp eq i8 %105, 0
  store i8 %105, ptr %98, align 2, !tbaa !112
  br i1 %.not, label %256, label %106

106:                                              ; preds = %91
  %107 = getelementptr inbounds i8, ptr %32, i64 19216
  %108 = load ptr, ptr %107, align 8, !tbaa !113
  %.not488 = icmp eq ptr %108, null
  br i1 %.not488, label %256, label %109

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

256:                                              ; preds = %109, %106, %91
  %257 = getelementptr inbounds i8, ptr %32, i64 24732
  %258 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.394, ptr noundef nonnull %257)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %259 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %260 = fmul float %259, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %260)
  %261 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.395, ptr noundef nonnull %74, ptr noundef nonnull %3, i32 noundef 13, i32 noundef 13)
  %262 = load i8, ptr %257, align 4, !tbaa !115, !range !13, !noundef !14
  %263 = zext i1 %261 to i8
  %264 = or i8 %262, %263
  %.not489 = icmp eq i8 %264, 0
  store i8 %264, ptr %257, align 4, !tbaa !115
  br i1 %.not489, label %.loopexit544, label %265

265:                                              ; preds = %256
  %266 = getelementptr inbounds i8, ptr %32, i64 19216
  %267 = load ptr, ptr %266, align 8, !tbaa !113
  %.not490 = icmp eq ptr %267, null
  br i1 %.not490, label %.loopexit544, label %.preheader543

.preheader543:                                    ; preds = %265
  %268 = getelementptr inbounds i8, ptr %32, i64 20016
  %269 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %268)
  %270 = icmp sgt i32 %269, 0
  br i1 %270, label %.lr.ph550, label %.loopexit544

.lr.ph550:                                        ; preds = %.preheader543
  %271 = getelementptr inbounds i8, ptr %32, i64 16216
  %272 = getelementptr inbounds i8, ptr %16, i64 8
  %273 = getelementptr inbounds i8, ptr %10, i64 8
  br label %274

274:                                              ; preds = %.lr.ph550, %368
  %.0438549 = phi i32 [ 0, %.lr.ph550 ], [ %369, %368 ]
  %275 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %268, i32 noundef %.0438549)
  %276 = icmp eq ptr %275, null
  br i1 %276, label %368, label %277

277:                                              ; preds = %274
  %278 = getelementptr inbounds i8, ptr %275, i64 104
  %279 = load i32, ptr %278, align 8, !tbaa !116
  %280 = load i32, ptr %271, align 8, !tbaa !126
  %281 = add nsw i32 %280, -1
  %282 = icmp slt i32 %279, %281
  br i1 %282, label %368, label %283

283:                                              ; preds = %277
  %284 = getelementptr inbounds i8, ptr %275, i64 384
  %285 = load ptr, ptr %284, align 8, !tbaa !127
  %286 = load ptr, ptr %266, align 8, !tbaa !113
  %.not520 = icmp eq ptr %285, %286
  br i1 %.not520, label %290, label %287

287:                                              ; preds = %283
  %288 = getelementptr inbounds i8, ptr %275, i64 392
  %289 = load ptr, ptr %288, align 8, !tbaa !128
  %.not521 = icmp eq ptr %289, %286
  br i1 %.not521, label %290, label %368

290:                                              ; preds = %287, %283
  %291 = load i32, ptr %275, align 8, !tbaa !129
  %292 = getelementptr inbounds i8, ptr %275, i64 108
  %293 = load i32, ptr %292, align 4, !tbaa !130
  %294 = getelementptr inbounds i8, ptr %285, i64 8
  %295 = load ptr, ptr %294, align 8, !tbaa !114
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.396, i32 noundef %291, i32 noundef %293, ptr noundef %295)
  %296 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %296, label %297, label %303

297:                                              ; preds = %290
  %298 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  %299 = getelementptr inbounds i8, ptr %275, i64 240
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %300 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %299, ptr noundef nonnull align 4 dereferenceable(8) %6)
  store <2 x float> %300, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %301 = getelementptr inbounds i8, ptr %275, i64 248
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %302 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %301, ptr noundef nonnull align 4 dereferenceable(8) %8)
  store <2 x float> %302, ptr %7, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %298, 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) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  br label %303

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

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

305:                                              ; preds = %303, %.loopexit542
  %indvars.iv = phi i64 [ 0, %303 ], [ %indvars.iv.next, %.loopexit542 ]
  %306 = icmp ugt i64 %indvars.iv, 5
  br i1 %306, label %307, label %341

307:                                              ; preds = %305
  %308 = trunc nuw nsw i64 %indvars.iv to i32
  switch i32 %308, label %.loopexit542 [
    i32 8, label %309
    i32 6, label %309
  ]

309:                                              ; preds = %307, %307
  %310 = load i32, ptr %292, align 4, !tbaa !130
  %311 = icmp sgt i32 %310, 0
  br i1 %311, label %.lr.ph, label %.loopexit542

.lr.ph:                                           ; preds = %309
  %312 = getelementptr inbounds [13 x ptr], ptr %3, i64 0, i64 %indvars.iv
  br label %313

313:                                              ; preds = %.lr.ph, %337
  %.0441546 = phi i32 [ 0, %.lr.ph ], [ %338, %337 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #9
  %314 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %275, i32 noundef %308, i32 noundef %.0441546)
  %315 = extractvalue { <2 x float>, <2 x float> } %314, 0
  store <2 x float> %315, ptr %10, align 8
  %316 = extractvalue { <2 x float>, <2 x float> } %314, 1
  store <2 x float> %316, ptr %273, align 8
  %317 = extractelement <2 x float> %315, i64 0
  %318 = fpext float %317 to double
  %319 = extractelement <2 x float> %315, i64 1
  %320 = fpext float %319 to double
  %321 = extractelement <2 x float> %316, i64 0
  %322 = fpext float %321 to double
  %323 = extractelement <2 x float> %316, i64 1
  %324 = fpext float %323 to double
  %325 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %326 = fpext float %325 to double
  %327 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %328 = fpext float %327 to double
  %329 = load ptr, ptr %312, align 8, !tbaa !5
  %330 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %9, i64 noundef 128, ptr noundef nonnull @.str.397, double noundef %318, double noundef %320, double noundef %322, double noundef %324, double noundef %326, double noundef %328, i32 noundef %.0441546, ptr noundef %329)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %331 = 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) #9
  %332 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %332, label %333, label %337

333:                                              ; preds = %313
  %334 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %13, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %335 = 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> %335, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %336 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %273, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %336, ptr %14, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %334, 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) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  br label %337

337:                                              ; preds = %333, %313
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #9
  %338 = add nuw nsw i32 %.0441546, 1
  %339 = load i32, ptr %292, align 4, !tbaa !130
  %340 = icmp slt i32 %338, %339
  br i1 %340, label %313, label %.loopexit542, !llvm.loop !131

341:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #9
  %342 = trunc nuw nsw i64 %indvars.iv to i32
  %343 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %275, i32 noundef %342, i32 noundef -1)
  %344 = extractvalue { <2 x float>, <2 x float> } %343, 0
  store <2 x float> %344, ptr %16, align 8
  %345 = extractvalue { <2 x float>, <2 x float> } %343, 1
  store <2 x float> %345, ptr %272, align 8
  %346 = extractelement <2 x float> %344, i64 0
  %347 = fpext float %346 to double
  %348 = extractelement <2 x float> %344, i64 1
  %349 = fpext float %348 to double
  %350 = extractelement <2 x float> %345, i64 0
  %351 = fpext float %350 to double
  %352 = extractelement <2 x float> %345, i64 1
  %353 = fpext float %352 to double
  %354 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %16)
  %355 = fpext float %354 to double
  %356 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %16)
  %357 = fpext float %356 to double
  %358 = getelementptr inbounds [13 x ptr], ptr %3, i64 0, i64 %indvars.iv
  %359 = load ptr, ptr %358, align 8, !tbaa !5
  %360 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %9, i64 noundef 128, ptr noundef nonnull @.str.393, double noundef %347, double noundef %349, double noundef %351, double noundef %353, double noundef %355, double noundef %357, ptr noundef %359)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %361 = 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) #9
  %362 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %362, label %363, label %367

363:                                              ; preds = %341
  %364 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %365 = 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> %365, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %21, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %366 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %272, ptr noundef nonnull align 4 dereferenceable(8) %21)
  store <2 x float> %366, ptr %20, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %364, 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) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  br label %367

367:                                              ; preds = %363, %341
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #9
  br label %.loopexit542

.loopexit542:                                     ; preds = %337, %309, %307, %367
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 13
  br i1 %exitcond.not, label %304, label %305, !llvm.loop !133

368:                                              ; preds = %274, %277, %287, %304
  %369 = add nuw nsw i32 %.0438549, 1
  %370 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %268)
  %371 = icmp slt i32 %369, %370
  br i1 %371, label %274, label %.loopexit544, !llvm.loop !134

.loopexit544:                                     ; preds = %368, %.preheader543, %265, %256
  %372 = getelementptr inbounds i8, ptr %32, i64 19048
  %373 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.398, ptr noundef nonnull %372)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.399)
  %374 = getelementptr inbounds i8, ptr %32, i64 122
  %375 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.400, ptr noundef nonnull %374)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.401)
  %376 = getelementptr inbounds i8, ptr %32, i64 24735
  %377 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.402, ptr noundef nonnull %376)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.403)
  %378 = load i8, ptr %376, align 1, !tbaa !135, !range !13, !noundef !14
  %379 = trunc nuw i8 %378 to i1
  br i1 %379, label %380, label %384

380:                                              ; preds = %.loopexit544
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %381 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.404, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 64, i32 noundef 0, ptr noundef null, ptr noundef null)
  %382 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !136
  %.not491 = icmp eq i8 %382, 0
  br i1 %.not491, label %384, label %383

383:                                              ; preds = %380
  call void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE3buf)
  br label %384

384:                                              ; preds = %380, %383, %.loopexit544
  call void @_ZN5ImGui7TreePopEv()
  br label %385

385:                                              ; preds = %384, %78
  %386 = getelementptr inbounds i8, ptr %32, i64 16288
  %387 = load i32, ptr %386, align 8, !tbaa !137
  %388 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.405, ptr noundef nonnull @.str.406, i32 noundef %387)
  br i1 %388, label %389, label %413

389:                                              ; preds = %385
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %386, ptr noundef nonnull @.str.407)
  %390 = getelementptr inbounds i8, ptr %32, i64 16304
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %390, ptr noundef nonnull @.str.408)
  %391 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.409)
  br i1 %391, label %392, label %412

392:                                              ; preds = %389
  %393 = getelementptr inbounds i8, ptr %32, i64 16320
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %393, i32 noundef 0)
  %394 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %386)
  %395 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %386)
  %.not492551 = icmp eq ptr %394, %395
  br i1 %.not492551, label %._crit_edge, label %.lr.ph553

.lr.ph553:                                        ; preds = %392
  %396 = getelementptr inbounds i8, ptr %32, i64 16216
  br label %403

._crit_edge:                                      ; preds = %410, %392
  %397 = getelementptr inbounds i8, ptr %32, i64 16328
  %398 = load ptr, ptr %397, align 8, !tbaa !138
  %399 = load i32, ptr %393, align 8, !tbaa !139
  %400 = sext i32 %399 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %398, i64 noundef %400, i64 noundef 8, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %401 = load ptr, ptr %397, align 8, !tbaa !138
  %402 = load i32, ptr %393, align 8, !tbaa !139
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %401, i32 noundef %402, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %412

403:                                              ; preds = %.lr.ph553, %410
  %.0442552 = phi ptr [ %394, %.lr.ph553 ], [ %411, %410 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #9
  %404 = load ptr, ptr %.0442552, align 8, !tbaa !5
  store ptr %404, ptr %22, align 8, !tbaa !5
  %405 = getelementptr inbounds i8, ptr %404, i64 624
  %406 = load i32, ptr %405, align 8, !tbaa !140
  %407 = add nsw i32 %406, 1
  %408 = load i32, ptr %396, align 8, !tbaa !126
  %.not519 = icmp slt i32 %407, %408
  br i1 %.not519, label %410, label %409

409:                                              ; preds = %403
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %393, ptr noundef nonnull align 8 dereferenceable(8) %22)
  br label %410

410:                                              ; preds = %409, %403
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  %411 = getelementptr inbounds i8, ptr %.0442552, i64 8
  %.not492 = icmp eq ptr %411, %395
  br i1 %.not492, label %._crit_edge, label %403

412:                                              ; preds = %._crit_edge, %389
  call void @_ZN5ImGui7TreePopEv()
  br label %413

413:                                              ; preds = %412, %385
  %414 = getelementptr inbounds i8, ptr %32, i64 19200
  %415 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %414)
  %416 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %414)
  %.not493554 = icmp eq ptr %415, %416
  br i1 %.not493554, label %._crit_edge559, label %.lr.ph558

._crit_edge559:                                   ; preds = %.lr.ph558, %413
  %.0443.lcssa = phi i32 [ 0, %413 ], [ %421, %.lr.ph558 ]
  %417 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.410, ptr noundef nonnull @.str.411, i32 noundef %.0443.lcssa)
  br i1 %417, label %423, label %437

.lr.ph558:                                        ; preds = %413, %.lr.ph558
  %.0443556 = phi i32 [ %421, %.lr.ph558 ], [ 0, %413 ]
  %.0444555 = phi ptr [ %422, %.lr.ph558 ], [ %415, %413 ]
  %418 = load ptr, ptr %.0444555, align 8, !tbaa !5
  %419 = getelementptr inbounds i8, ptr %418, i64 88
  %420 = load i32, ptr %419, align 8, !tbaa !141
  %421 = add nsw i32 %420, %.0443556
  %422 = getelementptr inbounds i8, ptr %.0444555, i64 8
  %.not493 = icmp eq ptr %422, %416
  br i1 %.not493, label %._crit_edge559, label %.lr.ph558

423:                                              ; preds = %._crit_edge559
  %424 = getelementptr inbounds i8, ptr %32, i64 24733
  %425 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.412, ptr noundef nonnull %424)
  %426 = getelementptr inbounds i8, ptr %32, i64 24734
  %427 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.413, ptr noundef nonnull %426)
  %428 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %414)
  %429 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %414)
  %.not494565 = icmp eq ptr %428, %429
  br i1 %.not494565, label %._crit_edge569, label %.lr.ph568

._crit_edge569:                                   ; preds = %._crit_edge564, %423
  call void @_ZN5ImGui7TreePopEv()
  br label %437

.lr.ph568:                                        ; preds = %423, %._crit_edge564
  %.0446566 = phi ptr [ %434, %._crit_edge564 ], [ %428, %423 ]
  %430 = load ptr, ptr %.0446566, align 8, !tbaa !5
  %431 = getelementptr inbounds i8, ptr %430, i64 88
  %432 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %431)
  %433 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %431)
  %.not518560 = icmp eq ptr %432, %433
  br i1 %.not518560, label %._crit_edge564, label %.lr.ph563

._crit_edge564:                                   ; preds = %.lr.ph563, %.lr.ph568
  %434 = getelementptr inbounds i8, ptr %.0446566, i64 8
  %.not494 = icmp eq ptr %434, %429
  br i1 %.not494, label %._crit_edge569, label %.lr.ph568

.lr.ph563:                                        ; preds = %.lr.ph568, %.lr.ph563
  %.0447561 = phi ptr [ %436, %.lr.ph563 ], [ %432, %.lr.ph568 ]
  %435 = load ptr, ptr %.0447561, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef %430, ptr noundef %435, ptr noundef nonnull @.str.414)
  %436 = getelementptr inbounds i8, ptr %.0447561, i64 8
  %.not518 = icmp eq ptr %436, %433
  br i1 %.not518, label %._crit_edge564, label %.lr.ph563

437:                                              ; preds = %._crit_edge569, %._crit_edge559
  %438 = load i32, ptr %414, align 8, !tbaa !147
  %439 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.415, ptr noundef nonnull @.str.416, i32 noundef %438)
  br i1 %439, label %440, label %449

440:                                              ; preds = %437
  call void @_ZN5ImGui15SetNextItemOpenEbi(i1 noundef zeroext true, i32 noundef 2)
  %441 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.417)
  br i1 %441, label %442, label %443

442:                                              ; preds = %440
  call void @_ZL25RenderViewportsThumbnailsv()
  call void @_ZN5ImGui7TreePopEv()
  br label %443

443:                                              ; preds = %442, %440
  %444 = getelementptr inbounds i8, ptr %32, i64 24752
  store i32 0, ptr %444, align 4, !tbaa !148
  %445 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %414)
  %446 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %414)
  %.not495570 = icmp eq ptr %445, %446
  br i1 %.not495570, label %._crit_edge574, label %.lr.ph573

._crit_edge574:                                   ; preds = %.lr.ph573, %443
  call void @_ZN5ImGui7TreePopEv()
  br label %449

.lr.ph573:                                        ; preds = %443, %.lr.ph573
  %.0449571 = phi ptr [ %448, %.lr.ph573 ], [ %445, %443 ]
  %447 = load ptr, ptr %.0449571, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %447)
  %448 = getelementptr inbounds i8, ptr %.0449571, i64 8
  %.not495 = icmp eq ptr %448, %446
  br i1 %.not495, label %._crit_edge574, label %.lr.ph573

449:                                              ; preds = %._crit_edge574, %437
  %450 = getelementptr inbounds i8, ptr %32, i64 19152
  %451 = load i32, ptr %450, align 8, !tbaa !149
  %452 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.418, ptr noundef nonnull @.str.419, i32 noundef %451)
  br i1 %452, label %453, label %485

453:                                              ; preds = %449
  %454 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %450)
  %455 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %450)
  %.not496575 = icmp eq ptr %454, %455
  br i1 %.not496575, label %._crit_edge579, label %.lr.ph578

._crit_edge579:                                   ; preds = %482, %453
  call void @_ZN5ImGui7TreePopEv()
  br label %485

.lr.ph578:                                        ; preds = %453, %482
  %.0450576 = phi ptr [ %484, %482 ], [ %454, %453 ]
  %456 = getelementptr inbounds i8, ptr %.0450576, i64 8
  %457 = load ptr, ptr %456, align 8, !tbaa !150
  %458 = load i32, ptr %.0450576, align 8, !tbaa !152
  %.not515 = icmp eq ptr %457, null
  br i1 %.not515, label %.thread526, label %459

459:                                              ; preds = %.lr.ph578
  %460 = getelementptr inbounds i8, ptr %457, i64 8
  %461 = load ptr, ptr %460, align 8, !tbaa !114
  %462 = getelementptr inbounds i8, ptr %457, i64 20
  %463 = load i32, ptr %462, align 4, !tbaa !153
  %.fr531 = freeze i32 %463
  %464 = and i32 %.fr531, 16777216
  %.not530 = icmp eq i32 %464, 0
  %spec.select = select i1 %.not530, ptr @.str.17, ptr @.str.422
  %465 = and i32 %.fr531, 268435456
  %.not532 = icmp eq i32 %465, 0
  %spec.select528 = select i1 %.not532, ptr @.str.17, ptr @.str.423
  br label %.thread526

.thread526:                                       ; preds = %459, %.lr.ph578
  %466 = phi ptr [ @.str.421, %.lr.ph578 ], [ %461, %459 ]
  %467 = phi ptr [ @.str.17, %.lr.ph578 ], [ %spec.select, %459 ]
  %468 = phi ptr [ @.str.17, %.lr.ph578 ], [ %spec.select528, %459 ]
  %469 = getelementptr inbounds i8, ptr %.0450576, i64 16
  %470 = load ptr, ptr %469, align 8, !tbaa !154
  %.not516 = icmp eq ptr %470, null
  br i1 %.not516, label %474, label %471

471:                                              ; preds = %.thread526
  %472 = getelementptr inbounds i8, ptr %470, i64 8
  %473 = load ptr, ptr %472, align 8, !tbaa !114
  br label %474

474:                                              ; preds = %.thread526, %471
  %475 = phi ptr [ %473, %471 ], [ @.str.421, %.thread526 ]
  br i1 %.not515, label %482, label %476

476:                                              ; preds = %474
  %477 = getelementptr inbounds i8, ptr %457, i64 888
  %478 = load ptr, ptr %477, align 8, !tbaa !155
  %.not517 = icmp eq ptr %478, null
  br i1 %.not517, label %482, label %479

479:                                              ; preds = %476
  %480 = getelementptr inbounds i8, ptr %478, i64 8
  %481 = load ptr, ptr %480, align 8, !tbaa !114
  br label %482

482:                                              ; preds = %474, %476, %479
  %483 = phi ptr [ %481, %479 ], [ @.str.421, %476 ], [ @.str.421, %474 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.420, i32 noundef %458, ptr noundef %466, ptr noundef nonnull %467, ptr noundef nonnull %468, ptr noundef %475, ptr noundef %483)
  %484 = getelementptr inbounds i8, ptr %.0450576, i64 56
  %.not496 = icmp eq ptr %484, %455
  br i1 %.not496, label %._crit_edge579, label %.lr.ph578

485:                                              ; preds = %._crit_edge579, %449
  %486 = getelementptr inbounds i8, ptr %32, i64 20096
  %487 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %486)
  %488 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.424, ptr noundef nonnull @.str.425, i32 noundef %487)
  br i1 %488, label %.preheader541, label %497

.preheader541:                                    ; preds = %485
  %489 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %486)
  %490 = icmp sgt i32 %489, 0
  br i1 %490, label %.lr.ph581, label %._crit_edge582

._crit_edge582:                                   ; preds = %493, %.preheader541
  call void @_ZN5ImGui7TreePopEv()
  br label %497

.lr.ph581:                                        ; preds = %.preheader541, %493
  %.0452580 = phi i32 [ %494, %493 ], [ 0, %.preheader541 ]
  %491 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %486, i32 noundef %.0452580)
  %.not514 = icmp eq ptr %491, null
  br i1 %.not514, label %493, label %492

492:                                              ; preds = %.lr.ph581
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef nonnull %491)
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef nonnull %491, ptr noundef nonnull @.str.426)
  call void @_ZN5ImGui5PopIDEv()
  br label %493

493:                                              ; preds = %492, %.lr.ph581
  %494 = add nuw nsw i32 %.0452580, 1
  %495 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %486)
  %496 = icmp slt i32 %494, %495
  br i1 %496, label %.lr.ph581, label %._crit_edge582, !llvm.loop !156

497:                                              ; preds = %._crit_edge582, %485
  %498 = getelementptr inbounds i8, ptr %32, i64 20016
  %499 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %498)
  %500 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.427, ptr noundef nonnull @.str.428, i32 noundef %499)
  br i1 %500, label %.preheader540, label %509

.preheader540:                                    ; preds = %497
  %501 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %498)
  %502 = icmp sgt i32 %501, 0
  br i1 %502, label %.lr.ph584, label %._crit_edge585

._crit_edge585:                                   ; preds = %505, %.preheader540
  call void @_ZN5ImGui7TreePopEv()
  br label %509

.lr.ph584:                                        ; preds = %.preheader540, %505
  %.0454583 = phi i32 [ %506, %505 ], [ 0, %.preheader540 ]
  %503 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %498, i32 noundef %.0454583)
  %.not513 = icmp eq ptr %503, null
  br i1 %.not513, label %505, label %504

504:                                              ; preds = %.lr.ph584
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef nonnull %503)
  br label %505

505:                                              ; preds = %504, %.lr.ph584
  %506 = add nuw nsw i32 %.0454583, 1
  %507 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %498)
  %508 = icmp slt i32 %506, %507
  br i1 %508, label %.lr.ph584, label %._crit_edge585, !llvm.loop !157

509:                                              ; preds = %._crit_edge585, %497
  %510 = getelementptr inbounds i8, ptr %32, i64 56
  %511 = load ptr, ptr %510, align 8, !tbaa !158
  %512 = getelementptr inbounds i8, ptr %511, i64 88
  %513 = load i32, ptr %512, align 8, !tbaa !159
  %514 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.429, ptr noundef nonnull @.str.430, i32 noundef %513)
  br i1 %514, label %515, label %516

515:                                              ; preds = %509
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef nonnull %511)
  call void @_ZN5ImGui7TreePopEv()
  br label %516

516:                                              ; preds = %515, %509
  %517 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.431)
  br i1 %517, label %518, label %520

518:                                              ; preds = %516
  %519 = getelementptr inbounds i8, ptr %32, i64 20208
  call void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef nonnull %519)
  call void @_ZN5ImGui7TreePopEv()
  br label %520

520:                                              ; preds = %518, %516
  %521 = getelementptr inbounds i8, ptr %32, i64 24304
  %522 = load i8, ptr %521, align 8, !tbaa !136
  %.not497 = icmp ne i8 %522, 0
  %523 = zext i1 %.not497 to i32
  %524 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.432, ptr noundef nonnull @.str.433, i32 noundef %523)
  br i1 %524, label %525, label %527

525:                                              ; preds = %520
  %526 = getelementptr inbounds i8, ptr %32, i64 24280
  call void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef nonnull %526)
  call void @_ZN5ImGui7TreePopEv()
  br label %527

527:                                              ; preds = %525, %520
  %528 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.434)
  br i1 %528, label %529, label %586

529:                                              ; preds = %527
  %530 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.435)
  br i1 %530, label %531, label %532

531:                                              ; preds = %529
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %532

532:                                              ; preds = %531, %529
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %533 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.436)
  br i1 %533, label %534, label %536

534:                                              ; preds = %532
  %535 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %536

536:                                              ; preds = %534, %532
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %537 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.437)
  br i1 %537, label %538, label %541

538:                                              ; preds = %536
  %539 = getelementptr inbounds i8, ptr %32, i64 32
  %540 = load ptr, ptr %539, align 8, !tbaa !163
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %540)
  br label %541

541:                                              ; preds = %538, %536
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %542 = getelementptr inbounds i8, ptr %32, i64 32
  %543 = load ptr, ptr %542, align 8, !tbaa !163
  %.not498 = icmp eq ptr %543, null
  br i1 %.not498, label %545, label %544

544:                                              ; preds = %541
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.438, ptr noundef nonnull %543)
  br label %546

545:                                              ; preds = %541
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef nonnull @.str.162, ptr noundef null)
  br label %546

546:                                              ; preds = %545, %544
  %547 = getelementptr inbounds i8, ptr %32, i64 124
  %548 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.439, ptr noundef nonnull %547)
  %549 = getelementptr inbounds i8, ptr %32, i64 24420
  %550 = load float, ptr %549, align 4, !tbaa !164
  %551 = fpext float %550 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.440, double noundef %551)
  %552 = getelementptr inbounds i8, ptr %32, i64 24440
  %553 = load i32, ptr %552, align 8, !tbaa !165
  %554 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.441, ptr noundef nonnull @.str.442, i32 noundef %553)
  br i1 %554, label %555, label %560

555:                                              ; preds = %546
  %556 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %552)
  %557 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %552)
  %.not499586 = icmp eq ptr %556, %557
  br i1 %.not499586, label %._crit_edge590, label %.lr.ph589

._crit_edge590:                                   ; preds = %.lr.ph589, %555
  call void @_ZN5ImGui7TreePopEv()
  br label %560

.lr.ph589:                                        ; preds = %555, %.lr.ph589
  %.0459587 = phi ptr [ %559, %.lr.ph589 ], [ %556, %555 ]
  %558 = load ptr, ptr %.0459587, align 8, !tbaa !166
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.438, ptr noundef %558)
  %559 = getelementptr inbounds i8, ptr %.0459587, i64 72
  %.not499 = icmp eq ptr %559, %557
  br i1 %.not499, label %._crit_edge590, label %.lr.ph589

560:                                              ; preds = %._crit_edge590, %546
  %561 = getelementptr inbounds i8, ptr %32, i64 24456
  %562 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %561)
  %563 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.443, ptr noundef nonnull @.str.444, i32 noundef %562)
  br i1 %563, label %564, label %567

564:                                              ; preds = %560
  %565 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %561)
  %.not500591 = icmp eq ptr %565, null
  br i1 %.not500591, label %._crit_edge595, label %.lr.ph594

._crit_edge595:                                   ; preds = %.lr.ph594, %564
  call void @_ZN5ImGui7TreePopEv()
  br label %567

.lr.ph594:                                        ; preds = %564, %.lr.ph594
  %.0460592 = phi ptr [ %566, %.lr.ph594 ], [ %565, %564 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0460592)
  %566 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %561, ptr noundef nonnull %.0460592)
  %.not500 = icmp eq ptr %566, null
  br i1 %.not500, label %._crit_edge595, label %.lr.ph594, !llvm.loop !168

567:                                              ; preds = %._crit_edge595, %560
  %568 = getelementptr inbounds i8, ptr %32, i64 24472
  %569 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %568)
  %570 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.445, ptr noundef nonnull @.str.446, i32 noundef %569)
  br i1 %570, label %571, label %574

571:                                              ; preds = %567
  %572 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %568)
  %.not501596 = icmp eq ptr %572, null
  br i1 %.not501596, label %._crit_edge600, label %.lr.ph599

._crit_edge600:                                   ; preds = %.lr.ph599, %571
  call void @_ZN5ImGui7TreePopEv()
  br label %574

.lr.ph599:                                        ; preds = %571, %.lr.ph599
  %.0465597 = phi ptr [ %573, %.lr.ph599 ], [ %572, %571 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0465597)
  %573 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %568, ptr noundef nonnull %.0465597)
  %.not501 = icmp eq ptr %573, null
  br i1 %.not501, label %._crit_edge600, label %.lr.ph599, !llvm.loop !169

574:                                              ; preds = %._crit_edge600, %567
  %575 = getelementptr inbounds i8, ptr %32, i64 24424
  %576 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %575)
  %577 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.447, ptr noundef nonnull @.str.448, i32 noundef %576)
  br i1 %577, label %578, label %585

578:                                              ; preds = %574
  %579 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %575)
  %580 = load i32, ptr %575, align 8, !tbaa !170
  %581 = sext i32 %580 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  %582 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %583 = fmul float %582, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0xB810000000000000, float noundef %583)
  %584 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.449, ptr noundef %579, i64 noundef %581, ptr noundef nonnull align 4 dereferenceable(8) %23, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  call void @_ZN5ImGui7TreePopEv()
  br label %585

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

586:                                              ; preds = %585, %527
  %587 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.450)
  br i1 %587, label %588, label %682

588:                                              ; preds = %586
  %589 = load i32, ptr %64, align 4, !tbaa !171
  %590 = load i32, ptr %66, align 4, !tbaa !172
  %591 = sub nsw i32 %589, %590
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.451, i32 noundef %591)
  %592 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.452)
  br i1 %592, label %593, label %595

593:                                              ; preds = %588
  %594 = getelementptr inbounds i8, ptr %32, i64 16231
  store i8 1, ptr %594, align 1, !tbaa !173
  br label %595

595:                                              ; preds = %593, %588
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.453)
  %596 = getelementptr inbounds i8, ptr %32, i64 24812
  %597 = getelementptr inbounds i8, ptr %32, i64 24808
  %598 = load i16, ptr %597, align 4, !tbaa !174
  %599 = sext i16 %598 to i32
  %600 = add nsw i32 %599, 1
  %601 = srem i32 %600, 6
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %596, i64 0, i64 %602
  %604 = load i32, ptr %603, align 4, !tbaa !175
  %605 = getelementptr inbounds i8, ptr %603, i64 4
  %606 = load i16, ptr %605, align 4, !tbaa !177
  %607 = sext i16 %606 to i32
  %608 = getelementptr inbounds i8, ptr %603, i64 6
  %609 = load i16, ptr %608, align 2, !tbaa !178
  %610 = sext i16 %609 to i32
  %611 = sub nsw i32 %607, %610
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.454, i32 noundef %604, i32 noundef %611, i32 noundef %607, i32 noundef %610, ptr noundef nonnull @.str.17)
  %612 = load i16, ptr %597, align 4, !tbaa !174
  %613 = sext i16 %612 to i32
  %614 = add nsw i32 %613, 2
  %615 = srem i32 %614, 6
  %616 = sext i32 %615 to i64
  %617 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %596, i64 0, i64 %616
  %618 = load i32, ptr %617, align 4, !tbaa !175
  %619 = getelementptr inbounds i8, ptr %617, i64 4
  %620 = load i16, ptr %619, align 4, !tbaa !177
  %621 = sext i16 %620 to i32
  %622 = getelementptr inbounds i8, ptr %617, i64 6
  %623 = load i16, ptr %622, align 2, !tbaa !178
  %624 = sext i16 %623 to i32
  %625 = sub nsw i32 %621, %624
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.454, i32 noundef %618, i32 noundef %625, i32 noundef %621, i32 noundef %624, ptr noundef nonnull @.str.17)
  %626 = load i16, ptr %597, align 4, !tbaa !174
  %627 = sext i16 %626 to i32
  %628 = add nsw i32 %627, 3
  %629 = srem i32 %628, 6
  %630 = sext i32 %629 to i64
  %631 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %596, i64 0, i64 %630
  %632 = load i32, ptr %631, align 4, !tbaa !175
  %633 = getelementptr inbounds i8, ptr %631, i64 4
  %634 = load i16, ptr %633, align 4, !tbaa !177
  %635 = sext i16 %634 to i32
  %636 = getelementptr inbounds i8, ptr %631, i64 6
  %637 = load i16, ptr %636, align 2, !tbaa !178
  %638 = sext i16 %637 to i32
  %639 = sub nsw i32 %635, %638
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.454, i32 noundef %632, i32 noundef %639, i32 noundef %635, i32 noundef %638, ptr noundef nonnull @.str.17)
  %640 = load i16, ptr %597, align 4, !tbaa !174
  %641 = sext i16 %640 to i32
  %642 = add nsw i32 %641, 4
  %643 = srem i32 %642, 6
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %596, i64 0, i64 %644
  %646 = load i32, ptr %645, align 4, !tbaa !175
  %647 = getelementptr inbounds i8, ptr %645, i64 4
  %648 = load i16, ptr %647, align 4, !tbaa !177
  %649 = sext i16 %648 to i32
  %650 = getelementptr inbounds i8, ptr %645, i64 6
  %651 = load i16, ptr %650, align 2, !tbaa !178
  %652 = sext i16 %651 to i32
  %653 = sub nsw i32 %649, %652
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.454, i32 noundef %646, i32 noundef %653, i32 noundef %649, i32 noundef %652, ptr noundef nonnull @.str.17)
  %654 = load i16, ptr %597, align 4, !tbaa !174
  %655 = sext i16 %654 to i32
  %656 = add nsw i32 %655, 5
  %657 = srem i32 %656, 6
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %596, i64 0, i64 %658
  %660 = load i32, ptr %659, align 4, !tbaa !175
  %661 = getelementptr inbounds i8, ptr %659, i64 4
  %662 = load i16, ptr %661, align 4, !tbaa !177
  %663 = sext i16 %662 to i32
  %664 = getelementptr inbounds i8, ptr %659, i64 6
  %665 = load i16, ptr %664, align 2, !tbaa !178
  %666 = sext i16 %665 to i32
  %667 = sub nsw i32 %663, %666
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.454, i32 noundef %660, i32 noundef %667, i32 noundef %663, i32 noundef %666, ptr noundef nonnull @.str.17)
  %668 = load i16, ptr %597, align 4, !tbaa !174
  %669 = sext i16 %668 to i32
  %670 = add nsw i32 %669, 6
  %671 = srem i32 %670, 6
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %596, i64 0, i64 %672
  %674 = load i32, ptr %673, align 4, !tbaa !175
  %675 = getelementptr inbounds i8, ptr %673, i64 4
  %676 = load i16, ptr %675, align 4, !tbaa !177
  %677 = sext i16 %676 to i32
  %678 = getelementptr inbounds i8, ptr %673, i64 6
  %679 = load i16, ptr %678, align 2, !tbaa !178
  %680 = sext i16 %679 to i32
  %681 = sub nsw i32 %677, %680
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.454, i32 noundef %674, i32 noundef %681, i32 noundef %677, i32 noundef %680, ptr noundef nonnull @.str.455)
  call void @_ZN5ImGui7TreePopEv()
  br label %682

682:                                              ; preds = %595, %586
  %683 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.456)
  br i1 %683, label %684, label %931

684:                                              ; preds = %682
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.457)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.458)
  br label %686

685:                                              ; preds = %698
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.461)
  br label %701

686:                                              ; preds = %684, %698
  %.0464602 = phi i32 [ 0, %684 ], [ %699, %698 ]
  %687 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0464602)
  br i1 %687, label %698, label %688

688:                                              ; preds = %686
  %689 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %.0464602)
  br i1 %689, label %690, label %698

690:                                              ; preds = %688
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %691 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0464602)
  %692 = select i1 %691, ptr @.str.438, ptr @.str.459
  %693 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0464602)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %692, ptr noundef %693, i32 noundef %.0464602)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %694 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %.0464602)
  %695 = getelementptr inbounds i8, ptr %694, i64 4
  %696 = load float, ptr %695, align 4, !tbaa !179
  %697 = fpext float %696 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.460, double noundef %697)
  br label %698

698:                                              ; preds = %686, %688, %690
  %699 = add nuw nsw i32 %.0464602, 1
  %exitcond634.not = icmp eq i32 %699, 666
  br i1 %exitcond634.not, label %685, label %686, !llvm.loop !181

700:                                              ; preds = %709
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.462)
  br label %731

701:                                              ; preds = %685, %709
  %.0463603 = phi i32 [ 0, %685 ], [ %710, %709 ]
  %702 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0463603)
  br i1 %702, label %709, label %703

703:                                              ; preds = %701
  %704 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %.0463603, i1 noundef zeroext true)
  br i1 %704, label %705, label %709

705:                                              ; preds = %703
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %706 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0463603)
  %707 = select i1 %706, ptr @.str.438, ptr @.str.459
  %708 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0463603)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %707, ptr noundef %708, i32 noundef %.0463603)
  br label %709

709:                                              ; preds = %701, %703, %705
  %710 = add nuw nsw i32 %.0463603, 1
  %exitcond635.not = icmp eq i32 %710, 666
  br i1 %exitcond635.not, label %700, label %701, !llvm.loop !182

711:                                              ; preds = %739
  %712 = getelementptr inbounds i8, ptr %32, i64 3676
  %713 = load i8, ptr %712, align 4, !tbaa !183, !range !13, !noundef !14
  %714 = trunc nuw i8 %713 to i1
  %715 = select i1 %714, ptr @.str.464, ptr @.str.17
  %716 = getelementptr inbounds i8, ptr %32, i64 3677
  %717 = load i8, ptr %716, align 1, !tbaa !184, !range !13, !noundef !14
  %718 = trunc nuw i8 %717 to i1
  %719 = select i1 %718, ptr @.str.465, ptr @.str.17
  %720 = getelementptr inbounds i8, ptr %32, i64 3678
  %721 = load i8, ptr %720, align 2, !tbaa !185, !range !13, !noundef !14
  %722 = trunc nuw i8 %721 to i1
  %723 = select i1 %722, ptr @.str.466, ptr @.str.17
  %724 = getelementptr inbounds i8, ptr %32, i64 3679
  %725 = load i8, ptr %724, align 1, !tbaa !186, !range !13, !noundef !14
  %726 = trunc nuw i8 %725 to i1
  %727 = select i1 %726, ptr @.str.467, ptr @.str.17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.463, ptr noundef nonnull %715, ptr noundef nonnull %719, ptr noundef nonnull %723, ptr noundef nonnull %727)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.468)
  %728 = getelementptr inbounds i8, ptr %32, i64 14552
  %729 = load i32, ptr %728, align 8, !tbaa !187
  %730 = icmp sgt i32 %729, 0
  br i1 %730, label %.lr.ph607, label %._crit_edge608

731:                                              ; preds = %700, %739
  %.0462604 = phi i32 [ 0, %700 ], [ %740, %739 ]
  %732 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0462604)
  br i1 %732, label %739, label %733

733:                                              ; preds = %731
  %734 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %.0462604)
  br i1 %734, label %735, label %739

735:                                              ; preds = %733
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %736 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0462604)
  %737 = select i1 %736, ptr @.str.438, ptr @.str.459
  %738 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0462604)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %737, ptr noundef %738, i32 noundef %.0462604)
  br label %739

739:                                              ; preds = %731, %733, %735
  %740 = add nuw nsw i32 %.0462604, 1
  %exitcond636.not = icmp eq i32 %740, 666
  br i1 %exitcond636.not, label %711, label %731, !llvm.loop !188

._crit_edge608:                                   ; preds = %.lr.ph607, %711
  %741 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %741)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.470)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %742 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %742, label %752, label %759

.lr.ph607:                                        ; preds = %711, %.lr.ph607
  %.0461605 = phi i32 [ %749, %.lr.ph607 ], [ 0, %711 ]
  %743 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %728, i32 noundef %.0461605)
  %744 = load i16, ptr %743, align 2, !tbaa !189
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %745 = zext i16 %744 to i32
  %746 = add i16 %744, -33
  %or.cond4 = icmp ult i16 %746, 223
  %sext = shl i32 %745, 24
  %747 = ashr exact i32 %sext, 24
  %748 = select i1 %or.cond4, i32 %747, i32 63
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.469, i32 noundef %748, i32 noundef %745)
  %749 = add nuw nsw i32 %.0461605, 1
  %750 = load i32, ptr %728, align 8, !tbaa !187
  %751 = icmp slt i32 %749, %750
  br i1 %751, label %.lr.ph607, label %._crit_edge608, !llvm.loop !190

752:                                              ; preds = %._crit_edge608
  %753 = getelementptr inbounds i8, ptr %32, i64 3648
  %754 = load float, ptr %753, align 8, !tbaa !191
  %755 = fpext float %754 to double
  %756 = getelementptr inbounds i8, ptr %32, i64 3652
  %757 = load float, ptr %756, align 4, !tbaa !192
  %758 = fpext float %757 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.471, double noundef %755, double noundef %758)
  br label %760

759:                                              ; preds = %._crit_edge608
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.472)
  br label %760

760:                                              ; preds = %759, %752
  %761 = getelementptr inbounds i8, ptr %32, i64 232
  %762 = load float, ptr %761, align 8, !tbaa !193
  %763 = fpext float %762 to double
  %764 = getelementptr inbounds i8, ptr %32, i64 236
  %765 = load float, ptr %764, align 4, !tbaa !194
  %766 = fpext float %765 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.473, double noundef %763, double noundef %766)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.474)
  %767 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 0)
  br i1 %767, label %768, label %772

768:                                              ; preds = %760
  %769 = getelementptr inbounds i8, ptr %32, i64 14480
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %770 = load float, ptr %769, align 4, !tbaa !195
  %771 = fpext float %770 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.475, i32 noundef 0, double noundef %771)
  br label %772

772:                                              ; preds = %760, %768
  %773 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 1)
  br i1 %773, label %774, label %778

774:                                              ; preds = %772
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %775 = getelementptr inbounds i8, ptr %32, i64 14484
  %776 = load float, ptr %775, align 4, !tbaa !195
  %777 = fpext float %776 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.475, i32 noundef 1, double noundef %777)
  br label %778

778:                                              ; preds = %774, %772
  %779 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 2)
  br i1 %779, label %780, label %784

780:                                              ; preds = %778
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %781 = getelementptr inbounds i8, ptr %32, i64 14488
  %782 = load float, ptr %781, align 4, !tbaa !195
  %783 = fpext float %782 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.475, i32 noundef 2, double noundef %783)
  br label %784

784:                                              ; preds = %780, %778
  %785 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 3)
  br i1 %785, label %786, label %790

786:                                              ; preds = %784
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %787 = getelementptr inbounds i8, ptr %32, i64 14492
  %788 = load float, ptr %787, align 4, !tbaa !195
  %789 = fpext float %788 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.475, i32 noundef 3, double noundef %789)
  br label %790

790:                                              ; preds = %786, %784
  %791 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 4)
  br i1 %791, label %792, label %796

792:                                              ; preds = %790
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %793 = getelementptr inbounds i8, ptr %32, i64 14496
  %794 = load float, ptr %793, align 4, !tbaa !195
  %795 = fpext float %794 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.475, i32 noundef 4, double noundef %795)
  br label %796

796:                                              ; preds = %792, %790
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.476)
  %797 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
  br i1 %797, label %798, label %802

798:                                              ; preds = %796
  %799 = getelementptr inbounds i8, ptr %32, i64 14442
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %800 = load i16, ptr %799, align 2, !tbaa !189
  %801 = zext i16 %800 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.477, i32 noundef 0, i32 noundef %801)
  br label %802

802:                                              ; preds = %796, %798
  %803 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 1, i1 noundef zeroext false)
  br i1 %803, label %804, label %808

804:                                              ; preds = %802
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %805 = getelementptr inbounds i8, ptr %32, i64 14444
  %806 = load i16, ptr %805, align 2, !tbaa !189
  %807 = zext i16 %806 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.477, i32 noundef 1, i32 noundef %807)
  br label %808

808:                                              ; preds = %804, %802
  %809 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 2, i1 noundef zeroext false)
  br i1 %809, label %810, label %814

810:                                              ; preds = %808
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %811 = getelementptr inbounds i8, ptr %32, i64 14446
  %812 = load i16, ptr %811, align 2, !tbaa !189
  %813 = zext i16 %812 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.477, i32 noundef 2, i32 noundef %813)
  br label %814

814:                                              ; preds = %810, %808
  %815 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 3, i1 noundef zeroext false)
  br i1 %815, label %816, label %820

816:                                              ; preds = %814
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %817 = getelementptr inbounds i8, ptr %32, i64 14448
  %818 = load i16, ptr %817, align 2, !tbaa !189
  %819 = zext i16 %818 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.477, i32 noundef 3, i32 noundef %819)
  br label %820

820:                                              ; preds = %816, %814
  %821 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 4, i1 noundef zeroext false)
  br i1 %821, label %822, label %826

822:                                              ; preds = %820
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %823 = getelementptr inbounds i8, ptr %32, i64 14450
  %824 = load i16, ptr %823, align 2, !tbaa !189
  %825 = zext i16 %824 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.477, i32 noundef 4, i32 noundef %825)
  br label %826

826:                                              ; preds = %822, %820
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.478)
  %827 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 0)
  br i1 %827, label %828, label %829

828:                                              ; preds = %826
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.479, i32 noundef 0)
  br label %829

829:                                              ; preds = %826, %828
  %830 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 1)
  br i1 %830, label %831, label %832

831:                                              ; preds = %829
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.479, i32 noundef 1)
  br label %832

832:                                              ; preds = %831, %829
  %833 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 2)
  br i1 %833, label %834, label %835

834:                                              ; preds = %832
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.479, i32 noundef 2)
  br label %835

835:                                              ; preds = %834, %832
  %836 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 3)
  br i1 %836, label %837, label %838

837:                                              ; preds = %835
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.479, i32 noundef 3)
  br label %838

838:                                              ; preds = %837, %835
  %839 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 4)
  br i1 %839, label %840, label %841

840:                                              ; preds = %838
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.479, i32 noundef 4)
  br label %841

841:                                              ; preds = %840, %838
  %842 = getelementptr inbounds i8, ptr %32, i64 3664
  %843 = load float, ptr %842, align 8, !tbaa !196
  %844 = fpext float %843 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.480, double noundef %844)
  %845 = getelementptr inbounds i8, ptr %32, i64 20196
  %846 = load float, ptr %845, align 4, !tbaa !197
  %847 = fpext float %846 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.481, double noundef %847)
  %848 = getelementptr inbounds i8, ptr %32, i64 3672
  %849 = load i32, ptr %848, align 8, !tbaa !198
  %850 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %849)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.482, ptr noundef %850)
  %851 = getelementptr inbounds i8, ptr %32, i64 14540
  %852 = load float, ptr %851, align 4, !tbaa !199
  %853 = fpext float %852 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.483, double noundef %853)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.484)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %854 = getelementptr inbounds i8, ptr %32, i64 16416
  %855 = load ptr, ptr %854, align 8, !tbaa !200
  %.not502 = icmp eq ptr %855, null
  br i1 %.not502, label %859, label %856

856:                                              ; preds = %841
  %857 = getelementptr inbounds i8, ptr %855, i64 8
  %858 = load ptr, ptr %857, align 8, !tbaa !114
  br label %859

859:                                              ; preds = %841, %856
  %860 = phi ptr [ %858, %856 ], [ @.str.421, %841 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.485, ptr noundef %860)
  %861 = getelementptr inbounds i8, ptr %32, i64 16440
  %862 = load float, ptr %861, align 8, !tbaa !201
  %863 = fpext float %862 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.486, double noundef %863)
  %864 = getelementptr inbounds i8, ptr %32, i64 16452
  %865 = load float, ptr %864, align 4, !tbaa !202
  %866 = fpext float %865 to double
  %867 = getelementptr inbounds i8, ptr %32, i64 16456
  %868 = load float, ptr %867, align 4, !tbaa !203
  %869 = fpext float %868 to double
  %870 = fcmp ogt float %865, %868
  %871 = fcmp olt float %865, %868
  %872 = select i1 %871, ptr @.str.488, ptr @.str.489
  %873 = select i1 %870, ptr @.str.339, ptr %872
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.487, double noundef %866, double noundef %869, ptr noundef nonnull %873)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.490)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  %874 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %875 = fmul float %874, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 0xB810000000000000, float noundef %875)
  %876 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef nonnull @.str.491, 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) #9
  br i1 %876, label %.preheader538, label %.loopexit539

.preheader538:                                    ; preds = %859, %894
  %.0455612 = phi i32 [ %895, %894 ], [ 512, %859 ]
  %877 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %32, i32 noundef %.0455612)
  %878 = load i32, ptr %877, align 4, !tbaa !204
  %879 = icmp eq i32 %878, -1
  br i1 %879, label %894, label %880

880:                                              ; preds = %.preheader538
  %881 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0455612)
  %882 = load i32, ptr %877, align 4, !tbaa !204
  %883 = getelementptr inbounds i8, ptr %877, i64 9
  %884 = load i8, ptr %883, align 1, !tbaa !206, !range !13, !noundef !14
  %885 = trunc nuw i8 %884 to i1
  br i1 %885, label %891, label %886

886:                                              ; preds = %880
  %887 = getelementptr inbounds i8, ptr %877, i64 8
  %888 = load i8, ptr %887, align 4, !tbaa !207, !range !13, !noundef !14
  %889 = trunc nuw i8 %888 to i1
  %890 = select i1 %889, ptr @.str.494, ptr @.str.17
  br label %891

891:                                              ; preds = %880, %886
  %892 = phi ptr [ %890, %886 ], [ @.str.493, %880 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.492, ptr noundef %881, i32 noundef %882, ptr noundef nonnull %892)
  %893 = load i32, ptr %877, align 4, !tbaa !204
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %893)
  br label %894

894:                                              ; preds = %.preheader538, %891
  %895 = add nuw nsw i32 %.0455612, 1
  %exitcond646.not = icmp eq i32 %895, 666
  br i1 %exitcond646.not, label %.loopexit539, label %.preheader538, !llvm.loop !208

.loopexit539:                                     ; preds = %894, %859
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.495)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.496)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #9
  %896 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %897 = fmul float %896, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef 0xB810000000000000, float noundef %897)
  %898 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef nonnull @.str.497, 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) #9
  br i1 %898, label %.preheader536, label %.loopexit537

.preheader536:                                    ; preds = %.loopexit539
  %899 = getelementptr inbounds i8, ptr %32, i64 18448
  %900 = getelementptr inbounds i8, ptr %32, i64 18760
  %901 = getelementptr inbounds i8, ptr %32, i64 120
  %902 = getelementptr inbounds i8, ptr %32, i64 18800
  br label %903

903:                                              ; preds = %.preheader536, %._crit_edge618
  %indvars.iv647 = phi i64 [ 512, %.preheader536 ], [ %indvars.iv.next648, %._crit_edge618 ]
  %904 = add nsw i64 %indvars.iv647, -512
  %905 = getelementptr inbounds [154 x i16], ptr %899, i64 0, i64 %904
  %.0451613 = load i16, ptr %905, align 2, !tbaa !189
  %.not512614 = icmp eq i16 %.0451613, -1
  br i1 %.not512614, label %._crit_edge618, label %.lr.ph617.preheader

.lr.ph617.preheader:                              ; preds = %903
  %906 = trunc nuw nsw i64 %indvars.iv647 to i32
  br label %.lr.ph617

._crit_edge618:                                   ; preds = %925, %903
  %indvars.iv.next648 = add nuw nsw i64 %indvars.iv647, 1
  %exitcond650.not = icmp eq i64 %indvars.iv.next648, 666
  br i1 %exitcond650.not, label %.loopexit537, label %903, !llvm.loop !209

.lr.ph617:                                        ; preds = %.lr.ph617.preheader, %925
  %.0451615 = phi i16 [ %.0451, %925 ], [ %.0451613, %.lr.ph617.preheader ]
  %907 = sext i16 %.0451615 to i32
  %908 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %900, i32 noundef %907)
  %909 = getelementptr inbounds i8, ptr %908, i64 2
  %910 = load i16, ptr %909, align 2, !tbaa !210
  %911 = zext i16 %910 to i32
  %912 = or i32 %906, %911
  %913 = call noundef ptr @_ZN5ImGui15GetKeyChordNameEi(i32 noundef %912)
  %914 = getelementptr inbounds i8, ptr %908, i64 8
  %915 = load i32, ptr %914, align 4, !tbaa !212
  %916 = getelementptr inbounds i8, ptr %908, i64 4
  %917 = load i8, ptr %916, align 4, !tbaa !213
  %918 = zext i8 %917 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.498, ptr noundef %913, i32 noundef %915, i32 noundef %918)
  %919 = load i32, ptr %914, align 4, !tbaa !212
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %919)
  %920 = load i8, ptr %901, align 8, !tbaa !214, !range !13, !noundef !14
  %921 = trunc nuw i8 %920 to i1
  br i1 %921, label %922, label %925

922:                                              ; preds = %.lr.ph617
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %923 = call noundef zeroext i1 @_ZN5ImGui16DebugBreakButtonEPKcS1_(ptr noundef nonnull @.str.499, ptr noundef nonnull @.str.500)
  br i1 %923, label %924, label %925

924:                                              ; preds = %922
  store i32 %912, ptr %902, align 8, !tbaa !215
  br label %925

925:                                              ; preds = %922, %924, %.lr.ph617
  %.0451 = load i16, ptr %908, align 4, !tbaa !189
  %.not512 = icmp eq i16 %.0451, -1
  br i1 %.not512, label %._crit_edge618, label %.lr.ph617, !llvm.loop !216

.loopexit537:                                     ; preds = %._crit_edge618, %.loopexit539
  call void @_ZN5ImGui8EndChildEv()
  %926 = getelementptr inbounds i8, ptr %32, i64 18796
  %927 = load i8, ptr %926, align 4, !tbaa !217, !range !13, !noundef !14
  %928 = zext nneg i8 %927 to i32
  %929 = getelementptr inbounds i8, ptr %32, i64 18792
  %930 = load i32, ptr %929, align 8, !tbaa !218
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.501, i32 noundef %928, i32 noundef %930)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %931

931:                                              ; preds = %.loopexit537, %682
  %932 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.502)
  br i1 %932, label %933, label %1071

933:                                              ; preds = %931
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.503)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %934 = getelementptr inbounds i8, ptr %32, i64 16392
  %935 = load ptr, ptr %934, align 8, !tbaa !219
  %.not503 = icmp eq ptr %935, null
  br i1 %.not503, label %939, label %936

936:                                              ; preds = %933
  %937 = getelementptr inbounds i8, ptr %935, i64 8
  %938 = load ptr, ptr %937, align 8, !tbaa !114
  br label %939

939:                                              ; preds = %933, %936
  %940 = phi ptr [ %938, %936 ], [ @.str.421, %933 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.504, ptr noundef %940)
  %941 = load ptr, ptr %934, align 8, !tbaa !219
  %.not504 = icmp eq ptr %941, null
  br i1 %.not504, label %947, label %942

942:                                              ; preds = %939
  %943 = getelementptr inbounds i8, ptr %941, i64 904
  %944 = load ptr, ptr %943, align 8, !tbaa !220
  %945 = getelementptr inbounds i8, ptr %944, i64 8
  %946 = load ptr, ptr %945, align 8, !tbaa !114
  br label %947

947:                                              ; preds = %939, %942
  %948 = phi ptr [ %946, %942 ], [ @.str.421, %939 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.505, ptr noundef %948)
  %949 = getelementptr inbounds i8, ptr %32, i64 16400
  %950 = load ptr, ptr %949, align 8, !tbaa !221
  %.not505 = icmp eq ptr %950, null
  br i1 %.not505, label %954, label %951

951:                                              ; preds = %947
  %952 = getelementptr inbounds i8, ptr %950, i64 8
  %953 = load ptr, ptr %952, align 8, !tbaa !114
  br label %954

954:                                              ; preds = %947, %951
  %955 = phi ptr [ %953, %951 ], [ @.str.421, %947 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.506, ptr noundef %955)
  %956 = getelementptr inbounds i8, ptr %32, i64 16408
  %957 = load ptr, ptr %956, align 8, !tbaa !222
  %.not506 = icmp eq ptr %957, null
  br i1 %.not506, label %961, label %958

958:                                              ; preds = %954
  %959 = getelementptr inbounds i8, ptr %957, i64 8
  %960 = load ptr, ptr %959, align 8, !tbaa !114
  br label %961

961:                                              ; preds = %954, %958
  %962 = phi ptr [ %960, %958 ], [ @.str.421, %954 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.507, ptr noundef %962)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.508)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %963 = getelementptr inbounds i8, ptr %32, i64 16484
  %964 = load i32, ptr %963, align 4, !tbaa !223
  %965 = getelementptr inbounds i8, ptr %32, i64 16524
  %966 = load i32, ptr %965, align 4, !tbaa !224
  %967 = getelementptr inbounds i8, ptr %32, i64 16492
  %968 = load float, ptr %967, align 4, !tbaa !225
  %969 = fpext float %968 to double
  %970 = getelementptr inbounds i8, ptr %32, i64 16497
  %971 = load i8, ptr %970, align 1, !tbaa !226, !range !13, !noundef !14
  %972 = zext nneg i8 %971 to i32
  %973 = getelementptr inbounds i8, ptr %32, i64 16520
  %974 = load i32, ptr %973, align 8, !tbaa !227
  %975 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %974)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.509, i32 noundef %964, i32 noundef %966, double noundef %969, i32 noundef %972, ptr noundef %975)
  %976 = load i32, ptr %963, align 4, !tbaa !223
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %976)
  %977 = getelementptr inbounds i8, ptr %32, i64 16512
  %978 = load ptr, ptr %977, align 8, !tbaa !228
  %.not507 = icmp eq ptr %978, null
  br i1 %.not507, label %982, label %979

979:                                              ; preds = %961
  %980 = getelementptr inbounds i8, ptr %978, i64 8
  %981 = load ptr, ptr %980, align 8, !tbaa !114
  br label %982

982:                                              ; preds = %961, %979
  %983 = phi ptr [ %981, %979 ], [ @.str.421, %961 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.510, ptr noundef %983)
  %984 = getelementptr inbounds i8, ptr %32, i64 18796
  %985 = load i8, ptr %984, align 4, !tbaa !217, !range !13, !noundef !14
  %986 = zext nneg i8 %985 to i32
  %987 = getelementptr inbounds i8, ptr %32, i64 18792
  %988 = load i32, ptr %987, align 8, !tbaa !218
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.511, i32 noundef %986, i32 noundef %988)
  %989 = getelementptr inbounds i8, ptr %32, i64 16468
  %990 = load i32, ptr %989, align 4, !tbaa !229
  %991 = getelementptr inbounds i8, ptr %32, i64 16476
  %992 = load float, ptr %991, align 4, !tbaa !230
  %993 = fpext float %992 to double
  %994 = getelementptr inbounds i8, ptr %32, i64 16472
  %995 = load i8, ptr %994, align 8, !tbaa !231, !range !13, !noundef !14
  %996 = zext nneg i8 %995 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.512, i32 noundef %990, double noundef %993, i32 noundef %996)
  %997 = getelementptr inbounds i8, ptr %32, i64 20168
  %998 = load i32, ptr %997, align 8, !tbaa !232
  %999 = getelementptr inbounds i8, ptr %32, i64 20176
  %1000 = load float, ptr %999, align 8, !tbaa !233
  %1001 = fpext float %1000 to double
  %1002 = getelementptr inbounds i8, ptr %32, i64 20180
  %1003 = load float, ptr %1002, align 4, !tbaa !234
  %1004 = fpext float %1003 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.513, i32 noundef %998, double noundef %1001, double noundef %1004)
  %1005 = getelementptr inbounds i8, ptr %32, i64 19780
  %1006 = load i8, ptr %1005, align 4, !tbaa !235, !range !13, !noundef !14
  %1007 = zext nneg i8 %1006 to i32
  %1008 = getelementptr inbounds i8, ptr %32, i64 19812
  %1009 = load i32, ptr %1008, align 4, !tbaa !236
  %1010 = getelementptr inbounds i8, ptr %32, i64 19824
  %1011 = getelementptr inbounds i8, ptr %32, i64 19808
  %1012 = load i32, ptr %1011, align 8, !tbaa !237
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.514, i32 noundef %1007, i32 noundef %1009, ptr noundef nonnull %1010, i32 noundef %1012)
  %1013 = load i32, ptr %1008, align 4, !tbaa !236
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1013)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.515)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1014 = getelementptr inbounds i8, ptr %32, i64 19216
  %1015 = load ptr, ptr %1014, align 8, !tbaa !113
  %.not508 = icmp eq ptr %1015, null
  br i1 %.not508, label %1019, label %1016

1016:                                             ; preds = %982
  %1017 = getelementptr inbounds i8, ptr %1015, i64 8
  %1018 = load ptr, ptr %1017, align 8, !tbaa !114
  br label %1019

1019:                                             ; preds = %982, %1016
  %1020 = phi ptr [ %1018, %1016 ], [ @.str.421, %982 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.516, ptr noundef %1020)
  %1021 = getelementptr inbounds i8, ptr %32, i64 19224
  %1022 = load i32, ptr %1021, align 8, !tbaa !238
  %1023 = getelementptr inbounds i8, ptr %32, i64 19296
  %1024 = load i32, ptr %1023, align 8, !tbaa !239
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.517, i32 noundef %1022, i32 noundef %1024)
  %1025 = load i32, ptr %1021, align 8, !tbaa !238
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1025)
  %1026 = getelementptr inbounds i8, ptr %32, i64 19292
  %1027 = load i32, ptr %1026, align 4, !tbaa !240
  %1028 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1027)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.518, ptr noundef %1028)
  %1029 = getelementptr inbounds i8, ptr %32, i64 19304
  %1030 = load i64, ptr %1029, align 8, !tbaa !241
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.519, i64 noundef %1030, i64 noundef %1030)
  %1031 = getelementptr inbounds i8, ptr %32, i64 207
  %1032 = load i8, ptr %1031, align 1, !tbaa !242, !range !13, !noundef !14
  %1033 = zext nneg i8 %1032 to i32
  %1034 = getelementptr inbounds i8, ptr %32, i64 208
  %1035 = load i8, ptr %1034, align 8, !tbaa !243, !range !13, !noundef !14
  %1036 = zext nneg i8 %1035 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.520, i32 noundef %1033, i32 noundef %1036)
  %1037 = getelementptr inbounds i8, ptr %32, i64 19248
  %1038 = load i32, ptr %1037, align 8, !tbaa !244
  %1039 = getelementptr inbounds i8, ptr %32, i64 19252
  %1040 = load i32, ptr %1039, align 4, !tbaa !245
  %1041 = getelementptr inbounds i8, ptr %32, i64 19256
  %1042 = load i32, ptr %1041, align 8, !tbaa !246
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.521, i32 noundef %1038, i32 noundef %1040, i32 noundef %1042)
  %1043 = getelementptr inbounds i8, ptr %32, i64 19260
  %1044 = load i32, ptr %1043, align 4, !tbaa !247
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.522, i32 noundef %1044)
  %1045 = getelementptr inbounds i8, ptr %32, i64 19314
  %1046 = load i8, ptr %1045, align 2, !tbaa !248, !range !13, !noundef !14
  %1047 = zext nneg i8 %1046 to i32
  %1048 = getelementptr inbounds i8, ptr %32, i64 19315
  %1049 = load i8, ptr %1048, align 1, !tbaa !249, !range !13, !noundef !14
  %1050 = zext nneg i8 %1049 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.523, i32 noundef %1047, i32 noundef %1050)
  %1051 = getelementptr inbounds i8, ptr %32, i64 19228
  %1052 = load i32, ptr %1051, align 4, !tbaa !250
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.524, i32 noundef %1052)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.525)
  %1053 = getelementptr inbounds i8, ptr %32, i64 19232
  %1054 = load i32, ptr %1053, align 8, !tbaa !251
  %1055 = icmp sgt i32 %1054, 0
  br i1 %1055, label %.lr.ph622, label %._crit_edge623

._crit_edge623:                                   ; preds = %.lr.ph622, %1019
  %1056 = getelementptr inbounds i8, ptr %32, i64 19720
  %1057 = load ptr, ptr %1056, align 8, !tbaa !252
  %.not509 = icmp eq ptr %1057, null
  br i1 %.not509, label %1069, label %1066

.lr.ph622:                                        ; preds = %1019, %.lr.ph622
  %.0448.in620 = phi i32 [ %.0448, %.lr.ph622 ], [ %1054, %1019 ]
  %.0448 = add nsw i32 %.0448.in620, -1
  %1058 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZN8ImVectorI19ImGuiFocusScopeDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1053, i32 noundef %.0448)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef 0.000000e+00)
  %1059 = load i32, ptr %1058, align 4, !tbaa !253
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.526, i32 noundef %1059)
  %1060 = getelementptr inbounds i8, ptr %1058, i64 4
  %1061 = load i32, ptr %1060, align 4, !tbaa !255
  %1062 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %1061)
  %1063 = getelementptr inbounds i8, ptr %1062, i64 8
  %1064 = load ptr, ptr %1063, align 8, !tbaa !114
  call void (ptr, ...) @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef nonnull @.str.527, ptr noundef %1064)
  %1065 = icmp ugt i32 %.0448.in620, 1
  br i1 %1065, label %.lr.ph622, label %._crit_edge623, !llvm.loop !256

1066:                                             ; preds = %._crit_edge623
  %1067 = getelementptr inbounds i8, ptr %1057, i64 8
  %1068 = load ptr, ptr %1067, align 8, !tbaa !114
  br label %1069

1069:                                             ; preds = %._crit_edge623, %1066
  %1070 = phi ptr [ %1068, %1066 ], [ @.str.421, %._crit_edge623 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.528, ptr noundef %1070)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1071

1071:                                             ; preds = %1069, %931
  %1072 = getelementptr inbounds i8, ptr %32, i64 24730
  %1073 = load i8, ptr %1072, align 2, !tbaa !112, !range !13, !noundef !14
  %1074 = trunc nuw i8 %1073 to i1
  br i1 %1074, label %1079, label %1075

1075:                                             ; preds = %1071
  %1076 = getelementptr inbounds i8, ptr %32, i64 24731
  %1077 = load i8, ptr %1076, align 1, !tbaa !257, !range !13, !noundef !14
  %1078 = trunc nuw i8 %1077 to i1
  br i1 %1078, label %1079, label %.loopexit535

1079:                                             ; preds = %1075, %1071
  %1080 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %386)
  %1081 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %386)
  %.not510624 = icmp eq ptr %1080, %1081
  br i1 %.not510624, label %.loopexit535, label %.lr.ph627

.lr.ph627:                                        ; preds = %1079
  %1082 = getelementptr inbounds i8, ptr %26, i64 8
  %1083 = getelementptr inbounds i8, ptr %32, i64 24731
  br label %1084

1084:                                             ; preds = %.lr.ph627, %1113
  %.0445625 = phi ptr [ %1080, %.lr.ph627 ], [ %1114, %1113 ]
  %1085 = load ptr, ptr %.0445625, align 8, !tbaa !5
  %1086 = getelementptr inbounds i8, ptr %1085, i64 191
  %1087 = load i8, ptr %1086, align 1, !tbaa !258, !range !13, !noundef !14
  %1088 = trunc nuw i8 %1087 to i1
  br i1 %1088, label %1089, label %1113

1089:                                             ; preds = %1084
  %1090 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %1085)
  %1091 = load i8, ptr %1072, align 2, !tbaa !112, !range !13, !noundef !14
  %1092 = trunc nuw i8 %1091 to i1
  br i1 %1092, label %1093, label %1098

1093:                                             ; preds = %1089
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #9
  %1094 = load i32, ptr %69, align 4, !tbaa !108
  %1095 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef nonnull %1085, i32 noundef %1094)
  %1096 = extractvalue { <2 x float>, <2 x float> } %1095, 0
  store <2 x float> %1096, ptr %26, align 8
  %1097 = extractvalue { <2 x float>, <2 x float> } %1095, 1
  store <2 x float> %1097, ptr %1082, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1090, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %1082, 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) #9
  br label %1098

1098:                                             ; preds = %1093, %1089
  %1099 = load i8, ptr %1083, align 1, !tbaa !257, !range !13, !noundef !14
  %1100 = trunc nuw i8 %1099 to i1
  br i1 %1100, label %1101, label %1113

1101:                                             ; preds = %1098
  %1102 = getelementptr inbounds i8, ptr %1085, i64 20
  %1103 = load i32, ptr %1102, align 4, !tbaa !153
  %1104 = and i32 %1103, 16777216
  %.not511 = icmp eq i32 %1104, 0
  br i1 %.not511, label %1105, label %1113

1105:                                             ; preds = %1101
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  %1106 = getelementptr inbounds i8, ptr %1085, i64 210
  %1107 = load i16, ptr %1106, align 2, !tbaa !259
  %1108 = sext i16 %1107 to i32
  %1109 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %27, i64 noundef 32, ptr noundef nonnull @.str.348, i32 noundef %1108)
  %1110 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %1111 = getelementptr inbounds i8, ptr %1085, i64 40
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %29, float noundef %1110, float noundef %1110)
  %1112 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1111, ptr noundef nonnull align 4 dereferenceable(8) %29)
  store <2 x float> %1112, ptr %28, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1090, ptr noundef nonnull align 4 dereferenceable(8) %1111, 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) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1090, ptr noundef nonnull align 4 dereferenceable(8) %1111, i32 noundef -1, ptr noundef nonnull %27, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  br label %1113

1113:                                             ; preds = %1098, %1101, %1105, %1084
  %1114 = getelementptr inbounds i8, ptr %.0445625, i64 8
  %.not510 = icmp eq ptr %1114, %1081
  br i1 %.not510, label %.loopexit535, label %1084

.loopexit535:                                     ; preds = %1113, %1079, %1075
  %1115 = getelementptr inbounds i8, ptr %32, i64 24732
  %1116 = load i8, ptr %1115, align 4, !tbaa !115, !range !13, !noundef !14
  %1117 = trunc nuw i8 %1116 to i1
  br i1 %1117, label %.preheader533, label %.loopexit534

.preheader533:                                    ; preds = %.loopexit535
  %1118 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %498)
  %1119 = icmp sgt i32 %1118, 0
  br i1 %1119, label %.lr.ph631, label %.loopexit534

.lr.ph631:                                        ; preds = %.preheader533
  %1120 = getelementptr inbounds i8, ptr %32, i64 16216
  %1121 = getelementptr inbounds i8, ptr %31, i64 8
  %1122 = getelementptr inbounds i8, ptr %30, i64 8
  br label %1123

1123:                                             ; preds = %.lr.ph631, %.loopexit
  %.0440630 = phi i32 [ 0, %.lr.ph631 ], [ %1159, %.loopexit ]
  %1124 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %498, i32 noundef %.0440630)
  %1125 = icmp eq ptr %1124, null
  br i1 %1125, label %.loopexit, label %1126

1126:                                             ; preds = %1123
  %1127 = getelementptr inbounds i8, ptr %1124, i64 104
  %1128 = load i32, ptr %1127, align 8, !tbaa !116
  %1129 = load i32, ptr %1120, align 8, !tbaa !126
  %1130 = add nsw i32 %1129, -1
  %1131 = icmp slt i32 %1128, %1130
  br i1 %1131, label %.loopexit, label %1132

1132:                                             ; preds = %1126
  %1133 = getelementptr inbounds i8, ptr %1124, i64 384
  %1134 = load ptr, ptr %1133, align 8, !tbaa !127
  %1135 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1134)
  %1136 = load i32, ptr %74, align 4, !tbaa !109
  %1137 = icmp sgt i32 %1136, 5
  br i1 %1137, label %.preheader, label %1155

.preheader:                                       ; preds = %1132
  %1138 = getelementptr inbounds i8, ptr %1124, i64 108
  %1139 = load i32, ptr %1138, align 4, !tbaa !130
  %1140 = icmp sgt i32 %1139, 0
  br i1 %1140, label %.lr.ph629, label %.loopexit

.lr.ph629:                                        ; preds = %.preheader
  %1141 = getelementptr inbounds i8, ptr %1124, i64 522
  br label %1142

1142:                                             ; preds = %.lr.ph629, %1142
  %.0437628 = phi i32 [ 0, %.lr.ph629 ], [ %1152, %1142 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #9
  %1143 = load i32, ptr %74, align 4, !tbaa !109
  %1144 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1124, i32 noundef %1143, i32 noundef %.0437628)
  %1145 = extractvalue { <2 x float>, <2 x float> } %1144, 0
  store <2 x float> %1145, ptr %30, align 8
  %1146 = extractvalue { <2 x float>, <2 x float> } %1144, 1
  store <2 x float> %1146, ptr %1122, align 8
  %1147 = load i16, ptr %1141, align 2, !tbaa !260
  %1148 = sext i16 %1147 to i32
  %1149 = icmp eq i32 %.0437628, %1148
  %1150 = select i1 %1149, i32 -8323073, i32 -8388353
  %1151 = select i1 %1149, float 3.000000e+00, float 1.000000e+00
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1135, ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %1122, i32 noundef %1150, float noundef 0.000000e+00, i32 noundef 0, float noundef %1151)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #9
  %1152 = add nuw nsw i32 %.0437628, 1
  %1153 = load i32, ptr %1138, align 4, !tbaa !130
  %1154 = icmp slt i32 %1152, %1153
  br i1 %1154, label %1142, label %.loopexit, !llvm.loop !261

1155:                                             ; preds = %1132
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #9
  %1156 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1124, i32 noundef %1136, i32 noundef -1)
  %1157 = extractvalue { <2 x float>, <2 x float> } %1156, 0
  store <2 x float> %1157, ptr %31, align 8
  %1158 = extractvalue { <2 x float>, <2 x float> } %1156, 1
  store <2 x float> %1158, ptr %1121, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1135, ptr noundef nonnull align 4 dereferenceable(8) %31, ptr noundef nonnull align 4 dereferenceable(8) %1121, 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) #9
  br label %.loopexit

.loopexit:                                        ; preds = %1142, %.preheader, %1155, %1123, %1126
  %1159 = add nuw nsw i32 %.0440630, 1
  %1160 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %498)
  %1161 = icmp slt i32 %1159, %1160
  br i1 %1161, label %1123, label %.loopexit534, !llvm.loop !262

.loopexit534:                                     ; preds = %.loopexit, %.preheader533, %.loopexit535
  call void @_ZN5ImGui3EndEv()
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %3) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %2) #9
  br label %1162

1162:                                             ; preds = %.loopexit534, %49
  ret void
}

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

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

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

declare void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #6

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

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

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

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

declare void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef) local_unnamed_addr #6

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

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

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef, i32 noundef) local_unnamed_addr #7 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 #8 align 2

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

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

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

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

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

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

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

; 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 #8 align 2

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

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

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) local_unnamed_addr #6

declare void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef) local_unnamed_addr #6

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #3 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 #7

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(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 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 #4 = { 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 #5 = { 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 #6 = { "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 = { 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 #8 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }

!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, !20, i64 204}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !6, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !18, i64 80, !18, i64 88, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !19, i64 124, !12, i64 128, !12, i64 132, !12, i64 136, !18, i64 140, !18, i64 148, !18, i64 156, !18, i64 164, !18, i64 172, !18, i64 180, !11, i64 188, !11, i64 189, !11, i64 190, !11, i64 191, !11, i64 192, !11, i64 193, !11, i64 194, !11, i64 195, !11, i64 196, !11, i64 197, !11, i64 198, !11, i64 199, !11, i64 200, !7, i64 201, !7, i64 202, !20, i64 204, !20, i64 206, !20, i64 208, !20, i64 210, !20, i64 212, !12, i64 216, !7, i64 220, !7, i64 221, !11, i64 222, !12, i64 224, !7, i64 228, !7, i64 229, !7, i64 230, !7, i64 231, !12, i64 232, !12, i64 233, !12, i64 234, !18, i64 236, !18, i64 244, !21, i64 256, !22, i64 272, !28, i64 504, !28, i64 520, !28, i64 536, !28, i64 552, !28, i64 568, !28, i64 584, !28, i64 600, !29, i64 616, !29, i64 620, !12, i64 624, !19, i64 628, !19, i64 632, !30, i64 640, !32, i64 656, !19, i64 672, !12, i64 676, !6, i64 680, !33, i64 688, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !6, i64 944, !7, i64 952, !7, i64 960, !7, i64 992, !12, i64 1008, !12, i64 1012, !12, i64 1016, !11, i64 1020}
!18 = !{!"_ZTS6ImVec2", !19, i64 0, !19, i64 4}
!19 = !{!"float", !7, i64 0}
!20 = !{!"short", !7, i64 0}
!21 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!22 = !{!"_ZTS19ImGuiWindowTempData", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !19, i64 56, !19, i64 60, !11, i64 64, !11, i64 65, !23, i64 68, !23, i64 72, !23, i64 76, !18, i64 80, !24, i64 88, !20, i64 92, !20, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !18, i64 100, !25, i64 108, !12, i64 136, !12, i64 140, !26, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !19, i64 192, !19, i64 196, !27, i64 200, !27, i64 216}
!23 = !{!"_ZTS6ImVec1", !19, i64 0}
!24 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!25 = !{!"_ZTS16ImGuiMenuColumns", !12, i64 0, !12, i64 4, !20, i64 8, !20, i64 10, !20, i64 12, !20, i64 14, !20, i64 16, !7, i64 18}
!26 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!28 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!29 = !{!"_ZTS8ImVec2ih", !20, i64 0, !20, i64 2}
!30 = !{!"_ZTS12ImGuiStorage", !31, i64 0}
!31 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !12, i64 0, !12, i64 4, !6, i64 8}
!32 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!33 = !{!"_ZTS10ImDrawList", !34, i64 0, !35, i64 16, !36, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !37, i64 88, !38, i64 104, !39, i64 120, !40, i64 136, !42, i64 168, !19, i64 192}
!34 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorIPvE", !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, !6, i64 16, !12, i64 24}
!41 = !{!"_ZTS6ImVec4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!42 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !43, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!44 = !{!45, !19, i64 204}
!45 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !19, i64 56, !11, i64 60, !6, i64 64, !18, 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, !19, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !11, i64 112, !11, i64 113, !11, i64 114, !11, i64 115, !11, i64 116, !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, !20, i64 192, !11, i64 194, !11, i64 195, !11, i64 196, !11, i64 197, !11, i64 198, !11, i64 199, !11, i64 200, !19, i64 204, !12, i64 208, !12, i64 212, !12, i64 216, !12, i64 220, !18, i64 224, !7, i64 232, !7, i64 2896, !7, i64 3564, !6, i64 3632, !18, i64 3640, !7, i64 3648, !19, i64 3656, !19, i64 3660, !46, i64 3664, !11, i64 3668, !11, i64 3669, !11, i64 3670, !11, i64 3671, !12, i64 3672, !7, i64 3676, !11, i64 14332, !18, i64 14336, !7, i64 14344, !7, i64 14384, !7, i64 14424, !7, i64 14429, !7, i64 14434, !7, i64 14444, !7, i64 14454, !7, i64 14459, !7, i64 14464, !11, i64 14469, !7, i64 14472, !7, i64 14492, !7, i64 14512, !19, i64 14532, !11, i64 14536, !11, i64 14537, !7, i64 14538, !11, i64 14539, !20, i64 14540, !35, i64 14544}
!46 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!47 = !{!45, !12, i64 208}
!48 = !{!45, !12, i64 212}
!49 = !{!45, !12, i64 216}
!50 = !{!51, !12, i64 24800}
!51 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !45, i64 8, !52, i64 14568, !6, i64 15664, !19, i64 15672, !19, i64 15676, !53, i64 15680, !54, i64 16208, !12, i64 16216, !12, i64 16220, !12, i64 16224, !11, i64 16228, !11, i64 16229, !11, i64 16230, !11, i64 16231, !11, i64 16232, !6, i64 16240, !55, i64 16248, !55, i64 16264, !46, i64 16280, !12, i64 16284, !26, i64 16288, !26, i64 16304, !26, i64 16320, !56, i64 16336, !30, i64 16352, !12, i64 16368, !18, i64 16372, !12, i64 16380, !6, i64 16384, !6, i64 16392, !6, i64 16400, !6, i64 16408, !6, i64 16416, !18, i64 16424, !12, i64 16432, !12, i64 16436, !19, i64 16440, !18, i64 16444, !18, i64 16452, !12, i64 16460, !12, i64 16464, !12, i64 16468, !11, i64 16472, !11, i64 16473, !19, i64 16476, !19, i64 16480, !12, i64 16484, !12, i64 16488, !19, i64 16492, !11, i64 16496, !11, i64 16497, !11, i64 16498, !11, i64 16499, !11, i64 16500, !11, i64 16501, !11, i64 16502, !12, i64 16503, !18, i64 16504, !6, i64 16512, !57, i64 16520, !12, i64 16524, !11, i64 16528, !11, i64 16529, !6, i64 16536, !12, i64 16544, !19, i64 16548, !54, i64 16552, !54, i64 16560, !54, i64 16568, !58, i64 16576, !7, i64 16596, !59, i64 18448, !12, i64 18792, !11, i64 18796, !12, i64 18800, !12, i64 18804, !12, i64 18808, !12, i64 18812, !12, i64 18816, !61, i64 18824, !63, i64 18856, !64, i64 18936, !11, i64 19048, !12, i64 19052, !65, i64 19056, !66, i64 19072, !67, i64 19088, !68, i64 19104, !69, i64 19120, !70, i64 19136, !71, i64 19152, !71, i64 19168, !72, i64 19184, !73, i64 19200, !6, i64 19216, !12, i64 19224, !12, i64 19228, !68, i64 19232, !12, i64 19248, !12, i64 19252, !12, i64 19256, !12, i64 19260, !12, i64 19264, !19, i64 19268, !12, i64 19272, !12, i64 19276, !12, i64 19280, !12, i64 19284, !12, i64 19288, !57, i64 19292, !24, i64 19296, !62, i64 19304, !11, i64 19312, !11, i64 19313, !11, i64 19314, !11, i64 19315, !11, i64 19316, !11, i64 19317, !11, i64 19318, !74, i64 19320, !11, i64 19384, !11, i64 19385, !11, i64 19386, !12, i64 19388, !12, i64 19392, !12, i64 19396, !12, i64 19400, !12, i64 19404, !12, i64 19408, !28, i64 19412, !28, i64 19428, !12, i64 19444, !12, i64 19448, !12, i64 19452, !74, i64 19456, !74, i64 19520, !74, i64 19584, !74, i64 19648, !12, i64 19712, !12, i64 19716, !6, i64 19720, !6, i64 19728, !6, i64 19736, !19, i64 19744, !19, i64 19748, !11, i64 19752, !75, i64 19756, !18, i64 19760, !18, i64 19768, !19, i64 19776, !11, i64 19780, !11, i64 19781, !11, i64 19782, !12, i64 19784, !12, i64 19788, !12, i64 19792, !76, i64 19800, !28, i64 19864, !28, i64 19880, !12, i64 19896, !12, i64 19900, !19, i64 19904, !12, i64 19908, !12, i64 19912, !12, i64 19916, !12, i64 19920, !77, i64 19928, !7, i64 19944, !12, i64 19960, !78, i64 19968, !6, i64 19984, !12, i64 19992, !12, i64 19996, !79, i64 20000, !80, i64 20016, !27, i64 20056, !43, i64 20072, !6, i64 20088, !82, i64 20096, !84, i64 20136, !85, i64 20152, !12, i64 20168, !12, i64 20172, !19, i64 20176, !19, i64 20180, !12, i64 20184, !12, i64 20188, !12, i64 20192, !19, i64 20196, !18, i64 20200, !86, i64 20208, !90, i64 23944, !91, i64 23968, !12, i64 24088, !12, i64 24092, !12, i64 24096, !12, i64 24100, !12, i64 24104, !12, i64 24108, !19, i64 24112, !19, i64 24116, !12, i64 24120, !41, i64 24124, !93, i64 24140, !28, i64 24188, !11, i64 24204, !19, i64 24208, !19, i64 24212, !11, i64 24216, !11, i64 24217, !19, i64 24220, !19, i64 24224, !19, i64 24228, !19, i64 24232, !20, i64 24236, !20, i64 24238, !20, i64 24240, !87, i64 24248, !21, i64 24264, !94, i64 24280, !96, i64 24384, !96, i64 24400, !11, i64 24416, !19, i64 24420, !97, i64 24424, !98, i64 24440, !99, i64 24456, !100, i64 24472, !101, i64 24488, !12, i64 24504, !7, i64 24512, !11, i64 24576, !102, i64 24580, !6, i64 24584, !97, i64 24592, !6, i64 24608, !6, i64 24616, !19, i64 24624, !11, i64 24628, !12, i64 24632, !12, i64 24636, !12, i64 24640, !12, i64 24644, !97, i64 24648, !103, i64 24664, !12, i64 24688, !7, i64 24692, !7, i64 24693, !11, i64 24694, !12, i64 24696, !7, i64 24700, !11, i64 24701, !7, i64 24702, !12, i64 24704, !19, i64 24708, !41, i64 24712, !10, i64 24728, !104, i64 24760, !106, i64 24800, !7, i64 24860, !12, i64 25100, !12, i64 25104, !19, i64 25108, !12, i64 25112, !12, i64 25116, !12, i64 25120, !87, i64 25128, !7, i64 25144}
!52 = !{!"_ZTS10ImGuiStyle", !19, i64 0, !19, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !18, i64 24, !18, i64 32, !12, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !18, i64 60, !19, i64 68, !19, i64 72, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !19, i64 148, !19, i64 152, !12, i64 156, !18, i64 160, !18, i64 168, !19, i64 176, !18, i64 180, !18, i64 188, !18, i64 196, !18, i64 204, !19, i64 212, !11, i64 216, !11, i64 217, !11, i64 218, !19, i64 220, !19, i64 224, !7, i64 228, !19, i64 1076, !19, i64 1080, !19, i64 1084, !12, i64 1088, !12, i64 1092}
!53 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !19, i64 16, !19, i64 20, !19, i64 24, !41, i64 28, !12, i64 44, !39, i64 48, !7, i64 64, !19, i64 448, !7, i64 452, !6, i64 520}
!54 = !{!"double", !7, i64 0}
!55 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!57 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!58 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!59 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !60, i64 312, !60, i64 328}
!60 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !62, i64 8, !19, i64 16, !12, i64 20, !11, i64 24, !12, i64 25}
!62 = !{!"long long", !7, i64 0}
!63 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !28, i64 12, !28, i64 28, !28, i64 44, !28, i64 60}
!64 = !{!"_ZTS19ImGuiNextWindowData", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !12, i64 56, !11, i64 60, !28, i64 64, !6, i64 80, !6, i64 88, !19, i64 96, !18, i64 100}
!65 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI20ImGuiNavTreeNodeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !28, i64 16, !12, i64 32, !62, i64 40, !19, i64 48, !19, i64 52, !19, i64 56}
!75 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!76 = !{!"_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}
!77 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!80 = !{!"_ZTS6ImPoolI10ImGuiTableE", !81, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!81 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !83, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!83 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!86 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !35, i64 24, !87, i64 40, !87, i64 56, !11, i64 72, !12, i64 76, !19, i64 80, !88, i64 84, !19, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !12, i64 3720, !11, i64 3724, !12, i64 3728, !12, i64 3732}
!87 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!88 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !12, i64 0, !12, i64 4, !12, i64 8, !7, i64 12, !12, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !19, i64 28, !89, i64 32}
!89 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !20, i64 3582, !20, i64 3584, !12, i64 3588, !12, i64 3592}
!90 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !87, i64 8}
!91 = !{!"_ZTS6ImFont", !27, i64 0, !19, i64 16, !19, i64 20, !35, i64 24, !92, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !20, i64 80, !20, i64 82, !20, i64 84, !20, i64 86, !19, i64 88, !19, i64 92, !11, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !12, i64 112, !7, i64 116}
!92 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!93 = !{!"_ZTS21ImGuiComboPreviewData", !28, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !19, i64 40, !12, i64 44}
!94 = !{!"_ZTS22ImGuiTypingSelectState", !95, i64 0, !7, i64 24, !12, i64 88, !12, i64 92, !19, i64 96, !11, i64 100}
!95 = !{!"_ZTS24ImGuiTypingSelectRequest", !12, i64 0, !12, i64 4, !6, i64 8, !11, i64 16, !11, i64 17, !7, i64 18}
!96 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !18, i64 4, !19, i64 12}
!97 = !{!"_ZTS15ImGuiTextBuffer", !87, i64 0}
!98 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!99 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !87, i64 0}
!100 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !87, i64 0}
!101 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!102 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!103 = !{!"_ZTS14ImGuiTextIndex", !69, i64 0, !12, i64 16}
!104 = !{!"_ZTS16ImGuiIDStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !105, i64 16, !11, i64 32, !19, i64 36}
!105 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!106 = !{!"_ZTS19ImGuiDebugAllocInfo", !12, i64 0, !12, i64 4, !20, i64 8, !7, i64 12}
!107 = !{!51, !12, i64 24804}
!108 = !{!10, !12, i64 12}
!109 = !{!10, !12, i64 16}
!110 = !{!51, !19, i64 14756}
!111 = !{!51, !11, i64 24701}
!112 = !{!10, !11, i64 2}
!113 = !{!51, !6, i64 19216}
!114 = !{!17, !6, i64 8}
!115 = !{!10, !11, i64 4}
!116 = !{!117, !12, i64 104}
!117 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !118, i64 24, !119, i64 40, !120, i64 56, !6, i64 72, !6, i64 80, !6, i64 88, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !20, i64 120, !20, i64 122, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !12, i64 148, !12, i64 150, !12, i64 152, !7, i64 156, !12, i64 164, !12, i64 168, !19, i64 172, !19, i64 176, !19, i64 180, !19, i64 184, !19, i64 188, !19, i64 192, !19, i64 196, !19, i64 200, !19, i64 204, !19, i64 208, !19, i64 212, !19, i64 216, !19, i64 220, !19, i64 224, !19, i64 228, !19, i64 232, !19, i64 236, !28, i64 240, !28, i64 256, !28, i64 272, !28, i64 288, !28, i64 304, !28, i64 320, !28, i64 336, !28, i64 352, !28, i64 368, !6, i64 384, !6, i64 392, !97, i64 400, !6, i64 416, !121, i64 424, !122, i64 448, !123, i64 464, !124, i64 480, !125, i64 496, !20, i64 512, !20, i64 514, !20, i64 516, !20, i64 518, !20, i64 520, !20, i64 522, !20, i64 524, !20, i64 526, !20, i64 528, !20, i64 530, !20, i64 532, !20, i64 534, !20, i64 536, !20, i64 538, !20, i64 540, !20, i64 542, !20, i64 544, !20, i64 546, !20, i64 548, !20, i64 550, !20, i64 552, !20, i64 554, !20, i64 556, !20, i64 558, !20, i64 560, !20, i64 562, !20, i64 564, !11, i64 566, !11, i64 567, !11, i64 568, !11, i64 569, !11, i64 570, !11, i64 571, !11, i64 572, !11, i64 573, !11, i64 574, !11, i64 575, !11, i64 576, !11, i64 577, !11, i64 578, !11, i64 579, !11, i64 580, !11, i64 581, !11, i64 582, !11, i64 583, !11, i64 584, !11, i64 585}
!118 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!119 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!120 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!121 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !19, i64 4, !19, i64 8, !19, i64 12, !12, i64 16, !12, i64 20}
!122 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!123 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !20, i64 4, !20, i64 6, !12, i64 8}
!124 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!125 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!126 = !{!51, !12, i64 16216}
!127 = !{!117, !6, i64 384}
!128 = !{!117, !6, i64 392}
!129 = !{!117, !12, i64 0}
!130 = !{!117, !12, i64 108}
!131 = distinct !{!131, !132}
!132 = !{!"llvm.loop.mustprogress"}
!133 = distinct !{!133, !132}
!134 = distinct !{!134, !132}
!135 = !{!10, !11, i64 7}
!136 = !{!7, !7, i64 0}
!137 = !{!51, !12, i64 16288}
!138 = !{!26, !6, i64 8}
!139 = !{!26, !12, i64 0}
!140 = !{!17, !12, i64 624}
!141 = !{!142, !12, i64 88}
!142 = !{!"_ZTS14ImGuiViewportP", !143, i64 0, !7, i64 48, !7, i64 56, !144, i64 72, !146, i64 136, !18, i64 168, !18, i64 176, !18, i64 184, !18, i64 192}
!143 = !{!"_ZTS13ImGuiViewport", !12, i64 0, !12, i64 4, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !6, i64 40}
!144 = !{!"_ZTS10ImDrawData", !11, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !145, i64 16, !18, i64 32, !18, i64 40, !18, i64 48, !6, i64 56}
!145 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!146 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0, !145, i64 16}
!147 = !{!51, !12, i64 19200}
!148 = !{!10, !12, i64 24}
!149 = !{!51, !12, i64 19152}
!150 = !{!151, !6, i64 8}
!151 = !{!"_ZTS14ImGuiPopupData", !12, i64 0, !6, i64 8, !6, i64 16, !12, i64 24, !12, i64 28, !12, i64 32, !18, i64 36, !18, i64 44}
!152 = !{!151, !12, i64 0}
!153 = !{!17, !12, i64 20}
!154 = !{!151, !6, i64 16}
!155 = !{!17, !6, i64 888}
!156 = distinct !{!156, !132}
!157 = distinct !{!157, !132}
!158 = !{!51, !6, i64 56}
!159 = !{!160, !12, i64 88}
!160 = !{!"_ZTS11ImFontAtlas", !12, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !11, i64 24, !6, i64 32, !11, i64 40, !11, i64 41, !6, i64 48, !6, i64 56, !12, i64 64, !12, i64 68, !18, i64 72, !18, i64 80, !67, i64 88, !161, i64 104, !162, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!161 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!162 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!163 = !{!51, !6, i64 32}
!164 = !{!51, !19, i64 24420}
!165 = !{!51, !12, i64 24440}
!166 = !{!167, !6, i64 0}
!167 = !{!"_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}
!168 = distinct !{!168, !132}
!169 = distinct !{!169, !132}
!170 = !{!51, !12, i64 24424}
!171 = !{!106, !12, i64 0}
!172 = !{!106, !12, i64 4}
!173 = !{!51, !11, i64 16231}
!174 = !{!106, !20, i64 8}
!175 = !{!176, !12, i64 0}
!176 = !{!"_ZTS20ImGuiDebugAllocEntry", !12, i64 0, !20, i64 4, !20, i64 6}
!177 = !{!176, !20, i64 4}
!178 = !{!176, !20, i64 6}
!179 = !{!180, !19, i64 4}
!180 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!181 = distinct !{!181, !132}
!182 = distinct !{!182, !132}
!183 = !{!45, !11, i64 3668}
!184 = !{!45, !11, i64 3669}
!185 = !{!45, !11, i64 3670}
!186 = !{!45, !11, i64 3671}
!187 = !{!45, !12, i64 14544}
!188 = distinct !{!188, !132}
!189 = !{!20, !20, i64 0}
!190 = distinct !{!190, !132}
!191 = !{!45, !19, i64 3640}
!192 = !{!45, !19, i64 3644}
!193 = !{!45, !19, i64 224}
!194 = !{!45, !19, i64 228}
!195 = !{!19, !19, i64 0}
!196 = !{!45, !19, i64 3656}
!197 = !{!51, !19, i64 20196}
!198 = !{!45, !46, i64 3664}
!199 = !{!45, !19, i64 14532}
!200 = !{!51, !6, i64 16416}
!201 = !{!51, !19, i64 16440}
!202 = !{!51, !19, i64 16452}
!203 = !{!51, !19, i64 16456}
!204 = !{!205, !12, i64 0}
!205 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!206 = !{!205, !11, i64 9}
!207 = !{!205, !11, i64 8}
!208 = distinct !{!208, !132}
!209 = distinct !{!209, !132}
!210 = !{!211, !20, i64 2}
!211 = !{!"_ZTS19ImGuiKeyRoutingData", !20, i64 0, !20, i64 2, !7, i64 4, !7, i64 5, !12, i64 8, !12, i64 12}
!212 = !{!211, !12, i64 8}
!213 = !{!211, !7, i64 4}
!214 = !{!51, !11, i64 120}
!215 = !{!51, !12, i64 18800}
!216 = distinct !{!216, !132}
!217 = !{!51, !11, i64 18796}
!218 = !{!51, !12, i64 18792}
!219 = !{!51, !6, i64 16392}
!220 = !{!17, !6, i64 904}
!221 = !{!51, !6, i64 16400}
!222 = !{!51, !6, i64 16408}
!223 = !{!51, !12, i64 16484}
!224 = !{!51, !12, i64 16524}
!225 = !{!51, !19, i64 16492}
!226 = !{!51, !11, i64 16497}
!227 = !{!51, !57, i64 16520}
!228 = !{!51, !6, i64 16512}
!229 = !{!51, !12, i64 16468}
!230 = !{!51, !19, i64 16476}
!231 = !{!51, !11, i64 16472}
!232 = !{!51, !12, i64 20168}
!233 = !{!51, !19, i64 20176}
!234 = !{!51, !19, i64 20180}
!235 = !{!51, !11, i64 19780}
!236 = !{!51, !12, i64 19812}
!237 = !{!51, !12, i64 19808}
!238 = !{!51, !12, i64 19224}
!239 = !{!51, !24, i64 19296}
!240 = !{!51, !57, i64 19292}
!241 = !{!51, !62, i64 19304}
!242 = !{!51, !11, i64 207}
!243 = !{!51, !11, i64 208}
!244 = !{!51, !12, i64 19248}
!245 = !{!51, !12, i64 19252}
!246 = !{!51, !12, i64 19256}
!247 = !{!51, !12, i64 19260}
!248 = !{!51, !11, i64 19314}
!249 = !{!51, !11, i64 19315}
!250 = !{!51, !12, i64 19228}
!251 = !{!51, !12, i64 19232}
!252 = !{!51, !6, i64 19720}
!253 = !{!254, !12, i64 0}
!254 = !{!"_ZTS19ImGuiFocusScopeData", !12, i64 0, !12, i64 4}
!255 = !{!254, !12, i64 4}
!256 = distinct !{!256, !132}
!257 = !{!10, !11, i64 3}
!258 = !{!17, !11, i64 191}
!259 = !{!17, !20, i64 210}
!260 = !{!117, !20, i64 522}
!261 = distinct !{!261, !132}
!262 = distinct !{!262, !132}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass