; LLVM IR from xhub/reshop :: gui/external/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.ImGuiPlatformIO, %struct.ImGuiStyle, ptr, float, float, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i32, i8, i8, i8, i8, ptr, [16 x i8], %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, ptr, %struct.ImVec2, i32, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i32, i32, float, float, i8, i8, i8, i32, i32, float, i8, i8, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, %struct.ImGuiDeactivatedItemData, %struct.ImGuiDataTypeStorage, i32, float, double, double, double, %struct.ImBitArray, [154 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %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, i8, i8, i8, i8, i32, ptr, i32, i32, i32, i32, i32, i32, %struct.ImVector.9, i32, float, i32, i32, i32, i64, i8, i8, i8, i8, %struct.ImGuiNavItemData, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, i32, i32, i8, i8, i32, i32, ptr, ptr, ptr, float, float, i8, i32, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.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, %struct.ImGuiBoxSelectState, ptr, i32, %struct.ImVector.25, %struct.ImPool.26, i32, i32, float, float, i32, i32, i32, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, %struct.ImGuiDataTypeStorage, i32, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, %struct.ImRect, i8, i16, float, float, float, i8, i8, float, float, float, i16, i16, ptr, %struct.ImVector.28, %struct.ImVector.30, %struct.ImGuiTypingSelectState, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.31, %struct.ImChunkStream, %struct.ImChunkStream.32, %struct.ImVector.33, i32, [10 x ptr], i8, i32, ptr, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, ptr, ptr, %struct.ImVec2, i8, i32, %struct.ImGuiErrorRecoveryState, ptr, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i32, i32, i8, i8, i8, i32, i8, i8, i8, i32, float, %struct.ImVec4, %struct.ImGuiMetricsConfig, %struct.ImGuiIDStackTool, %struct.ImGuiDebugAllocInfo, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.28, [64 x i8] }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, float, float, float, float, float, float, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, %struct.ImVec2, ptr, %struct.ImVec2, [5 x i8], float, float, i32, i8, i8, i8, i8, i32, [154 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, i8, [5 x float], [5 x float], [5 x float], float, i8, i8, i16, %struct.ImVector, ptr, ptr, ptr }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiPlatformIO = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, i16, ptr }
%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, float, %struct.ImVec2, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [56 x %struct.ImVec4], float, float, float, i32, i32 }
%struct.ImDrawListSharedData = type <{ %struct.ImVec2, ptr, ptr, float, float, float, float, %struct.ImVec4, i32, [4 x i8], %struct.ImVector.0, [48 x %struct.ImVec2], float, [64 x i8], [4 x i8] }>
%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.ImGuiDeactivatedItemData = type { i32, i32, i8, i8 }
%struct.ImBitArray = type { [5 x i32] }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [154 x i16], %struct.ImVector.5, %struct.ImVector.5 }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, i32, i32, [4 x i8], i64, float, i32, i32, i8, i8, %struct.ImGuiDataTypeStorage, [2 x i8], i32, [4 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, i32 }
%struct.ImGuiNextWindowData = type { i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i32, i8, %struct.ImRect, ptr, ptr, float, %struct.ImVec2, i32 }
%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, float, float, float, i64 }
%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.ImGuiBoxSelectState = type <{ i32, i8, i8, i8, i8, i8, i16, i8, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, [4 x i8], ptr, i8, [3 x i8], %struct.ImRect, %struct.ImRect, %struct.ImRect, [4 x i8] }>
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImPool.26 = type { %struct.ImVector.27, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, ptr, i32, i32, i32, [4 x i8], ptr, %struct.ImVector.28, %struct.ImVector.28, %struct.ImVector.28, i32, %struct.ImVec2, float, i8, i8, i8, i8, i32, i32, [4 x i8] }>
%struct.ImGuiInputTextDeactivatedState = type { i32, %struct.ImVector.28 }
%struct.ImFont = type <{ %struct.ImVector.19, float, float, %struct.ImVector, %struct.ImVector.29, 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.29 = type { i32, i32, ptr }
%struct.ImGuiDataTypeStorage = type { [8 x i8] }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.30 = 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.31 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.28 }
%struct.ImChunkStream.32 = type { %struct.ImVector.28 }
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImGuiErrorRecoveryState = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 }
%struct.ImGuiTextBuffer = type { %struct.ImVector.28 }
%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.34, i8, float }
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImGuiDebugAllocInfo = type { i32, i32, i16, [6 x %struct.ImGuiDebugAllocEntry] }
%struct.ImGuiDebugAllocEntry = type { i32, i16, i16 }
%struct.ImVector.28 = 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, float, float, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, i16, i8, i8, i8, [3 x i8], i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, [4 x i8], %struct.ImVector.30, %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.37, 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.37 = type { i32, i32, ptr }
%struct.ImDrawList = type { %struct.ImVector.38, %struct.ImVector, %struct.ImVector.39, i32, i32, ptr, ptr, ptr, %struct.ImVector.0, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, %struct.ImVector.40, %struct.ImVector.41, %struct.ImVector.15, float, ptr }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, i64, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.20 }
%struct.ImVector.40 = type { i32, i32, ptr }
%struct.ImVector.41 = type { i32, i32, ptr }
%struct.ImGuiTable = type <{ i32, i32, ptr, ptr, %struct.ImSpan, %struct.ImSpan.42, %struct.ImSpan.43, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i16, i16, float, float, float, float, float, float, i32, i32, [2 x i32], i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, ptr, ptr, %struct.ImGuiTextBuffer, ptr, %struct.ImGuiTableInstanceData, %struct.ImVector.44, %struct.ImGuiTableColumnSortSpecs, [4 x i8], %struct.ImVector.45, %struct.ImGuiTableSortSpecs, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [6 x i8] }>
%struct.ImSpan = type { ptr, ptr }
%struct.ImSpan.42 = type { ptr, ptr }
%struct.ImSpan.43 = type { ptr, ptr }
%struct.ImGuiTableInstanceData = type { i32, float, float, float, i32, i32 }
%struct.ImVector.44 = type { i32, i32, ptr }
%struct.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.45 = type { i32, i32, ptr }
%struct.ImGuiTableSortSpecs = type <{ ptr, i32, i8, [3 x i8] }>
%struct.ImGuiViewportP = type { %struct.ImGuiViewport, [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, ptr }
%struct.ImDrawData = type { i8, i32, i32, i32, %struct.ImVector.50, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, ptr }
%struct.ImVector.50 = type { i32, i32, ptr }
%struct.ImDrawDataBuilder = type { [2 x ptr], %struct.ImVector.50 }
%struct.ImGuiPopupData = type <{ i32, [4 x i8], ptr, ptr, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, [4 x i8] }>
%struct.ImFontAtlas = type <{ i32, [4 x i8], i64, i32, i32, i8, [7 x i8], ptr, i8, i8, [6 x i8], ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.8, %struct.ImVector.48, %struct.ImVector.49, [64 x %struct.ImVec4], ptr, i32, i32, i32, [4 x i8] }>
%struct.ImVector.48 = type { i32, i32, ptr }
%struct.ImVector.49 = type { i32, i32, ptr }
%struct.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.14 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.300 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.397 = 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.415 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.422 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.423 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [64 x i8], align 16
@.str.441 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [6 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 [7 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.494 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.520 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.529 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.530 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.531 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.532 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.533 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.535 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.536 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.537 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.538 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.539 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.540 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.541 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.542 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.543 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.544 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.545 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.546 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.547 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.548 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.549 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.550 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.551 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.552 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.553 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.554 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.555 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.556 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.557 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.558 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.560 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.561 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.562 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.563 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.564 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.565 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.566 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.567 = 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(216), 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(216), 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 @_ZN5ImGui15GetKeyChordNameEi(i32 noundef) #8

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

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

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

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

; 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

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

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

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

declare void @_ZN5ImGui9SeparatorEv() #6

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

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

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

declare void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef) #6

; 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 @_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 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(216), 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 @_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 i32, align 4
  %67 = alloca ptr, align 8
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca ptr, align 8
  %74 = alloca %struct.ImVec2, align 4
  %75 = alloca ptr, align 8
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca ptr, align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i16, align 2
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca %struct.ImVec2, align 4
  %89 = alloca i32, align 4
  %90 = alloca ptr, align 8
  %91 = alloca %struct.ImVec2, align 4
  %92 = alloca i32, align 4
  %93 = alloca ptr, align 8
  %94 = alloca i16, align 2
  %95 = alloca ptr, align 8
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca ptr, align 8
  %99 = alloca ptr, align 8
  %100 = alloca ptr, align 8
  %101 = alloca ptr, align 8
  %102 = alloca ptr, align 8
  %103 = alloca ptr, align 8
  %104 = alloca %struct.ImRect, align 4
  %105 = alloca [32 x i8], align 16
  %106 = alloca float, align 4
  %107 = alloca %struct.ImVec2, align 4
  %108 = alloca %struct.ImVec2, align 4
  %109 = alloca i32, align 4
  %110 = alloca ptr, align 8
  %111 = alloca ptr, align 8
  %112 = alloca i32, align 4
  %113 = alloca %struct.ImRect, align 4
  %114 = alloca i32, align 4
  %115 = alloca float, align 4
  %116 = 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
  %117 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %117, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #9
  %118 = load ptr, ptr %3, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.ImGuiContext, ptr %118, i32 0, i32 2
  store ptr %119, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #9
  %120 = load ptr, ptr %3, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.ImGuiContext, ptr %120, i32 0, i32 286
  store ptr %121, ptr %5, align 8, !tbaa !5
  %122 = load ptr, ptr %5, align 8, !tbaa !5
  %123 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %122, i32 0, i32 0
  %124 = load i8, ptr %123, align 4, !tbaa !9, !range !13, !noundef !14
  %125 = trunc i8 %124 to i1
  br i1 %125, label %126, label %129

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

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

134:                                              ; preds = %129
  %135 = load ptr, ptr %5, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %135, i32 0, i32 1
  call void @_ZN5ImGui21ShowIDStackToolWindowEPb(ptr noundef %136)
  br label %137

137:                                              ; preds = %134, %129
  %138 = load ptr, ptr %2, align 8, !tbaa !5
  %139 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.392, ptr noundef %138, i32 noundef 0)
  br i1 %139, label %140, label %146

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

146:                                              ; preds = %140, %137
  call void @_ZN5ImGui3EndEv()
  store i32 1, ptr %6, align 4
  br label %1987

147:                                              ; preds = %140
  call void @_ZN5ImGui19DebugBreakClearDataEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.393, ptr noundef @.str.108, i32 noundef 19170)
  %148 = load ptr, ptr %3, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.ImGuiContext, ptr %148, i32 0, i32 21
  %150 = getelementptr inbounds [16 x i8], ptr %149, i64 0, i64 0
  %151 = load i8, ptr %150, align 8, !tbaa !47
  %152 = sext i8 %151 to i32
  %153 = icmp ne i32 %152, 0
  br i1 %153, label %154, label %158

154:                                              ; preds = %147
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %155 = load ptr, ptr %3, align 8, !tbaa !5
  %156 = getelementptr inbounds %struct.ImGuiContext, ptr %155, i32 0, i32 21
  %157 = getelementptr inbounds [16 x i8], ptr %156, i64 0, i64 0
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.394, ptr noundef %157)
  br label %158

158:                                              ; preds = %154, %147
  %159 = load ptr, ptr %4, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.ImGuiIO, ptr %159, i32 0, i32 58
  %161 = load float, ptr %160, align 8, !tbaa !48
  %162 = fdiv float 1.000000e+03, %161
  %163 = fpext float %162 to double
  %164 = load ptr, ptr %4, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.ImGuiIO, ptr %164, i32 0, i32 58
  %166 = load float, ptr %165, align 8, !tbaa !48
  %167 = fpext float %166 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.395, double noundef %163, double noundef %167)
  %168 = load ptr, ptr %4, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.ImGuiIO, ptr %168, i32 0, i32 59
  %170 = load i32, ptr %169, align 4, !tbaa !51
  %171 = load ptr, ptr %4, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.ImGuiIO, ptr %171, i32 0, i32 60
  %173 = load i32, ptr %172, align 8, !tbaa !52
  %174 = load ptr, ptr %4, align 8, !tbaa !5
  %175 = getelementptr inbounds %struct.ImGuiIO, ptr %174, i32 0, i32 60
  %176 = load i32, ptr %175, align 8, !tbaa !52
  %177 = sdiv i32 %176, 3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.396, i32 noundef %170, i32 noundef %173, i32 noundef %177)
  %178 = load ptr, ptr %4, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.ImGuiIO, ptr %178, i32 0, i32 61
  %180 = load i32, ptr %179, align 4, !tbaa !53
  %181 = load ptr, ptr %3, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.ImGuiContext, ptr %181, i32 0, i32 288
  %183 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %182, i32 0, i32 0
  %184 = load i32, ptr %183, align 8, !tbaa !54
  %185 = load ptr, ptr %3, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.ImGuiContext, ptr %185, i32 0, i32 288
  %187 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %186, i32 0, i32 1
  %188 = load i32, ptr %187, align 4, !tbaa !114
  %189 = sub nsw i32 %184, %188
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.397, i32 noundef %180, i32 noundef %189)
  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)
  %190 = load ptr, ptr %5, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %190, i32 0, i32 9
  %192 = load i32, ptr %191, align 4, !tbaa !115
  %193 = icmp slt i32 %192, 0
  br i1 %193, label %194, label %197

194:                                              ; preds = %158
  %195 = load ptr, ptr %5, align 8, !tbaa !5
  %196 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %195, i32 0, i32 9
  store i32 4, ptr %196, align 4, !tbaa !115
  br label %197

197:                                              ; preds = %194, %158
  %198 = load ptr, ptr %5, align 8, !tbaa !5
  %199 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %198, i32 0, i32 10
  %200 = load i32, ptr %199, align 4, !tbaa !116
  %201 = icmp slt i32 %200, 0
  br i1 %201, label %202, label %205

202:                                              ; preds = %197
  %203 = load ptr, ptr %5, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %203, i32 0, i32 10
  store i32 2, ptr %204, align 4, !tbaa !116
  br label %205

205:                                              ; preds = %202, %197
  %206 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.415)
  br i1 %206, label %207, label %558

207:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  %208 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef @.str.417, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %208, ptr %9, align 4
  %209 = getelementptr inbounds %struct.ImVec2, ptr %9, i32 0, i32 0
  %210 = load float, ptr %209, align 4, !tbaa !117
  %211 = load ptr, ptr %3, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.ImGuiContext, ptr %211, i32 0, i32 4
  %213 = getelementptr inbounds %struct.ImGuiStyle, ptr %212, i32 0, i32 38
  %214 = getelementptr inbounds %struct.ImVec2, ptr %213, i32 0, i32 0
  %215 = load float, ptr %214, align 8, !tbaa !118
  %216 = fadd float %210, %215
  call void @_ZN5ImGui15SeparatorTextExEjPKcS1_f(i32 noundef 0, ptr noundef @.str.416, ptr noundef null, float noundef %216)
  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.418)
  %217 = load ptr, ptr %3, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.ImGuiContext, ptr %217, i32 0, i32 281
  %219 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.419, ptr noundef %218)
  br i1 %219, label %220, label %226

220:                                              ; preds = %207
  %221 = load ptr, ptr %3, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.ImGuiContext, ptr %221, i32 0, i32 281
  %223 = load i8, ptr %222, align 1, !tbaa !119, !range !13, !noundef !14
  %224 = trunc i8 %223 to i1
  br i1 %224, label %225, label %226

225:                                              ; preds = %220
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %226

226:                                              ; preds = %225, %220, %207
  %227 = load ptr, ptr %3, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.ImGuiContext, ptr %227, i32 0, i32 2
  %229 = getelementptr inbounds %struct.ImGuiIO, ptr %228, i32 0, i32 40
  %230 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.420, ptr noundef %229)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.421)
  %231 = load ptr, ptr %5, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %231, i32 0, i32 0
  %233 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.422, ptr noundef %232)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.423)
  %234 = load ptr, ptr %5, align 8, !tbaa !5
  %235 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %234, i32 0, i32 1
  %236 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.424, ptr noundef %235)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.425)
  %237 = load ptr, ptr %5, align 8, !tbaa !5
  %238 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %237, i32 0, i32 3
  %239 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.426, ptr noundef %238)
  %240 = load ptr, ptr %5, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %240, i32 0, i32 2
  %242 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.427, ptr noundef %241)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %243 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %244 = fmul float %243, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %244)
  %245 = load ptr, ptr %5, align 8, !tbaa !5
  %246 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %245, i32 0, i32 9
  %247 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 0
  %248 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.428, ptr noundef %246, ptr noundef %247, i32 noundef 8, i32 noundef 8)
  %249 = zext i1 %248 to i32
  %250 = load ptr, ptr %5, align 8, !tbaa !5
  %251 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %250, i32 0, i32 2
  %252 = load i8, ptr %251, align 2, !tbaa !120, !range !13, !noundef !14
  %253 = trunc i8 %252 to i1
  %254 = zext i1 %253 to i32
  %255 = or i32 %254, %249
  %256 = icmp ne i32 %255, 0
  %257 = zext i1 %256 to i8
  store i8 %257, ptr %251, align 2, !tbaa !120
  %258 = load ptr, ptr %5, align 8, !tbaa !5
  %259 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %258, i32 0, i32 2
  %260 = load i8, ptr %259, align 2, !tbaa !120, !range !13, !noundef !14
  %261 = trunc i8 %260 to i1
  br i1 %261, label %262, label %315

262:                                              ; preds = %226
  %263 = load ptr, ptr %3, align 8, !tbaa !5
  %264 = getelementptr inbounds %struct.ImGuiContext, ptr %263, i32 0, i32 107
  %265 = load ptr, ptr %264, align 8, !tbaa !121
  %266 = icmp ne ptr %265, null
  br i1 %266, label %267, label %315

267:                                              ; preds = %262
  %268 = load ptr, ptr %3, align 8, !tbaa !5
  %269 = getelementptr inbounds %struct.ImGuiContext, ptr %268, i32 0, i32 107
  %270 = load ptr, ptr %269, align 8, !tbaa !121
  %271 = getelementptr inbounds %struct.ImGuiWindow, ptr %270, i32 0, i32 1
  %272 = load ptr, ptr %271, align 8, !tbaa !122
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.429, ptr noundef %272)
  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 !123
  br label %273

273:                                              ; preds = %311, %267
  %274 = load i32, ptr %10, align 4, !tbaa !123
  %275 = icmp slt i32 %274, 8
  br i1 %275, label %277, label %276

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

277:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #9
  %278 = load ptr, ptr %3, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.ImGuiContext, ptr %278, i32 0, i32 107
  %280 = load ptr, ptr %279, align 8, !tbaa !121
  %281 = load i32, ptr %10, align 4, !tbaa !123
  %282 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %280, i32 noundef %281)
  %283 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %11, i32 0, i32 0
  %284 = extractvalue { <2 x float>, <2 x float> } %282, 0
  store <2 x float> %284, ptr %283, align 4
  %285 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %11, i32 0, i32 1
  %286 = extractvalue { <2 x float>, <2 x float> } %282, 1
  store <2 x float> %286, ptr %285, align 4
  %287 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 0
  %288 = getelementptr inbounds %struct.ImVec2, ptr %287, i32 0, i32 0
  %289 = load float, ptr %288, align 4, !tbaa !124
  %290 = fpext float %289 to double
  %291 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 0
  %292 = getelementptr inbounds %struct.ImVec2, ptr %291, i32 0, i32 1
  %293 = load float, ptr %292, align 4, !tbaa !125
  %294 = fpext float %293 to double
  %295 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 1
  %296 = getelementptr inbounds %struct.ImVec2, ptr %295, i32 0, i32 0
  %297 = load float, ptr %296, align 4, !tbaa !126
  %298 = fpext float %297 to double
  %299 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 1
  %300 = getelementptr inbounds %struct.ImVec2, ptr %299, i32 0, i32 1
  %301 = load float, ptr %300, align 4, !tbaa !127
  %302 = fpext float %301 to double
  %303 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %304 = fpext float %303 to double
  %305 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %306 = fpext float %305 to double
  %307 = load i32, ptr %10, align 4, !tbaa !123
  %308 = sext i32 %307 to i64
  %309 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 %308
  %310 = load ptr, ptr %309, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.430, double noundef %290, double noundef %294, double noundef %298, double noundef %302, double noundef %304, double noundef %306, ptr noundef %310)
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #9
  br label %311

311:                                              ; preds = %277
  %312 = load i32, ptr %10, align 4, !tbaa !123
  %313 = add nsw i32 %312, 1
  store i32 %313, ptr %10, align 4, !tbaa !123
  br label %273, !llvm.loop !128

314:                                              ; preds = %276
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %315

315:                                              ; preds = %314, %262, %226
  %316 = load ptr, ptr %5, align 8, !tbaa !5
  %317 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %316, i32 0, i32 4
  %318 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.431, ptr noundef %317)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %319 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %320 = fmul float %319, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %320)
  %321 = load ptr, ptr %5, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %321, i32 0, i32 10
  %323 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 0
  %324 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.432, ptr noundef %322, ptr noundef %323, i32 noundef 13, i32 noundef 13)
  %325 = zext i1 %324 to i32
  %326 = load ptr, ptr %5, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %326, i32 0, i32 4
  %328 = load i8, ptr %327, align 4, !tbaa !130, !range !13, !noundef !14
  %329 = trunc i8 %328 to i1
  %330 = zext i1 %329 to i32
  %331 = or i32 %330, %325
  %332 = icmp ne i32 %331, 0
  %333 = zext i1 %332 to i8
  store i8 %333, ptr %327, align 4, !tbaa !130
  %334 = load ptr, ptr %5, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %334, i32 0, i32 4
  %336 = load i8, ptr %335, align 4, !tbaa !130, !range !13, !noundef !14
  %337 = trunc i8 %336 to i1
  br i1 %337, label %338, label %536

338:                                              ; preds = %315
  %339 = load ptr, ptr %3, align 8, !tbaa !5
  %340 = getelementptr inbounds %struct.ImGuiContext, ptr %339, i32 0, i32 107
  %341 = load ptr, ptr %340, align 8, !tbaa !121
  %342 = icmp ne ptr %341, null
  br i1 %342, label %343, label %536

343:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  store i32 0, ptr %12, align 4, !tbaa !123
  br label %344

344:                                              ; preds = %532, %343
  %345 = load i32, ptr %12, align 4, !tbaa !123
  %346 = load ptr, ptr %3, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.ImGuiContext, ptr %346, i32 0, i32 187
  %348 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %347)
  %349 = icmp slt i32 %345, %348
  br i1 %349, label %351, label %350

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

351:                                              ; preds = %344
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %352 = load ptr, ptr %3, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.ImGuiContext, ptr %352, i32 0, i32 187
  %354 = load i32, ptr %12, align 4, !tbaa !123
  %355 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %353, i32 noundef %354)
  store ptr %355, ptr %13, align 8, !tbaa !5
  %356 = load ptr, ptr %13, align 8, !tbaa !5
  %357 = icmp eq ptr %356, null
  br i1 %357, label %383, label %358

358:                                              ; preds = %351
  %359 = load ptr, ptr %13, align 8, !tbaa !5
  %360 = getelementptr inbounds %struct.ImGuiTable, ptr %359, i32 0, i32 12
  %361 = load i32, ptr %360, align 8, !tbaa !131
  %362 = load ptr, ptr %3, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.ImGuiContext, ptr %362, i32 0, i32 12
  %364 = load i32, ptr %363, align 8, !tbaa !142
  %365 = sub nsw i32 %364, 1
  %366 = icmp slt i32 %361, %365
  br i1 %366, label %383, label %367

367:                                              ; preds = %358
  %368 = load ptr, ptr %13, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.ImGuiTable, ptr %368, i32 0, i32 55
  %370 = load ptr, ptr %369, align 8, !tbaa !143
  %371 = load ptr, ptr %3, align 8, !tbaa !5
  %372 = getelementptr inbounds %struct.ImGuiContext, ptr %371, i32 0, i32 107
  %373 = load ptr, ptr %372, align 8, !tbaa !121
  %374 = icmp ne ptr %370, %373
  br i1 %374, label %375, label %384

375:                                              ; preds = %367
  %376 = load ptr, ptr %13, align 8, !tbaa !5
  %377 = getelementptr inbounds %struct.ImGuiTable, ptr %376, i32 0, i32 56
  %378 = load ptr, ptr %377, align 8, !tbaa !144
  %379 = load ptr, ptr %3, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.ImGuiContext, ptr %379, i32 0, i32 107
  %381 = load ptr, ptr %380, align 8, !tbaa !121
  %382 = icmp ne ptr %378, %381
  br i1 %382, label %383, label %384

383:                                              ; preds = %375, %358, %351
  store i32 7, ptr %6, align 4
  br label %529

384:                                              ; preds = %375, %367
  %385 = load ptr, ptr %13, align 8, !tbaa !5
  %386 = getelementptr inbounds %struct.ImGuiTable, ptr %385, i32 0, i32 0
  %387 = load i32, ptr %386, align 8, !tbaa !145
  %388 = load ptr, ptr %13, align 8, !tbaa !5
  %389 = getelementptr inbounds %struct.ImGuiTable, ptr %388, i32 0, i32 13
  %390 = load i32, ptr %389, align 4, !tbaa !146
  %391 = load ptr, ptr %13, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.ImGuiTable, ptr %391, i32 0, i32 55
  %393 = load ptr, ptr %392, align 8, !tbaa !143
  %394 = getelementptr inbounds %struct.ImGuiWindow, ptr %393, i32 0, i32 1
  %395 = load ptr, ptr %394, align 8, !tbaa !122
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.433, i32 noundef %387, i32 noundef %390, ptr noundef %395)
  %396 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %396, label %397, label %407

397:                                              ; preds = %384
  %398 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %399 = load ptr, ptr %13, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.ImGuiTable, ptr %399, i32 0, i32 46
  %401 = getelementptr inbounds %struct.ImRect, ptr %400, 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)
  %402 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %401, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %402, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %403 = load ptr, ptr %13, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.ImGuiTable, ptr %403, i32 0, i32 46
  %405 = getelementptr inbounds %struct.ImRect, ptr %404, 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)
  %406 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %405, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %406, ptr %16, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %398, 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 %407

407:                                              ; preds = %397, %384
  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 !123
  br label %408

408:                                              ; preds = %525, %407
  %409 = load i32, ptr %19, align 4, !tbaa !123
  %410 = icmp slt i32 %409, 13
  br i1 %410, label %412, label %411

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

412:                                              ; preds = %408
  %413 = load i32, ptr %19, align 4, !tbaa !123
  %414 = icmp sge i32 %413, 6
  br i1 %414, label %415, label %480

415:                                              ; preds = %412
  %416 = load i32, ptr %19, align 4, !tbaa !123
  %417 = icmp ne i32 %416, 6
  br i1 %417, label %418, label %422

418:                                              ; preds = %415
  %419 = load i32, ptr %19, align 4, !tbaa !123
  %420 = icmp ne i32 %419, 8
  br i1 %420, label %421, label %422

421:                                              ; preds = %418
  br label %525

422:                                              ; preds = %418, %415
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store i32 0, ptr %20, align 4, !tbaa !123
  br label %423

423:                                              ; preds = %476, %422
  %424 = load i32, ptr %20, align 4, !tbaa !123
  %425 = load ptr, ptr %13, align 8, !tbaa !5
  %426 = getelementptr inbounds %struct.ImGuiTable, ptr %425, i32 0, i32 13
  %427 = load i32, ptr %426, align 4, !tbaa !146
  %428 = icmp slt i32 %424, %427
  br i1 %428, label %430, label %429

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

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

469:                                              ; preds = %430
  %470 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %471 = 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)
  %472 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %471, ptr noundef nonnull align 4 dereferenceable(8) %24)
  store <2 x float> %472, ptr %23, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %473 = 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)
  %474 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %473, ptr noundef nonnull align 4 dereferenceable(8) %26)
  store <2 x float> %474, ptr %25, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %470, 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 %475

475:                                              ; preds = %469, %430
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #9
  br label %476

476:                                              ; preds = %475
  %477 = load i32, ptr %20, align 4, !tbaa !123
  %478 = add nsw i32 %477, 1
  store i32 %478, ptr %20, align 4, !tbaa !123
  br label %423, !llvm.loop !147

479:                                              ; preds = %429
  br label %524

480:                                              ; preds = %412
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #9
  %481 = load ptr, ptr %13, align 8, !tbaa !5
  %482 = load i32, ptr %19, align 4, !tbaa !123
  %483 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %481, i32 noundef %482, i32 noundef -1)
  %484 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 0
  %485 = extractvalue { <2 x float>, <2 x float> } %483, 0
  store <2 x float> %485, ptr %484, align 4
  %486 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 1
  %487 = extractvalue { <2 x float>, <2 x float> } %483, 1
  store <2 x float> %487, ptr %486, align 4
  %488 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %489 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %490 = getelementptr inbounds %struct.ImVec2, ptr %489, i32 0, i32 0
  %491 = load float, ptr %490, align 4, !tbaa !124
  %492 = fpext float %491 to double
  %493 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %494 = getelementptr inbounds %struct.ImVec2, ptr %493, i32 0, i32 1
  %495 = load float, ptr %494, align 4, !tbaa !125
  %496 = fpext float %495 to double
  %497 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %498 = getelementptr inbounds %struct.ImVec2, ptr %497, i32 0, i32 0
  %499 = load float, ptr %498, align 4, !tbaa !126
  %500 = fpext float %499 to double
  %501 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %502 = getelementptr inbounds %struct.ImVec2, ptr %501, i32 0, i32 1
  %503 = load float, ptr %502, align 4, !tbaa !127
  %504 = fpext float %503 to double
  %505 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %506 = fpext float %505 to double
  %507 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %508 = fpext float %507 to double
  %509 = load i32, ptr %19, align 4, !tbaa !123
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 %510
  %512 = load ptr, ptr %511, align 8, !tbaa !5
  %513 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %488, i64 noundef 128, ptr noundef @.str.430, double noundef %492, double noundef %496, double noundef %500, double noundef %504, double noundef %506, double noundef %508, ptr noundef %512)
  %514 = 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)
  %515 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %514, 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
  %516 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %516, label %517, label %523

517:                                              ; preds = %480
  %518 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %519 = 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)
  %520 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %519, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %520, ptr %29, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %521 = 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)
  %522 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %521, ptr noundef nonnull align 4 dereferenceable(8) %32)
  store <2 x float> %522, ptr %31, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %518, 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 %523

523:                                              ; preds = %517, %480
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #9
  br label %524

524:                                              ; preds = %523, %479
  br label %525

525:                                              ; preds = %524, %421
  %526 = load i32, ptr %19, align 4, !tbaa !123
  %527 = add nsw i32 %526, 1
  store i32 %527, ptr %19, align 4, !tbaa !123
  br label %408, !llvm.loop !148

528:                                              ; preds = %411
  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 %529

529:                                              ; preds = %528, %383
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  %530 = load i32, ptr %6, align 4
  switch i32 %530, label %1990 [
    i32 0, label %531
    i32 7, label %532
  ]

531:                                              ; preds = %529
  br label %532

532:                                              ; preds = %531, %529
  %533 = load i32, ptr %12, align 4, !tbaa !123
  %534 = add nsw i32 %533, 1
  store i32 %534, ptr %12, align 4, !tbaa !123
  br label %344, !llvm.loop !149

535:                                              ; preds = %350
  br label %536

536:                                              ; preds = %535, %338, %315
  %537 = load ptr, ptr %3, align 8, !tbaa !5
  %538 = getelementptr inbounds %struct.ImGuiContext, ptr %537, i32 0, i32 90
  %539 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.435, ptr noundef %538)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.436)
  %540 = load ptr, ptr %4, align 8, !tbaa !5
  %541 = getelementptr inbounds %struct.ImGuiIO, ptr %540, i32 0, i32 43
  %542 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.437, ptr noundef %541)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.438)
  %543 = load ptr, ptr %5, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %543, i32 0, i32 7
  %545 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.439, ptr noundef %544)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.440)
  %546 = load ptr, ptr %5, align 8, !tbaa !5
  %547 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %546, i32 0, i32 7
  %548 = load i8, ptr %547, align 1, !tbaa !150, !range !13, !noundef !14
  %549 = trunc i8 %548 to i1
  br i1 %549, label %550, label %557

550:                                              ; preds = %536
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %551 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.441, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 64, i32 noundef 0, ptr noundef null, ptr noundef null)
  %552 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !47
  %553 = sext i8 %552 to i32
  %554 = icmp ne i32 %553, 0
  br i1 %554, label %555, label %556

555:                                              ; preds = %550
  call void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf)
  br label %556

556:                                              ; preds = %555, %550
  br label %557

557:                                              ; preds = %556, %536
  call void @_ZN5ImGui7TreePopEv()
  br label %558

558:                                              ; preds = %557, %205
  %559 = load ptr, ptr %3, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.ImGuiContext, ptr %559, i32 0, i32 26
  %561 = getelementptr inbounds %struct.ImVector.2, ptr %560, i32 0, i32 0
  %562 = load i32, ptr %561, align 8, !tbaa !151
  %563 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.442, ptr noundef @.str.443, i32 noundef %562)
  br i1 %563, label %564, label %617

564:                                              ; preds = %558
  %565 = load ptr, ptr %3, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.ImGuiContext, ptr %565, i32 0, i32 26
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %566, ptr noundef @.str.444)
  %567 = load ptr, ptr %3, align 8, !tbaa !5
  %568 = getelementptr inbounds %struct.ImGuiContext, ptr %567, i32 0, i32 27
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %568, ptr noundef @.str.445)
  %569 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.446)
  br i1 %569, label %570, label %616

570:                                              ; preds = %564
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %571 = load ptr, ptr %3, align 8, !tbaa !5
  %572 = getelementptr inbounds %struct.ImGuiContext, ptr %571, i32 0, i32 28
  store ptr %572, ptr %33, align 8, !tbaa !5
  %573 = load ptr, ptr %33, align 8, !tbaa !5
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %573, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  %574 = load ptr, ptr %3, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.ImGuiContext, ptr %574, i32 0, i32 26
  store ptr %575, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #9
  %576 = load ptr, ptr %34, align 8, !tbaa !5
  %577 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %576)
  store ptr %577, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  %578 = load ptr, ptr %34, align 8, !tbaa !5
  %579 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %578)
  store ptr %579, ptr %36, align 8, !tbaa !5
  br label %580

580:                                              ; preds = %599, %570
  %581 = load ptr, ptr %35, align 8, !tbaa !5
  %582 = load ptr, ptr %36, align 8, !tbaa !5
  %583 = icmp ne ptr %581, %582
  br i1 %583, label %585, label %584

584:                                              ; preds = %580
  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 %602

585:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  %586 = load ptr, ptr %35, align 8, !tbaa !5
  %587 = load ptr, ptr %586, align 8, !tbaa !5
  store ptr %587, ptr %37, align 8, !tbaa !5
  %588 = load ptr, ptr %37, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.ImGuiWindow, ptr %588, i32 0, i32 79
  %590 = load i32, ptr %589, align 8, !tbaa !152
  %591 = add nsw i32 %590, 1
  %592 = load ptr, ptr %3, align 8, !tbaa !5
  %593 = getelementptr inbounds %struct.ImGuiContext, ptr %592, i32 0, i32 12
  %594 = load i32, ptr %593, align 8, !tbaa !142
  %595 = icmp sge i32 %591, %594
  br i1 %595, label %596, label %598

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

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

599:                                              ; preds = %598
  %600 = load ptr, ptr %35, align 8, !tbaa !5
  %601 = getelementptr inbounds ptr, ptr %600, i32 1
  store ptr %601, ptr %35, align 8, !tbaa !5
  br label %580

602:                                              ; preds = %584
  %603 = load ptr, ptr %33, align 8, !tbaa !5
  %604 = getelementptr inbounds %struct.ImVector.2, ptr %603, i32 0, i32 2
  %605 = load ptr, ptr %604, align 8, !tbaa !153
  %606 = load ptr, ptr %33, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.ImVector.2, ptr %606, i32 0, i32 0
  %608 = load i32, ptr %607, align 8, !tbaa !154
  %609 = sext i32 %608 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %605, i64 noundef %609, i64 noundef 8, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %610 = load ptr, ptr %33, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.ImVector.2, ptr %610, i32 0, i32 2
  %612 = load ptr, ptr %611, align 8, !tbaa !153
  %613 = load ptr, ptr %33, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.ImVector.2, ptr %613, i32 0, i32 0
  %615 = load i32, ptr %614, align 8, !tbaa !154
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %612, i32 noundef %615, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  br label %616

616:                                              ; preds = %602, %564
  call void @_ZN5ImGui7TreePopEv()
  br label %617

617:                                              ; preds = %616, %558
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  store i32 0, ptr %38, align 4, !tbaa !123
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #9
  %618 = load ptr, ptr %3, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct.ImGuiContext, ptr %618, i32 0, i32 101
  store ptr %619, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  %620 = load ptr, ptr %39, align 8, !tbaa !5
  %621 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %620)
  store ptr %621, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  %622 = load ptr, ptr %39, align 8, !tbaa !5
  %623 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %622)
  store ptr %623, ptr %41, align 8, !tbaa !5
  br label %624

624:                                              ; preds = %639, %617
  %625 = load ptr, ptr %40, align 8, !tbaa !5
  %626 = load ptr, ptr %41, align 8, !tbaa !5
  %627 = icmp ne ptr %625, %626
  br i1 %627, label %629, label %628

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

629:                                              ; preds = %624
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  %630 = load ptr, ptr %40, align 8, !tbaa !5
  %631 = load ptr, ptr %630, align 8, !tbaa !5
  store ptr %631, ptr %42, align 8, !tbaa !5
  %632 = load ptr, ptr %42, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.ImGuiViewportP, ptr %632, i32 0, i32 3
  %634 = getelementptr inbounds %struct.ImDrawData, ptr %633, i32 0, i32 4
  %635 = getelementptr inbounds %struct.ImVector.50, ptr %634, i32 0, i32 0
  %636 = load i32, ptr %635, align 8, !tbaa !155
  %637 = load i32, ptr %38, align 4, !tbaa !123
  %638 = add nsw i32 %637, %636
  store i32 %638, ptr %38, align 4, !tbaa !123
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  br label %639

639:                                              ; preds = %629
  %640 = load ptr, ptr %40, align 8, !tbaa !5
  %641 = getelementptr inbounds ptr, ptr %640, i32 1
  store ptr %641, ptr %40, align 8, !tbaa !5
  br label %624

642:                                              ; preds = %628
  %643 = load i32, ptr %38, align 4, !tbaa !123
  %644 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.447, ptr noundef @.str.448, i32 noundef %643)
  br i1 %644, label %645, label %691

645:                                              ; preds = %642
  %646 = load ptr, ptr %5, align 8, !tbaa !5
  %647 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %646, i32 0, i32 5
  %648 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.449, ptr noundef %647)
  %649 = load ptr, ptr %5, align 8, !tbaa !5
  %650 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %649, i32 0, i32 6
  %651 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.450, ptr noundef %650)
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  %652 = load ptr, ptr %3, align 8, !tbaa !5
  %653 = getelementptr inbounds %struct.ImGuiContext, ptr %652, i32 0, i32 101
  store ptr %653, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  %654 = load ptr, ptr %43, align 8, !tbaa !5
  %655 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %654)
  store ptr %655, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  %656 = load ptr, ptr %43, align 8, !tbaa !5
  %657 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %656)
  store ptr %657, ptr %45, align 8, !tbaa !5
  br label %658

658:                                              ; preds = %687, %645
  %659 = load ptr, ptr %44, align 8, !tbaa !5
  %660 = load ptr, ptr %45, align 8, !tbaa !5
  %661 = icmp ne ptr %659, %660
  br i1 %661, label %663, label %662

662:                                              ; preds = %658
  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 %690

663:                                              ; preds = %658
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #9
  %664 = load ptr, ptr %44, align 8, !tbaa !5
  %665 = load ptr, ptr %664, align 8, !tbaa !5
  store ptr %665, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  %666 = load ptr, ptr %46, align 8, !tbaa !5
  %667 = getelementptr inbounds %struct.ImGuiViewportP, ptr %666, i32 0, i32 3
  %668 = getelementptr inbounds %struct.ImDrawData, ptr %667, i32 0, i32 4
  store ptr %668, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  %669 = load ptr, ptr %47, align 8, !tbaa !5
  %670 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %669)
  store ptr %670, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %671 = load ptr, ptr %47, align 8, !tbaa !5
  %672 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %671)
  store ptr %672, ptr %49, align 8, !tbaa !5
  br label %673

673:                                              ; preds = %683, %663
  %674 = load ptr, ptr %48, align 8, !tbaa !5
  %675 = load ptr, ptr %49, align 8, !tbaa !5
  %676 = icmp ne ptr %674, %675
  br i1 %676, label %678, label %677

677:                                              ; preds = %673
  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 %686

678:                                              ; preds = %673
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %679 = load ptr, ptr %48, align 8, !tbaa !5
  %680 = load ptr, ptr %679, align 8, !tbaa !5
  store ptr %680, ptr %50, align 8, !tbaa !5
  %681 = load ptr, ptr %46, align 8, !tbaa !5
  %682 = load ptr, ptr %50, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef %681, ptr noundef %682, ptr noundef @.str.451)
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  br label %683

683:                                              ; preds = %678
  %684 = load ptr, ptr %48, align 8, !tbaa !5
  %685 = getelementptr inbounds ptr, ptr %684, i32 1
  store ptr %685, ptr %48, align 8, !tbaa !5
  br label %673

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

687:                                              ; preds = %686
  %688 = load ptr, ptr %44, align 8, !tbaa !5
  %689 = getelementptr inbounds ptr, ptr %688, i32 1
  store ptr %689, ptr %44, align 8, !tbaa !5
  br label %658

690:                                              ; preds = %662
  call void @_ZN5ImGui7TreePopEv()
  br label %691

691:                                              ; preds = %690, %642
  %692 = load ptr, ptr %3, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.ImGuiContext, ptr %692, i32 0, i32 101
  %694 = getelementptr inbounds %struct.ImVector.14, ptr %693, i32 0, i32 0
  %695 = load i32, ptr %694, align 8, !tbaa !161
  %696 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.452, ptr noundef @.str.453, i32 noundef %695)
  br i1 %696, label %697, label %722

697:                                              ; preds = %691
  call void @_ZN5ImGui15SetNextItemOpenEbi(i1 noundef zeroext true, i32 noundef 2)
  %698 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.454)
  br i1 %698, label %699, label %700

699:                                              ; preds = %697
  call void @_ZL25RenderViewportsThumbnailsv()
  call void @_ZN5ImGui7TreePopEv()
  br label %700

700:                                              ; preds = %699, %697
  %701 = load ptr, ptr %5, align 8, !tbaa !5
  %702 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %701, i32 0, i32 12
  store i32 0, ptr %702, align 4, !tbaa !162
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  %703 = load ptr, ptr %3, align 8, !tbaa !5
  %704 = getelementptr inbounds %struct.ImGuiContext, ptr %703, i32 0, i32 101
  store ptr %704, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  %705 = load ptr, ptr %51, align 8, !tbaa !5
  %706 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %705)
  store ptr %706, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %707 = load ptr, ptr %51, align 8, !tbaa !5
  %708 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %707)
  store ptr %708, ptr %53, align 8, !tbaa !5
  br label %709

709:                                              ; preds = %718, %700
  %710 = load ptr, ptr %52, align 8, !tbaa !5
  %711 = load ptr, ptr %53, align 8, !tbaa !5
  %712 = icmp ne ptr %710, %711
  br i1 %712, label %714, label %713

713:                                              ; preds = %709
  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 %721

714:                                              ; preds = %709
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  %715 = load ptr, ptr %52, align 8, !tbaa !5
  %716 = load ptr, ptr %715, align 8, !tbaa !5
  store ptr %716, ptr %54, align 8, !tbaa !5
  %717 = load ptr, ptr %54, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %717)
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  br label %718

718:                                              ; preds = %714
  %719 = load ptr, ptr %52, align 8, !tbaa !5
  %720 = getelementptr inbounds ptr, ptr %719, i32 1
  store ptr %720, ptr %52, align 8, !tbaa !5
  br label %709

721:                                              ; preds = %713
  call void @_ZN5ImGui7TreePopEv()
  br label %722

722:                                              ; preds = %721, %691
  %723 = load ptr, ptr %3, align 8, !tbaa !5
  %724 = getelementptr inbounds %struct.ImGuiContext, ptr %723, i32 0, i32 98
  %725 = getelementptr inbounds %struct.ImVector.12, ptr %724, i32 0, i32 0
  %726 = load i32, ptr %725, align 8, !tbaa !163
  %727 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.455, ptr noundef @.str.456, i32 noundef %726)
  br i1 %727, label %728, label %814

728:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  %729 = load ptr, ptr %3, align 8, !tbaa !5
  %730 = getelementptr inbounds %struct.ImGuiContext, ptr %729, i32 0, i32 98
  store ptr %730, ptr %55, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %731 = load ptr, ptr %55, align 8, !tbaa !5
  %732 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %731)
  store ptr %732, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #9
  %733 = load ptr, ptr %55, align 8, !tbaa !5
  %734 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %733)
  store ptr %734, ptr %57, align 8, !tbaa !5
  br label %735

735:                                              ; preds = %810, %728
  %736 = load ptr, ptr %56, align 8, !tbaa !5
  %737 = load ptr, ptr %57, align 8, !tbaa !5
  %738 = icmp ne ptr %736, %737
  br i1 %738, label %740, label %739

739:                                              ; preds = %735
  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 %813

740:                                              ; preds = %735
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #9
  %741 = load ptr, ptr %56, align 8, !tbaa !5
  store ptr %741, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #9
  %742 = load ptr, ptr %58, align 8, !tbaa !5
  %743 = getelementptr inbounds %struct.ImGuiPopupData, ptr %742, i32 0, i32 2
  %744 = load ptr, ptr %743, align 8, !tbaa !164
  store ptr %744, ptr %59, align 8, !tbaa !5
  %745 = load ptr, ptr %58, align 8, !tbaa !5
  %746 = getelementptr inbounds %struct.ImGuiPopupData, ptr %745, i32 0, i32 0
  %747 = load i32, ptr %746, align 8, !tbaa !166
  %748 = load ptr, ptr %59, align 8, !tbaa !5
  %749 = icmp ne ptr %748, null
  br i1 %749, label %750, label %754

750:                                              ; preds = %740
  %751 = load ptr, ptr %59, align 8, !tbaa !5
  %752 = getelementptr inbounds %struct.ImGuiWindow, ptr %751, i32 0, i32 1
  %753 = load ptr, ptr %752, align 8, !tbaa !122
  br label %755

754:                                              ; preds = %740
  br label %755

755:                                              ; preds = %754, %750
  %756 = phi ptr [ %753, %750 ], [ @.str.263, %754 ]
  %757 = load ptr, ptr %59, align 8, !tbaa !5
  %758 = icmp ne ptr %757, null
  br i1 %758, label %759, label %765

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

765:                                              ; preds = %759, %755
  %766 = phi i1 [ false, %755 ], [ %764, %759 ]
  %767 = zext i1 %766 to i64
  %768 = select i1 %766, ptr @.str.458, ptr @.str.14
  %769 = load ptr, ptr %59, align 8, !tbaa !5
  %770 = icmp ne ptr %769, null
  br i1 %770, label %771, label %777

771:                                              ; preds = %765
  %772 = load ptr, ptr %59, align 8, !tbaa !5
  %773 = getelementptr inbounds %struct.ImGuiWindow, ptr %772, i32 0, i32 3
  %774 = load i32, ptr %773, align 4, !tbaa !167
  %775 = and i32 %774, 268435456
  %776 = icmp ne i32 %775, 0
  br label %777

777:                                              ; preds = %771, %765
  %778 = phi i1 [ false, %765 ], [ %776, %771 ]
  %779 = zext i1 %778 to i64
  %780 = select i1 %778, ptr @.str.459, ptr @.str.14
  %781 = load ptr, ptr %58, align 8, !tbaa !5
  %782 = getelementptr inbounds %struct.ImGuiPopupData, ptr %781, i32 0, i32 3
  %783 = load ptr, ptr %782, align 8, !tbaa !168
  %784 = icmp ne ptr %783, null
  br i1 %784, label %785, label %791

785:                                              ; preds = %777
  %786 = load ptr, ptr %58, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.ImGuiPopupData, ptr %786, i32 0, i32 3
  %788 = load ptr, ptr %787, align 8, !tbaa !168
  %789 = getelementptr inbounds %struct.ImGuiWindow, ptr %788, i32 0, i32 1
  %790 = load ptr, ptr %789, align 8, !tbaa !122
  br label %792

791:                                              ; preds = %777
  br label %792

792:                                              ; preds = %791, %785
  %793 = phi ptr [ %790, %785 ], [ @.str.263, %791 ]
  %794 = load ptr, ptr %59, align 8, !tbaa !5
  %795 = icmp ne ptr %794, null
  br i1 %795, label %796, label %807

796:                                              ; preds = %792
  %797 = load ptr, ptr %59, align 8, !tbaa !5
  %798 = getelementptr inbounds %struct.ImGuiWindow, ptr %797, i32 0, i32 89
  %799 = load ptr, ptr %798, align 8, !tbaa !169
  %800 = icmp ne ptr %799, null
  br i1 %800, label %801, label %807

801:                                              ; preds = %796
  %802 = load ptr, ptr %59, align 8, !tbaa !5
  %803 = getelementptr inbounds %struct.ImGuiWindow, ptr %802, i32 0, i32 89
  %804 = load ptr, ptr %803, align 8, !tbaa !169
  %805 = getelementptr inbounds %struct.ImGuiWindow, ptr %804, i32 0, i32 1
  %806 = load ptr, ptr %805, align 8, !tbaa !122
  br label %808

807:                                              ; preds = %796, %792
  br label %808

808:                                              ; preds = %807, %801
  %809 = phi ptr [ %806, %801 ], [ @.str.263, %807 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.457, i32 noundef %747, ptr noundef %756, ptr noundef %768, ptr noundef %780, ptr noundef %793, ptr noundef %809)
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  br label %810

810:                                              ; preds = %808
  %811 = load ptr, ptr %56, align 8, !tbaa !5
  %812 = getelementptr inbounds %struct.ImGuiPopupData, ptr %811, i32 1
  store ptr %812, ptr %56, align 8, !tbaa !5
  br label %735

813:                                              ; preds = %739
  call void @_ZN5ImGui7TreePopEv()
  br label %814

814:                                              ; preds = %813, %722
  %815 = load ptr, ptr %3, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.ImGuiContext, ptr %815, i32 0, i32 191
  %817 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %816)
  %818 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.460, ptr noundef @.str.461, i32 noundef %817)
  br i1 %818, label %819, label %842

819:                                              ; preds = %814
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  store i32 0, ptr %60, align 4, !tbaa !123
  br label %820

820:                                              ; preds = %838, %819
  %821 = load i32, ptr %60, align 4, !tbaa !123
  %822 = load ptr, ptr %3, align 8, !tbaa !5
  %823 = getelementptr inbounds %struct.ImGuiContext, ptr %822, i32 0, i32 191
  %824 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %823)
  %825 = icmp slt i32 %821, %824
  br i1 %825, label %827, label %826

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

827:                                              ; preds = %820
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #9
  %828 = load ptr, ptr %3, align 8, !tbaa !5
  %829 = getelementptr inbounds %struct.ImGuiContext, ptr %828, i32 0, i32 191
  %830 = load i32, ptr %60, align 4, !tbaa !123
  %831 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %829, i32 noundef %830)
  store ptr %831, ptr %61, align 8, !tbaa !5
  %832 = load ptr, ptr %61, align 8, !tbaa !5
  %833 = icmp ne ptr %832, null
  br i1 %833, label %834, label %837

834:                                              ; preds = %827
  %835 = load ptr, ptr %61, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef %835)
  %836 = load ptr, ptr %61, align 8, !tbaa !5
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef %836, ptr noundef @.str.462)
  call void @_ZN5ImGui5PopIDEv()
  br label %837

837:                                              ; preds = %834, %827
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  br label %838

838:                                              ; preds = %837
  %839 = load i32, ptr %60, align 4, !tbaa !123
  %840 = add nsw i32 %839, 1
  store i32 %840, ptr %60, align 4, !tbaa !123
  br label %820, !llvm.loop !170

841:                                              ; preds = %826
  call void @_ZN5ImGui7TreePopEv()
  br label %842

842:                                              ; preds = %841, %814
  %843 = load ptr, ptr %3, align 8, !tbaa !5
  %844 = getelementptr inbounds %struct.ImGuiContext, ptr %843, i32 0, i32 187
  %845 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %844)
  %846 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.463, ptr noundef @.str.464, i32 noundef %845)
  br i1 %846, label %847, label %869

847:                                              ; preds = %842
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  store i32 0, ptr %62, align 4, !tbaa !123
  br label %848

848:                                              ; preds = %865, %847
  %849 = load i32, ptr %62, align 4, !tbaa !123
  %850 = load ptr, ptr %3, align 8, !tbaa !5
  %851 = getelementptr inbounds %struct.ImGuiContext, ptr %850, i32 0, i32 187
  %852 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %851)
  %853 = icmp slt i32 %849, %852
  br i1 %853, label %855, label %854

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

855:                                              ; preds = %848
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  %856 = load ptr, ptr %3, align 8, !tbaa !5
  %857 = getelementptr inbounds %struct.ImGuiContext, ptr %856, i32 0, i32 187
  %858 = load i32, ptr %62, align 4, !tbaa !123
  %859 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %857, i32 noundef %858)
  store ptr %859, ptr %63, align 8, !tbaa !5
  %860 = load ptr, ptr %63, align 8, !tbaa !5
  %861 = icmp ne ptr %860, null
  br i1 %861, label %862, label %864

862:                                              ; preds = %855
  %863 = load ptr, ptr %63, align 8, !tbaa !5
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef %863)
  br label %864

864:                                              ; preds = %862, %855
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  br label %865

865:                                              ; preds = %864
  %866 = load i32, ptr %62, align 4, !tbaa !123
  %867 = add nsw i32 %866, 1
  store i32 %867, ptr %62, align 4, !tbaa !123
  br label %848, !llvm.loop !171

868:                                              ; preds = %854
  call void @_ZN5ImGui7TreePopEv()
  br label %869

869:                                              ; preds = %868, %842
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  %870 = load ptr, ptr %3, align 8, !tbaa !5
  %871 = getelementptr inbounds %struct.ImGuiContext, ptr %870, i32 0, i32 2
  %872 = getelementptr inbounds %struct.ImGuiIO, ptr %871, i32 0, i32 8
  %873 = load ptr, ptr %872, align 8, !tbaa !172
  store ptr %873, ptr %64, align 8, !tbaa !5
  %874 = load ptr, ptr %64, align 8, !tbaa !5
  %875 = getelementptr inbounds %struct.ImFontAtlas, ptr %874, i32 0, i32 17
  %876 = getelementptr inbounds %struct.ImVector.8, ptr %875, i32 0, i32 0
  %877 = load i32, ptr %876, align 8, !tbaa !173
  %878 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.465, ptr noundef @.str.466, i32 noundef %877)
  br i1 %878, label %879, label %881

879:                                              ; preds = %869
  %880 = load ptr, ptr %64, align 8, !tbaa !5
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef %880)
  call void @_ZN5ImGui7TreePopEv()
  br label %881

881:                                              ; preds = %879, %869
  %882 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.467)
  br i1 %882, label %883, label %886

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

886:                                              ; preds = %883, %881
  %887 = load ptr, ptr %3, align 8, !tbaa !5
  %888 = getelementptr inbounds %struct.ImGuiContext, ptr %887, i32 0, i32 239
  %889 = getelementptr inbounds %struct.ImGuiTypingSelectState, ptr %888, i32 0, i32 1
  %890 = getelementptr inbounds [64 x i8], ptr %889, i64 0, i64 0
  %891 = load i8, ptr %890, align 8, !tbaa !47
  %892 = sext i8 %891 to i32
  %893 = icmp ne i32 %892, 0
  %894 = zext i1 %893 to i64
  %895 = select i1 %893, i32 1, i32 0
  %896 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.468, ptr noundef @.str.469, i32 noundef %895)
  br i1 %896, label %897, label %900

897:                                              ; preds = %886
  %898 = load ptr, ptr %3, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.ImGuiContext, ptr %898, i32 0, i32 239
  call void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef %899)
  call void @_ZN5ImGui7TreePopEv()
  br label %900

900:                                              ; preds = %897, %886
  %901 = load ptr, ptr %3, align 8, !tbaa !5
  %902 = getelementptr inbounds %struct.ImGuiContext, ptr %901, i32 0, i32 198
  %903 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %902)
  %904 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.470, ptr noundef @.str.471, i32 noundef %903)
  br i1 %904, label %905, label %942

905:                                              ; preds = %900
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %906 = load ptr, ptr %3, align 8, !tbaa !5
  %907 = getelementptr inbounds %struct.ImGuiContext, ptr %906, i32 0, i32 194
  store ptr %907, ptr %65, align 8, !tbaa !5
  %908 = load ptr, ptr %65, align 8, !tbaa !5
  %909 = getelementptr inbounds %struct.ImGuiBoxSelectState, ptr %908, i32 0, i32 0
  %910 = load i32, ptr %909, align 8, !tbaa !177
  %911 = load ptr, ptr %65, align 8, !tbaa !5
  %912 = getelementptr inbounds %struct.ImGuiBoxSelectState, ptr %911, i32 0, i32 2
  %913 = load i8, ptr %912, align 1, !tbaa !178, !range !13, !noundef !14
  %914 = trunc i8 %913 to i1
  %915 = zext i1 %914 to i32
  %916 = load ptr, ptr %65, align 8, !tbaa !5
  %917 = getelementptr inbounds %struct.ImGuiBoxSelectState, ptr %916, i32 0, i32 1
  %918 = load i8, ptr %917, align 4, !tbaa !179, !range !13, !noundef !14
  %919 = trunc i8 %918 to i1
  %920 = zext i1 %919 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.472, i32 noundef %910, i32 noundef %915, i32 noundef %920)
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  store i32 0, ptr %66, align 4, !tbaa !123
  br label %921

921:                                              ; preds = %938, %905
  %922 = load i32, ptr %66, align 4, !tbaa !123
  %923 = load ptr, ptr %3, align 8, !tbaa !5
  %924 = getelementptr inbounds %struct.ImGuiContext, ptr %923, i32 0, i32 198
  %925 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %924)
  %926 = icmp slt i32 %922, %925
  br i1 %926, label %928, label %927

927:                                              ; preds = %921
  store i32 32, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %941

928:                                              ; preds = %921
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #9
  %929 = load ptr, ptr %3, align 8, !tbaa !5
  %930 = getelementptr inbounds %struct.ImGuiContext, ptr %929, i32 0, i32 198
  %931 = load i32, ptr %66, align 4, !tbaa !123
  %932 = call noundef ptr @_ZN6ImPoolI21ImGuiMultiSelectStateE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %930, i32 noundef %931)
  store ptr %932, ptr %67, align 8, !tbaa !5
  %933 = load ptr, ptr %67, align 8, !tbaa !5
  %934 = icmp ne ptr %933, null
  br i1 %934, label %935, label %937

935:                                              ; preds = %928
  %936 = load ptr, ptr %67, align 8, !tbaa !5
  call void @_ZN5ImGui25DebugNodeMultiSelectStateEP21ImGuiMultiSelectState(ptr noundef %936)
  br label %937

937:                                              ; preds = %935, %928
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  br label %938

938:                                              ; preds = %937
  %939 = load i32, ptr %66, align 4, !tbaa !123
  %940 = add nsw i32 %939, 1
  store i32 %940, ptr %66, align 4, !tbaa !123
  br label %921, !llvm.loop !180

941:                                              ; preds = %927
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  br label %942

942:                                              ; preds = %941, %900
  %943 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.473)
  br i1 %943, label %944, label %1065

944:                                              ; preds = %942
  %945 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.474)
  br i1 %945, label %946, label %947

946:                                              ; preds = %944
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %947

947:                                              ; preds = %946, %944
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %948 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.475)
  br i1 %948, label %949, label %951

949:                                              ; preds = %947
  %950 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %951

951:                                              ; preds = %949, %947
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %952 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.476)
  br i1 %952, label %953, label %958

953:                                              ; preds = %951
  %954 = load ptr, ptr %3, align 8, !tbaa !5
  %955 = getelementptr inbounds %struct.ImGuiContext, ptr %954, i32 0, i32 2
  %956 = getelementptr inbounds %struct.ImGuiIO, ptr %955, i32 0, i32 5
  %957 = load ptr, ptr %956, align 8, !tbaa !181
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %957)
  br label %958

958:                                              ; preds = %953, %951
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %959 = load ptr, ptr %3, align 8, !tbaa !5
  %960 = getelementptr inbounds %struct.ImGuiContext, ptr %959, i32 0, i32 2
  %961 = getelementptr inbounds %struct.ImGuiIO, ptr %960, i32 0, i32 5
  %962 = load ptr, ptr %961, align 8, !tbaa !181
  %963 = icmp ne ptr %962, null
  br i1 %963, label %964, label %969

964:                                              ; preds = %958
  %965 = load ptr, ptr %3, align 8, !tbaa !5
  %966 = getelementptr inbounds %struct.ImGuiContext, ptr %965, i32 0, i32 2
  %967 = getelementptr inbounds %struct.ImGuiIO, ptr %966, i32 0, i32 5
  %968 = load ptr, ptr %967, align 8, !tbaa !181
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.477, ptr noundef %968)
  br label %970

969:                                              ; preds = %958
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef @.str.300, ptr noundef null)
  br label %970

970:                                              ; preds = %969, %964
  %971 = load ptr, ptr %4, align 8, !tbaa !5
  %972 = getelementptr inbounds %struct.ImGuiIO, ptr %971, i32 0, i32 45
  %973 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.478, ptr noundef %972)
  %974 = load ptr, ptr %3, align 8, !tbaa !5
  %975 = getelementptr inbounds %struct.ImGuiContext, ptr %974, i32 0, i32 243
  %976 = load float, ptr %975, align 4, !tbaa !182
  %977 = fpext float %976 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.479, double noundef %977)
  %978 = load ptr, ptr %3, align 8, !tbaa !5
  %979 = getelementptr inbounds %struct.ImGuiContext, ptr %978, i32 0, i32 245
  %980 = getelementptr inbounds %struct.ImVector.31, ptr %979, i32 0, i32 0
  %981 = load i32, ptr %980, align 8, !tbaa !183
  %982 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.480, ptr noundef @.str.481, i32 noundef %981)
  br i1 %982, label %983, label %1004

983:                                              ; preds = %970
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #9
  %984 = load ptr, ptr %3, align 8, !tbaa !5
  %985 = getelementptr inbounds %struct.ImGuiContext, ptr %984, i32 0, i32 245
  store ptr %985, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #9
  %986 = load ptr, ptr %68, align 8, !tbaa !5
  %987 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %986)
  store ptr %987, ptr %69, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #9
  %988 = load ptr, ptr %68, align 8, !tbaa !5
  %989 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %988)
  store ptr %989, ptr %70, align 8, !tbaa !5
  br label %990

990:                                              ; preds = %1000, %983
  %991 = load ptr, ptr %69, align 8, !tbaa !5
  %992 = load ptr, ptr %70, align 8, !tbaa !5
  %993 = icmp ne ptr %991, %992
  br i1 %993, label %995, label %994

994:                                              ; preds = %990
  store i32 35, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  br label %1003

995:                                              ; preds = %990
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  %996 = load ptr, ptr %69, align 8, !tbaa !5
  store ptr %996, ptr %71, align 8, !tbaa !5
  %997 = load ptr, ptr %71, align 8, !tbaa !5
  %998 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %997, i32 0, i32 0
  %999 = load ptr, ptr %998, align 8, !tbaa !184
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.477, ptr noundef %999)
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  br label %1000

1000:                                             ; preds = %995
  %1001 = load ptr, ptr %69, align 8, !tbaa !5
  %1002 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %1001, i32 1
  store ptr %1002, ptr %69, align 8, !tbaa !5
  br label %990

1003:                                             ; preds = %994
  call void @_ZN5ImGui7TreePopEv()
  br label %1004

1004:                                             ; preds = %1003, %970
  %1005 = load ptr, ptr %3, align 8, !tbaa !5
  %1006 = getelementptr inbounds %struct.ImGuiContext, ptr %1005, i32 0, i32 246
  %1007 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1006)
  %1008 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.482, ptr noundef @.str.483, i32 noundef %1007)
  br i1 %1008, label %1009, label %1025

1009:                                             ; preds = %1004
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #9
  %1010 = load ptr, ptr %3, align 8, !tbaa !5
  %1011 = getelementptr inbounds %struct.ImGuiContext, ptr %1010, i32 0, i32 246
  %1012 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1011)
  store ptr %1012, ptr %72, align 8, !tbaa !5
  br label %1013

1013:                                             ; preds = %1019, %1009
  %1014 = load ptr, ptr %72, align 8, !tbaa !5
  %1015 = icmp ne ptr %1014, null
  br i1 %1015, label %1017, label %1016

1016:                                             ; preds = %1013
  store i32 37, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #9
  br label %1024

1017:                                             ; preds = %1013
  %1018 = load ptr, ptr %72, align 8, !tbaa !5
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef %1018)
  br label %1019

1019:                                             ; preds = %1017
  %1020 = load ptr, ptr %3, align 8, !tbaa !5
  %1021 = getelementptr inbounds %struct.ImGuiContext, ptr %1020, i32 0, i32 246
  %1022 = load ptr, ptr %72, align 8, !tbaa !5
  %1023 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %1021, ptr noundef %1022)
  store ptr %1023, ptr %72, align 8, !tbaa !5
  br label %1013, !llvm.loop !186

1024:                                             ; preds = %1016
  call void @_ZN5ImGui7TreePopEv()
  br label %1025

1025:                                             ; preds = %1024, %1004
  %1026 = load ptr, ptr %3, align 8, !tbaa !5
  %1027 = getelementptr inbounds %struct.ImGuiContext, ptr %1026, i32 0, i32 247
  %1028 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1027)
  %1029 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.484, ptr noundef @.str.485, i32 noundef %1028)
  br i1 %1029, label %1030, label %1046

1030:                                             ; preds = %1025
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #9
  %1031 = load ptr, ptr %3, align 8, !tbaa !5
  %1032 = getelementptr inbounds %struct.ImGuiContext, ptr %1031, i32 0, i32 247
  %1033 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1032)
  store ptr %1033, ptr %73, align 8, !tbaa !5
  br label %1034

1034:                                             ; preds = %1040, %1030
  %1035 = load ptr, ptr %73, align 8, !tbaa !5
  %1036 = icmp ne ptr %1035, null
  br i1 %1036, label %1038, label %1037

1037:                                             ; preds = %1034
  store i32 40, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #9
  br label %1045

1038:                                             ; preds = %1034
  %1039 = load ptr, ptr %73, align 8, !tbaa !5
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef %1039)
  br label %1040

1040:                                             ; preds = %1038
  %1041 = load ptr, ptr %3, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.ImGuiContext, ptr %1041, i32 0, i32 247
  %1043 = load ptr, ptr %73, align 8, !tbaa !5
  %1044 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %1042, ptr noundef %1043)
  store ptr %1044, ptr %73, align 8, !tbaa !5
  br label %1034, !llvm.loop !187

1045:                                             ; preds = %1037
  call void @_ZN5ImGui7TreePopEv()
  br label %1046

1046:                                             ; preds = %1045, %1025
  %1047 = load ptr, ptr %3, align 8, !tbaa !5
  %1048 = getelementptr inbounds %struct.ImGuiContext, ptr %1047, i32 0, i32 244
  %1049 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1048)
  %1050 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.486, ptr noundef @.str.487, i32 noundef %1049)
  br i1 %1050, label %1051, label %1064

1051:                                             ; preds = %1046
  %1052 = load ptr, ptr %3, align 8, !tbaa !5
  %1053 = getelementptr inbounds %struct.ImGuiContext, ptr %1052, i32 0, i32 244
  %1054 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %1053)
  %1055 = load ptr, ptr %3, align 8, !tbaa !5
  %1056 = getelementptr inbounds %struct.ImGuiContext, ptr %1055, i32 0, i32 244
  %1057 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %1056, i32 0, i32 0
  %1058 = getelementptr inbounds %struct.ImVector.28, ptr %1057, i32 0, i32 0
  %1059 = load i32, ptr %1058, align 8, !tbaa !188
  %1060 = sext i32 %1059 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #9
  %1061 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %1062 = fmul float %1061, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %74, float noundef 0xB810000000000000, float noundef %1062)
  %1063 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.488, ptr noundef %1054, i64 noundef %1060, ptr noundef nonnull align 4 dereferenceable(8) %74, i32 noundef 512, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #9
  call void @_ZN5ImGui7TreePopEv()
  br label %1064

1064:                                             ; preds = %1051, %1046
  call void @_ZN5ImGui7TreePopEv()
  br label %1065

1065:                                             ; preds = %1064, %942
  %1066 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.489)
  br i1 %1066, label %1067, label %1138

1067:                                             ; preds = %1065
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #9
  %1068 = load ptr, ptr %3, align 8, !tbaa !5
  %1069 = getelementptr inbounds %struct.ImGuiContext, ptr %1068, i32 0, i32 288
  store ptr %1069, ptr %75, align 8, !tbaa !5
  %1070 = load ptr, ptr %75, align 8, !tbaa !5
  %1071 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1070, i32 0, i32 0
  %1072 = load i32, ptr %1071, align 4, !tbaa !189
  %1073 = load ptr, ptr %75, align 8, !tbaa !5
  %1074 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1073, i32 0, i32 1
  %1075 = load i32, ptr %1074, align 4, !tbaa !190
  %1076 = sub nsw i32 %1072, %1075
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.490, i32 noundef %1076)
  %1077 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.491)
  br i1 %1077, label %1078, label %1081

1078:                                             ; preds = %1067
  %1079 = load ptr, ptr %3, align 8, !tbaa !5
  %1080 = getelementptr inbounds %struct.ImGuiContext, ptr %1079, i32 0, i32 18
  store i8 1, ptr %1080, align 2, !tbaa !191
  br label %1081

1081:                                             ; preds = %1078, %1067
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.492)
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  store i32 6, ptr %76, align 4, !tbaa !123
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  %1082 = load i32, ptr %76, align 4, !tbaa !123
  %1083 = sub nsw i32 %1082, 1
  store i32 %1083, ptr %77, align 4, !tbaa !123
  br label %1084

1084:                                             ; preds = %1134, %1081
  %1085 = load i32, ptr %77, align 4, !tbaa !123
  %1086 = icmp sge i32 %1085, 0
  br i1 %1086, label %1088, label %1087

1087:                                             ; preds = %1084
  store i32 43, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %1137

1088:                                             ; preds = %1084
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #9
  %1089 = load ptr, ptr %75, align 8, !tbaa !5
  %1090 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1089, i32 0, i32 3
  %1091 = load ptr, ptr %75, align 8, !tbaa !5
  %1092 = getelementptr inbounds %struct.ImGuiDebugAllocInfo, ptr %1091, i32 0, i32 2
  %1093 = load i16, ptr %1092, align 4, !tbaa !192
  %1094 = sext i16 %1093 to i32
  %1095 = load i32, ptr %77, align 4, !tbaa !123
  %1096 = sub nsw i32 %1094, %1095
  %1097 = load i32, ptr %76, align 4, !tbaa !123
  %1098 = add nsw i32 %1096, %1097
  %1099 = load i32, ptr %76, align 4, !tbaa !123
  %1100 = srem i32 %1098, %1099
  %1101 = sext i32 %1100 to i64
  %1102 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %1090, i64 0, i64 %1101
  store ptr %1102, ptr %78, align 8, !tbaa !5
  %1103 = load ptr, ptr %78, align 8, !tbaa !5
  %1104 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1103, i32 0, i32 0
  %1105 = load i32, ptr %1104, align 4, !tbaa !193
  %1106 = load ptr, ptr %78, align 8, !tbaa !5
  %1107 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1106, i32 0, i32 1
  %1108 = load i16, ptr %1107, align 4, !tbaa !195
  %1109 = sext i16 %1108 to i32
  %1110 = load ptr, ptr %78, align 8, !tbaa !5
  %1111 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1110, i32 0, i32 2
  %1112 = load i16, ptr %1111, align 2, !tbaa !196
  %1113 = sext i16 %1112 to i32
  %1114 = sub nsw i32 %1109, %1113
  %1115 = load ptr, ptr %78, align 8, !tbaa !5
  %1116 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1115, i32 0, i32 1
  %1117 = load i16, ptr %1116, align 4, !tbaa !195
  %1118 = sext i16 %1117 to i32
  %1119 = load ptr, ptr %78, align 8, !tbaa !5
  %1120 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1119, i32 0, i32 2
  %1121 = load i16, ptr %1120, align 2, !tbaa !196
  %1122 = sext i16 %1121 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.493, i32 noundef %1105, i32 noundef %1114, i32 noundef %1118, i32 noundef %1122)
  %1123 = load i32, ptr %77, align 4, !tbaa !123
  %1124 = icmp eq i32 %1123, 0
  br i1 %1124, label %1125, label %1133

1125:                                             ; preds = %1088
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1126 = load ptr, ptr %3, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.ImGuiContext, ptr %1126, i32 0, i32 12
  %1128 = load i32, ptr %1127, align 8, !tbaa !142
  %1129 = load ptr, ptr %78, align 8, !tbaa !5
  %1130 = getelementptr inbounds %struct.ImGuiDebugAllocEntry, ptr %1129, i32 0, i32 0
  %1131 = load i32, ptr %1130, align 4, !tbaa !193
  %1132 = sub nsw i32 %1128, %1131
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.494, i32 noundef %1132)
  br label %1133

1133:                                             ; preds = %1125, %1088
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  br label %1134

1134:                                             ; preds = %1133
  %1135 = load i32, ptr %77, align 4, !tbaa !123
  %1136 = add nsw i32 %1135, -1
  store i32 %1136, ptr %77, align 4, !tbaa !123
  br label %1084, !llvm.loop !197

1137:                                             ; preds = %1087
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  br label %1138

1138:                                             ; preds = %1137, %1065
  %1139 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.495)
  br i1 %1139, label %1140, label %1540

1140:                                             ; preds = %1138
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.496)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.497)
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  store i32 512, ptr %79, align 4, !tbaa !198
  br label %1141

1141:                                             ; preds = %1162, %1140
  %1142 = load i32, ptr %79, align 4, !tbaa !198
  %1143 = icmp slt i32 %1142, 666
  br i1 %1143, label %1145, label %1144

1144:                                             ; preds = %1141
  store i32 46, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %1165

1145:                                             ; preds = %1141
  %1146 = load i32, ptr %79, align 4, !tbaa !198
  %1147 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %1146)
  br i1 %1147, label %1149, label %1148

1148:                                             ; preds = %1145
  br label %1162

1149:                                             ; preds = %1145
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1150 = load i32, ptr %79, align 4, !tbaa !198
  %1151 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1150)
  %1152 = zext i1 %1151 to i64
  %1153 = select i1 %1151, ptr @.str.477, ptr @.str.498
  %1154 = load i32, ptr %79, align 4, !tbaa !198
  %1155 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1154)
  %1156 = load i32, ptr %79, align 4, !tbaa !198
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1153, ptr noundef %1155, i32 noundef %1156)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1157 = load i32, ptr %79, align 4, !tbaa !198
  %1158 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %1157)
  %1159 = getelementptr inbounds %struct.ImGuiKeyData, ptr %1158, i32 0, i32 1
  %1160 = load float, ptr %1159, align 4, !tbaa !199
  %1161 = fpext float %1160 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.499, double noundef %1161)
  br label %1162

1162:                                             ; preds = %1149, %1148
  %1163 = load i32, ptr %79, align 4, !tbaa !198
  %1164 = add nsw i32 %1163, 1
  store i32 %1164, ptr %79, align 4, !tbaa !198
  br label %1141, !llvm.loop !201

1165:                                             ; preds = %1144
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.500)
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  store i32 512, ptr %80, align 4, !tbaa !198
  br label %1166

1166:                                             ; preds = %1182, %1165
  %1167 = load i32, ptr %80, align 4, !tbaa !198
  %1168 = icmp slt i32 %1167, 666
  br i1 %1168, label %1170, label %1169

1169:                                             ; preds = %1166
  store i32 49, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %1185

1170:                                             ; preds = %1166
  %1171 = load i32, ptr %80, align 4, !tbaa !198
  %1172 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %1171, i1 noundef zeroext true)
  br i1 %1172, label %1174, label %1173

1173:                                             ; preds = %1170
  br label %1182

1174:                                             ; preds = %1170
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1175 = load i32, ptr %80, align 4, !tbaa !198
  %1176 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1175)
  %1177 = zext i1 %1176 to i64
  %1178 = select i1 %1176, ptr @.str.477, ptr @.str.498
  %1179 = load i32, ptr %80, align 4, !tbaa !198
  %1180 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1179)
  %1181 = load i32, ptr %80, align 4, !tbaa !198
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1178, ptr noundef %1180, i32 noundef %1181)
  br label %1182

1182:                                             ; preds = %1174, %1173
  %1183 = load i32, ptr %80, align 4, !tbaa !198
  %1184 = add nsw i32 %1183, 1
  store i32 %1184, ptr %80, align 4, !tbaa !198
  br label %1166, !llvm.loop !202

1185:                                             ; preds = %1169
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.501)
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #9
  store i32 512, ptr %81, align 4, !tbaa !198
  br label %1186

1186:                                             ; preds = %1202, %1185
  %1187 = load i32, ptr %81, align 4, !tbaa !198
  %1188 = icmp slt i32 %1187, 666
  br i1 %1188, label %1190, label %1189

1189:                                             ; preds = %1186
  store i32 52, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #9
  br label %1205

1190:                                             ; preds = %1186
  %1191 = load i32, ptr %81, align 4, !tbaa !198
  %1192 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %1191)
  br i1 %1192, label %1194, label %1193

1193:                                             ; preds = %1190
  br label %1202

1194:                                             ; preds = %1190
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1195 = load i32, ptr %81, align 4, !tbaa !198
  %1196 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1195)
  %1197 = zext i1 %1196 to i64
  %1198 = select i1 %1196, ptr @.str.477, ptr @.str.498
  %1199 = load i32, ptr %81, align 4, !tbaa !198
  %1200 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1199)
  %1201 = load i32, ptr %81, align 4, !tbaa !198
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1198, ptr noundef %1200, i32 noundef %1201)
  br label %1202

1202:                                             ; preds = %1194, %1193
  %1203 = load i32, ptr %81, align 4, !tbaa !198
  %1204 = add nsw i32 %1203, 1
  store i32 %1204, ptr %81, align 4, !tbaa !198
  br label %1186, !llvm.loop !203

1205:                                             ; preds = %1189
  %1206 = load ptr, ptr %4, align 8, !tbaa !5
  %1207 = getelementptr inbounds %struct.ImGuiIO, ptr %1206, i32 0, i32 70
  %1208 = load i8, ptr %1207, align 4, !tbaa !204, !range !13, !noundef !14
  %1209 = trunc i8 %1208 to i1
  %1210 = zext i1 %1209 to i64
  %1211 = select i1 %1209, ptr @.str.503, ptr @.str.14
  %1212 = load ptr, ptr %4, align 8, !tbaa !5
  %1213 = getelementptr inbounds %struct.ImGuiIO, ptr %1212, i32 0, i32 71
  %1214 = load i8, ptr %1213, align 1, !tbaa !205, !range !13, !noundef !14
  %1215 = trunc i8 %1214 to i1
  %1216 = zext i1 %1215 to i64
  %1217 = select i1 %1215, ptr @.str.504, ptr @.str.14
  %1218 = load ptr, ptr %4, align 8, !tbaa !5
  %1219 = getelementptr inbounds %struct.ImGuiIO, ptr %1218, i32 0, i32 72
  %1220 = load i8, ptr %1219, align 2, !tbaa !206, !range !13, !noundef !14
  %1221 = trunc i8 %1220 to i1
  %1222 = zext i1 %1221 to i64
  %1223 = select i1 %1221, ptr @.str.505, ptr @.str.14
  %1224 = load ptr, ptr %4, align 8, !tbaa !5
  %1225 = getelementptr inbounds %struct.ImGuiIO, ptr %1224, i32 0, i32 73
  %1226 = load i8, ptr %1225, align 1, !tbaa !207, !range !13, !noundef !14
  %1227 = trunc i8 %1226 to i1
  %1228 = zext i1 %1227 to i64
  %1229 = select i1 %1227, ptr @.str.506, ptr @.str.14
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.502, ptr noundef %1211, ptr noundef %1217, ptr noundef %1223, ptr noundef %1229)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.507)
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  store i32 0, ptr %82, align 4, !tbaa !123
  br label %1230

1230:                                             ; preds = %1260, %1205
  %1231 = load i32, ptr %82, align 4, !tbaa !123
  %1232 = load ptr, ptr %4, align 8, !tbaa !5
  %1233 = getelementptr inbounds %struct.ImGuiIO, ptr %1232, i32 0, i32 96
  %1234 = getelementptr inbounds %struct.ImVector, ptr %1233, i32 0, i32 0
  %1235 = load i32, ptr %1234, align 8, !tbaa !208
  %1236 = icmp slt i32 %1231, %1235
  br i1 %1236, label %1238, label %1237

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

1238:                                             ; preds = %1230
  call void @llvm.lifetime.start.p0(i64 2, ptr %83) #9
  %1239 = load ptr, ptr %4, align 8, !tbaa !5
  %1240 = getelementptr inbounds %struct.ImGuiIO, ptr %1239, i32 0, i32 96
  %1241 = load i32, ptr %82, align 4, !tbaa !123
  %1242 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1240, i32 noundef %1241)
  %1243 = load i16, ptr %1242, align 2, !tbaa !209
  store i16 %1243, ptr %83, align 2, !tbaa !209
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1244 = load i16, ptr %83, align 2, !tbaa !209
  %1245 = zext i16 %1244 to i32
  %1246 = icmp sgt i32 %1245, 32
  br i1 %1246, label %1247, label %1254

1247:                                             ; preds = %1238
  %1248 = load i16, ptr %83, align 2, !tbaa !209
  %1249 = zext i16 %1248 to i32
  %1250 = icmp sle i32 %1249, 255
  br i1 %1250, label %1251, label %1254

1251:                                             ; preds = %1247
  %1252 = load i16, ptr %83, align 2, !tbaa !209
  %1253 = trunc i16 %1252 to i8
  br label %1255

1254:                                             ; preds = %1247, %1238
  br label %1255

1255:                                             ; preds = %1254, %1251
  %1256 = phi i8 [ %1253, %1251 ], [ 63, %1254 ]
  %1257 = sext i8 %1256 to i32
  %1258 = load i16, ptr %83, align 2, !tbaa !209
  %1259 = zext i16 %1258 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.508, i32 noundef %1257, i32 noundef %1259)
  call void @llvm.lifetime.end.p0(i64 2, ptr %83) #9
  br label %1260

1260:                                             ; preds = %1255
  %1261 = load i32, ptr %82, align 4, !tbaa !123
  %1262 = add nsw i32 %1261, 1
  store i32 %1262, ptr %82, align 4, !tbaa !123
  br label %1230, !llvm.loop !210

1263:                                             ; preds = %1237
  %1264 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %1264)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.509)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1265 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %1265, label %1266, label %1277

1266:                                             ; preds = %1263
  %1267 = load ptr, ptr %4, align 8, !tbaa !5
  %1268 = getelementptr inbounds %struct.ImGuiIO, ptr %1267, i32 0, i32 65
  %1269 = getelementptr inbounds %struct.ImVec2, ptr %1268, i32 0, i32 0
  %1270 = load float, ptr %1269, align 8, !tbaa !211
  %1271 = fpext float %1270 to double
  %1272 = load ptr, ptr %4, align 8, !tbaa !5
  %1273 = getelementptr inbounds %struct.ImGuiIO, ptr %1272, i32 0, i32 65
  %1274 = getelementptr inbounds %struct.ImVec2, ptr %1273, i32 0, i32 1
  %1275 = load float, ptr %1274, align 4, !tbaa !212
  %1276 = fpext float %1275 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.510, double noundef %1271, double noundef %1276)
  br label %1278

1277:                                             ; preds = %1263
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.511)
  br label %1278

1278:                                             ; preds = %1277, %1266
  %1279 = load ptr, ptr %4, align 8, !tbaa !5
  %1280 = getelementptr inbounds %struct.ImGuiIO, ptr %1279, i32 0, i32 63
  %1281 = getelementptr inbounds %struct.ImVec2, ptr %1280, i32 0, i32 0
  %1282 = load float, ptr %1281, align 4, !tbaa !213
  %1283 = fpext float %1282 to double
  %1284 = load ptr, ptr %4, align 8, !tbaa !5
  %1285 = getelementptr inbounds %struct.ImGuiIO, ptr %1284, i32 0, i32 63
  %1286 = getelementptr inbounds %struct.ImVec2, ptr %1285, i32 0, i32 1
  %1287 = load float, ptr %1286, align 4, !tbaa !214
  %1288 = fpext float %1287 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.512, double noundef %1283, double noundef %1288)
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #9
  store i32 5, ptr %84, align 4, !tbaa !123
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.513)
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  store i32 0, ptr %85, align 4, !tbaa !123
  br label %1289

1289:                                             ; preds = %1307, %1278
  %1290 = load i32, ptr %85, align 4, !tbaa !123
  %1291 = load i32, ptr %84, align 4, !tbaa !123
  %1292 = icmp slt i32 %1290, %1291
  br i1 %1292, label %1294, label %1293

1293:                                             ; preds = %1289
  store i32 58, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %1310

1294:                                             ; preds = %1289
  %1295 = load i32, ptr %85, align 4, !tbaa !123
  %1296 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef %1295)
  br i1 %1296, label %1297, label %1306

1297:                                             ; preds = %1294
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1298 = load i32, ptr %85, align 4, !tbaa !123
  %1299 = load ptr, ptr %4, align 8, !tbaa !5
  %1300 = getelementptr inbounds %struct.ImGuiIO, ptr %1299, i32 0, i32 89
  %1301 = load i32, ptr %85, align 4, !tbaa !123
  %1302 = sext i32 %1301 to i64
  %1303 = getelementptr inbounds [5 x float], ptr %1300, i64 0, i64 %1302
  %1304 = load float, ptr %1303, align 4, !tbaa !215
  %1305 = fpext float %1304 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.514, i32 noundef %1298, double noundef %1305)
  br label %1306

1306:                                             ; preds = %1297, %1294
  br label %1307

1307:                                             ; preds = %1306
  %1308 = load i32, ptr %85, align 4, !tbaa !123
  %1309 = add nsw i32 %1308, 1
  store i32 %1309, ptr %85, align 4, !tbaa !123
  br label %1289, !llvm.loop !216

1310:                                             ; preds = %1293
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.515)
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  store i32 0, ptr %86, align 4, !tbaa !123
  br label %1311

1311:                                             ; preds = %1329, %1310
  %1312 = load i32, ptr %86, align 4, !tbaa !123
  %1313 = load i32, ptr %84, align 4, !tbaa !123
  %1314 = icmp slt i32 %1312, %1313
  br i1 %1314, label %1316, label %1315

1315:                                             ; preds = %1311
  store i32 61, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %1332

1316:                                             ; preds = %1311
  %1317 = load i32, ptr %86, align 4, !tbaa !123
  %1318 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef %1317, i1 noundef zeroext false)
  br i1 %1318, label %1319, label %1328

1319:                                             ; preds = %1316
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1320 = load i32, ptr %86, align 4, !tbaa !123
  %1321 = load ptr, ptr %4, align 8, !tbaa !5
  %1322 = getelementptr inbounds %struct.ImGuiIO, ptr %1321, i32 0, i32 82
  %1323 = load i32, ptr %86, align 4, !tbaa !123
  %1324 = sext i32 %1323 to i64
  %1325 = getelementptr inbounds [5 x i16], ptr %1322, i64 0, i64 %1324
  %1326 = load i16, ptr %1325, align 2, !tbaa !209
  %1327 = zext i16 %1326 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.516, i32 noundef %1320, i32 noundef %1327)
  br label %1328

1328:                                             ; preds = %1319, %1316
  br label %1329

1329:                                             ; preds = %1328
  %1330 = load i32, ptr %86, align 4, !tbaa !123
  %1331 = add nsw i32 %1330, 1
  store i32 %1331, ptr %86, align 4, !tbaa !123
  br label %1311, !llvm.loop !217

1332:                                             ; preds = %1315
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.517)
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #9
  store i32 0, ptr %87, align 4, !tbaa !123
  br label %1333

1333:                                             ; preds = %1344, %1332
  %1334 = load i32, ptr %87, align 4, !tbaa !123
  %1335 = load i32, ptr %84, align 4, !tbaa !123
  %1336 = icmp slt i32 %1334, %1335
  br i1 %1336, label %1338, label %1337

1337:                                             ; preds = %1333
  store i32 64, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %1347

1338:                                             ; preds = %1333
  %1339 = load i32, ptr %87, align 4, !tbaa !123
  %1340 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef %1339)
  br i1 %1340, label %1341, label %1343

1341:                                             ; preds = %1338
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1342 = load i32, ptr %87, align 4, !tbaa !123
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.518, i32 noundef %1342)
  br label %1343

1343:                                             ; preds = %1341, %1338
  br label %1344

1344:                                             ; preds = %1343
  %1345 = load i32, ptr %87, align 4, !tbaa !123
  %1346 = add nsw i32 %1345, 1
  store i32 %1346, ptr %87, align 4, !tbaa !123
  br label %1333, !llvm.loop !218

1347:                                             ; preds = %1337
  %1348 = load ptr, ptr %4, align 8, !tbaa !5
  %1349 = getelementptr inbounds %struct.ImGuiIO, ptr %1348, i32 0, i32 67
  %1350 = load float, ptr %1349, align 8, !tbaa !219
  %1351 = fpext float %1350 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.519, double noundef %1351)
  %1352 = load ptr, ptr %3, align 8, !tbaa !5
  %1353 = getelementptr inbounds %struct.ImGuiContext, ptr %1352, i32 0, i32 206
  %1354 = load float, ptr %1353, align 4, !tbaa !220
  %1355 = fpext float %1354 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.520, double noundef %1355)
  %1356 = load ptr, ptr %4, align 8, !tbaa !5
  %1357 = getelementptr inbounds %struct.ImGuiIO, ptr %1356, i32 0, i32 69
  %1358 = load i32, ptr %1357, align 8, !tbaa !221
  %1359 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %1358)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.521, ptr noundef %1359)
  %1360 = load ptr, ptr %4, align 8, !tbaa !5
  %1361 = getelementptr inbounds %struct.ImGuiIO, ptr %1360, i32 0, i32 92
  %1362 = load float, ptr %1361, align 4, !tbaa !222
  %1363 = fpext float %1362 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.522, double noundef %1363)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.523)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1364 = load ptr, ptr %3, align 8, !tbaa !5
  %1365 = getelementptr inbounds %struct.ImGuiContext, ptr %1364, i32 0, i32 39
  %1366 = load ptr, ptr %1365, align 8, !tbaa !223
  %1367 = icmp ne ptr %1366, null
  br i1 %1367, label %1368, label %1374

1368:                                             ; preds = %1347
  %1369 = load ptr, ptr %3, align 8, !tbaa !5
  %1370 = getelementptr inbounds %struct.ImGuiContext, ptr %1369, i32 0, i32 39
  %1371 = load ptr, ptr %1370, align 8, !tbaa !223
  %1372 = getelementptr inbounds %struct.ImGuiWindow, ptr %1371, i32 0, i32 1
  %1373 = load ptr, ptr %1372, align 8, !tbaa !122
  br label %1375

1374:                                             ; preds = %1347
  br label %1375

1375:                                             ; preds = %1374, %1368
  %1376 = phi ptr [ %1373, %1368 ], [ @.str.263, %1374 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.524, ptr noundef %1376)
  %1377 = load ptr, ptr %3, align 8, !tbaa !5
  %1378 = getelementptr inbounds %struct.ImGuiContext, ptr %1377, i32 0, i32 43
  %1379 = load float, ptr %1378, align 8, !tbaa !224
  %1380 = fpext float %1379 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.525, double noundef %1380)
  %1381 = load ptr, ptr %3, align 8, !tbaa !5
  %1382 = getelementptr inbounds %struct.ImGuiContext, ptr %1381, i32 0, i32 45
  %1383 = getelementptr inbounds %struct.ImVec2, ptr %1382, i32 0, i32 0
  %1384 = load float, ptr %1383, align 4, !tbaa !225
  %1385 = fpext float %1384 to double
  %1386 = load ptr, ptr %3, align 8, !tbaa !5
  %1387 = getelementptr inbounds %struct.ImGuiContext, ptr %1386, i32 0, i32 45
  %1388 = getelementptr inbounds %struct.ImVec2, ptr %1387, i32 0, i32 1
  %1389 = load float, ptr %1388, align 4, !tbaa !226
  %1390 = fpext float %1389 to double
  %1391 = load ptr, ptr %3, align 8, !tbaa !5
  %1392 = getelementptr inbounds %struct.ImGuiContext, ptr %1391, i32 0, i32 45
  %1393 = getelementptr inbounds %struct.ImVec2, ptr %1392, i32 0, i32 0
  %1394 = load float, ptr %1393, align 4, !tbaa !225
  %1395 = load ptr, ptr %3, align 8, !tbaa !5
  %1396 = getelementptr inbounds %struct.ImGuiContext, ptr %1395, i32 0, i32 45
  %1397 = getelementptr inbounds %struct.ImVec2, ptr %1396, i32 0, i32 1
  %1398 = load float, ptr %1397, align 4, !tbaa !226
  %1399 = fcmp ogt float %1394, %1398
  br i1 %1399, label %1400, label %1401

1400:                                             ; preds = %1375
  br label %1413

1401:                                             ; preds = %1375
  %1402 = load ptr, ptr %3, align 8, !tbaa !5
  %1403 = getelementptr inbounds %struct.ImGuiContext, ptr %1402, i32 0, i32 45
  %1404 = getelementptr inbounds %struct.ImVec2, ptr %1403, i32 0, i32 0
  %1405 = load float, ptr %1404, align 4, !tbaa !225
  %1406 = load ptr, ptr %3, align 8, !tbaa !5
  %1407 = getelementptr inbounds %struct.ImGuiContext, ptr %1406, i32 0, i32 45
  %1408 = getelementptr inbounds %struct.ImVec2, ptr %1407, i32 0, i32 1
  %1409 = load float, ptr %1408, align 4, !tbaa !226
  %1410 = fcmp olt float %1405, %1409
  %1411 = zext i1 %1410 to i64
  %1412 = select i1 %1410, ptr @.str.527, ptr @.str.528
  br label %1413

1413:                                             ; preds = %1401, %1400
  %1414 = phi ptr [ @.str.375, %1400 ], [ %1412, %1401 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.526, double noundef %1385, double noundef %1390, ptr noundef %1414)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.529)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #9
  %1415 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1416 = fmul float %1415, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %88, float noundef 0xB810000000000000, float noundef %1416)
  %1417 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef @.str.530, 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 %1417, label %1418, label %1462

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

1419:                                             ; preds = %1458, %1418
  %1420 = load i32, ptr %89, align 4, !tbaa !198
  %1421 = icmp slt i32 %1420, 666
  br i1 %1421, label %1423, label %1422

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

1423:                                             ; preds = %1419
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #9
  %1424 = load ptr, ptr %3, align 8, !tbaa !5
  %1425 = load i32, ptr %89, align 4, !tbaa !198
  %1426 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %1424, i32 noundef %1425)
  store ptr %1426, ptr %90, align 8, !tbaa !5
  %1427 = load ptr, ptr %90, align 8, !tbaa !5
  %1428 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1427, i32 0, i32 0
  %1429 = load i32, ptr %1428, align 4, !tbaa !227
  %1430 = icmp eq i32 %1429, -1
  br i1 %1430, label %1431, label %1432

1431:                                             ; preds = %1423
  store i32 69, ptr %6, align 4
  br label %1455

1432:                                             ; preds = %1423
  %1433 = load i32, ptr %89, align 4, !tbaa !198
  %1434 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1433)
  %1435 = load ptr, ptr %90, align 8, !tbaa !5
  %1436 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1435, i32 0, i32 0
  %1437 = load i32, ptr %1436, align 4, !tbaa !227
  %1438 = load ptr, ptr %90, align 8, !tbaa !5
  %1439 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1438, i32 0, i32 3
  %1440 = load i8, ptr %1439, align 1, !tbaa !229, !range !13, !noundef !14
  %1441 = trunc i8 %1440 to i1
  br i1 %1441, label %1442, label %1443

1442:                                             ; preds = %1432
  br label %1450

1443:                                             ; preds = %1432
  %1444 = load ptr, ptr %90, align 8, !tbaa !5
  %1445 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1444, i32 0, i32 2
  %1446 = load i8, ptr %1445, align 4, !tbaa !230, !range !13, !noundef !14
  %1447 = trunc i8 %1446 to i1
  %1448 = zext i1 %1447 to i64
  %1449 = select i1 %1447, ptr @.str.533, ptr @.str.14
  br label %1450

1450:                                             ; preds = %1443, %1442
  %1451 = phi ptr [ @.str.532, %1442 ], [ %1449, %1443 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.531, ptr noundef %1434, i32 noundef %1437, ptr noundef %1451)
  %1452 = load ptr, ptr %90, align 8, !tbaa !5
  %1453 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1452, i32 0, i32 0
  %1454 = load i32, ptr %1453, align 4, !tbaa !227
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1454)
  store i32 0, ptr %6, align 4
  br label %1455

1455:                                             ; preds = %1450, %1431
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #9
  %1456 = load i32, ptr %6, align 4
  switch i32 %1456, label %1990 [
    i32 0, label %1457
    i32 69, label %1458
  ]

1457:                                             ; preds = %1455
  br label %1458

1458:                                             ; preds = %1457, %1455
  %1459 = load i32, ptr %89, align 4, !tbaa !198
  %1460 = add nsw i32 %1459, 1
  store i32 %1460, ptr %89, align 4, !tbaa !198
  br label %1419, !llvm.loop !231

1461:                                             ; preds = %1422
  br label %1462

1462:                                             ; preds = %1461, %1413
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.534)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.535)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #9
  %1463 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1464 = fmul float %1463, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %91, float noundef 0xB810000000000000, float noundef %1464)
  %1465 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef @.str.536, ptr noundef nonnull align 4 dereferenceable(8) %91, i32 noundef 136, i32 noundef 256)
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  br i1 %1465, label %1466, label %1531

1466:                                             ; preds = %1462
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  store i32 512, ptr %92, align 4, !tbaa !198
  br label %1467

1467:                                             ; preds = %1527, %1466
  %1468 = load i32, ptr %92, align 4, !tbaa !198
  %1469 = icmp slt i32 %1468, 666
  br i1 %1469, label %1471, label %1470

1470:                                             ; preds = %1467
  store i32 70, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %1530

1471:                                             ; preds = %1467
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #9
  %1472 = load ptr, ptr %3, align 8, !tbaa !5
  %1473 = getelementptr inbounds %struct.ImGuiContext, ptr %1472, i32 0, i32 80
  store ptr %1473, ptr %93, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %94) #9
  %1474 = load ptr, ptr %93, align 8, !tbaa !5
  %1475 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1474, i32 0, i32 0
  %1476 = load i32, ptr %92, align 4, !tbaa !198
  %1477 = sub nsw i32 %1476, 512
  %1478 = sext i32 %1477 to i64
  %1479 = getelementptr inbounds [154 x i16], ptr %1475, i64 0, i64 %1478
  %1480 = load i16, ptr %1479, align 2, !tbaa !209
  store i16 %1480, ptr %94, align 2, !tbaa !209
  br label %1481

1481:                                             ; preds = %1522, %1471
  %1482 = load i16, ptr %94, align 2, !tbaa !209
  %1483 = sext i16 %1482 to i32
  %1484 = icmp ne i32 %1483, -1
  br i1 %1484, label %1486, label %1485

1485:                                             ; preds = %1481
  store i32 73, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %94) #9
  br label %1526

1486:                                             ; preds = %1481
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #9
  %1487 = load ptr, ptr %93, align 8, !tbaa !5
  %1488 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1487, i32 0, i32 1
  %1489 = load i16, ptr %94, align 2, !tbaa !209
  %1490 = sext i16 %1489 to i32
  %1491 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1488, i32 noundef %1490)
  store ptr %1491, ptr %95, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #9
  %1492 = load i32, ptr %92, align 4, !tbaa !198
  %1493 = load ptr, ptr %95, align 8, !tbaa !5
  %1494 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1493, i32 0, i32 1
  %1495 = load i16, ptr %1494, align 2, !tbaa !232
  %1496 = zext i16 %1495 to i32
  %1497 = or i32 %1492, %1496
  store i32 %1497, ptr %96, align 4, !tbaa !123
  %1498 = load i32, ptr %96, align 4, !tbaa !123
  %1499 = call noundef ptr @_ZN5ImGui15GetKeyChordNameEi(i32 noundef %1498)
  %1500 = load ptr, ptr %95, align 8, !tbaa !5
  %1501 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1500, i32 0, i32 4
  %1502 = load i32, ptr %1501, align 4, !tbaa !234
  %1503 = load ptr, ptr %95, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1503, i32 0, i32 2
  %1505 = load i8, ptr %1504, align 4, !tbaa !235
  %1506 = zext i8 %1505 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.537, ptr noundef %1499, i32 noundef %1502, i32 noundef %1506)
  %1507 = load ptr, ptr %95, align 8, !tbaa !5
  %1508 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1507, i32 0, i32 4
  %1509 = load i32, ptr %1508, align 4, !tbaa !234
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1509)
  %1510 = load ptr, ptr %3, align 8, !tbaa !5
  %1511 = getelementptr inbounds %struct.ImGuiContext, ptr %1510, i32 0, i32 2
  %1512 = getelementptr inbounds %struct.ImGuiIO, ptr %1511, i32 0, i32 40
  %1513 = load i8, ptr %1512, align 8, !tbaa !236, !range !13, !noundef !14
  %1514 = trunc i8 %1513 to i1
  br i1 %1514, label %1515, label %1522

1515:                                             ; preds = %1486
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1516 = call noundef zeroext i1 @_ZN5ImGui16DebugBreakButtonEPKcS1_(ptr noundef @.str.538, ptr noundef @.str.539)
  br i1 %1516, label %1517, label %1521

1517:                                             ; preds = %1515
  %1518 = load i32, ptr %96, align 4, !tbaa !123
  %1519 = load ptr, ptr %3, align 8, !tbaa !5
  %1520 = getelementptr inbounds %struct.ImGuiContext, ptr %1519, i32 0, i32 83
  store i32 %1518, ptr %1520, align 8, !tbaa !237
  br label %1521

1521:                                             ; preds = %1517, %1515
  br label %1522

1522:                                             ; preds = %1521, %1486
  %1523 = load ptr, ptr %95, align 8, !tbaa !5
  %1524 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1523, i32 0, i32 0
  %1525 = load i16, ptr %1524, align 4, !tbaa !238
  store i16 %1525, ptr %94, align 2, !tbaa !209
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #9
  br label %1481, !llvm.loop !239

1526:                                             ; preds = %1485
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #9
  br label %1527

1527:                                             ; preds = %1526
  %1528 = load i32, ptr %92, align 4, !tbaa !198
  %1529 = add nsw i32 %1528, 1
  store i32 %1529, ptr %92, align 4, !tbaa !198
  br label %1467, !llvm.loop !240

1530:                                             ; preds = %1470
  br label %1531

1531:                                             ; preds = %1530, %1462
  call void @_ZN5ImGui8EndChildEv()
  %1532 = load ptr, ptr %3, align 8, !tbaa !5
  %1533 = getelementptr inbounds %struct.ImGuiContext, ptr %1532, i32 0, i32 82
  %1534 = load i8, ptr %1533, align 4, !tbaa !241, !range !13, !noundef !14
  %1535 = trunc i8 %1534 to i1
  %1536 = zext i1 %1535 to i32
  %1537 = load ptr, ptr %3, align 8, !tbaa !5
  %1538 = getelementptr inbounds %struct.ImGuiContext, ptr %1537, i32 0, i32 81
  %1539 = load i32, ptr %1538, align 8, !tbaa !242
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.540, i32 noundef %1536, i32 noundef %1539)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1540

1540:                                             ; preds = %1531, %1138
  %1541 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.541)
  br i1 %1541, label %1542, label %1793

1542:                                             ; preds = %1540
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.542)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1543 = load ptr, ptr %3, align 8, !tbaa !5
  %1544 = getelementptr inbounds %struct.ImGuiContext, ptr %1543, i32 0, i32 35
  %1545 = load ptr, ptr %1544, align 8, !tbaa !243
  %1546 = icmp ne ptr %1545, null
  br i1 %1546, label %1547, label %1553

1547:                                             ; preds = %1542
  %1548 = load ptr, ptr %3, align 8, !tbaa !5
  %1549 = getelementptr inbounds %struct.ImGuiContext, ptr %1548, i32 0, i32 35
  %1550 = load ptr, ptr %1549, align 8, !tbaa !243
  %1551 = getelementptr inbounds %struct.ImGuiWindow, ptr %1550, i32 0, i32 1
  %1552 = load ptr, ptr %1551, align 8, !tbaa !122
  br label %1554

1553:                                             ; preds = %1542
  br label %1554

1554:                                             ; preds = %1553, %1547
  %1555 = phi ptr [ %1552, %1547 ], [ @.str.263, %1553 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.543, ptr noundef %1555)
  %1556 = load ptr, ptr %3, align 8, !tbaa !5
  %1557 = getelementptr inbounds %struct.ImGuiContext, ptr %1556, i32 0, i32 35
  %1558 = load ptr, ptr %1557, align 8, !tbaa !243
  %1559 = icmp ne ptr %1558, null
  br i1 %1559, label %1560, label %1568

1560:                                             ; preds = %1554
  %1561 = load ptr, ptr %3, align 8, !tbaa !5
  %1562 = getelementptr inbounds %struct.ImGuiContext, ptr %1561, i32 0, i32 35
  %1563 = load ptr, ptr %1562, align 8, !tbaa !243
  %1564 = getelementptr inbounds %struct.ImGuiWindow, ptr %1563, i32 0, i32 91
  %1565 = load ptr, ptr %1564, align 8, !tbaa !244
  %1566 = getelementptr inbounds %struct.ImGuiWindow, ptr %1565, i32 0, i32 1
  %1567 = load ptr, ptr %1566, align 8, !tbaa !122
  br label %1569

1568:                                             ; preds = %1554
  br label %1569

1569:                                             ; preds = %1568, %1560
  %1570 = phi ptr [ %1567, %1560 ], [ @.str.263, %1568 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.544, ptr noundef %1570)
  %1571 = load ptr, ptr %3, align 8, !tbaa !5
  %1572 = getelementptr inbounds %struct.ImGuiContext, ptr %1571, i32 0, i32 36
  %1573 = load ptr, ptr %1572, align 8, !tbaa !245
  %1574 = icmp ne ptr %1573, null
  br i1 %1574, label %1575, label %1581

1575:                                             ; preds = %1569
  %1576 = load ptr, ptr %3, align 8, !tbaa !5
  %1577 = getelementptr inbounds %struct.ImGuiContext, ptr %1576, i32 0, i32 36
  %1578 = load ptr, ptr %1577, align 8, !tbaa !245
  %1579 = getelementptr inbounds %struct.ImGuiWindow, ptr %1578, i32 0, i32 1
  %1580 = load ptr, ptr %1579, align 8, !tbaa !122
  br label %1582

1581:                                             ; preds = %1569
  br label %1582

1582:                                             ; preds = %1581, %1575
  %1583 = phi ptr [ %1580, %1575 ], [ @.str.263, %1581 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.545, ptr noundef %1583)
  %1584 = load ptr, ptr %3, align 8, !tbaa !5
  %1585 = getelementptr inbounds %struct.ImGuiContext, ptr %1584, i32 0, i32 38
  %1586 = load ptr, ptr %1585, align 8, !tbaa !246
  %1587 = icmp ne ptr %1586, null
  br i1 %1587, label %1588, label %1594

1588:                                             ; preds = %1582
  %1589 = load ptr, ptr %3, align 8, !tbaa !5
  %1590 = getelementptr inbounds %struct.ImGuiContext, ptr %1589, i32 0, i32 38
  %1591 = load ptr, ptr %1590, align 8, !tbaa !246
  %1592 = getelementptr inbounds %struct.ImGuiWindow, ptr %1591, i32 0, i32 1
  %1593 = load ptr, ptr %1592, align 8, !tbaa !122
  br label %1595

1594:                                             ; preds = %1582
  br label %1595

1595:                                             ; preds = %1594, %1588
  %1596 = phi ptr [ %1593, %1588 ], [ @.str.263, %1594 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.546, ptr noundef %1596)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.547)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1597 = load ptr, ptr %3, align 8, !tbaa !5
  %1598 = getelementptr inbounds %struct.ImGuiContext, ptr %1597, i32 0, i32 56
  %1599 = load i32, ptr %1598, align 4, !tbaa !247
  %1600 = load ptr, ptr %3, align 8, !tbaa !5
  %1601 = getelementptr inbounds %struct.ImGuiContext, ptr %1600, i32 0, i32 70
  %1602 = load i32, ptr %1601, align 4, !tbaa !248
  %1603 = load ptr, ptr %3, align 8, !tbaa !5
  %1604 = getelementptr inbounds %struct.ImGuiContext, ptr %1603, i32 0, i32 58
  %1605 = load float, ptr %1604, align 4, !tbaa !249
  %1606 = fpext float %1605 to double
  %1607 = load ptr, ptr %3, align 8, !tbaa !5
  %1608 = getelementptr inbounds %struct.ImGuiContext, ptr %1607, i32 0, i32 60
  %1609 = load i8, ptr %1608, align 1, !tbaa !250, !range !13, !noundef !14
  %1610 = trunc i8 %1609 to i1
  %1611 = zext i1 %1610 to i32
  %1612 = load ptr, ptr %3, align 8, !tbaa !5
  %1613 = getelementptr inbounds %struct.ImGuiContext, ptr %1612, i32 0, i32 69
  %1614 = load i32, ptr %1613, align 8, !tbaa !251
  %1615 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1614)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.548, i32 noundef %1599, i32 noundef %1602, double noundef %1606, i32 noundef %1611, ptr noundef %1615)
  %1616 = load ptr, ptr %3, align 8, !tbaa !5
  %1617 = getelementptr inbounds %struct.ImGuiContext, ptr %1616, i32 0, i32 56
  %1618 = load i32, ptr %1617, align 4, !tbaa !247
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1618)
  %1619 = load ptr, ptr %3, align 8, !tbaa !5
  %1620 = getelementptr inbounds %struct.ImGuiContext, ptr %1619, i32 0, i32 68
  %1621 = load ptr, ptr %1620, align 8, !tbaa !252
  %1622 = icmp ne ptr %1621, null
  br i1 %1622, label %1623, label %1629

1623:                                             ; preds = %1595
  %1624 = load ptr, ptr %3, align 8, !tbaa !5
  %1625 = getelementptr inbounds %struct.ImGuiContext, ptr %1624, i32 0, i32 68
  %1626 = load ptr, ptr %1625, align 8, !tbaa !252
  %1627 = getelementptr inbounds %struct.ImGuiWindow, ptr %1626, i32 0, i32 1
  %1628 = load ptr, ptr %1627, align 8, !tbaa !122
  br label %1630

1629:                                             ; preds = %1595
  br label %1630

1630:                                             ; preds = %1629, %1623
  %1631 = phi ptr [ %1628, %1623 ], [ @.str.263, %1629 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.549, ptr noundef %1631)
  %1632 = load ptr, ptr %3, align 8, !tbaa !5
  %1633 = getelementptr inbounds %struct.ImGuiContext, ptr %1632, i32 0, i32 82
  %1634 = load i8, ptr %1633, align 4, !tbaa !241, !range !13, !noundef !14
  %1635 = trunc i8 %1634 to i1
  %1636 = zext i1 %1635 to i32
  %1637 = load ptr, ptr %3, align 8, !tbaa !5
  %1638 = getelementptr inbounds %struct.ImGuiContext, ptr %1637, i32 0, i32 81
  %1639 = load i32, ptr %1638, align 8, !tbaa !242
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.550, i32 noundef %1636, i32 noundef %1639)
  %1640 = load ptr, ptr %3, align 8, !tbaa !5
  %1641 = getelementptr inbounds %struct.ImGuiContext, ptr %1640, i32 0, i32 49
  %1642 = load i32, ptr %1641, align 8, !tbaa !253
  %1643 = load ptr, ptr %3, align 8, !tbaa !5
  %1644 = getelementptr inbounds %struct.ImGuiContext, ptr %1643, i32 0, i32 51
  %1645 = load float, ptr %1644, align 8, !tbaa !254
  %1646 = fpext float %1645 to double
  %1647 = load ptr, ptr %3, align 8, !tbaa !5
  %1648 = getelementptr inbounds %struct.ImGuiContext, ptr %1647, i32 0, i32 53
  %1649 = load i8, ptr %1648, align 8, !tbaa !255, !range !13, !noundef !14
  %1650 = trunc i8 %1649 to i1
  %1651 = zext i1 %1650 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.551, i32 noundef %1642, double noundef %1646, i32 noundef %1651)
  %1652 = load ptr, ptr %3, align 8, !tbaa !5
  %1653 = getelementptr inbounds %struct.ImGuiContext, ptr %1652, i32 0, i32 199
  %1654 = load i32, ptr %1653, align 8, !tbaa !256
  %1655 = load ptr, ptr %3, align 8, !tbaa !5
  %1656 = getelementptr inbounds %struct.ImGuiContext, ptr %1655, i32 0, i32 201
  %1657 = load float, ptr %1656, align 8, !tbaa !257
  %1658 = fpext float %1657 to double
  %1659 = load ptr, ptr %3, align 8, !tbaa !5
  %1660 = getelementptr inbounds %struct.ImGuiContext, ptr %1659, i32 0, i32 202
  %1661 = load float, ptr %1660, align 4, !tbaa !258
  %1662 = fpext float %1661 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.552, i32 noundef %1654, double noundef %1658, double noundef %1662)
  %1663 = load ptr, ptr %3, align 8, !tbaa !5
  %1664 = getelementptr inbounds %struct.ImGuiContext, ptr %1663, i32 0, i32 162
  %1665 = load i8, ptr %1664, align 4, !tbaa !259, !range !13, !noundef !14
  %1666 = trunc i8 %1665 to i1
  %1667 = zext i1 %1666 to i32
  %1668 = load ptr, ptr %3, align 8, !tbaa !5
  %1669 = getelementptr inbounds %struct.ImGuiContext, ptr %1668, i32 0, i32 169
  %1670 = getelementptr inbounds %struct.ImGuiPayload, ptr %1669, i32 0, i32 2
  %1671 = load i32, ptr %1670, align 4, !tbaa !260
  %1672 = load ptr, ptr %3, align 8, !tbaa !5
  %1673 = getelementptr inbounds %struct.ImGuiContext, ptr %1672, i32 0, i32 169
  %1674 = getelementptr inbounds %struct.ImGuiPayload, ptr %1673, i32 0, i32 5
  %1675 = getelementptr inbounds [33 x i8], ptr %1674, i64 0, i64 0
  %1676 = load ptr, ptr %3, align 8, !tbaa !5
  %1677 = getelementptr inbounds %struct.ImGuiContext, ptr %1676, i32 0, i32 169
  %1678 = getelementptr inbounds %struct.ImGuiPayload, ptr %1677, i32 0, i32 1
  %1679 = load i32, ptr %1678, align 8, !tbaa !261
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.553, i32 noundef %1667, i32 noundef %1671, ptr noundef %1675, i32 noundef %1679)
  %1680 = load ptr, ptr %3, align 8, !tbaa !5
  %1681 = getelementptr inbounds %struct.ImGuiContext, ptr %1680, i32 0, i32 169
  %1682 = getelementptr inbounds %struct.ImGuiPayload, ptr %1681, i32 0, i32 2
  %1683 = load i32, ptr %1682, align 4, !tbaa !260
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1683)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.554)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1684 = load ptr, ptr %3, align 8, !tbaa !5
  %1685 = getelementptr inbounds %struct.ImGuiContext, ptr %1684, i32 0, i32 107
  %1686 = load ptr, ptr %1685, align 8, !tbaa !121
  %1687 = icmp ne ptr %1686, null
  br i1 %1687, label %1688, label %1694

1688:                                             ; preds = %1630
  %1689 = load ptr, ptr %3, align 8, !tbaa !5
  %1690 = getelementptr inbounds %struct.ImGuiContext, ptr %1689, i32 0, i32 107
  %1691 = load ptr, ptr %1690, align 8, !tbaa !121
  %1692 = getelementptr inbounds %struct.ImGuiWindow, ptr %1691, i32 0, i32 1
  %1693 = load ptr, ptr %1692, align 8, !tbaa !122
  br label %1695

1694:                                             ; preds = %1630
  br label %1695

1695:                                             ; preds = %1694, %1688
  %1696 = phi ptr [ %1693, %1688 ], [ @.str.263, %1694 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.555, ptr noundef %1696)
  %1697 = load ptr, ptr %3, align 8, !tbaa !5
  %1698 = getelementptr inbounds %struct.ImGuiContext, ptr %1697, i32 0, i32 106
  %1699 = load i32, ptr %1698, align 4, !tbaa !262
  %1700 = load ptr, ptr %3, align 8, !tbaa !5
  %1701 = getelementptr inbounds %struct.ImGuiContext, ptr %1700, i32 0, i32 109
  %1702 = load i32, ptr %1701, align 4, !tbaa !263
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.556, i32 noundef %1699, i32 noundef %1702)
  %1703 = load ptr, ptr %3, align 8, !tbaa !5
  %1704 = getelementptr inbounds %struct.ImGuiContext, ptr %1703, i32 0, i32 106
  %1705 = load i32, ptr %1704, align 4, !tbaa !262
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1705)
  %1706 = load ptr, ptr %3, align 8, !tbaa !5
  %1707 = getelementptr inbounds %struct.ImGuiContext, ptr %1706, i32 0, i32 119
  %1708 = load i32, ptr %1707, align 8, !tbaa !264
  %1709 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1708)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.557, ptr noundef %1709)
  %1710 = load ptr, ptr %3, align 8, !tbaa !5
  %1711 = getelementptr inbounds %struct.ImGuiContext, ptr %1710, i32 0, i32 120
  %1712 = load i64, ptr %1711, align 8, !tbaa !265
  %1713 = load ptr, ptr %3, align 8, !tbaa !5
  %1714 = getelementptr inbounds %struct.ImGuiContext, ptr %1713, i32 0, i32 120
  %1715 = load i64, ptr %1714, align 8, !tbaa !265
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.558, i64 noundef %1712, i64 noundef %1715)
  %1716 = load ptr, ptr %3, align 8, !tbaa !5
  %1717 = getelementptr inbounds %struct.ImGuiContext, ptr %1716, i32 0, i32 2
  %1718 = getelementptr inbounds %struct.ImGuiIO, ptr %1717, i32 0, i32 56
  %1719 = load i8, ptr %1718, align 1, !tbaa !266, !range !13, !noundef !14
  %1720 = trunc i8 %1719 to i1
  %1721 = zext i1 %1720 to i32
  %1722 = load ptr, ptr %3, align 8, !tbaa !5
  %1723 = getelementptr inbounds %struct.ImGuiContext, ptr %1722, i32 0, i32 2
  %1724 = getelementptr inbounds %struct.ImGuiIO, ptr %1723, i32 0, i32 57
  %1725 = load i8, ptr %1724, align 2, !tbaa !267, !range !13, !noundef !14
  %1726 = trunc i8 %1725 to i1
  %1727 = zext i1 %1726 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.559, i32 noundef %1721, i32 noundef %1727)
  %1728 = load ptr, ptr %3, align 8, !tbaa !5
  %1729 = getelementptr inbounds %struct.ImGuiContext, ptr %1728, i32 0, i32 110
  %1730 = load i32, ptr %1729, align 8, !tbaa !268
  %1731 = load ptr, ptr %3, align 8, !tbaa !5
  %1732 = getelementptr inbounds %struct.ImGuiContext, ptr %1731, i32 0, i32 111
  %1733 = load i32, ptr %1732, align 4, !tbaa !269
  %1734 = load ptr, ptr %3, align 8, !tbaa !5
  %1735 = getelementptr inbounds %struct.ImGuiContext, ptr %1734, i32 0, i32 112
  %1736 = load i32, ptr %1735, align 8, !tbaa !270
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.560, i32 noundef %1730, i32 noundef %1733, i32 noundef %1736)
  %1737 = load ptr, ptr %3, align 8, !tbaa !5
  %1738 = getelementptr inbounds %struct.ImGuiContext, ptr %1737, i32 0, i32 113
  %1739 = load i32, ptr %1738, align 4, !tbaa !271
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.561, i32 noundef %1739)
  %1740 = load ptr, ptr %3, align 8, !tbaa !5
  %1741 = getelementptr inbounds %struct.ImGuiContext, ptr %1740, i32 0, i32 102
  %1742 = load i8, ptr %1741, align 8, !tbaa !272, !range !13, !noundef !14
  %1743 = trunc i8 %1742 to i1
  %1744 = zext i1 %1743 to i32
  %1745 = load ptr, ptr %3, align 8, !tbaa !5
  %1746 = getelementptr inbounds %struct.ImGuiContext, ptr %1745, i32 0, i32 103
  %1747 = load i8, ptr %1746, align 1, !tbaa !273, !range !13, !noundef !14
  %1748 = trunc i8 %1747 to i1
  %1749 = zext i1 %1748 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.562, i32 noundef %1744, i32 noundef %1749)
  %1750 = load ptr, ptr %3, align 8, !tbaa !5
  %1751 = getelementptr inbounds %struct.ImGuiContext, ptr %1750, i32 0, i32 108
  %1752 = load i32, ptr %1751, align 8, !tbaa !274
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.563, i32 noundef %1752)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.564)
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #9
  %1753 = load ptr, ptr %3, align 8, !tbaa !5
  %1754 = getelementptr inbounds %struct.ImGuiContext, ptr %1753, i32 0, i32 114
  %1755 = getelementptr inbounds %struct.ImVector.9, ptr %1754, i32 0, i32 0
  %1756 = load i32, ptr %1755, align 8, !tbaa !275
  %1757 = sub nsw i32 %1756, 1
  store i32 %1757, ptr %97, align 4, !tbaa !123
  br label %1758

1758:                                             ; preds = %1776, %1695
  %1759 = load i32, ptr %97, align 4, !tbaa !123
  %1760 = icmp sge i32 %1759, 0
  br i1 %1760, label %1762, label %1761

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

1762:                                             ; preds = %1758
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #9
  %1763 = load ptr, ptr %3, align 8, !tbaa !5
  %1764 = getelementptr inbounds %struct.ImGuiContext, ptr %1763, i32 0, i32 114
  %1765 = load i32, ptr %97, align 4, !tbaa !123
  %1766 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZN8ImVectorI19ImGuiFocusScopeDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1764, i32 noundef %1765)
  store ptr %1766, ptr %98, align 8, !tbaa !5
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef 0.000000e+00)
  %1767 = load ptr, ptr %98, align 8, !tbaa !5
  %1768 = getelementptr inbounds %struct.ImGuiFocusScopeData, ptr %1767, i32 0, i32 0
  %1769 = load i32, ptr %1768, align 4, !tbaa !276
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.565, i32 noundef %1769)
  %1770 = load ptr, ptr %98, align 8, !tbaa !5
  %1771 = getelementptr inbounds %struct.ImGuiFocusScopeData, ptr %1770, i32 0, i32 1
  %1772 = load i32, ptr %1771, align 4, !tbaa !278
  %1773 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %1772)
  %1774 = getelementptr inbounds %struct.ImGuiWindow, ptr %1773, i32 0, i32 1
  %1775 = load ptr, ptr %1774, align 8, !tbaa !122
  call void (ptr, ...) @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef @.str.566, ptr noundef %1775)
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #9
  br label %1776

1776:                                             ; preds = %1762
  %1777 = load i32, ptr %97, align 4, !tbaa !123
  %1778 = add nsw i32 %1777, -1
  store i32 %1778, ptr %97, align 4, !tbaa !123
  br label %1758, !llvm.loop !279

1779:                                             ; preds = %1761
  %1780 = load ptr, ptr %3, align 8, !tbaa !5
  %1781 = getelementptr inbounds %struct.ImGuiContext, ptr %1780, i32 0, i32 152
  %1782 = load ptr, ptr %1781, align 8, !tbaa !280
  %1783 = icmp ne ptr %1782, null
  br i1 %1783, label %1784, label %1790

1784:                                             ; preds = %1779
  %1785 = load ptr, ptr %3, align 8, !tbaa !5
  %1786 = getelementptr inbounds %struct.ImGuiContext, ptr %1785, i32 0, i32 152
  %1787 = load ptr, ptr %1786, align 8, !tbaa !280
  %1788 = getelementptr inbounds %struct.ImGuiWindow, ptr %1787, i32 0, i32 1
  %1789 = load ptr, ptr %1788, align 8, !tbaa !122
  br label %1791

1790:                                             ; preds = %1779
  br label %1791

1791:                                             ; preds = %1790, %1784
  %1792 = phi ptr [ %1789, %1784 ], [ @.str.263, %1790 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.567, ptr noundef %1792)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1793

1793:                                             ; preds = %1791, %1540
  %1794 = load ptr, ptr %5, align 8, !tbaa !5
  %1795 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1794, i32 0, i32 2
  %1796 = load i8, ptr %1795, align 2, !tbaa !120, !range !13, !noundef !14
  %1797 = trunc i8 %1796 to i1
  br i1 %1797, label %1803, label %1798

1798:                                             ; preds = %1793
  %1799 = load ptr, ptr %5, align 8, !tbaa !5
  %1800 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1799, i32 0, i32 3
  %1801 = load i8, ptr %1800, align 1, !tbaa !281, !range !13, !noundef !14
  %1802 = trunc i8 %1801 to i1
  br i1 %1802, label %1803, label %1882

1803:                                             ; preds = %1798, %1793
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #9
  %1804 = load ptr, ptr %3, align 8, !tbaa !5
  %1805 = getelementptr inbounds %struct.ImGuiContext, ptr %1804, i32 0, i32 26
  store ptr %1805, ptr %99, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #9
  %1806 = load ptr, ptr %99, align 8, !tbaa !5
  %1807 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1806)
  store ptr %1807, ptr %100, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #9
  %1808 = load ptr, ptr %99, align 8, !tbaa !5
  %1809 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %1808)
  store ptr %1809, ptr %101, align 8, !tbaa !5
  br label %1810

1810:                                             ; preds = %1878, %1803
  %1811 = load ptr, ptr %100, align 8, !tbaa !5
  %1812 = load ptr, ptr %101, align 8, !tbaa !5
  %1813 = icmp ne ptr %1811, %1812
  br i1 %1813, label %1815, label %1814

1814:                                             ; preds = %1810
  store i32 78, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #9
  br label %1881

1815:                                             ; preds = %1810
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #9
  %1816 = load ptr, ptr %100, align 8, !tbaa !5
  %1817 = load ptr, ptr %1816, align 8, !tbaa !5
  store ptr %1817, ptr %102, align 8, !tbaa !5
  %1818 = load ptr, ptr %102, align 8, !tbaa !5
  %1819 = getelementptr inbounds %struct.ImGuiWindow, ptr %1818, i32 0, i32 37
  %1820 = load i8, ptr %1819, align 1, !tbaa !282, !range !13, !noundef !14
  %1821 = trunc i8 %1820 to i1
  br i1 %1821, label %1823, label %1822

1822:                                             ; preds = %1815
  store i32 79, ptr %6, align 4
  br label %1875

1823:                                             ; preds = %1815
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #9
  %1824 = load ptr, ptr %102, align 8, !tbaa !5
  %1825 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1824)
  store ptr %1825, ptr %103, align 8, !tbaa !5
  %1826 = load ptr, ptr %5, align 8, !tbaa !5
  %1827 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1826, i32 0, i32 2
  %1828 = load i8, ptr %1827, align 2, !tbaa !120, !range !13, !noundef !14
  %1829 = trunc i8 %1828 to i1
  br i1 %1829, label %1830, label %1843

1830:                                             ; preds = %1823
  call void @llvm.lifetime.start.p0(i64 16, ptr %104) #9
  %1831 = load ptr, ptr %102, align 8, !tbaa !5
  %1832 = load ptr, ptr %5, align 8, !tbaa !5
  %1833 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1832, i32 0, i32 9
  %1834 = load i32, ptr %1833, align 4, !tbaa !115
  %1835 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %1831, i32 noundef %1834)
  %1836 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %104, i32 0, i32 0
  %1837 = extractvalue { <2 x float>, <2 x float> } %1835, 0
  store <2 x float> %1837, ptr %1836, align 4
  %1838 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %104, i32 0, i32 1
  %1839 = extractvalue { <2 x float>, <2 x float> } %1835, 1
  store <2 x float> %1839, ptr %1838, align 4
  %1840 = load ptr, ptr %103, align 8, !tbaa !5
  %1841 = getelementptr inbounds %struct.ImRect, ptr %104, i32 0, i32 0
  %1842 = getelementptr inbounds %struct.ImRect, ptr %104, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %1840, ptr noundef nonnull align 4 dereferenceable(8) %1841, ptr noundef nonnull align 4 dereferenceable(8) %1842, 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 %104) #9
  br label %1843

1843:                                             ; preds = %1830, %1823
  %1844 = load ptr, ptr %5, align 8, !tbaa !5
  %1845 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1844, i32 0, i32 3
  %1846 = load i8, ptr %1845, align 1, !tbaa !281, !range !13, !noundef !14
  %1847 = trunc i8 %1846 to i1
  br i1 %1847, label %1848, label %1874

1848:                                             ; preds = %1843
  %1849 = load ptr, ptr %102, align 8, !tbaa !5
  %1850 = getelementptr inbounds %struct.ImGuiWindow, ptr %1849, i32 0, i32 3
  %1851 = load i32, ptr %1850, align 4, !tbaa !167
  %1852 = and i32 %1851, 16777216
  %1853 = icmp ne i32 %1852, 0
  br i1 %1853, label %1874, label %1854

1854:                                             ; preds = %1848
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #9
  %1855 = getelementptr inbounds [32 x i8], ptr %105, i64 0, i64 0
  %1856 = load ptr, ptr %102, align 8, !tbaa !5
  %1857 = getelementptr inbounds %struct.ImGuiWindow, ptr %1856, i32 0, i32 53
  %1858 = load i16, ptr %1857, align 2, !tbaa !283
  %1859 = sext i16 %1858 to i32
  %1860 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %1855, i64 noundef 32, ptr noundef @.str.384, i32 noundef %1859)
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #9
  %1861 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  store float %1861, ptr %106, align 4, !tbaa !215
  %1862 = load ptr, ptr %103, align 8, !tbaa !5
  %1863 = load ptr, ptr %102, align 8, !tbaa !5
  %1864 = getelementptr inbounds %struct.ImGuiWindow, ptr %1863, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #9
  %1865 = load ptr, ptr %102, align 8, !tbaa !5
  %1866 = getelementptr inbounds %struct.ImGuiWindow, ptr %1865, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #9
  %1867 = load float, ptr %106, align 4, !tbaa !215
  %1868 = load float, ptr %106, align 4, !tbaa !215
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %108, float noundef %1867, float noundef %1868)
  %1869 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1866, ptr noundef nonnull align 4 dereferenceable(8) %108)
  store <2 x float> %1869, ptr %107, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(216) %1862, ptr noundef nonnull align 4 dereferenceable(8) %1864, ptr noundef nonnull align 4 dereferenceable(8) %107, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #9
  %1870 = load ptr, ptr %103, align 8, !tbaa !5
  %1871 = load ptr, ptr %102, align 8, !tbaa !5
  %1872 = getelementptr inbounds %struct.ImGuiWindow, ptr %1871, i32 0, i32 7
  %1873 = getelementptr inbounds [32 x i8], ptr %105, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(216) %1870, ptr noundef nonnull align 4 dereferenceable(8) %1872, i32 noundef -1, ptr noundef %1873, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #9
  br label %1874

1874:                                             ; preds = %1854, %1848, %1843
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #9
  store i32 0, ptr %6, align 4
  br label %1875

1875:                                             ; preds = %1874, %1822
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  %1876 = load i32, ptr %6, align 4
  switch i32 %1876, label %1990 [
    i32 0, label %1877
    i32 79, label %1878
  ]

1877:                                             ; preds = %1875
  br label %1878

1878:                                             ; preds = %1877, %1875
  %1879 = load ptr, ptr %100, align 8, !tbaa !5
  %1880 = getelementptr inbounds ptr, ptr %1879, i32 1
  store ptr %1880, ptr %100, align 8, !tbaa !5
  br label %1810

1881:                                             ; preds = %1814
  br label %1882

1882:                                             ; preds = %1881, %1798
  %1883 = load ptr, ptr %5, align 8, !tbaa !5
  %1884 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1883, i32 0, i32 4
  %1885 = load i8, ptr %1884, align 4, !tbaa !130, !range !13, !noundef !14
  %1886 = trunc i8 %1885 to i1
  br i1 %1886, label %1887, label %1986

1887:                                             ; preds = %1882
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #9
  store i32 0, ptr %109, align 4, !tbaa !123
  br label %1888

1888:                                             ; preds = %1982, %1887
  %1889 = load i32, ptr %109, align 4, !tbaa !123
  %1890 = load ptr, ptr %3, align 8, !tbaa !5
  %1891 = getelementptr inbounds %struct.ImGuiContext, ptr %1890, i32 0, i32 187
  %1892 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1891)
  %1893 = icmp slt i32 %1889, %1892
  br i1 %1893, label %1895, label %1894

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

1895:                                             ; preds = %1888
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #9
  %1896 = load ptr, ptr %3, align 8, !tbaa !5
  %1897 = getelementptr inbounds %struct.ImGuiContext, ptr %1896, i32 0, i32 187
  %1898 = load i32, ptr %109, align 4, !tbaa !123
  %1899 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1897, i32 noundef %1898)
  store ptr %1899, ptr %110, align 8, !tbaa !5
  %1900 = load ptr, ptr %110, align 8, !tbaa !5
  %1901 = icmp eq ptr %1900, null
  br i1 %1901, label %1911, label %1902

1902:                                             ; preds = %1895
  %1903 = load ptr, ptr %110, align 8, !tbaa !5
  %1904 = getelementptr inbounds %struct.ImGuiTable, ptr %1903, i32 0, i32 12
  %1905 = load i32, ptr %1904, align 8, !tbaa !131
  %1906 = load ptr, ptr %3, align 8, !tbaa !5
  %1907 = getelementptr inbounds %struct.ImGuiContext, ptr %1906, i32 0, i32 12
  %1908 = load i32, ptr %1907, align 8, !tbaa !142
  %1909 = sub nsw i32 %1908, 1
  %1910 = icmp slt i32 %1905, %1909
  br i1 %1910, label %1911, label %1912

1911:                                             ; preds = %1902, %1895
  store i32 82, ptr %6, align 4
  br label %1979

1912:                                             ; preds = %1902
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #9
  %1913 = load ptr, ptr %110, align 8, !tbaa !5
  %1914 = getelementptr inbounds %struct.ImGuiTable, ptr %1913, i32 0, i32 55
  %1915 = load ptr, ptr %1914, align 8, !tbaa !143
  %1916 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1915)
  store ptr %1916, ptr %111, align 8, !tbaa !5
  %1917 = load ptr, ptr %5, align 8, !tbaa !5
  %1918 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1917, i32 0, i32 10
  %1919 = load i32, ptr %1918, align 4, !tbaa !116
  %1920 = icmp sge i32 %1919, 6
  br i1 %1920, label %1921, label %1965

1921:                                             ; preds = %1912
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #9
  store i32 0, ptr %112, align 4, !tbaa !123
  br label %1922

1922:                                             ; preds = %1961, %1921
  %1923 = load i32, ptr %112, align 4, !tbaa !123
  %1924 = load ptr, ptr %110, align 8, !tbaa !5
  %1925 = getelementptr inbounds %struct.ImGuiTable, ptr %1924, i32 0, i32 13
  %1926 = load i32, ptr %1925, align 4, !tbaa !146
  %1927 = icmp slt i32 %1923, %1926
  br i1 %1927, label %1929, label %1928

1928:                                             ; preds = %1922
  store i32 83, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #9
  br label %1964

1929:                                             ; preds = %1922
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #9
  %1930 = load ptr, ptr %110, align 8, !tbaa !5
  %1931 = load ptr, ptr %5, align 8, !tbaa !5
  %1932 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1931, i32 0, i32 10
  %1933 = load i32, ptr %1932, align 4, !tbaa !116
  %1934 = load i32, ptr %112, align 4, !tbaa !123
  %1935 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1930, i32 noundef %1933, i32 noundef %1934)
  %1936 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %113, i32 0, i32 0
  %1937 = extractvalue { <2 x float>, <2 x float> } %1935, 0
  store <2 x float> %1937, ptr %1936, align 4
  %1938 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %113, i32 0, i32 1
  %1939 = extractvalue { <2 x float>, <2 x float> } %1935, 1
  store <2 x float> %1939, ptr %1938, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #9
  %1940 = load ptr, ptr %110, align 8, !tbaa !5
  %1941 = getelementptr inbounds %struct.ImGuiTable, ptr %1940, i32 0, i32 70
  %1942 = load i16, ptr %1941, align 2, !tbaa !284
  %1943 = sext i16 %1942 to i32
  %1944 = load i32, ptr %112, align 4, !tbaa !123
  %1945 = icmp eq i32 %1943, %1944
  %1946 = zext i1 %1945 to i64
  %1947 = select i1 %1945, i32 -8323073, i32 -8388353
  store i32 %1947, ptr %114, align 4, !tbaa !123
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #9
  %1948 = load ptr, ptr %110, align 8, !tbaa !5
  %1949 = getelementptr inbounds %struct.ImGuiTable, ptr %1948, i32 0, i32 70
  %1950 = load i16, ptr %1949, align 2, !tbaa !284
  %1951 = sext i16 %1950 to i32
  %1952 = load i32, ptr %112, align 4, !tbaa !123
  %1953 = icmp eq i32 %1951, %1952
  %1954 = zext i1 %1953 to i64
  %1955 = select i1 %1953, float 3.000000e+00, float 1.000000e+00
  store float %1955, ptr %115, align 4, !tbaa !215
  %1956 = load ptr, ptr %111, align 8, !tbaa !5
  %1957 = getelementptr inbounds %struct.ImRect, ptr %113, i32 0, i32 0
  %1958 = getelementptr inbounds %struct.ImRect, ptr %113, i32 0, i32 1
  %1959 = load i32, ptr %114, align 4, !tbaa !123
  %1960 = load float, ptr %115, align 4, !tbaa !215
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %1956, ptr noundef nonnull align 4 dereferenceable(8) %1957, ptr noundef nonnull align 4 dereferenceable(8) %1958, i32 noundef %1959, float noundef 0.000000e+00, i32 noundef 0, float noundef %1960)
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #9
  br label %1961

1961:                                             ; preds = %1929
  %1962 = load i32, ptr %112, align 4, !tbaa !123
  %1963 = add nsw i32 %1962, 1
  store i32 %1963, ptr %112, align 4, !tbaa !123
  br label %1922, !llvm.loop !285

1964:                                             ; preds = %1928
  br label %1978

1965:                                             ; preds = %1912
  call void @llvm.lifetime.start.p0(i64 16, ptr %116) #9
  %1966 = load ptr, ptr %110, align 8, !tbaa !5
  %1967 = load ptr, ptr %5, align 8, !tbaa !5
  %1968 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1967, i32 0, i32 10
  %1969 = load i32, ptr %1968, align 4, !tbaa !116
  %1970 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1966, i32 noundef %1969, i32 noundef -1)
  %1971 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %116, i32 0, i32 0
  %1972 = extractvalue { <2 x float>, <2 x float> } %1970, 0
  store <2 x float> %1972, ptr %1971, align 4
  %1973 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %116, i32 0, i32 1
  %1974 = extractvalue { <2 x float>, <2 x float> } %1970, 1
  store <2 x float> %1974, ptr %1973, align 4
  %1975 = load ptr, ptr %111, align 8, !tbaa !5
  %1976 = getelementptr inbounds %struct.ImRect, ptr %116, i32 0, i32 0
  %1977 = getelementptr inbounds %struct.ImRect, ptr %116, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %1975, ptr noundef nonnull align 4 dereferenceable(8) %1976, ptr noundef nonnull align 4 dereferenceable(8) %1977, 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 %116) #9
  br label %1978

1978:                                             ; preds = %1965, %1964
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  store i32 0, ptr %6, align 4
  br label %1979

1979:                                             ; preds = %1978, %1911
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #9
  %1980 = load i32, ptr %6, align 4
  switch i32 %1980, label %1990 [
    i32 0, label %1981
    i32 82, label %1982
  ]

1981:                                             ; preds = %1979
  br label %1982

1982:                                             ; preds = %1981, %1979
  %1983 = load i32, ptr %109, align 4, !tbaa !123
  %1984 = add nsw i32 %1983, 1
  store i32 %1984, ptr %109, align 4, !tbaa !123
  br label %1888, !llvm.loop !286

1985:                                             ; preds = %1894
  br label %1986

1986:                                             ; preds = %1985, %1882
  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 %1987

1987:                                             ; preds = %1986, %146
  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
  %1988 = load i32, ptr %6, align 4
  switch i32 %1988, label %1990 [
    i32 0, label %1989
    i32 1, label %1989
  ]

1989:                                             ; preds = %1987, %1987
  ret void

1990:                                             ; preds = %1987, %1979, %1875, %1455, %529
  unreachable
}

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui25DebugNodeMultiSelectStateEP21ImGuiMultiSelectState(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: 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

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 216}
!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, !19, i64 128, !19, i64 132, !12, i64 136, !12, i64 140, !12, i64 144, !12, i64 148, !18, i64 152, !18, i64 160, !18, i64 168, !18, i64 176, !18, i64 184, !18, i64 192, !11, i64 200, !11, i64 201, !11, i64 202, !11, i64 203, !11, i64 204, !11, i64 205, !11, i64 206, !11, i64 207, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !7, i64 214, !7, i64 215, !20, i64 216, !20, i64 218, !20, i64 220, !20, i64 222, !20, i64 224, !7, i64 226, !7, i64 227, !11, i64 228, !21, i64 232, !7, i64 236, !7, i64 237, !7, i64 238, !7, i64 239, !12, i64 240, !12, i64 241, !12, i64 242, !18, i64 244, !18, i64 252, !22, i64 264, !23, i64 280, !29, i64 512, !29, i64 528, !29, i64 544, !29, i64 560, !29, i64 576, !29, i64 592, !29, i64 608, !30, i64 624, !30, i64 628, !12, i64 632, !19, i64 636, !19, i64 640, !31, i64 648, !33, i64 664, !19, i64 680, !12, i64 684, !6, i64 688, !34, i64 696, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !7, i64 976, !7, i64 984, !7, i64 1016, !12, i64 1032, !12, i64 1036, !12, i64 1040, !11, i64 1044}
!18 = !{!"_ZTS6ImVec2", !19, i64 0, !19, i64 4}
!19 = !{!"float", !7, i64 0}
!20 = !{!"short", !7, i64 0}
!21 = !{!"_ZTS8ImGuiDir", !7, i64 0}
!22 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!23 = !{!"_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, !24, i64 68, !24, i64 72, !24, i64 76, !18, i64 80, !25, i64 88, !20, i64 92, !20, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !18, i64 100, !26, i64 108, !12, i64 136, !12, i64 140, !27, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !19, i64 192, !19, i64 196, !28, i64 200, !28, i64 216}
!24 = !{!"_ZTS6ImVec1", !19, i64 0}
!25 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!26 = !{!"_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}
!27 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!28 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!29 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!30 = !{!"_ZTS8ImVec2ih", !20, i64 0, !20, i64 2}
!31 = !{!"_ZTS12ImGuiStorage", !32, i64 0}
!32 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !12, i64 0, !12, i64 4, !6, i64 8}
!33 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!34 = !{!"_ZTS10ImDrawList", !35, i64 0, !36, i64 16, !37, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !38, i64 80, !39, i64 96, !42, i64 128, !44, i64 152, !45, i64 168, !46, i64 184, !19, i64 200, !6, i64 208}
!35 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS15ImDrawCmdHeader", !40, i64 0, !41, i64 16, !12, i64 24}
!40 = !{!"_ZTS6ImVec4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!41 = !{!"long long", !7, i64 0}
!42 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !43, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorIyE", !12, i64 0, !12, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!47 = !{!7, !7, i64 0}
!48 = !{!49, !19, i64 184}
!49 = !{!"_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, !11, i64 88, !11, i64 89, !11, i64 90, !11, i64 91, !11, i64 92, !11, i64 93, !11, i64 94, !11, i64 95, !11, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !11, i64 124, !11, i64 125, !11, i64 126, !11, i64 127, !11, i64 128, !11, i64 129, !11, i64 130, !11, i64 131, !11, i64 132, !11, i64 133, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !11, i64 176, !11, i64 177, !11, i64 178, !11, i64 179, !11, i64 180, !11, i64 181, !11, i64 182, !19, i64 184, !12, i64 188, !12, i64 192, !12, i64 196, !12, i64 200, !18, i64 204, !6, i64 216, !18, i64 224, !7, i64 232, !19, i64 240, !19, i64 244, !50, i64 248, !11, i64 252, !11, i64 253, !11, i64 254, !11, i64 255, !12, i64 256, !7, i64 260, !11, i64 2724, !18, i64 2728, !7, i64 2736, !7, i64 2776, !7, i64 2816, !7, i64 2821, !7, i64 2826, !7, i64 2836, !7, i64 2846, !7, i64 2851, !7, i64 2856, !11, i64 2861, !11, i64 2862, !7, i64 2864, !7, i64 2884, !7, i64 2904, !19, i64 2924, !11, i64 2928, !11, i64 2929, !20, i64 2930, !36, i64 2936, !6, i64 2952, !6, i64 2960, !6, i64 2968}
!50 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!51 = !{!49, !12, i64 188}
!52 = !{!49, !12, i64 192}
!53 = !{!49, !12, i64 196}
!54 = !{!55, !12, i64 10064}
!55 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !49, i64 8, !56, i64 2984, !57, i64 3056, !6, i64 4216, !19, i64 4224, !19, i64 4228, !19, i64 4232, !19, i64 4236, !58, i64 4240, !59, i64 4776, !12, i64 4784, !12, i64 4788, !12, i64 4792, !12, i64 4796, !11, i64 4800, !11, i64 4801, !11, i64 4802, !11, i64 4803, !6, i64 4808, !7, i64 4816, !60, i64 4832, !60, i64 4848, !50, i64 4864, !12, i64 4868, !27, i64 4872, !27, i64 4888, !27, i64 4904, !61, i64 4920, !31, i64 4936, !12, i64 4952, !18, i64 4956, !12, i64 4964, !6, i64 4968, !6, i64 4976, !6, i64 4984, !6, i64 4992, !6, i64 5000, !6, i64 5008, !18, i64 5016, !12, i64 5024, !12, i64 5028, !19, i64 5032, !18, i64 5036, !18, i64 5044, !12, i64 5052, !12, i64 5056, !12, i64 5060, !12, i64 5064, !12, i64 5068, !19, i64 5072, !19, i64 5076, !11, i64 5080, !11, i64 5081, !11, i64 5082, !12, i64 5084, !12, i64 5088, !19, i64 5092, !11, i64 5096, !11, i64 5097, !11, i64 5098, !11, i64 5099, !11, i64 5100, !11, i64 5101, !11, i64 5102, !12, i64 5103, !18, i64 5104, !6, i64 5112, !62, i64 5120, !12, i64 5124, !63, i64 5128, !64, i64 5140, !12, i64 5148, !19, i64 5152, !59, i64 5160, !59, i64 5168, !59, i64 5176, !65, i64 5184, !7, i64 5204, !66, i64 7056, !12, i64 7400, !11, i64 7404, !12, i64 7408, !12, i64 7412, !12, i64 7416, !12, i64 7420, !68, i64 7424, !69, i64 7480, !70, i64 7560, !11, i64 7672, !12, i64 7676, !71, i64 7680, !72, i64 7696, !73, i64 7712, !74, i64 7728, !75, i64 7744, !76, i64 7760, !77, i64 7776, !77, i64 7792, !78, i64 7808, !79, i64 7824, !11, i64 7840, !11, i64 7841, !11, i64 7842, !11, i64 7843, !12, i64 7844, !6, i64 7848, !12, i64 7856, !25, i64 7860, !12, i64 7864, !12, i64 7868, !12, i64 7872, !12, i64 7876, !74, i64 7880, !12, i64 7896, !19, i64 7900, !12, i64 7904, !12, i64 7908, !62, i64 7912, !41, i64 7920, !7, i64 7928, !11, i64 7929, !11, i64 7930, !11, i64 7931, !80, i64 7936, !11, i64 7992, !11, i64 7993, !11, i64 7994, !12, i64 7996, !12, i64 8000, !12, i64 8004, !21, i64 8008, !21, i64 8012, !21, i64 8016, !29, i64 8020, !29, i64 8036, !12, i64 8052, !12, i64 8056, !12, i64 8060, !80, i64 8064, !80, i64 8120, !80, i64 8176, !80, i64 8232, !12, i64 8288, !12, i64 8292, !12, i64 8296, !12, i64 8300, !11, i64 8304, !11, i64 8305, !12, i64 8308, !12, i64 8312, !6, i64 8320, !6, i64 8328, !6, i64 8336, !19, i64 8344, !19, i64 8348, !11, i64 8352, !81, i64 8356, !18, i64 8360, !18, i64 8368, !19, i64 8376, !11, i64 8380, !11, i64 8381, !11, i64 8382, !12, i64 8384, !12, i64 8388, !12, i64 8392, !82, i64 8400, !29, i64 8464, !29, i64 8480, !12, i64 8496, !12, i64 8500, !19, i64 8504, !12, i64 8508, !12, i64 8512, !12, i64 8516, !12, i64 8520, !46, i64 8528, !7, i64 8544, !12, i64 8560, !83, i64 8568, !6, i64 8584, !12, i64 8592, !12, i64 8596, !84, i64 8600, !85, i64 8616, !28, i64 8656, !43, i64 8672, !6, i64 8688, !87, i64 8696, !89, i64 8736, !90, i64 8752, !91, i64 8768, !6, i64 8872, !12, i64 8880, !92, i64 8888, !93, i64 8904, !12, i64 8944, !12, i64 8948, !19, i64 8952, !19, i64 8956, !12, i64 8960, !12, i64 8964, !12, i64 8968, !19, i64 8972, !18, i64 8976, !95, i64 8984, !97, i64 9104, !98, i64 9128, !12, i64 9248, !64, i64 9252, !12, i64 9260, !12, i64 9264, !12, i64 9268, !12, i64 9272, !12, i64 9276, !19, i64 9280, !19, i64 9284, !12, i64 9288, !40, i64 9292, !100, i64 9308, !29, i64 9356, !11, i64 9372, !20, i64 9374, !19, i64 9376, !19, i64 9380, !19, i64 9384, !11, i64 9388, !11, i64 9389, !19, i64 9392, !19, i64 9396, !19, i64 9400, !20, i64 9404, !20, i64 9406, !6, i64 9408, !96, i64 9416, !22, i64 9432, !101, i64 9448, !103, i64 9552, !103, i64 9568, !11, i64 9584, !19, i64 9588, !104, i64 9592, !105, i64 9608, !106, i64 9624, !107, i64 9640, !108, i64 9656, !12, i64 9672, !7, i64 9680, !11, i64 9760, !12, i64 9764, !6, i64 9768, !6, i64 9776, !104, i64 9784, !6, i64 9800, !6, i64 9808, !19, i64 9816, !11, i64 9820, !12, i64 9824, !12, i64 9828, !12, i64 9832, !6, i64 9840, !6, i64 9848, !18, i64 9856, !11, i64 9864, !12, i64 9868, !109, i64 9872, !6, i64 9896, !12, i64 9904, !12, i64 9908, !104, i64 9912, !110, i64 9928, !12, i64 9952, !12, i64 9956, !7, i64 9960, !7, i64 9961, !11, i64 9962, !12, i64 9964, !7, i64 9968, !11, i64 9969, !7, i64 9970, !12, i64 9972, !19, i64 9976, !40, i64 9980, !10, i64 9996, !111, i64 10024, !113, i64 10064, !7, i64 10124, !12, i64 10364, !12, i64 10368, !19, i64 10372, !12, i64 10376, !12, i64 10380, !12, i64 10384, !96, i64 10392, !7, i64 10408}
!56 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !20, i64 56, !6, i64 64}
!57 = !{!"_ZTS10ImGuiStyle", !19, i64 0, !19, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !18, i64 24, !18, i64 32, !21, 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, !19, i64 156, !18, i64 160, !21, i64 168, !18, i64 172, !18, i64 180, !19, i64 188, !18, i64 192, !18, i64 200, !18, i64 208, !18, i64 216, !19, i64 224, !11, i64 228, !11, i64 229, !11, i64 230, !19, i64 232, !19, i64 236, !7, i64 240, !19, i64 1136, !19, i64 1140, !19, i64 1144, !12, i64 1148, !12, i64 1152}
!58 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !6, i64 16, !19, i64 24, !19, i64 28, !19, i64 32, !19, i64 36, !40, i64 40, !12, i64 56, !38, i64 64, !7, i64 80, !19, i64 464, !7, i64 468}
!59 = !{!"double", !7, i64 0}
!60 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!62 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!63 = !{!"_ZTS24ImGuiDeactivatedItemData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!64 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!65 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!66 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !67, i64 312, !67, i64 328}
!67 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!68 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !12, i64 8, !41, i64 16, !19, i64 24, !12, i64 28, !12, i64 32, !11, i64 36, !7, i64 37, !64, i64 38, !12, i64 48}
!69 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !29, i64 12, !29, i64 28, !29, i64 44, !29, i64 60, !12, i64 76}
!70 = !{!"_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, !29, i64 64, !6, i64 80, !6, i64 88, !19, i64 96, !18, i64 100, !12, i64 108}
!71 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!80 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !29, i64 16, !12, i64 32, !19, i64 36, !19, i64 40, !19, i64 44, !41, i64 48}
!81 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!82 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !7, i64 24, !11, i64 57, !11, i64 58}
!83 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_ZTS6ImPoolI10ImGuiTableE", !86, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!86 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!87 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !88, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!88 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!89 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!90 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!91 = !{!"_ZTS19ImGuiBoxSelectState", !12, i64 0, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !11, i64 8, !12, i64 9, !18, i64 12, !18, i64 20, !18, i64 28, !6, i64 40, !11, i64 48, !29, i64 52, !29, i64 68, !29, i64 84}
!92 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!93 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !94, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!94 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !12, i64 0, !12, i64 4, !6, i64 8}
!95 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !6, i64 32, !96, i64 40, !96, i64 56, !96, i64 72, !12, i64 88, !18, i64 92, !19, i64 100, !11, i64 104, !11, i64 105, !11, i64 106, !11, i64 107, !12, i64 108, !12, i64 112}
!96 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!97 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !96, i64 8}
!98 = !{!"_ZTS6ImFont", !28, i64 0, !19, i64 16, !19, i64 20, !36, i64 24, !99, 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}
!99 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!100 = !{!"_ZTS21ImGuiComboPreviewData", !29, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !19, i64 40, !12, i64 44}
!101 = !{!"_ZTS22ImGuiTypingSelectState", !102, i64 0, !7, i64 24, !12, i64 88, !12, i64 92, !19, i64 96, !11, i64 100}
!102 = !{!"_ZTS24ImGuiTypingSelectRequest", !12, i64 0, !12, i64 4, !6, i64 8, !11, i64 16, !11, i64 17, !7, i64 18}
!103 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !18, i64 4, !19, i64 12}
!104 = !{!"_ZTS15ImGuiTextBuffer", !96, i64 0}
!105 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!106 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !96, i64 0}
!107 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !96, i64 0}
!108 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!109 = !{!"_ZTS23ImGuiErrorRecoveryState", !20, i64 0, !20, i64 2, !20, i64 4, !20, i64 6, !20, i64 8, !20, i64 10, !20, i64 12, !20, i64 14, !20, i64 16, !20, i64 18, !20, i64 20}
!110 = !{!"_ZTS14ImGuiTextIndex", !75, i64 0, !12, i64 16}
!111 = !{!"_ZTS16ImGuiIDStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !112, i64 16, !11, i64 32, !19, i64 36}
!112 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!113 = !{!"_ZTS19ImGuiDebugAllocInfo", !12, i64 0, !12, i64 4, !20, i64 8, !7, i64 12}
!114 = !{!55, !12, i64 10068}
!115 = !{!10, !12, i64 12}
!116 = !{!10, !12, i64 16}
!117 = !{!18, !19, i64 0}
!118 = !{!55, !19, i64 3256}
!119 = !{!55, !11, i64 9969}
!120 = !{!10, !11, i64 2}
!121 = !{!55, !6, i64 7848}
!122 = !{!17, !6, i64 8}
!123 = !{!12, !12, i64 0}
!124 = !{!29, !19, i64 0}
!125 = !{!29, !19, i64 4}
!126 = !{!29, !19, i64 8}
!127 = !{!29, !19, i64 12}
!128 = distinct !{!128, !129}
!129 = !{!"llvm.loop.mustprogress"}
!130 = !{!10, !11, i64 4}
!131 = !{!132, !12, i64 104}
!132 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !133, i64 24, !134, i64 40, !135, i64 56, !6, i64 72, !6, i64 80, !6, i64 88, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !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, !29, i64 240, !29, i64 256, !29, i64 272, !29, i64 288, !29, i64 304, !29, i64 320, !29, i64 336, !29, i64 352, !29, i64 368, !6, i64 384, !6, i64 392, !104, i64 400, !6, i64 416, !136, i64 424, !137, i64 448, !138, i64 464, !140, i64 480, !141, 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}
!133 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!134 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!135 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!136 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !19, i64 4, !19, i64 8, !19, i64 12, !12, i64 16, !12, i64 20}
!137 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!138 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !20, i64 4, !20, i64 6, !139, i64 8}
!139 = !{!"_ZTS18ImGuiSortDirection", !7, i64 0}
!140 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!141 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!142 = !{!55, !12, i64 4784}
!143 = !{!132, !6, i64 384}
!144 = !{!132, !6, i64 392}
!145 = !{!132, !12, i64 0}
!146 = !{!132, !12, i64 108}
!147 = distinct !{!147, !129}
!148 = distinct !{!148, !129}
!149 = distinct !{!149, !129}
!150 = !{!10, !11, i64 7}
!151 = !{!55, !12, i64 4872}
!152 = !{!17, !12, i64 632}
!153 = !{!27, !6, i64 8}
!154 = !{!27, !12, i64 0}
!155 = !{!156, !12, i64 96}
!156 = !{!"_ZTS14ImGuiViewportP", !157, i64 0, !7, i64 56, !7, i64 64, !158, i64 80, !160, i64 144, !18, i64 176, !18, i64 184, !18, i64 192, !18, i64 200}
!157 = !{!"_ZTS13ImGuiViewport", !12, i64 0, !12, i64 4, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !6, i64 40, !6, i64 48}
!158 = !{!"_ZTS10ImDrawData", !11, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !159, i64 16, !18, i64 32, !18, i64 40, !18, i64 48, !6, i64 56}
!159 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!160 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0, !159, i64 16}
!161 = !{!55, !12, i64 7824}
!162 = !{!10, !12, i64 24}
!163 = !{!55, !12, i64 7776}
!164 = !{!165, !6, i64 8}
!165 = !{!"_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}
!166 = !{!165, !12, i64 0}
!167 = !{!17, !12, i64 20}
!168 = !{!165, !6, i64 16}
!169 = !{!17, !6, i64 912}
!170 = distinct !{!170, !129}
!171 = distinct !{!171, !129}
!172 = !{!55, !6, i64 56}
!173 = !{!174, !12, i64 88}
!174 = !{!"_ZTS11ImFontAtlas", !12, i64 0, !41, 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, !73, i64 88, !175, i64 104, !176, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!175 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!176 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!177 = !{!91, !12, i64 0}
!178 = !{!91, !11, i64 5}
!179 = !{!91, !11, i64 4}
!180 = distinct !{!180, !129}
!181 = !{!55, !6, i64 32}
!182 = !{!55, !19, i64 9588}
!183 = !{!55, !12, i64 9608}
!184 = !{!185, !6, i64 0}
!185 = !{!"_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}
!186 = distinct !{!186, !129}
!187 = distinct !{!187, !129}
!188 = !{!55, !12, i64 9592}
!189 = !{!113, !12, i64 0}
!190 = !{!113, !12, i64 4}
!191 = !{!55, !11, i64 4802}
!192 = !{!113, !20, i64 8}
!193 = !{!194, !12, i64 0}
!194 = !{!"_ZTS20ImGuiDebugAllocEntry", !12, i64 0, !20, i64 4, !20, i64 6}
!195 = !{!194, !20, i64 4}
!196 = !{!194, !20, i64 6}
!197 = distinct !{!197, !129}
!198 = !{!81, !81, i64 0}
!199 = !{!200, !19, i64 4}
!200 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!201 = distinct !{!201, !129}
!202 = distinct !{!202, !129}
!203 = distinct !{!203, !129}
!204 = !{!49, !11, i64 252}
!205 = !{!49, !11, i64 253}
!206 = !{!49, !11, i64 254}
!207 = !{!49, !11, i64 255}
!208 = !{!49, !12, i64 2936}
!209 = !{!20, !20, i64 0}
!210 = distinct !{!210, !129}
!211 = !{!49, !19, i64 224}
!212 = !{!49, !19, i64 228}
!213 = !{!49, !19, i64 204}
!214 = !{!49, !19, i64 208}
!215 = !{!19, !19, i64 0}
!216 = distinct !{!216, !129}
!217 = distinct !{!217, !129}
!218 = distinct !{!218, !129}
!219 = !{!49, !19, i64 240}
!220 = !{!55, !19, i64 8972}
!221 = !{!49, !50, i64 248}
!222 = !{!49, !19, i64 2924}
!223 = !{!55, !6, i64 5008}
!224 = !{!55, !19, i64 5032}
!225 = !{!55, !19, i64 5044}
!226 = !{!55, !19, i64 5048}
!227 = !{!228, !12, i64 0}
!228 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!229 = !{!228, !11, i64 9}
!230 = !{!228, !11, i64 8}
!231 = distinct !{!231, !129}
!232 = !{!233, !20, i64 2}
!233 = !{!"_ZTS19ImGuiKeyRoutingData", !20, i64 0, !20, i64 2, !7, i64 4, !7, i64 5, !12, i64 8, !12, i64 12}
!234 = !{!233, !12, i64 8}
!235 = !{!233, !7, i64 4}
!236 = !{!55, !11, i64 136}
!237 = !{!55, !12, i64 7408}
!238 = !{!233, !20, i64 0}
!239 = distinct !{!239, !129}
!240 = distinct !{!240, !129}
!241 = !{!55, !11, i64 7404}
!242 = !{!55, !12, i64 7400}
!243 = !{!55, !6, i64 4976}
!244 = !{!17, !6, i64 928}
!245 = !{!55, !6, i64 4984}
!246 = !{!55, !6, i64 5000}
!247 = !{!55, !12, i64 5084}
!248 = !{!55, !12, i64 5124}
!249 = !{!55, !19, i64 5092}
!250 = !{!55, !11, i64 5097}
!251 = !{!55, !62, i64 5120}
!252 = !{!55, !6, i64 5112}
!253 = !{!55, !12, i64 5064}
!254 = !{!55, !19, i64 5072}
!255 = !{!55, !11, i64 5080}
!256 = !{!55, !12, i64 8944}
!257 = !{!55, !19, i64 8952}
!258 = !{!55, !19, i64 8956}
!259 = !{!55, !11, i64 8380}
!260 = !{!55, !12, i64 8412}
!261 = !{!55, !12, i64 8408}
!262 = !{!55, !12, i64 7844}
!263 = !{!55, !25, i64 7860}
!264 = !{!55, !62, i64 7912}
!265 = !{!55, !41, i64 7920}
!266 = !{!55, !11, i64 189}
!267 = !{!55, !11, i64 190}
!268 = !{!55, !12, i64 7864}
!269 = !{!55, !12, i64 7868}
!270 = !{!55, !12, i64 7872}
!271 = !{!55, !12, i64 7876}
!272 = !{!55, !11, i64 7840}
!273 = !{!55, !11, i64 7841}
!274 = !{!55, !12, i64 7856}
!275 = !{!55, !12, i64 7880}
!276 = !{!277, !12, i64 0}
!277 = !{!"_ZTS19ImGuiFocusScopeData", !12, i64 0, !12, i64 4}
!278 = !{!277, !12, i64 4}
!279 = distinct !{!279, !129}
!280 = !{!55, !6, i64 8320}
!281 = !{!10, !11, i64 3}
!282 = !{!17, !11, i64 203}
!283 = !{!17, !20, i64 222}
!284 = !{!132, !20, i64 522}
!285 = distinct !{!285, !129}
!286 = distinct !{!286, !129}


; 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.14 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.300 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.397 = 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.415 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.422 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.423 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [64 x i8], align 16
@.str.441 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [6 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 [7 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.494 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.520 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.529 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.530 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.531 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.532 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.533 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.535 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.536 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.537 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.538 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.539 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.540 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.541 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.542 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.543 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.544 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.545 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.546 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.547 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.548 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.549 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.550 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.551 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.552 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.553 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.554 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.555 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.556 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.557 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.558 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.559 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.560 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.561 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.562 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.563 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.564 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.565 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.566 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.567 = 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(216), 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(216), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef, float noundef) local_unnamed_addr #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 @_ZN5ImGui15GetKeyChordNameEi(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 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 nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef) local_unnamed_addr #1

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

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

; 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

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

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

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

declare void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #6

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

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

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

declare void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef) local_unnamed_addr #6

; 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 @_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 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(216), 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 @_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 9996
  %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 9997
  %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.392, 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 216
  %47 = load i16, ptr %46, align 8, !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 %1179

50:                                               ; preds = %44
  tail call void @_ZN5ImGui19DebugBreakClearDataEv()
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.393, ptr noundef nonnull @.str.108, i32 noundef 19170)
  %51 = getelementptr inbounds i8, ptr %32, i64 4816
  %52 = load i8, ptr %51, align 8, !tbaa !47
  %.not = icmp eq i8 %52, 0
  br i1 %.not, label %54, label %53

53:                                               ; preds = %50
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.394, ptr noundef nonnull %51)
  br label %54

54:                                               ; preds = %53, %50
  %55 = getelementptr inbounds i8, ptr %32, i64 192
  %56 = load float, ptr %55, align 8, !tbaa !48
  %57 = fdiv float 1.000000e+03, %56
  %58 = fpext float %57 to double
  %59 = fpext float %56 to double
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.395, double noundef %58, double noundef %59)
  %60 = getelementptr inbounds i8, ptr %32, i64 196
  %61 = load i32, ptr %60, align 4, !tbaa !51
  %62 = getelementptr inbounds i8, ptr %32, i64 200
  %63 = load i32, ptr %62, align 8, !tbaa !52
  %64 = sdiv i32 %63, 3
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.396, i32 noundef %61, i32 noundef %63, i32 noundef %64)
  %65 = getelementptr inbounds i8, ptr %32, i64 204
  %66 = load i32, ptr %65, align 4, !tbaa !53
  %67 = getelementptr inbounds i8, ptr %32, i64 10064
  %68 = load i32, ptr %67, align 8, !tbaa !54
  %69 = getelementptr inbounds i8, ptr %32, i64 10068
  %70 = load i32, ptr %69, align 4, !tbaa !114
  %71 = sub nsw i32 %68, %70
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.397, i32 noundef %66, i32 noundef %71)
  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)
  %72 = getelementptr inbounds i8, ptr %32, i64 10008
  %73 = load i32, ptr %72, align 4, !tbaa !115
  %74 = icmp slt i32 %73, 0
  br i1 %74, label %75, label %76

75:                                               ; preds = %54
  store i32 4, ptr %72, align 4, !tbaa !115
  br label %76

76:                                               ; preds = %75, %54
  %77 = getelementptr inbounds i8, ptr %32, i64 10012
  %78 = load i32, ptr %77, align 4, !tbaa !116
  %79 = icmp slt i32 %78, 0
  br i1 %79, label %80, label %81

80:                                               ; preds = %76
  store i32 2, ptr %77, align 4, !tbaa !116
  br label %81

81:                                               ; preds = %80, %76
  %82 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.415)
  br i1 %82, label %83, label %388

83:                                               ; preds = %81
  %84 = tail call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef nonnull @.str.417, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %84, i64 0
  %85 = getelementptr inbounds i8, ptr %32, i64 3256
  %86 = load float, ptr %85, align 8, !tbaa !117
  %87 = fadd float %.sroa.0.0.vec.extract, %86
  tail call void @_ZN5ImGui15SeparatorTextExEjPKcS1_f(i32 noundef 0, ptr noundef nonnull @.str.416, ptr noundef null, float noundef %87)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.418)
  %88 = getelementptr inbounds i8, ptr %32, i64 9969
  %89 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.419, ptr noundef nonnull %88)
  br i1 %89, label %90, label %94

90:                                               ; preds = %83
  %91 = load i8, ptr %88, align 1, !tbaa !118, !range !13, !noundef !14
  %92 = trunc nuw i8 %91 to i1
  br i1 %92, label %93, label %94

93:                                               ; preds = %90
  tail call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %94

94:                                               ; preds = %93, %90, %83
  %95 = getelementptr inbounds i8, ptr %32, i64 136
  %96 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.420, ptr noundef nonnull %95)
  tail call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.421)
  %97 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.422, 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.423)
  %98 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.424, 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.425)
  %99 = getelementptr inbounds i8, ptr %32, i64 9999
  %100 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.426, ptr noundef nonnull %99)
  %101 = getelementptr inbounds i8, ptr %32, i64 9998
  %102 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.427, ptr noundef nonnull %101)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %103 = tail call noundef float @_ZN5ImGui11GetFontSizeEv()
  %104 = fmul float %103, 1.200000e+01
  tail call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %104)
  %105 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.428, ptr noundef nonnull %72, ptr noundef nonnull %2, i32 noundef 8, i32 noundef 8)
  %106 = load i8, ptr %101, align 2, !tbaa !119, !range !13, !noundef !14
  %107 = zext i1 %105 to i8
  %108 = or i8 %106, %107
  %.not503 = icmp eq i8 %108, 0
  store i8 %108, ptr %101, align 2, !tbaa !119
  br i1 %.not503, label %259, label %109

109:                                              ; preds = %94
  %110 = getelementptr inbounds i8, ptr %32, i64 7848
  %111 = load ptr, ptr %110, align 8, !tbaa !120
  %.not504 = icmp eq ptr %111, null
  br i1 %.not504, label %259, label %112

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

259:                                              ; preds = %112, %109, %94
  %260 = getelementptr inbounds i8, ptr %32, i64 10000
  %261 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.431, ptr noundef nonnull %260)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %262 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %263 = fmul float %262, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %263)
  %264 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.432, ptr noundef nonnull %77, ptr noundef nonnull %3, i32 noundef 13, i32 noundef 13)
  %265 = load i8, ptr %260, align 4, !tbaa !122, !range !13, !noundef !14
  %266 = zext i1 %264 to i8
  %267 = or i8 %265, %266
  %.not505 = icmp eq i8 %267, 0
  store i8 %267, ptr %260, align 4, !tbaa !122
  br i1 %.not505, label %.loopexit561, label %268

268:                                              ; preds = %259
  %269 = getelementptr inbounds i8, ptr %32, i64 7848
  %270 = load ptr, ptr %269, align 8, !tbaa !120
  %.not506 = icmp eq ptr %270, null
  br i1 %.not506, label %.loopexit561, label %.preheader560

.preheader560:                                    ; preds = %268
  %271 = getelementptr inbounds i8, ptr %32, i64 8616
  %272 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %271)
  %273 = icmp sgt i32 %272, 0
  br i1 %273, label %.lr.ph567, label %.loopexit561

.lr.ph567:                                        ; preds = %.preheader560
  %274 = getelementptr inbounds i8, ptr %32, i64 4784
  %275 = getelementptr inbounds i8, ptr %16, i64 8
  %276 = getelementptr inbounds i8, ptr %10, i64 8
  br label %277

277:                                              ; preds = %.lr.ph567, %371
  %.0451566 = phi i32 [ 0, %.lr.ph567 ], [ %372, %371 ]
  %278 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %271, i32 noundef %.0451566)
  %279 = icmp eq ptr %278, null
  br i1 %279, label %371, label %280

280:                                              ; preds = %277
  %281 = getelementptr inbounds i8, ptr %278, i64 104
  %282 = load i32, ptr %281, align 8, !tbaa !123
  %283 = load i32, ptr %274, align 8, !tbaa !134
  %284 = add nsw i32 %283, -1
  %285 = icmp slt i32 %282, %284
  br i1 %285, label %371, label %286

286:                                              ; preds = %280
  %287 = getelementptr inbounds i8, ptr %278, i64 384
  %288 = load ptr, ptr %287, align 8, !tbaa !135
  %289 = load ptr, ptr %269, align 8, !tbaa !120
  %.not537 = icmp eq ptr %288, %289
  br i1 %.not537, label %293, label %290

290:                                              ; preds = %286
  %291 = getelementptr inbounds i8, ptr %278, i64 392
  %292 = load ptr, ptr %291, align 8, !tbaa !136
  %.not538 = icmp eq ptr %292, %289
  br i1 %.not538, label %293, label %371

293:                                              ; preds = %290, %286
  %294 = load i32, ptr %278, align 8, !tbaa !137
  %295 = getelementptr inbounds i8, ptr %278, i64 108
  %296 = load i32, ptr %295, align 4, !tbaa !138
  %297 = getelementptr inbounds i8, ptr %288, i64 8
  %298 = load ptr, ptr %297, align 8, !tbaa !121
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.433, i32 noundef %294, i32 noundef %296, ptr noundef %298)
  %299 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %299, label %300, label %306

300:                                              ; preds = %293
  %301 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  %302 = getelementptr inbounds i8, ptr %278, 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)
  %303 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %302, ptr noundef nonnull align 4 dereferenceable(8) %6)
  store <2 x float> %303, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %304 = getelementptr inbounds i8, ptr %278, 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)
  %305 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %304, ptr noundef nonnull align 4 dereferenceable(8) %8)
  store <2 x float> %305, ptr %7, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %301, 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 %306

306:                                              ; preds = %300, %293
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %9) #9
  br label %308

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

308:                                              ; preds = %306, %.loopexit559
  %indvars.iv = phi i64 [ 0, %306 ], [ %indvars.iv.next, %.loopexit559 ]
  %309 = icmp ugt i64 %indvars.iv, 5
  br i1 %309, label %310, label %344

310:                                              ; preds = %308
  %311 = trunc nuw nsw i64 %indvars.iv to i32
  switch i32 %311, label %.loopexit559 [
    i32 8, label %312
    i32 6, label %312
  ]

312:                                              ; preds = %310, %310
  %313 = load i32, ptr %295, align 4, !tbaa !138
  %314 = icmp sgt i32 %313, 0
  br i1 %314, label %.lr.ph, label %.loopexit559

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

316:                                              ; preds = %.lr.ph, %340
  %.0454563 = phi i32 [ 0, %.lr.ph ], [ %341, %340 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #9
  %317 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %278, i32 noundef %311, i32 noundef %.0454563)
  %318 = extractvalue { <2 x float>, <2 x float> } %317, 0
  store <2 x float> %318, ptr %10, align 8
  %319 = extractvalue { <2 x float>, <2 x float> } %317, 1
  store <2 x float> %319, ptr %276, align 8
  %320 = extractelement <2 x float> %318, i64 0
  %321 = fpext float %320 to double
  %322 = extractelement <2 x float> %318, i64 1
  %323 = fpext float %322 to double
  %324 = extractelement <2 x float> %319, i64 0
  %325 = fpext float %324 to double
  %326 = extractelement <2 x float> %319, i64 1
  %327 = fpext float %326 to double
  %328 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %329 = fpext float %328 to double
  %330 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %331 = fpext float %330 to double
  %332 = load ptr, ptr %315, align 8, !tbaa !5
  %333 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %9, i64 noundef 128, ptr noundef nonnull @.str.434, double noundef %321, double noundef %323, double noundef %325, double noundef %327, double noundef %329, double noundef %331, i32 noundef %.0454563, ptr noundef %332)
  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)
  %334 = 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
  %335 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %335, label %336, label %340

336:                                              ; preds = %316
  %337 = 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)
  %338 = 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> %338, 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)
  %339 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %276, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %339, ptr %14, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %337, 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 %340

340:                                              ; preds = %336, %316
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #9
  %341 = add nuw nsw i32 %.0454563, 1
  %342 = load i32, ptr %295, align 4, !tbaa !138
  %343 = icmp slt i32 %341, %342
  br i1 %343, label %316, label %.loopexit559, !llvm.loop !139

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

366:                                              ; preds = %344
  %367 = 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)
  %368 = 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> %368, 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)
  %369 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %275, ptr noundef nonnull align 4 dereferenceable(8) %21)
  store <2 x float> %369, ptr %20, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %367, 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 %370

370:                                              ; preds = %366, %344
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #9
  br label %.loopexit559

.loopexit559:                                     ; preds = %340, %312, %310, %370
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 13
  br i1 %exitcond.not, label %307, label %308, !llvm.loop !141

371:                                              ; preds = %277, %280, %290, %307
  %372 = add nuw nsw i32 %.0451566, 1
  %373 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %271)
  %374 = icmp slt i32 %372, %373
  br i1 %374, label %277, label %.loopexit561, !llvm.loop !142

.loopexit561:                                     ; preds = %371, %.preheader560, %268, %259
  %375 = getelementptr inbounds i8, ptr %32, i64 7672
  %376 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.435, ptr noundef nonnull %375)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.436)
  %377 = getelementptr inbounds i8, ptr %32, i64 139
  %378 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.437, ptr noundef nonnull %377)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.438)
  %379 = getelementptr inbounds i8, ptr %32, i64 10003
  %380 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.439, ptr noundef nonnull %379)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.440)
  %381 = load i8, ptr %379, align 1, !tbaa !143, !range !13, !noundef !14
  %382 = trunc nuw i8 %381 to i1
  br i1 %382, label %383, label %387

383:                                              ; preds = %.loopexit561
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %384 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.441, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 64, i32 noundef 0, ptr noundef null, ptr noundef null)
  %385 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !47
  %.not507 = icmp eq i8 %385, 0
  br i1 %.not507, label %387, label %386

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

387:                                              ; preds = %383, %386, %.loopexit561
  call void @_ZN5ImGui7TreePopEv()
  br label %388

388:                                              ; preds = %387, %81
  %389 = getelementptr inbounds i8, ptr %32, i64 4872
  %390 = load i32, ptr %389, align 8, !tbaa !144
  %391 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.442, ptr noundef nonnull @.str.443, i32 noundef %390)
  br i1 %391, label %392, label %416

392:                                              ; preds = %388
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %389, ptr noundef nonnull @.str.444)
  %393 = getelementptr inbounds i8, ptr %32, i64 4888
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %393, ptr noundef nonnull @.str.445)
  %394 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.446)
  br i1 %394, label %395, label %415

395:                                              ; preds = %392
  %396 = getelementptr inbounds i8, ptr %32, i64 4904
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %396, i32 noundef 0)
  %397 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %389)
  %398 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %389)
  %.not508568 = icmp eq ptr %397, %398
  br i1 %.not508568, label %._crit_edge, label %.lr.ph570

.lr.ph570:                                        ; preds = %395
  %399 = getelementptr inbounds i8, ptr %32, i64 4784
  br label %406

._crit_edge:                                      ; preds = %413, %395
  %400 = getelementptr inbounds i8, ptr %32, i64 4912
  %401 = load ptr, ptr %400, align 8, !tbaa !145
  %402 = load i32, ptr %396, align 8, !tbaa !146
  %403 = sext i32 %402 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %401, i64 noundef %403, i64 noundef 8, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %404 = load ptr, ptr %400, align 8, !tbaa !145
  %405 = load i32, ptr %396, align 8, !tbaa !146
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %404, i32 noundef %405, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %415

406:                                              ; preds = %.lr.ph570, %413
  %.0455569 = phi ptr [ %397, %.lr.ph570 ], [ %414, %413 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #9
  %407 = load ptr, ptr %.0455569, align 8, !tbaa !5
  store ptr %407, ptr %22, align 8, !tbaa !5
  %408 = getelementptr inbounds i8, ptr %407, i64 632
  %409 = load i32, ptr %408, align 8, !tbaa !147
  %410 = add nsw i32 %409, 1
  %411 = load i32, ptr %399, align 8, !tbaa !134
  %.not536 = icmp slt i32 %410, %411
  br i1 %.not536, label %413, label %412

412:                                              ; preds = %406
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %396, ptr noundef nonnull align 8 dereferenceable(8) %22)
  br label %413

413:                                              ; preds = %412, %406
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  %414 = getelementptr inbounds i8, ptr %.0455569, i64 8
  %.not508 = icmp eq ptr %414, %398
  br i1 %.not508, label %._crit_edge, label %406

415:                                              ; preds = %._crit_edge, %392
  call void @_ZN5ImGui7TreePopEv()
  br label %416

416:                                              ; preds = %415, %388
  %417 = getelementptr inbounds i8, ptr %32, i64 7824
  %418 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %417)
  %419 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %417)
  %.not509571 = icmp eq ptr %418, %419
  br i1 %.not509571, label %._crit_edge576, label %.lr.ph575

._crit_edge576:                                   ; preds = %.lr.ph575, %416
  %.0456.lcssa = phi i32 [ 0, %416 ], [ %424, %.lr.ph575 ]
  %420 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.447, ptr noundef nonnull @.str.448, i32 noundef %.0456.lcssa)
  br i1 %420, label %426, label %440

.lr.ph575:                                        ; preds = %416, %.lr.ph575
  %.0456573 = phi i32 [ %424, %.lr.ph575 ], [ 0, %416 ]
  %.0457572 = phi ptr [ %425, %.lr.ph575 ], [ %418, %416 ]
  %421 = load ptr, ptr %.0457572, align 8, !tbaa !5
  %422 = getelementptr inbounds i8, ptr %421, i64 96
  %423 = load i32, ptr %422, align 8, !tbaa !148
  %424 = add nsw i32 %423, %.0456573
  %425 = getelementptr inbounds i8, ptr %.0457572, i64 8
  %.not509 = icmp eq ptr %425, %419
  br i1 %.not509, label %._crit_edge576, label %.lr.ph575

426:                                              ; preds = %._crit_edge576
  %427 = getelementptr inbounds i8, ptr %32, i64 10001
  %428 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.449, ptr noundef nonnull %427)
  %429 = getelementptr inbounds i8, ptr %32, i64 10002
  %430 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.450, ptr noundef nonnull %429)
  %431 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %417)
  %432 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %417)
  %.not510582 = icmp eq ptr %431, %432
  br i1 %.not510582, label %._crit_edge586, label %.lr.ph585

._crit_edge586:                                   ; preds = %._crit_edge581, %426
  call void @_ZN5ImGui7TreePopEv()
  br label %440

.lr.ph585:                                        ; preds = %426, %._crit_edge581
  %.0459583 = phi ptr [ %437, %._crit_edge581 ], [ %431, %426 ]
  %433 = load ptr, ptr %.0459583, align 8, !tbaa !5
  %434 = getelementptr inbounds i8, ptr %433, i64 96
  %435 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %434)
  %436 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %434)
  %.not535577 = icmp eq ptr %435, %436
  br i1 %.not535577, label %._crit_edge581, label %.lr.ph580

._crit_edge581:                                   ; preds = %.lr.ph580, %.lr.ph585
  %437 = getelementptr inbounds i8, ptr %.0459583, i64 8
  %.not510 = icmp eq ptr %437, %432
  br i1 %.not510, label %._crit_edge586, label %.lr.ph585

.lr.ph580:                                        ; preds = %.lr.ph585, %.lr.ph580
  %.0460578 = phi ptr [ %439, %.lr.ph580 ], [ %435, %.lr.ph585 ]
  %438 = load ptr, ptr %.0460578, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef %433, ptr noundef %438, ptr noundef nonnull @.str.451)
  %439 = getelementptr inbounds i8, ptr %.0460578, i64 8
  %.not535 = icmp eq ptr %439, %436
  br i1 %.not535, label %._crit_edge581, label %.lr.ph580

440:                                              ; preds = %._crit_edge586, %._crit_edge576
  %441 = load i32, ptr %417, align 8, !tbaa !154
  %442 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.452, ptr noundef nonnull @.str.453, i32 noundef %441)
  br i1 %442, label %443, label %452

443:                                              ; preds = %440
  call void @_ZN5ImGui15SetNextItemOpenEbi(i1 noundef zeroext true, i32 noundef 2)
  %444 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.454)
  br i1 %444, label %445, label %446

445:                                              ; preds = %443
  call void @_ZL25RenderViewportsThumbnailsv()
  call void @_ZN5ImGui7TreePopEv()
  br label %446

446:                                              ; preds = %445, %443
  %447 = getelementptr inbounds i8, ptr %32, i64 10020
  store i32 0, ptr %447, align 4, !tbaa !155
  %448 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %417)
  %449 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %417)
  %.not511587 = icmp eq ptr %448, %449
  br i1 %.not511587, label %._crit_edge591, label %.lr.ph590

._crit_edge591:                                   ; preds = %.lr.ph590, %446
  call void @_ZN5ImGui7TreePopEv()
  br label %452

.lr.ph590:                                        ; preds = %446, %.lr.ph590
  %.0462588 = phi ptr [ %451, %.lr.ph590 ], [ %448, %446 ]
  %450 = load ptr, ptr %.0462588, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %450)
  %451 = getelementptr inbounds i8, ptr %.0462588, i64 8
  %.not511 = icmp eq ptr %451, %449
  br i1 %.not511, label %._crit_edge591, label %.lr.ph590

452:                                              ; preds = %._crit_edge591, %440
  %453 = getelementptr inbounds i8, ptr %32, i64 7776
  %454 = load i32, ptr %453, align 8, !tbaa !156
  %455 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.455, ptr noundef nonnull @.str.456, i32 noundef %454)
  br i1 %455, label %456, label %488

456:                                              ; preds = %452
  %457 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %453)
  %458 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %453)
  %.not512592 = icmp eq ptr %457, %458
  br i1 %.not512592, label %._crit_edge596, label %.lr.ph595

._crit_edge596:                                   ; preds = %485, %456
  call void @_ZN5ImGui7TreePopEv()
  br label %488

.lr.ph595:                                        ; preds = %456, %485
  %.0463593 = phi ptr [ %487, %485 ], [ %457, %456 ]
  %459 = getelementptr inbounds i8, ptr %.0463593, i64 8
  %460 = load ptr, ptr %459, align 8, !tbaa !157
  %461 = load i32, ptr %.0463593, align 8, !tbaa !159
  %.not532 = icmp eq ptr %460, null
  br i1 %.not532, label %.thread543, label %462

462:                                              ; preds = %.lr.ph595
  %463 = getelementptr inbounds i8, ptr %460, i64 8
  %464 = load ptr, ptr %463, align 8, !tbaa !121
  %465 = getelementptr inbounds i8, ptr %460, i64 20
  %466 = load i32, ptr %465, align 4, !tbaa !160
  %.fr548 = freeze i32 %466
  %467 = and i32 %.fr548, 16777216
  %.not547 = icmp eq i32 %467, 0
  %spec.select = select i1 %.not547, ptr @.str.14, ptr @.str.458
  %468 = and i32 %.fr548, 268435456
  %.not549 = icmp eq i32 %468, 0
  %spec.select545 = select i1 %.not549, ptr @.str.14, ptr @.str.459
  br label %.thread543

.thread543:                                       ; preds = %462, %.lr.ph595
  %469 = phi ptr [ @.str.263, %.lr.ph595 ], [ %464, %462 ]
  %470 = phi ptr [ @.str.14, %.lr.ph595 ], [ %spec.select, %462 ]
  %471 = phi ptr [ @.str.14, %.lr.ph595 ], [ %spec.select545, %462 ]
  %472 = getelementptr inbounds i8, ptr %.0463593, i64 16
  %473 = load ptr, ptr %472, align 8, !tbaa !161
  %.not533 = icmp eq ptr %473, null
  br i1 %.not533, label %477, label %474

474:                                              ; preds = %.thread543
  %475 = getelementptr inbounds i8, ptr %473, i64 8
  %476 = load ptr, ptr %475, align 8, !tbaa !121
  br label %477

477:                                              ; preds = %.thread543, %474
  %478 = phi ptr [ %476, %474 ], [ @.str.263, %.thread543 ]
  br i1 %.not532, label %485, label %479

479:                                              ; preds = %477
  %480 = getelementptr inbounds i8, ptr %460, i64 912
  %481 = load ptr, ptr %480, align 8, !tbaa !162
  %.not534 = icmp eq ptr %481, null
  br i1 %.not534, label %485, label %482

482:                                              ; preds = %479
  %483 = getelementptr inbounds i8, ptr %481, i64 8
  %484 = load ptr, ptr %483, align 8, !tbaa !121
  br label %485

485:                                              ; preds = %477, %479, %482
  %486 = phi ptr [ %484, %482 ], [ @.str.263, %479 ], [ @.str.263, %477 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.457, i32 noundef %461, ptr noundef %469, ptr noundef nonnull %470, ptr noundef nonnull %471, ptr noundef %478, ptr noundef %486)
  %487 = getelementptr inbounds i8, ptr %.0463593, i64 56
  %.not512 = icmp eq ptr %487, %458
  br i1 %.not512, label %._crit_edge596, label %.lr.ph595

488:                                              ; preds = %._crit_edge596, %452
  %489 = getelementptr inbounds i8, ptr %32, i64 8696
  %490 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %489)
  %491 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.460, ptr noundef nonnull @.str.461, i32 noundef %490)
  br i1 %491, label %.preheader558, label %500

.preheader558:                                    ; preds = %488
  %492 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %489)
  %493 = icmp sgt i32 %492, 0
  br i1 %493, label %.lr.ph598, label %._crit_edge599

._crit_edge599:                                   ; preds = %496, %.preheader558
  call void @_ZN5ImGui7TreePopEv()
  br label %500

.lr.ph598:                                        ; preds = %.preheader558, %496
  %.0465597 = phi i32 [ %497, %496 ], [ 0, %.preheader558 ]
  %494 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %489, i32 noundef %.0465597)
  %.not531 = icmp eq ptr %494, null
  br i1 %.not531, label %496, label %495

495:                                              ; preds = %.lr.ph598
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef nonnull %494)
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef nonnull %494, ptr noundef nonnull @.str.462)
  call void @_ZN5ImGui5PopIDEv()
  br label %496

496:                                              ; preds = %495, %.lr.ph598
  %497 = add nuw nsw i32 %.0465597, 1
  %498 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %489)
  %499 = icmp slt i32 %497, %498
  br i1 %499, label %.lr.ph598, label %._crit_edge599, !llvm.loop !163

500:                                              ; preds = %._crit_edge599, %488
  %501 = getelementptr inbounds i8, ptr %32, i64 8616
  %502 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %501)
  %503 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.463, ptr noundef nonnull @.str.464, i32 noundef %502)
  br i1 %503, label %.preheader557, label %512

.preheader557:                                    ; preds = %500
  %504 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %501)
  %505 = icmp sgt i32 %504, 0
  br i1 %505, label %.lr.ph601, label %._crit_edge602

._crit_edge602:                                   ; preds = %508, %.preheader557
  call void @_ZN5ImGui7TreePopEv()
  br label %512

.lr.ph601:                                        ; preds = %.preheader557, %508
  %.0467600 = phi i32 [ %509, %508 ], [ 0, %.preheader557 ]
  %506 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %501, i32 noundef %.0467600)
  %.not530 = icmp eq ptr %506, null
  br i1 %.not530, label %508, label %507

507:                                              ; preds = %.lr.ph601
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef nonnull %506)
  br label %508

508:                                              ; preds = %507, %.lr.ph601
  %509 = add nuw nsw i32 %.0467600, 1
  %510 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %501)
  %511 = icmp slt i32 %509, %510
  br i1 %511, label %.lr.ph601, label %._crit_edge602, !llvm.loop !164

512:                                              ; preds = %._crit_edge602, %500
  %513 = getelementptr inbounds i8, ptr %32, i64 56
  %514 = load ptr, ptr %513, align 8, !tbaa !165
  %515 = getelementptr inbounds i8, ptr %514, i64 88
  %516 = load i32, ptr %515, align 8, !tbaa !166
  %517 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.465, ptr noundef nonnull @.str.466, i32 noundef %516)
  br i1 %517, label %518, label %519

518:                                              ; preds = %512
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef nonnull %514)
  call void @_ZN5ImGui7TreePopEv()
  br label %519

519:                                              ; preds = %518, %512
  %520 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.467)
  br i1 %520, label %521, label %523

521:                                              ; preds = %519
  %522 = getelementptr inbounds i8, ptr %32, i64 8984
  call void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef nonnull %522)
  call void @_ZN5ImGui7TreePopEv()
  br label %523

523:                                              ; preds = %521, %519
  %524 = getelementptr inbounds i8, ptr %32, i64 9472
  %525 = load i8, ptr %524, align 8, !tbaa !47
  %.not513 = icmp ne i8 %525, 0
  %526 = zext i1 %.not513 to i32
  %527 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.468, ptr noundef nonnull @.str.469, i32 noundef %526)
  br i1 %527, label %528, label %530

528:                                              ; preds = %523
  %529 = getelementptr inbounds i8, ptr %32, i64 9448
  call void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef nonnull %529)
  call void @_ZN5ImGui7TreePopEv()
  br label %530

530:                                              ; preds = %528, %523
  %531 = getelementptr inbounds i8, ptr %32, i64 8904
  %532 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %531)
  %533 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.470, ptr noundef nonnull @.str.471, i32 noundef %532)
  br i1 %533, label %534, label %551

534:                                              ; preds = %530
  %535 = getelementptr inbounds i8, ptr %32, i64 8768
  %536 = load i32, ptr %535, align 8, !tbaa !170
  %537 = getelementptr inbounds i8, ptr %32, i64 8773
  %538 = load i8, ptr %537, align 1, !tbaa !171, !range !13, !noundef !14
  %539 = zext nneg i8 %538 to i32
  %540 = getelementptr inbounds i8, ptr %32, i64 8772
  %541 = load i8, ptr %540, align 4, !tbaa !172, !range !13, !noundef !14
  %542 = zext nneg i8 %541 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.472, i32 noundef %536, i32 noundef %539, i32 noundef %542)
  %543 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %531)
  %544 = icmp sgt i32 %543, 0
  br i1 %544, label %.lr.ph605, label %._crit_edge606

._crit_edge606:                                   ; preds = %547, %534
  call void @_ZN5ImGui7TreePopEv()
  br label %551

.lr.ph605:                                        ; preds = %534, %547
  %.0472603 = phi i32 [ %548, %547 ], [ 0, %534 ]
  %545 = call noundef ptr @_ZN6ImPoolI21ImGuiMultiSelectStateE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %531, i32 noundef %.0472603)
  %.not529 = icmp eq ptr %545, null
  br i1 %.not529, label %547, label %546

546:                                              ; preds = %.lr.ph605
  call void @_ZN5ImGui25DebugNodeMultiSelectStateEP21ImGuiMultiSelectState(ptr noundef nonnull %545)
  br label %547

547:                                              ; preds = %546, %.lr.ph605
  %548 = add nuw nsw i32 %.0472603, 1
  %549 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %531)
  %550 = icmp slt i32 %548, %549
  br i1 %550, label %.lr.ph605, label %._crit_edge606, !llvm.loop !173

551:                                              ; preds = %._crit_edge606, %530
  %552 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.473)
  br i1 %552, label %553, label %610

553:                                              ; preds = %551
  %554 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.474)
  br i1 %554, label %555, label %556

555:                                              ; preds = %553
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %556

556:                                              ; preds = %555, %553
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %557 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.475)
  br i1 %557, label %558, label %560

558:                                              ; preds = %556
  %559 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %560

560:                                              ; preds = %558, %556
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %561 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.476)
  br i1 %561, label %562, label %565

562:                                              ; preds = %560
  %563 = getelementptr inbounds i8, ptr %32, i64 32
  %564 = load ptr, ptr %563, align 8, !tbaa !174
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %564)
  br label %565

565:                                              ; preds = %562, %560
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %566 = getelementptr inbounds i8, ptr %32, i64 32
  %567 = load ptr, ptr %566, align 8, !tbaa !174
  %.not514 = icmp eq ptr %567, null
  br i1 %.not514, label %569, label %568

568:                                              ; preds = %565
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.477, ptr noundef nonnull %567)
  br label %570

569:                                              ; preds = %565
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef nonnull @.str.300, ptr noundef null)
  br label %570

570:                                              ; preds = %569, %568
  %571 = getelementptr inbounds i8, ptr %32, i64 141
  %572 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.478, ptr noundef nonnull %571)
  %573 = getelementptr inbounds i8, ptr %32, i64 9588
  %574 = load float, ptr %573, align 4, !tbaa !175
  %575 = fpext float %574 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.479, double noundef %575)
  %576 = getelementptr inbounds i8, ptr %32, i64 9608
  %577 = load i32, ptr %576, align 8, !tbaa !176
  %578 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.480, ptr noundef nonnull @.str.481, i32 noundef %577)
  br i1 %578, label %579, label %584

579:                                              ; preds = %570
  %580 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %576)
  %581 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %576)
  %.not515607 = icmp eq ptr %580, %581
  br i1 %.not515607, label %._crit_edge611, label %.lr.ph610

._crit_edge611:                                   ; preds = %.lr.ph610, %579
  call void @_ZN5ImGui7TreePopEv()
  br label %584

.lr.ph610:                                        ; preds = %579, %.lr.ph610
  %.0473608 = phi ptr [ %583, %.lr.ph610 ], [ %580, %579 ]
  %582 = load ptr, ptr %.0473608, align 8, !tbaa !177
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.477, ptr noundef %582)
  %583 = getelementptr inbounds i8, ptr %.0473608, i64 72
  %.not515 = icmp eq ptr %583, %581
  br i1 %.not515, label %._crit_edge611, label %.lr.ph610

584:                                              ; preds = %._crit_edge611, %570
  %585 = getelementptr inbounds i8, ptr %32, i64 9624
  %586 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %585)
  %587 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.482, ptr noundef nonnull @.str.483, i32 noundef %586)
  br i1 %587, label %588, label %591

588:                                              ; preds = %584
  %589 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %585)
  %.not516612 = icmp eq ptr %589, null
  br i1 %.not516612, label %._crit_edge616, label %.lr.ph615

._crit_edge616:                                   ; preds = %.lr.ph615, %588
  call void @_ZN5ImGui7TreePopEv()
  br label %591

.lr.ph615:                                        ; preds = %588, %.lr.ph615
  %.0478613 = phi ptr [ %590, %.lr.ph615 ], [ %589, %588 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0478613)
  %590 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %585, ptr noundef nonnull %.0478613)
  %.not516 = icmp eq ptr %590, null
  br i1 %.not516, label %._crit_edge616, label %.lr.ph615, !llvm.loop !179

591:                                              ; preds = %._crit_edge616, %584
  %592 = getelementptr inbounds i8, ptr %32, i64 9640
  %593 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %592)
  %594 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.484, ptr noundef nonnull @.str.485, i32 noundef %593)
  br i1 %594, label %595, label %598

595:                                              ; preds = %591
  %596 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %592)
  %.not517617 = icmp eq ptr %596, null
  br i1 %.not517617, label %._crit_edge621, label %.lr.ph620

._crit_edge621:                                   ; preds = %.lr.ph620, %595
  call void @_ZN5ImGui7TreePopEv()
  br label %598

.lr.ph620:                                        ; preds = %595, %.lr.ph620
  %.0480618 = phi ptr [ %597, %.lr.ph620 ], [ %596, %595 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0480618)
  %597 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %592, ptr noundef nonnull %.0480618)
  %.not517 = icmp eq ptr %597, null
  br i1 %.not517, label %._crit_edge621, label %.lr.ph620, !llvm.loop !180

598:                                              ; preds = %._crit_edge621, %591
  %599 = getelementptr inbounds i8, ptr %32, i64 9592
  %600 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %599)
  %601 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.486, ptr noundef nonnull @.str.487, i32 noundef %600)
  br i1 %601, label %602, label %609

602:                                              ; preds = %598
  %603 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %599)
  %604 = load i32, ptr %599, align 8, !tbaa !181
  %605 = sext i32 %604 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  %606 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %607 = fmul float %606, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0xB810000000000000, float noundef %607)
  %608 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.488, ptr noundef %603, i64 noundef %605, ptr noundef nonnull align 4 dereferenceable(8) %23, i32 noundef 512, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  call void @_ZN5ImGui7TreePopEv()
  br label %609

609:                                              ; preds = %602, %598
  call void @_ZN5ImGui7TreePopEv()
  br label %610

610:                                              ; preds = %609, %551
  %611 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.489)
  br i1 %611, label %612, label %705

612:                                              ; preds = %610
  %613 = load i32, ptr %67, align 4, !tbaa !182
  %614 = load i32, ptr %69, align 4, !tbaa !183
  %615 = sub nsw i32 %613, %614
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.490, i32 noundef %615)
  %616 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.491)
  br i1 %616, label %617, label %619

617:                                              ; preds = %612
  %618 = getelementptr inbounds i8, ptr %32, i64 4802
  store i8 1, ptr %618, align 2, !tbaa !184
  br label %619

619:                                              ; preds = %617, %612
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.492)
  %620 = getelementptr inbounds i8, ptr %32, i64 10076
  %621 = getelementptr inbounds i8, ptr %32, i64 10072
  %622 = getelementptr inbounds i8, ptr %32, i64 4784
  %623 = load i16, ptr %621, align 4, !tbaa !185
  %624 = sext i16 %623 to i32
  %625 = add nsw i32 %624, 1
  %626 = srem i32 %625, 6
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %620, i64 0, i64 %627
  %629 = load i32, ptr %628, align 4, !tbaa !186
  %630 = getelementptr inbounds i8, ptr %628, i64 4
  %631 = load i16, ptr %630, align 4, !tbaa !188
  %632 = sext i16 %631 to i32
  %633 = getelementptr inbounds i8, ptr %628, i64 6
  %634 = load i16, ptr %633, align 2, !tbaa !189
  %635 = sext i16 %634 to i32
  %636 = sub nsw i32 %632, %635
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.493, i32 noundef %629, i32 noundef %636, i32 noundef %632, i32 noundef %635)
  %.pre = load i16, ptr %621, align 4, !tbaa !185
  %637 = sext i16 %.pre to i32
  %638 = add nsw i32 %637, 2
  %639 = srem i32 %638, 6
  %640 = sext i32 %639 to i64
  %641 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %620, i64 0, i64 %640
  %642 = load i32, ptr %641, align 4, !tbaa !186
  %643 = getelementptr inbounds i8, ptr %641, i64 4
  %644 = load i16, ptr %643, align 4, !tbaa !188
  %645 = sext i16 %644 to i32
  %646 = getelementptr inbounds i8, ptr %641, i64 6
  %647 = load i16, ptr %646, align 2, !tbaa !189
  %648 = sext i16 %647 to i32
  %649 = sub nsw i32 %645, %648
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.493, i32 noundef %642, i32 noundef %649, i32 noundef %645, i32 noundef %648)
  %.pre674 = load i16, ptr %621, align 4, !tbaa !185
  %650 = sext i16 %.pre674 to i32
  %651 = add nsw i32 %650, 3
  %652 = srem i32 %651, 6
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %620, i64 0, i64 %653
  %655 = load i32, ptr %654, align 4, !tbaa !186
  %656 = getelementptr inbounds i8, ptr %654, i64 4
  %657 = load i16, ptr %656, align 4, !tbaa !188
  %658 = sext i16 %657 to i32
  %659 = getelementptr inbounds i8, ptr %654, i64 6
  %660 = load i16, ptr %659, align 2, !tbaa !189
  %661 = sext i16 %660 to i32
  %662 = sub nsw i32 %658, %661
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.493, i32 noundef %655, i32 noundef %662, i32 noundef %658, i32 noundef %661)
  %.pre676 = load i16, ptr %621, align 4, !tbaa !185
  %663 = sext i16 %.pre676 to i32
  %664 = add nsw i32 %663, 4
  %665 = srem i32 %664, 6
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %620, i64 0, i64 %666
  %668 = load i32, ptr %667, align 4, !tbaa !186
  %669 = getelementptr inbounds i8, ptr %667, i64 4
  %670 = load i16, ptr %669, align 4, !tbaa !188
  %671 = sext i16 %670 to i32
  %672 = getelementptr inbounds i8, ptr %667, i64 6
  %673 = load i16, ptr %672, align 2, !tbaa !189
  %674 = sext i16 %673 to i32
  %675 = sub nsw i32 %671, %674
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.493, i32 noundef %668, i32 noundef %675, i32 noundef %671, i32 noundef %674)
  %.pre678 = load i16, ptr %621, align 4, !tbaa !185
  %676 = sext i16 %.pre678 to i32
  %677 = add nsw i32 %676, 5
  %678 = srem i32 %677, 6
  %679 = sext i32 %678 to i64
  %680 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %620, i64 0, i64 %679
  %681 = load i32, ptr %680, align 4, !tbaa !186
  %682 = getelementptr inbounds i8, ptr %680, i64 4
  %683 = load i16, ptr %682, align 4, !tbaa !188
  %684 = sext i16 %683 to i32
  %685 = getelementptr inbounds i8, ptr %680, i64 6
  %686 = load i16, ptr %685, align 2, !tbaa !189
  %687 = sext i16 %686 to i32
  %688 = sub nsw i32 %684, %687
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.493, i32 noundef %681, i32 noundef %688, i32 noundef %684, i32 noundef %687)
  %.pre680 = load i16, ptr %621, align 4, !tbaa !185
  %689 = sext i16 %.pre680 to i32
  %690 = add nsw i32 %689, 6
  %691 = srem i32 %690, 6
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds [6 x %struct.ImGuiDebugAllocEntry], ptr %620, i64 0, i64 %692
  %694 = load i32, ptr %693, align 4, !tbaa !186
  %695 = getelementptr inbounds i8, ptr %693, i64 4
  %696 = load i16, ptr %695, align 4, !tbaa !188
  %697 = sext i16 %696 to i32
  %698 = getelementptr inbounds i8, ptr %693, i64 6
  %699 = load i16, ptr %698, align 2, !tbaa !189
  %700 = sext i16 %699 to i32
  %701 = sub nsw i32 %697, %700
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.493, i32 noundef %694, i32 noundef %701, i32 noundef %697, i32 noundef %700)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %702 = load i32, ptr %622, align 8, !tbaa !134
  %703 = load i32, ptr %693, align 4, !tbaa !186
  %704 = sub nsw i32 %702, %703
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.494, i32 noundef %704)
  call void @_ZN5ImGui7TreePopEv()
  br label %705

705:                                              ; preds = %619, %610
  %706 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.495)
  br i1 %706, label %707, label %948

707:                                              ; preds = %705
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.496)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.497)
  br label %709

708:                                              ; preds = %719
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.500)
  br label %722

709:                                              ; preds = %707, %719
  %.0477623 = phi i32 [ 512, %707 ], [ %720, %719 ]
  %710 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %.0477623)
  br i1 %710, label %711, label %719

711:                                              ; preds = %709
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %712 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0477623)
  %713 = select i1 %712, ptr @.str.477, ptr @.str.498
  %714 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0477623)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %713, ptr noundef %714, i32 noundef %.0477623)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %715 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %.0477623)
  %716 = getelementptr inbounds i8, ptr %715, i64 4
  %717 = load float, ptr %716, align 4, !tbaa !190
  %718 = fpext float %717 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.499, double noundef %718)
  br label %719

719:                                              ; preds = %709, %711
  %720 = add nuw nsw i32 %.0477623, 1
  %exitcond655.not = icmp eq i32 %720, 666
  br i1 %exitcond655.not, label %708, label %709, !llvm.loop !192

721:                                              ; preds = %728
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.501)
  br label %750

722:                                              ; preds = %708, %728
  %.0476624 = phi i32 [ 512, %708 ], [ %729, %728 ]
  %723 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %.0476624, i1 noundef zeroext true)
  br i1 %723, label %724, label %728

724:                                              ; preds = %722
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %725 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0476624)
  %726 = select i1 %725, ptr @.str.477, ptr @.str.498
  %727 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0476624)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %726, ptr noundef %727, i32 noundef %.0476624)
  br label %728

728:                                              ; preds = %722, %724
  %729 = add nuw nsw i32 %.0476624, 1
  %exitcond656.not = icmp eq i32 %729, 666
  br i1 %exitcond656.not, label %721, label %722, !llvm.loop !193

730:                                              ; preds = %756
  %731 = getelementptr inbounds i8, ptr %32, i64 260
  %732 = load i8, ptr %731, align 4, !tbaa !194, !range !13, !noundef !14
  %733 = trunc nuw i8 %732 to i1
  %734 = select i1 %733, ptr @.str.503, ptr @.str.14
  %735 = getelementptr inbounds i8, ptr %32, i64 261
  %736 = load i8, ptr %735, align 1, !tbaa !195, !range !13, !noundef !14
  %737 = trunc nuw i8 %736 to i1
  %738 = select i1 %737, ptr @.str.504, ptr @.str.14
  %739 = getelementptr inbounds i8, ptr %32, i64 262
  %740 = load i8, ptr %739, align 2, !tbaa !196, !range !13, !noundef !14
  %741 = trunc nuw i8 %740 to i1
  %742 = select i1 %741, ptr @.str.505, ptr @.str.14
  %743 = getelementptr inbounds i8, ptr %32, i64 263
  %744 = load i8, ptr %743, align 1, !tbaa !197, !range !13, !noundef !14
  %745 = trunc nuw i8 %744 to i1
  %746 = select i1 %745, ptr @.str.506, ptr @.str.14
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.502, ptr noundef nonnull %734, ptr noundef nonnull %738, ptr noundef nonnull %742, ptr noundef nonnull %746)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.507)
  %747 = getelementptr inbounds i8, ptr %32, i64 2944
  %748 = load i32, ptr %747, align 8, !tbaa !198
  %749 = icmp sgt i32 %748, 0
  br i1 %749, label %.lr.ph628, label %._crit_edge629

750:                                              ; preds = %721, %756
  %.0475625 = phi i32 [ 512, %721 ], [ %757, %756 ]
  %751 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %.0475625)
  br i1 %751, label %752, label %756

752:                                              ; preds = %750
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %753 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0475625)
  %754 = select i1 %753, ptr @.str.477, ptr @.str.498
  %755 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0475625)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %754, ptr noundef %755, i32 noundef %.0475625)
  br label %756

756:                                              ; preds = %750, %752
  %757 = add nuw nsw i32 %.0475625, 1
  %exitcond657.not = icmp eq i32 %757, 666
  br i1 %exitcond657.not, label %730, label %750, !llvm.loop !199

._crit_edge629:                                   ; preds = %.lr.ph628, %730
  %758 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %758)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.509)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %759 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %759, label %769, label %776

.lr.ph628:                                        ; preds = %730, %.lr.ph628
  %.0474626 = phi i32 [ %766, %.lr.ph628 ], [ 0, %730 ]
  %760 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %747, i32 noundef %.0474626)
  %761 = load i16, ptr %760, align 2, !tbaa !200
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %762 = zext i16 %761 to i32
  %763 = add i16 %761, -33
  %or.cond4 = icmp ult i16 %763, 223
  %sext = shl i32 %762, 24
  %764 = ashr exact i32 %sext, 24
  %765 = select i1 %or.cond4, i32 %764, i32 63
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.508, i32 noundef %765, i32 noundef %762)
  %766 = add nuw nsw i32 %.0474626, 1
  %767 = load i32, ptr %747, align 8, !tbaa !198
  %768 = icmp slt i32 %766, %767
  br i1 %768, label %.lr.ph628, label %._crit_edge629, !llvm.loop !201

769:                                              ; preds = %._crit_edge629
  %770 = getelementptr inbounds i8, ptr %32, i64 232
  %771 = load float, ptr %770, align 8, !tbaa !202
  %772 = fpext float %771 to double
  %773 = getelementptr inbounds i8, ptr %32, i64 236
  %774 = load float, ptr %773, align 4, !tbaa !203
  %775 = fpext float %774 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.510, double noundef %772, double noundef %775)
  br label %777

776:                                              ; preds = %._crit_edge629
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.511)
  br label %777

777:                                              ; preds = %776, %769
  %778 = getelementptr inbounds i8, ptr %32, i64 212
  %779 = load float, ptr %778, align 4, !tbaa !204
  %780 = fpext float %779 to double
  %781 = getelementptr inbounds i8, ptr %32, i64 216
  %782 = load float, ptr %781, align 4, !tbaa !205
  %783 = fpext float %782 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.512, double noundef %780, double noundef %783)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.513)
  %784 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 0)
  br i1 %784, label %785, label %789

785:                                              ; preds = %777
  %786 = getelementptr inbounds i8, ptr %32, i64 2872
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %787 = load float, ptr %786, align 4, !tbaa !206
  %788 = fpext float %787 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.514, i32 noundef 0, double noundef %788)
  br label %789

789:                                              ; preds = %777, %785
  %790 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 1)
  br i1 %790, label %791, label %795

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

795:                                              ; preds = %791, %789
  %796 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 2)
  br i1 %796, label %797, label %801

797:                                              ; preds = %795
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %798 = getelementptr inbounds i8, ptr %32, i64 2880
  %799 = load float, ptr %798, align 4, !tbaa !206
  %800 = fpext float %799 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.514, i32 noundef 2, double noundef %800)
  br label %801

801:                                              ; preds = %797, %795
  %802 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 3)
  br i1 %802, label %803, label %807

803:                                              ; preds = %801
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %804 = getelementptr inbounds i8, ptr %32, i64 2884
  %805 = load float, ptr %804, align 4, !tbaa !206
  %806 = fpext float %805 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.514, i32 noundef 3, double noundef %806)
  br label %807

807:                                              ; preds = %803, %801
  %808 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 4)
  br i1 %808, label %809, label %813

809:                                              ; preds = %807
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %810 = getelementptr inbounds i8, ptr %32, i64 2888
  %811 = load float, ptr %810, align 4, !tbaa !206
  %812 = fpext float %811 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.514, i32 noundef 4, double noundef %812)
  br label %813

813:                                              ; preds = %809, %807
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.515)
  %814 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
  br i1 %814, label %815, label %819

815:                                              ; preds = %813
  %816 = getelementptr inbounds i8, ptr %32, i64 2834
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %817 = load i16, ptr %816, align 2, !tbaa !200
  %818 = zext i16 %817 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.516, i32 noundef 0, i32 noundef %818)
  br label %819

819:                                              ; preds = %813, %815
  %820 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 1, i1 noundef zeroext false)
  br i1 %820, label %821, label %825

821:                                              ; preds = %819
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %822 = getelementptr inbounds i8, ptr %32, i64 2836
  %823 = load i16, ptr %822, align 2, !tbaa !200
  %824 = zext i16 %823 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.516, i32 noundef 1, i32 noundef %824)
  br label %825

825:                                              ; preds = %821, %819
  %826 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 2, i1 noundef zeroext false)
  br i1 %826, label %827, label %831

827:                                              ; preds = %825
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %828 = getelementptr inbounds i8, ptr %32, i64 2838
  %829 = load i16, ptr %828, align 2, !tbaa !200
  %830 = zext i16 %829 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.516, i32 noundef 2, i32 noundef %830)
  br label %831

831:                                              ; preds = %827, %825
  %832 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 3, i1 noundef zeroext false)
  br i1 %832, label %833, label %837

833:                                              ; preds = %831
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %834 = getelementptr inbounds i8, ptr %32, i64 2840
  %835 = load i16, ptr %834, align 2, !tbaa !200
  %836 = zext i16 %835 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.516, i32 noundef 3, i32 noundef %836)
  br label %837

837:                                              ; preds = %833, %831
  %838 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 4, i1 noundef zeroext false)
  br i1 %838, label %839, label %843

839:                                              ; preds = %837
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %840 = getelementptr inbounds i8, ptr %32, i64 2842
  %841 = load i16, ptr %840, align 2, !tbaa !200
  %842 = zext i16 %841 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.516, i32 noundef 4, i32 noundef %842)
  br label %843

843:                                              ; preds = %839, %837
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.517)
  %844 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 0)
  br i1 %844, label %845, label %846

845:                                              ; preds = %843
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.518, i32 noundef 0)
  br label %846

846:                                              ; preds = %843, %845
  %847 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 1)
  br i1 %847, label %848, label %849

848:                                              ; preds = %846
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.518, i32 noundef 1)
  br label %849

849:                                              ; preds = %848, %846
  %850 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 2)
  br i1 %850, label %851, label %852

851:                                              ; preds = %849
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.518, i32 noundef 2)
  br label %852

852:                                              ; preds = %851, %849
  %853 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 3)
  br i1 %853, label %854, label %855

854:                                              ; preds = %852
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.518, i32 noundef 3)
  br label %855

855:                                              ; preds = %854, %852
  %856 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 4)
  br i1 %856, label %857, label %858

857:                                              ; preds = %855
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.518, i32 noundef 4)
  br label %858

858:                                              ; preds = %857, %855
  %859 = getelementptr inbounds i8, ptr %32, i64 248
  %860 = load float, ptr %859, align 8, !tbaa !207
  %861 = fpext float %860 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.519, double noundef %861)
  %862 = getelementptr inbounds i8, ptr %32, i64 8972
  %863 = load float, ptr %862, align 4, !tbaa !208
  %864 = fpext float %863 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.520, double noundef %864)
  %865 = getelementptr inbounds i8, ptr %32, i64 256
  %866 = load i32, ptr %865, align 8, !tbaa !209
  %867 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %866)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.521, ptr noundef %867)
  %868 = getelementptr inbounds i8, ptr %32, i64 2932
  %869 = load float, ptr %868, align 4, !tbaa !210
  %870 = fpext float %869 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.522, double noundef %870)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.523)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %871 = getelementptr inbounds i8, ptr %32, i64 5008
  %872 = load ptr, ptr %871, align 8, !tbaa !211
  %.not518 = icmp eq ptr %872, null
  br i1 %.not518, label %876, label %873

873:                                              ; preds = %858
  %874 = getelementptr inbounds i8, ptr %872, i64 8
  %875 = load ptr, ptr %874, align 8, !tbaa !121
  br label %876

876:                                              ; preds = %858, %873
  %877 = phi ptr [ %875, %873 ], [ @.str.263, %858 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.524, ptr noundef %877)
  %878 = getelementptr inbounds i8, ptr %32, i64 5032
  %879 = load float, ptr %878, align 8, !tbaa !212
  %880 = fpext float %879 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.525, double noundef %880)
  %881 = getelementptr inbounds i8, ptr %32, i64 5044
  %882 = load float, ptr %881, align 4, !tbaa !213
  %883 = fpext float %882 to double
  %884 = getelementptr inbounds i8, ptr %32, i64 5048
  %885 = load float, ptr %884, align 4, !tbaa !214
  %886 = fpext float %885 to double
  %887 = fcmp ogt float %882, %885
  %888 = fcmp olt float %882, %885
  %889 = select i1 %888, ptr @.str.527, ptr @.str.528
  %890 = select i1 %887, ptr @.str.375, ptr %889
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.526, double noundef %883, double noundef %886, ptr noundef nonnull %890)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.529)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  %891 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %892 = fmul float %891, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 0xB810000000000000, float noundef %892)
  %893 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef nonnull @.str.530, 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 %893, label %.preheader555, label %.loopexit556

.preheader555:                                    ; preds = %876, %911
  %.0468633 = phi i32 [ %912, %911 ], [ 512, %876 ]
  %894 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %32, i32 noundef %.0468633)
  %895 = load i32, ptr %894, align 4, !tbaa !215
  %896 = icmp eq i32 %895, -1
  br i1 %896, label %911, label %897

897:                                              ; preds = %.preheader555
  %898 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0468633)
  %899 = load i32, ptr %894, align 4, !tbaa !215
  %900 = getelementptr inbounds i8, ptr %894, i64 9
  %901 = load i8, ptr %900, align 1, !tbaa !217, !range !13, !noundef !14
  %902 = trunc nuw i8 %901 to i1
  br i1 %902, label %908, label %903

903:                                              ; preds = %897
  %904 = getelementptr inbounds i8, ptr %894, i64 8
  %905 = load i8, ptr %904, align 4, !tbaa !218, !range !13, !noundef !14
  %906 = trunc nuw i8 %905 to i1
  %907 = select i1 %906, ptr @.str.533, ptr @.str.14
  br label %908

908:                                              ; preds = %897, %903
  %909 = phi ptr [ %907, %903 ], [ @.str.532, %897 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.531, ptr noundef %898, i32 noundef %899, ptr noundef nonnull %909)
  %910 = load i32, ptr %894, align 4, !tbaa !215
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %910)
  br label %911

911:                                              ; preds = %.preheader555, %908
  %912 = add nuw nsw i32 %.0468633, 1
  %exitcond667.not = icmp eq i32 %912, 666
  br i1 %exitcond667.not, label %.loopexit556, label %.preheader555, !llvm.loop !219

.loopexit556:                                     ; preds = %911, %876
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.534)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.535)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #9
  %913 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %914 = fmul float %913, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef 0xB810000000000000, float noundef %914)
  %915 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef nonnull @.str.536, 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 %915, label %.preheader553, label %.loopexit554

.preheader553:                                    ; preds = %.loopexit556
  %916 = getelementptr inbounds i8, ptr %32, i64 7056
  %917 = getelementptr inbounds i8, ptr %32, i64 7368
  %918 = getelementptr inbounds i8, ptr %32, i64 136
  %919 = getelementptr inbounds i8, ptr %32, i64 7408
  br label %920

920:                                              ; preds = %.preheader553, %._crit_edge639
  %indvars.iv668 = phi i64 [ 512, %.preheader553 ], [ %indvars.iv.next669, %._crit_edge639 ]
  %921 = add nsw i64 %indvars.iv668, -512
  %922 = getelementptr inbounds [154 x i16], ptr %916, i64 0, i64 %921
  %.0464634 = load i16, ptr %922, align 2, !tbaa !200
  %.not528635 = icmp eq i16 %.0464634, -1
  br i1 %.not528635, label %._crit_edge639, label %.lr.ph638.preheader

.lr.ph638.preheader:                              ; preds = %920
  %923 = trunc nuw nsw i64 %indvars.iv668 to i32
  br label %.lr.ph638

._crit_edge639:                                   ; preds = %942, %920
  %indvars.iv.next669 = add nuw nsw i64 %indvars.iv668, 1
  %exitcond671.not = icmp eq i64 %indvars.iv.next669, 666
  br i1 %exitcond671.not, label %.loopexit554, label %920, !llvm.loop !220

.lr.ph638:                                        ; preds = %.lr.ph638.preheader, %942
  %.0464636 = phi i16 [ %.0464, %942 ], [ %.0464634, %.lr.ph638.preheader ]
  %924 = sext i16 %.0464636 to i32
  %925 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %917, i32 noundef %924)
  %926 = getelementptr inbounds i8, ptr %925, i64 2
  %927 = load i16, ptr %926, align 2, !tbaa !221
  %928 = zext i16 %927 to i32
  %929 = or i32 %923, %928
  %930 = call noundef ptr @_ZN5ImGui15GetKeyChordNameEi(i32 noundef %929)
  %931 = getelementptr inbounds i8, ptr %925, i64 8
  %932 = load i32, ptr %931, align 4, !tbaa !223
  %933 = getelementptr inbounds i8, ptr %925, i64 4
  %934 = load i8, ptr %933, align 4, !tbaa !224
  %935 = zext i8 %934 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.537, ptr noundef %930, i32 noundef %932, i32 noundef %935)
  %936 = load i32, ptr %931, align 4, !tbaa !223
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %936)
  %937 = load i8, ptr %918, align 8, !tbaa !225, !range !13, !noundef !14
  %938 = trunc nuw i8 %937 to i1
  br i1 %938, label %939, label %942

939:                                              ; preds = %.lr.ph638
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %940 = call noundef zeroext i1 @_ZN5ImGui16DebugBreakButtonEPKcS1_(ptr noundef nonnull @.str.538, ptr noundef nonnull @.str.539)
  br i1 %940, label %941, label %942

941:                                              ; preds = %939
  store i32 %929, ptr %919, align 8, !tbaa !226
  br label %942

942:                                              ; preds = %939, %941, %.lr.ph638
  %.0464 = load i16, ptr %925, align 4, !tbaa !200
  %.not528 = icmp eq i16 %.0464, -1
  br i1 %.not528, label %._crit_edge639, label %.lr.ph638, !llvm.loop !227

.loopexit554:                                     ; preds = %._crit_edge639, %.loopexit556
  call void @_ZN5ImGui8EndChildEv()
  %943 = getelementptr inbounds i8, ptr %32, i64 7404
  %944 = load i8, ptr %943, align 4, !tbaa !228, !range !13, !noundef !14
  %945 = zext nneg i8 %944 to i32
  %946 = getelementptr inbounds i8, ptr %32, i64 7400
  %947 = load i32, ptr %946, align 8, !tbaa !229
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.540, i32 noundef %945, i32 noundef %947)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %948

948:                                              ; preds = %.loopexit554, %705
  %949 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.541)
  br i1 %949, label %950, label %1088

950:                                              ; preds = %948
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.542)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %951 = getelementptr inbounds i8, ptr %32, i64 4976
  %952 = load ptr, ptr %951, align 8, !tbaa !230
  %.not519 = icmp eq ptr %952, null
  br i1 %.not519, label %956, label %953

953:                                              ; preds = %950
  %954 = getelementptr inbounds i8, ptr %952, i64 8
  %955 = load ptr, ptr %954, align 8, !tbaa !121
  br label %956

956:                                              ; preds = %950, %953
  %957 = phi ptr [ %955, %953 ], [ @.str.263, %950 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.543, ptr noundef %957)
  %958 = load ptr, ptr %951, align 8, !tbaa !230
  %.not520 = icmp eq ptr %958, null
  br i1 %.not520, label %964, label %959

959:                                              ; preds = %956
  %960 = getelementptr inbounds i8, ptr %958, i64 928
  %961 = load ptr, ptr %960, align 8, !tbaa !231
  %962 = getelementptr inbounds i8, ptr %961, i64 8
  %963 = load ptr, ptr %962, align 8, !tbaa !121
  br label %964

964:                                              ; preds = %956, %959
  %965 = phi ptr [ %963, %959 ], [ @.str.263, %956 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.544, ptr noundef %965)
  %966 = getelementptr inbounds i8, ptr %32, i64 4984
  %967 = load ptr, ptr %966, align 8, !tbaa !232
  %.not521 = icmp eq ptr %967, null
  br i1 %.not521, label %971, label %968

968:                                              ; preds = %964
  %969 = getelementptr inbounds i8, ptr %967, i64 8
  %970 = load ptr, ptr %969, align 8, !tbaa !121
  br label %971

971:                                              ; preds = %964, %968
  %972 = phi ptr [ %970, %968 ], [ @.str.263, %964 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.545, ptr noundef %972)
  %973 = getelementptr inbounds i8, ptr %32, i64 5000
  %974 = load ptr, ptr %973, align 8, !tbaa !233
  %.not522 = icmp eq ptr %974, null
  br i1 %.not522, label %978, label %975

975:                                              ; preds = %971
  %976 = getelementptr inbounds i8, ptr %974, i64 8
  %977 = load ptr, ptr %976, align 8, !tbaa !121
  br label %978

978:                                              ; preds = %971, %975
  %979 = phi ptr [ %977, %975 ], [ @.str.263, %971 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.546, ptr noundef %979)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.547)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %980 = getelementptr inbounds i8, ptr %32, i64 5084
  %981 = load i32, ptr %980, align 4, !tbaa !234
  %982 = getelementptr inbounds i8, ptr %32, i64 5124
  %983 = load i32, ptr %982, align 4, !tbaa !235
  %984 = getelementptr inbounds i8, ptr %32, i64 5092
  %985 = load float, ptr %984, align 4, !tbaa !236
  %986 = fpext float %985 to double
  %987 = getelementptr inbounds i8, ptr %32, i64 5097
  %988 = load i8, ptr %987, align 1, !tbaa !237, !range !13, !noundef !14
  %989 = zext nneg i8 %988 to i32
  %990 = getelementptr inbounds i8, ptr %32, i64 5120
  %991 = load i32, ptr %990, align 8, !tbaa !238
  %992 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %991)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.548, i32 noundef %981, i32 noundef %983, double noundef %986, i32 noundef %989, ptr noundef %992)
  %993 = load i32, ptr %980, align 4, !tbaa !234
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %993)
  %994 = getelementptr inbounds i8, ptr %32, i64 5112
  %995 = load ptr, ptr %994, align 8, !tbaa !239
  %.not523 = icmp eq ptr %995, null
  br i1 %.not523, label %999, label %996

996:                                              ; preds = %978
  %997 = getelementptr inbounds i8, ptr %995, i64 8
  %998 = load ptr, ptr %997, align 8, !tbaa !121
  br label %999

999:                                              ; preds = %978, %996
  %1000 = phi ptr [ %998, %996 ], [ @.str.263, %978 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.549, ptr noundef %1000)
  %1001 = getelementptr inbounds i8, ptr %32, i64 7404
  %1002 = load i8, ptr %1001, align 4, !tbaa !228, !range !13, !noundef !14
  %1003 = zext nneg i8 %1002 to i32
  %1004 = getelementptr inbounds i8, ptr %32, i64 7400
  %1005 = load i32, ptr %1004, align 8, !tbaa !229
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.550, i32 noundef %1003, i32 noundef %1005)
  %1006 = getelementptr inbounds i8, ptr %32, i64 5064
  %1007 = load i32, ptr %1006, align 8, !tbaa !240
  %1008 = getelementptr inbounds i8, ptr %32, i64 5072
  %1009 = load float, ptr %1008, align 8, !tbaa !241
  %1010 = fpext float %1009 to double
  %1011 = getelementptr inbounds i8, ptr %32, i64 5080
  %1012 = load i8, ptr %1011, align 8, !tbaa !242, !range !13, !noundef !14
  %1013 = zext nneg i8 %1012 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.551, i32 noundef %1007, double noundef %1010, i32 noundef %1013)
  %1014 = getelementptr inbounds i8, ptr %32, i64 8944
  %1015 = load i32, ptr %1014, align 8, !tbaa !243
  %1016 = getelementptr inbounds i8, ptr %32, i64 8952
  %1017 = load float, ptr %1016, align 8, !tbaa !244
  %1018 = fpext float %1017 to double
  %1019 = getelementptr inbounds i8, ptr %32, i64 8956
  %1020 = load float, ptr %1019, align 4, !tbaa !245
  %1021 = fpext float %1020 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.552, i32 noundef %1015, double noundef %1018, double noundef %1021)
  %1022 = getelementptr inbounds i8, ptr %32, i64 8380
  %1023 = load i8, ptr %1022, align 4, !tbaa !246, !range !13, !noundef !14
  %1024 = zext nneg i8 %1023 to i32
  %1025 = getelementptr inbounds i8, ptr %32, i64 8412
  %1026 = load i32, ptr %1025, align 4, !tbaa !247
  %1027 = getelementptr inbounds i8, ptr %32, i64 8424
  %1028 = getelementptr inbounds i8, ptr %32, i64 8408
  %1029 = load i32, ptr %1028, align 8, !tbaa !248
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.553, i32 noundef %1024, i32 noundef %1026, ptr noundef nonnull %1027, i32 noundef %1029)
  %1030 = load i32, ptr %1025, align 4, !tbaa !247
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1030)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.554)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1031 = getelementptr inbounds i8, ptr %32, i64 7848
  %1032 = load ptr, ptr %1031, align 8, !tbaa !120
  %.not524 = icmp eq ptr %1032, null
  br i1 %.not524, label %1036, label %1033

1033:                                             ; preds = %999
  %1034 = getelementptr inbounds i8, ptr %1032, i64 8
  %1035 = load ptr, ptr %1034, align 8, !tbaa !121
  br label %1036

1036:                                             ; preds = %999, %1033
  %1037 = phi ptr [ %1035, %1033 ], [ @.str.263, %999 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.555, ptr noundef %1037)
  %1038 = getelementptr inbounds i8, ptr %32, i64 7844
  %1039 = load i32, ptr %1038, align 4, !tbaa !249
  %1040 = getelementptr inbounds i8, ptr %32, i64 7860
  %1041 = load i32, ptr %1040, align 4, !tbaa !250
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.556, i32 noundef %1039, i32 noundef %1041)
  %1042 = load i32, ptr %1038, align 4, !tbaa !249
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1042)
  %1043 = getelementptr inbounds i8, ptr %32, i64 7912
  %1044 = load i32, ptr %1043, align 8, !tbaa !251
  %1045 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1044)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.557, ptr noundef %1045)
  %1046 = getelementptr inbounds i8, ptr %32, i64 7920
  %1047 = load i64, ptr %1046, align 8, !tbaa !252
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.558, i64 noundef %1047, i64 noundef %1047)
  %1048 = getelementptr inbounds i8, ptr %32, i64 189
  %1049 = load i8, ptr %1048, align 1, !tbaa !253, !range !13, !noundef !14
  %1050 = zext nneg i8 %1049 to i32
  %1051 = getelementptr inbounds i8, ptr %32, i64 190
  %1052 = load i8, ptr %1051, align 2, !tbaa !254, !range !13, !noundef !14
  %1053 = zext nneg i8 %1052 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.559, i32 noundef %1050, i32 noundef %1053)
  %1054 = getelementptr inbounds i8, ptr %32, i64 7864
  %1055 = load i32, ptr %1054, align 8, !tbaa !255
  %1056 = getelementptr inbounds i8, ptr %32, i64 7868
  %1057 = load i32, ptr %1056, align 4, !tbaa !256
  %1058 = getelementptr inbounds i8, ptr %32, i64 7872
  %1059 = load i32, ptr %1058, align 8, !tbaa !257
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.560, i32 noundef %1055, i32 noundef %1057, i32 noundef %1059)
  %1060 = getelementptr inbounds i8, ptr %32, i64 7876
  %1061 = load i32, ptr %1060, align 4, !tbaa !258
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.561, i32 noundef %1061)
  %1062 = getelementptr inbounds i8, ptr %32, i64 7840
  %1063 = load i8, ptr %1062, align 8, !tbaa !259, !range !13, !noundef !14
  %1064 = zext nneg i8 %1063 to i32
  %1065 = getelementptr inbounds i8, ptr %32, i64 7841
  %1066 = load i8, ptr %1065, align 1, !tbaa !260, !range !13, !noundef !14
  %1067 = zext nneg i8 %1066 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.562, i32 noundef %1064, i32 noundef %1067)
  %1068 = getelementptr inbounds i8, ptr %32, i64 7856
  %1069 = load i32, ptr %1068, align 8, !tbaa !261
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.563, i32 noundef %1069)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.564)
  %1070 = getelementptr inbounds i8, ptr %32, i64 7880
  %1071 = load i32, ptr %1070, align 8, !tbaa !262
  %1072 = icmp sgt i32 %1071, 0
  br i1 %1072, label %.lr.ph643, label %._crit_edge644

._crit_edge644:                                   ; preds = %.lr.ph643, %1036
  %1073 = getelementptr inbounds i8, ptr %32, i64 8320
  %1074 = load ptr, ptr %1073, align 8, !tbaa !263
  %.not525 = icmp eq ptr %1074, null
  br i1 %.not525, label %1086, label %1083

.lr.ph643:                                        ; preds = %1036, %.lr.ph643
  %.0461.in641 = phi i32 [ %.0461, %.lr.ph643 ], [ %1071, %1036 ]
  %.0461 = add nsw i32 %.0461.in641, -1
  %1075 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZN8ImVectorI19ImGuiFocusScopeDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1070, i32 noundef %.0461)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef 0.000000e+00)
  %1076 = load i32, ptr %1075, align 4, !tbaa !264
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.565, i32 noundef %1076)
  %1077 = getelementptr inbounds i8, ptr %1075, i64 4
  %1078 = load i32, ptr %1077, align 4, !tbaa !266
  %1079 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %1078)
  %1080 = getelementptr inbounds i8, ptr %1079, i64 8
  %1081 = load ptr, ptr %1080, align 8, !tbaa !121
  call void (ptr, ...) @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef nonnull @.str.566, ptr noundef %1081)
  %1082 = icmp ugt i32 %.0461.in641, 1
  br i1 %1082, label %.lr.ph643, label %._crit_edge644, !llvm.loop !267

1083:                                             ; preds = %._crit_edge644
  %1084 = getelementptr inbounds i8, ptr %1074, i64 8
  %1085 = load ptr, ptr %1084, align 8, !tbaa !121
  br label %1086

1086:                                             ; preds = %._crit_edge644, %1083
  %1087 = phi ptr [ %1085, %1083 ], [ @.str.263, %._crit_edge644 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.567, ptr noundef %1087)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1088

1088:                                             ; preds = %1086, %948
  %1089 = getelementptr inbounds i8, ptr %32, i64 9998
  %1090 = load i8, ptr %1089, align 2, !tbaa !119, !range !13, !noundef !14
  %1091 = trunc nuw i8 %1090 to i1
  br i1 %1091, label %1096, label %1092

1092:                                             ; preds = %1088
  %1093 = getelementptr inbounds i8, ptr %32, i64 9999
  %1094 = load i8, ptr %1093, align 1, !tbaa !268, !range !13, !noundef !14
  %1095 = trunc nuw i8 %1094 to i1
  br i1 %1095, label %1096, label %.loopexit552

1096:                                             ; preds = %1092, %1088
  %1097 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %389)
  %1098 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %389)
  %.not526645 = icmp eq ptr %1097, %1098
  br i1 %.not526645, label %.loopexit552, label %.lr.ph648

.lr.ph648:                                        ; preds = %1096
  %1099 = getelementptr inbounds i8, ptr %26, i64 8
  %1100 = getelementptr inbounds i8, ptr %32, i64 9999
  br label %1101

1101:                                             ; preds = %.lr.ph648, %1130
  %.0458646 = phi ptr [ %1097, %.lr.ph648 ], [ %1131, %1130 ]
  %1102 = load ptr, ptr %.0458646, align 8, !tbaa !5
  %1103 = getelementptr inbounds i8, ptr %1102, i64 203
  %1104 = load i8, ptr %1103, align 1, !tbaa !269, !range !13, !noundef !14
  %1105 = trunc nuw i8 %1104 to i1
  br i1 %1105, label %1106, label %1130

1106:                                             ; preds = %1101
  %1107 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %1102)
  %1108 = load i8, ptr %1089, align 2, !tbaa !119, !range !13, !noundef !14
  %1109 = trunc nuw i8 %1108 to i1
  br i1 %1109, label %1110, label %1115

1110:                                             ; preds = %1106
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #9
  %1111 = load i32, ptr %72, align 4, !tbaa !115
  %1112 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef nonnull %1102, i32 noundef %1111)
  %1113 = extractvalue { <2 x float>, <2 x float> } %1112, 0
  store <2 x float> %1113, ptr %26, align 8
  %1114 = extractvalue { <2 x float>, <2 x float> } %1112, 1
  store <2 x float> %1114, ptr %1099, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %1107, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %1099, 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 %1115

1115:                                             ; preds = %1110, %1106
  %1116 = load i8, ptr %1100, align 1, !tbaa !268, !range !13, !noundef !14
  %1117 = trunc nuw i8 %1116 to i1
  br i1 %1117, label %1118, label %1130

1118:                                             ; preds = %1115
  %1119 = getelementptr inbounds i8, ptr %1102, i64 20
  %1120 = load i32, ptr %1119, align 4, !tbaa !160
  %1121 = and i32 %1120, 16777216
  %.not527 = icmp eq i32 %1121, 0
  br i1 %.not527, label %1122, label %1130

1122:                                             ; preds = %1118
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  %1123 = getelementptr inbounds i8, ptr %1102, i64 222
  %1124 = load i16, ptr %1123, align 2, !tbaa !270
  %1125 = sext i16 %1124 to i32
  %1126 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %27, i64 noundef 32, ptr noundef nonnull @.str.384, i32 noundef %1125)
  %1127 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %1128 = getelementptr inbounds i8, ptr %1102, 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 %1127, float noundef %1127)
  %1129 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1128, ptr noundef nonnull align 4 dereferenceable(8) %29)
  store <2 x float> %1129, ptr %28, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(216) %1107, ptr noundef nonnull align 4 dereferenceable(8) %1128, 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(216) %1107, ptr noundef nonnull align 4 dereferenceable(8) %1128, i32 noundef -1, ptr noundef nonnull %27, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  br label %1130

1130:                                             ; preds = %1115, %1118, %1122, %1101
  %1131 = getelementptr inbounds i8, ptr %.0458646, i64 8
  %.not526 = icmp eq ptr %1131, %1098
  br i1 %.not526, label %.loopexit552, label %1101

.loopexit552:                                     ; preds = %1130, %1096, %1092
  %1132 = getelementptr inbounds i8, ptr %32, i64 10000
  %1133 = load i8, ptr %1132, align 4, !tbaa !122, !range !13, !noundef !14
  %1134 = trunc nuw i8 %1133 to i1
  br i1 %1134, label %.preheader550, label %.loopexit551

.preheader550:                                    ; preds = %.loopexit552
  %1135 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %501)
  %1136 = icmp sgt i32 %1135, 0
  br i1 %1136, label %.lr.ph652, label %.loopexit551

.lr.ph652:                                        ; preds = %.preheader550
  %1137 = getelementptr inbounds i8, ptr %32, i64 4784
  %1138 = getelementptr inbounds i8, ptr %31, i64 8
  %1139 = getelementptr inbounds i8, ptr %30, i64 8
  br label %1140

1140:                                             ; preds = %.lr.ph652, %.loopexit
  %.0453651 = phi i32 [ 0, %.lr.ph652 ], [ %1176, %.loopexit ]
  %1141 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %501, i32 noundef %.0453651)
  %1142 = icmp eq ptr %1141, null
  br i1 %1142, label %.loopexit, label %1143

1143:                                             ; preds = %1140
  %1144 = getelementptr inbounds i8, ptr %1141, i64 104
  %1145 = load i32, ptr %1144, align 8, !tbaa !123
  %1146 = load i32, ptr %1137, align 8, !tbaa !134
  %1147 = add nsw i32 %1146, -1
  %1148 = icmp slt i32 %1145, %1147
  br i1 %1148, label %.loopexit, label %1149

1149:                                             ; preds = %1143
  %1150 = getelementptr inbounds i8, ptr %1141, i64 384
  %1151 = load ptr, ptr %1150, align 8, !tbaa !135
  %1152 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1151)
  %1153 = load i32, ptr %77, align 4, !tbaa !116
  %1154 = icmp sgt i32 %1153, 5
  br i1 %1154, label %.preheader, label %1172

.preheader:                                       ; preds = %1149
  %1155 = getelementptr inbounds i8, ptr %1141, i64 108
  %1156 = load i32, ptr %1155, align 4, !tbaa !138
  %1157 = icmp sgt i32 %1156, 0
  br i1 %1157, label %.lr.ph650, label %.loopexit

.lr.ph650:                                        ; preds = %.preheader
  %1158 = getelementptr inbounds i8, ptr %1141, i64 522
  br label %1159

1159:                                             ; preds = %.lr.ph650, %1159
  %.0450649 = phi i32 [ 0, %.lr.ph650 ], [ %1169, %1159 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #9
  %1160 = load i32, ptr %77, align 4, !tbaa !116
  %1161 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1141, i32 noundef %1160, i32 noundef %.0450649)
  %1162 = extractvalue { <2 x float>, <2 x float> } %1161, 0
  store <2 x float> %1162, ptr %30, align 8
  %1163 = extractvalue { <2 x float>, <2 x float> } %1161, 1
  store <2 x float> %1163, ptr %1139, align 8
  %1164 = load i16, ptr %1158, align 2, !tbaa !271
  %1165 = sext i16 %1164 to i32
  %1166 = icmp eq i32 %.0450649, %1165
  %1167 = select i1 %1166, i32 -8323073, i32 -8388353
  %1168 = select i1 %1166, float 3.000000e+00, float 1.000000e+00
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %1152, ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %1139, i32 noundef %1167, float noundef 0.000000e+00, i32 noundef 0, float noundef %1168)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #9
  %1169 = add nuw nsw i32 %.0450649, 1
  %1170 = load i32, ptr %1155, align 4, !tbaa !138
  %1171 = icmp slt i32 %1169, %1170
  br i1 %1171, label %1159, label %.loopexit, !llvm.loop !272

1172:                                             ; preds = %1149
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #9
  %1173 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1141, i32 noundef %1153, i32 noundef -1)
  %1174 = extractvalue { <2 x float>, <2 x float> } %1173, 0
  store <2 x float> %1174, ptr %31, align 8
  %1175 = extractvalue { <2 x float>, <2 x float> } %1173, 1
  store <2 x float> %1175, ptr %1138, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(216) %1152, ptr noundef nonnull align 4 dereferenceable(8) %31, ptr noundef nonnull align 4 dereferenceable(8) %1138, 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 = %1159, %.preheader, %1172, %1140, %1143
  %1176 = add nuw nsw i32 %.0453651, 1
  %1177 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %501)
  %1178 = icmp slt i32 %1176, %1177
  br i1 %1178, label %1140, label %.loopexit551, !llvm.loop !273

.loopexit551:                                     ; preds = %.loopexit, %.preheader550, %.loopexit552
  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 %1179

1179:                                             ; preds = %.loopexit551, %49
  ret void
}

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui25DebugNodeMultiSelectStateEP21ImGuiMultiSelectState(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: 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

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 216}
!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, !19, i64 128, !19, i64 132, !12, i64 136, !12, i64 140, !12, i64 144, !12, i64 148, !18, i64 152, !18, i64 160, !18, i64 168, !18, i64 176, !18, i64 184, !18, i64 192, !11, i64 200, !11, i64 201, !11, i64 202, !11, i64 203, !11, i64 204, !11, i64 205, !11, i64 206, !11, i64 207, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !7, i64 214, !7, i64 215, !20, i64 216, !20, i64 218, !20, i64 220, !20, i64 222, !20, i64 224, !7, i64 226, !7, i64 227, !11, i64 228, !21, i64 232, !7, i64 236, !7, i64 237, !7, i64 238, !7, i64 239, !12, i64 240, !12, i64 241, !12, i64 242, !18, i64 244, !18, i64 252, !22, i64 264, !23, i64 280, !29, i64 512, !29, i64 528, !29, i64 544, !29, i64 560, !29, i64 576, !29, i64 592, !29, i64 608, !30, i64 624, !30, i64 628, !12, i64 632, !19, i64 636, !19, i64 640, !31, i64 648, !33, i64 664, !19, i64 680, !12, i64 684, !6, i64 688, !34, i64 696, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !7, i64 976, !7, i64 984, !7, i64 1016, !12, i64 1032, !12, i64 1036, !12, i64 1040, !11, i64 1044}
!18 = !{!"_ZTS6ImVec2", !19, i64 0, !19, i64 4}
!19 = !{!"float", !7, i64 0}
!20 = !{!"short", !7, i64 0}
!21 = !{!"_ZTS8ImGuiDir", !7, i64 0}
!22 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!23 = !{!"_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, !24, i64 68, !24, i64 72, !24, i64 76, !18, i64 80, !25, i64 88, !20, i64 92, !20, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !18, i64 100, !26, i64 108, !12, i64 136, !12, i64 140, !27, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !19, i64 192, !19, i64 196, !28, i64 200, !28, i64 216}
!24 = !{!"_ZTS6ImVec1", !19, i64 0}
!25 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!26 = !{!"_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}
!27 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!28 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!29 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!30 = !{!"_ZTS8ImVec2ih", !20, i64 0, !20, i64 2}
!31 = !{!"_ZTS12ImGuiStorage", !32, i64 0}
!32 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !12, i64 0, !12, i64 4, !6, i64 8}
!33 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!34 = !{!"_ZTS10ImDrawList", !35, i64 0, !36, i64 16, !37, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !38, i64 80, !39, i64 96, !42, i64 128, !44, i64 152, !45, i64 168, !46, i64 184, !19, i64 200, !6, i64 208}
!35 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS15ImDrawCmdHeader", !40, i64 0, !41, i64 16, !12, i64 24}
!40 = !{!"_ZTS6ImVec4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!41 = !{!"long long", !7, i64 0}
!42 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !43, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorIyE", !12, i64 0, !12, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!47 = !{!7, !7, i64 0}
!48 = !{!49, !19, i64 184}
!49 = !{!"_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, !11, i64 88, !11, i64 89, !11, i64 90, !11, i64 91, !11, i64 92, !11, i64 93, !11, i64 94, !11, i64 95, !11, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !11, i64 124, !11, i64 125, !11, i64 126, !11, i64 127, !11, i64 128, !11, i64 129, !11, i64 130, !11, i64 131, !11, i64 132, !11, i64 133, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !11, i64 176, !11, i64 177, !11, i64 178, !11, i64 179, !11, i64 180, !11, i64 181, !11, i64 182, !19, i64 184, !12, i64 188, !12, i64 192, !12, i64 196, !12, i64 200, !18, i64 204, !6, i64 216, !18, i64 224, !7, i64 232, !19, i64 240, !19, i64 244, !50, i64 248, !11, i64 252, !11, i64 253, !11, i64 254, !11, i64 255, !12, i64 256, !7, i64 260, !11, i64 2724, !18, i64 2728, !7, i64 2736, !7, i64 2776, !7, i64 2816, !7, i64 2821, !7, i64 2826, !7, i64 2836, !7, i64 2846, !7, i64 2851, !7, i64 2856, !11, i64 2861, !11, i64 2862, !7, i64 2864, !7, i64 2884, !7, i64 2904, !19, i64 2924, !11, i64 2928, !11, i64 2929, !20, i64 2930, !36, i64 2936, !6, i64 2952, !6, i64 2960, !6, i64 2968}
!50 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!51 = !{!49, !12, i64 188}
!52 = !{!49, !12, i64 192}
!53 = !{!49, !12, i64 196}
!54 = !{!55, !12, i64 10064}
!55 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !49, i64 8, !56, i64 2984, !57, i64 3056, !6, i64 4216, !19, i64 4224, !19, i64 4228, !19, i64 4232, !19, i64 4236, !58, i64 4240, !59, i64 4776, !12, i64 4784, !12, i64 4788, !12, i64 4792, !12, i64 4796, !11, i64 4800, !11, i64 4801, !11, i64 4802, !11, i64 4803, !6, i64 4808, !7, i64 4816, !60, i64 4832, !60, i64 4848, !50, i64 4864, !12, i64 4868, !27, i64 4872, !27, i64 4888, !27, i64 4904, !61, i64 4920, !31, i64 4936, !12, i64 4952, !18, i64 4956, !12, i64 4964, !6, i64 4968, !6, i64 4976, !6, i64 4984, !6, i64 4992, !6, i64 5000, !6, i64 5008, !18, i64 5016, !12, i64 5024, !12, i64 5028, !19, i64 5032, !18, i64 5036, !18, i64 5044, !12, i64 5052, !12, i64 5056, !12, i64 5060, !12, i64 5064, !12, i64 5068, !19, i64 5072, !19, i64 5076, !11, i64 5080, !11, i64 5081, !11, i64 5082, !12, i64 5084, !12, i64 5088, !19, i64 5092, !11, i64 5096, !11, i64 5097, !11, i64 5098, !11, i64 5099, !11, i64 5100, !11, i64 5101, !11, i64 5102, !12, i64 5103, !18, i64 5104, !6, i64 5112, !62, i64 5120, !12, i64 5124, !63, i64 5128, !64, i64 5140, !12, i64 5148, !19, i64 5152, !59, i64 5160, !59, i64 5168, !59, i64 5176, !65, i64 5184, !7, i64 5204, !66, i64 7056, !12, i64 7400, !11, i64 7404, !12, i64 7408, !12, i64 7412, !12, i64 7416, !12, i64 7420, !68, i64 7424, !69, i64 7480, !70, i64 7560, !11, i64 7672, !12, i64 7676, !71, i64 7680, !72, i64 7696, !73, i64 7712, !74, i64 7728, !75, i64 7744, !76, i64 7760, !77, i64 7776, !77, i64 7792, !78, i64 7808, !79, i64 7824, !11, i64 7840, !11, i64 7841, !11, i64 7842, !11, i64 7843, !12, i64 7844, !6, i64 7848, !12, i64 7856, !25, i64 7860, !12, i64 7864, !12, i64 7868, !12, i64 7872, !12, i64 7876, !74, i64 7880, !12, i64 7896, !19, i64 7900, !12, i64 7904, !12, i64 7908, !62, i64 7912, !41, i64 7920, !7, i64 7928, !11, i64 7929, !11, i64 7930, !11, i64 7931, !80, i64 7936, !11, i64 7992, !11, i64 7993, !11, i64 7994, !12, i64 7996, !12, i64 8000, !12, i64 8004, !21, i64 8008, !21, i64 8012, !21, i64 8016, !29, i64 8020, !29, i64 8036, !12, i64 8052, !12, i64 8056, !12, i64 8060, !80, i64 8064, !80, i64 8120, !80, i64 8176, !80, i64 8232, !12, i64 8288, !12, i64 8292, !12, i64 8296, !12, i64 8300, !11, i64 8304, !11, i64 8305, !12, i64 8308, !12, i64 8312, !6, i64 8320, !6, i64 8328, !6, i64 8336, !19, i64 8344, !19, i64 8348, !11, i64 8352, !81, i64 8356, !18, i64 8360, !18, i64 8368, !19, i64 8376, !11, i64 8380, !11, i64 8381, !11, i64 8382, !12, i64 8384, !12, i64 8388, !12, i64 8392, !82, i64 8400, !29, i64 8464, !29, i64 8480, !12, i64 8496, !12, i64 8500, !19, i64 8504, !12, i64 8508, !12, i64 8512, !12, i64 8516, !12, i64 8520, !46, i64 8528, !7, i64 8544, !12, i64 8560, !83, i64 8568, !6, i64 8584, !12, i64 8592, !12, i64 8596, !84, i64 8600, !85, i64 8616, !28, i64 8656, !43, i64 8672, !6, i64 8688, !87, i64 8696, !89, i64 8736, !90, i64 8752, !91, i64 8768, !6, i64 8872, !12, i64 8880, !92, i64 8888, !93, i64 8904, !12, i64 8944, !12, i64 8948, !19, i64 8952, !19, i64 8956, !12, i64 8960, !12, i64 8964, !12, i64 8968, !19, i64 8972, !18, i64 8976, !95, i64 8984, !97, i64 9104, !98, i64 9128, !12, i64 9248, !64, i64 9252, !12, i64 9260, !12, i64 9264, !12, i64 9268, !12, i64 9272, !12, i64 9276, !19, i64 9280, !19, i64 9284, !12, i64 9288, !40, i64 9292, !100, i64 9308, !29, i64 9356, !11, i64 9372, !20, i64 9374, !19, i64 9376, !19, i64 9380, !19, i64 9384, !11, i64 9388, !11, i64 9389, !19, i64 9392, !19, i64 9396, !19, i64 9400, !20, i64 9404, !20, i64 9406, !6, i64 9408, !96, i64 9416, !22, i64 9432, !101, i64 9448, !103, i64 9552, !103, i64 9568, !11, i64 9584, !19, i64 9588, !104, i64 9592, !105, i64 9608, !106, i64 9624, !107, i64 9640, !108, i64 9656, !12, i64 9672, !7, i64 9680, !11, i64 9760, !12, i64 9764, !6, i64 9768, !6, i64 9776, !104, i64 9784, !6, i64 9800, !6, i64 9808, !19, i64 9816, !11, i64 9820, !12, i64 9824, !12, i64 9828, !12, i64 9832, !6, i64 9840, !6, i64 9848, !18, i64 9856, !11, i64 9864, !12, i64 9868, !109, i64 9872, !6, i64 9896, !12, i64 9904, !12, i64 9908, !104, i64 9912, !110, i64 9928, !12, i64 9952, !12, i64 9956, !7, i64 9960, !7, i64 9961, !11, i64 9962, !12, i64 9964, !7, i64 9968, !11, i64 9969, !7, i64 9970, !12, i64 9972, !19, i64 9976, !40, i64 9980, !10, i64 9996, !111, i64 10024, !113, i64 10064, !7, i64 10124, !12, i64 10364, !12, i64 10368, !19, i64 10372, !12, i64 10376, !12, i64 10380, !12, i64 10384, !96, i64 10392, !7, i64 10408}
!56 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !20, i64 56, !6, i64 64}
!57 = !{!"_ZTS10ImGuiStyle", !19, i64 0, !19, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !18, i64 24, !18, i64 32, !21, 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, !19, i64 156, !18, i64 160, !21, i64 168, !18, i64 172, !18, i64 180, !19, i64 188, !18, i64 192, !18, i64 200, !18, i64 208, !18, i64 216, !19, i64 224, !11, i64 228, !11, i64 229, !11, i64 230, !19, i64 232, !19, i64 236, !7, i64 240, !19, i64 1136, !19, i64 1140, !19, i64 1144, !12, i64 1148, !12, i64 1152}
!58 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !6, i64 16, !19, i64 24, !19, i64 28, !19, i64 32, !19, i64 36, !40, i64 40, !12, i64 56, !38, i64 64, !7, i64 80, !19, i64 464, !7, i64 468}
!59 = !{!"double", !7, i64 0}
!60 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!62 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!63 = !{!"_ZTS24ImGuiDeactivatedItemData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!64 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!65 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!66 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !67, i64 312, !67, i64 328}
!67 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!68 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !12, i64 8, !41, i64 16, !19, i64 24, !12, i64 28, !12, i64 32, !11, i64 36, !7, i64 37, !64, i64 38, !12, i64 48}
!69 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !29, i64 12, !29, i64 28, !29, i64 44, !29, i64 60, !12, i64 76}
!70 = !{!"_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, !29, i64 64, !6, i64 80, !6, i64 88, !19, i64 96, !18, i64 100, !12, i64 108}
!71 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!80 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !29, i64 16, !12, i64 32, !19, i64 36, !19, i64 40, !19, i64 44, !41, i64 48}
!81 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!82 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !7, i64 24, !11, i64 57, !11, i64 58}
!83 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_ZTS6ImPoolI10ImGuiTableE", !86, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!86 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!87 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !88, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!88 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!89 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!90 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!91 = !{!"_ZTS19ImGuiBoxSelectState", !12, i64 0, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !11, i64 8, !12, i64 9, !18, i64 12, !18, i64 20, !18, i64 28, !6, i64 40, !11, i64 48, !29, i64 52, !29, i64 68, !29, i64 84}
!92 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!93 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !94, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!94 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !12, i64 0, !12, i64 4, !6, i64 8}
!95 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !6, i64 32, !96, i64 40, !96, i64 56, !96, i64 72, !12, i64 88, !18, i64 92, !19, i64 100, !11, i64 104, !11, i64 105, !11, i64 106, !11, i64 107, !12, i64 108, !12, i64 112}
!96 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!97 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !96, i64 8}
!98 = !{!"_ZTS6ImFont", !28, i64 0, !19, i64 16, !19, i64 20, !36, i64 24, !99, 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}
!99 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!100 = !{!"_ZTS21ImGuiComboPreviewData", !29, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !19, i64 40, !12, i64 44}
!101 = !{!"_ZTS22ImGuiTypingSelectState", !102, i64 0, !7, i64 24, !12, i64 88, !12, i64 92, !19, i64 96, !11, i64 100}
!102 = !{!"_ZTS24ImGuiTypingSelectRequest", !12, i64 0, !12, i64 4, !6, i64 8, !11, i64 16, !11, i64 17, !7, i64 18}
!103 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !18, i64 4, !19, i64 12}
!104 = !{!"_ZTS15ImGuiTextBuffer", !96, i64 0}
!105 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!106 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !96, i64 0}
!107 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !96, i64 0}
!108 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!109 = !{!"_ZTS23ImGuiErrorRecoveryState", !20, i64 0, !20, i64 2, !20, i64 4, !20, i64 6, !20, i64 8, !20, i64 10, !20, i64 12, !20, i64 14, !20, i64 16, !20, i64 18, !20, i64 20}
!110 = !{!"_ZTS14ImGuiTextIndex", !75, i64 0, !12, i64 16}
!111 = !{!"_ZTS16ImGuiIDStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !112, i64 16, !11, i64 32, !19, i64 36}
!112 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!113 = !{!"_ZTS19ImGuiDebugAllocInfo", !12, i64 0, !12, i64 4, !20, i64 8, !7, i64 12}
!114 = !{!55, !12, i64 10068}
!115 = !{!10, !12, i64 12}
!116 = !{!10, !12, i64 16}
!117 = !{!55, !19, i64 3256}
!118 = !{!55, !11, i64 9969}
!119 = !{!10, !11, i64 2}
!120 = !{!55, !6, i64 7848}
!121 = !{!17, !6, i64 8}
!122 = !{!10, !11, i64 4}
!123 = !{!124, !12, i64 104}
!124 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !125, i64 24, !126, i64 40, !127, 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, !29, i64 240, !29, i64 256, !29, i64 272, !29, i64 288, !29, i64 304, !29, i64 320, !29, i64 336, !29, i64 352, !29, i64 368, !6, i64 384, !6, i64 392, !104, i64 400, !6, i64 416, !128, i64 424, !129, i64 448, !130, 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}
!125 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!126 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!127 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!128 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !19, i64 4, !19, i64 8, !19, i64 12, !12, i64 16, !12, i64 20}
!129 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!130 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !20, i64 4, !20, i64 6, !131, i64 8}
!131 = !{!"_ZTS18ImGuiSortDirection", !7, i64 0}
!132 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!133 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!134 = !{!55, !12, i64 4784}
!135 = !{!124, !6, i64 384}
!136 = !{!124, !6, i64 392}
!137 = !{!124, !12, i64 0}
!138 = !{!124, !12, i64 108}
!139 = distinct !{!139, !140}
!140 = !{!"llvm.loop.mustprogress"}
!141 = distinct !{!141, !140}
!142 = distinct !{!142, !140}
!143 = !{!10, !11, i64 7}
!144 = !{!55, !12, i64 4872}
!145 = !{!27, !6, i64 8}
!146 = !{!27, !12, i64 0}
!147 = !{!17, !12, i64 632}
!148 = !{!149, !12, i64 96}
!149 = !{!"_ZTS14ImGuiViewportP", !150, i64 0, !7, i64 56, !7, i64 64, !151, i64 80, !153, i64 144, !18, i64 176, !18, i64 184, !18, i64 192, !18, i64 200}
!150 = !{!"_ZTS13ImGuiViewport", !12, i64 0, !12, i64 4, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !6, i64 40, !6, i64 48}
!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 = !{!55, !12, i64 7824}
!155 = !{!10, !12, i64 24}
!156 = !{!55, !12, i64 7776}
!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 912}
!163 = distinct !{!163, !140}
!164 = distinct !{!164, !140}
!165 = !{!55, !6, i64 56}
!166 = !{!167, !12, i64 88}
!167 = !{!"_ZTS11ImFontAtlas", !12, i64 0, !41, 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, !73, 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 = !{!91, !12, i64 0}
!171 = !{!91, !11, i64 5}
!172 = !{!91, !11, i64 4}
!173 = distinct !{!173, !140}
!174 = !{!55, !6, i64 32}
!175 = !{!55, !19, i64 9588}
!176 = !{!55, !12, i64 9608}
!177 = !{!178, !6, i64 0}
!178 = !{!"_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}
!179 = distinct !{!179, !140}
!180 = distinct !{!180, !140}
!181 = !{!55, !12, i64 9592}
!182 = !{!113, !12, i64 0}
!183 = !{!113, !12, i64 4}
!184 = !{!55, !11, i64 4802}
!185 = !{!113, !20, i64 8}
!186 = !{!187, !12, i64 0}
!187 = !{!"_ZTS20ImGuiDebugAllocEntry", !12, i64 0, !20, i64 4, !20, i64 6}
!188 = !{!187, !20, i64 4}
!189 = !{!187, !20, i64 6}
!190 = !{!191, !19, i64 4}
!191 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!192 = distinct !{!192, !140}
!193 = distinct !{!193, !140}
!194 = !{!49, !11, i64 252}
!195 = !{!49, !11, i64 253}
!196 = !{!49, !11, i64 254}
!197 = !{!49, !11, i64 255}
!198 = !{!49, !12, i64 2936}
!199 = distinct !{!199, !140}
!200 = !{!20, !20, i64 0}
!201 = distinct !{!201, !140}
!202 = !{!49, !19, i64 224}
!203 = !{!49, !19, i64 228}
!204 = !{!49, !19, i64 204}
!205 = !{!49, !19, i64 208}
!206 = !{!19, !19, i64 0}
!207 = !{!49, !19, i64 240}
!208 = !{!55, !19, i64 8972}
!209 = !{!49, !50, i64 248}
!210 = !{!49, !19, i64 2924}
!211 = !{!55, !6, i64 5008}
!212 = !{!55, !19, i64 5032}
!213 = !{!55, !19, i64 5044}
!214 = !{!55, !19, i64 5048}
!215 = !{!216, !12, i64 0}
!216 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!217 = !{!216, !11, i64 9}
!218 = !{!216, !11, i64 8}
!219 = distinct !{!219, !140}
!220 = distinct !{!220, !140}
!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 = !{!55, !11, i64 136}
!226 = !{!55, !12, i64 7408}
!227 = distinct !{!227, !140}
!228 = !{!55, !11, i64 7404}
!229 = !{!55, !12, i64 7400}
!230 = !{!55, !6, i64 4976}
!231 = !{!17, !6, i64 928}
!232 = !{!55, !6, i64 4984}
!233 = !{!55, !6, i64 5000}
!234 = !{!55, !12, i64 5084}
!235 = !{!55, !12, i64 5124}
!236 = !{!55, !19, i64 5092}
!237 = !{!55, !11, i64 5097}
!238 = !{!55, !62, i64 5120}
!239 = !{!55, !6, i64 5112}
!240 = !{!55, !12, i64 5064}
!241 = !{!55, !19, i64 5072}
!242 = !{!55, !11, i64 5080}
!243 = !{!55, !12, i64 8944}
!244 = !{!55, !19, i64 8952}
!245 = !{!55, !19, i64 8956}
!246 = !{!55, !11, i64 8380}
!247 = !{!55, !12, i64 8412}
!248 = !{!55, !12, i64 8408}
!249 = !{!55, !12, i64 7844}
!250 = !{!55, !25, i64 7860}
!251 = !{!55, !62, i64 7912}
!252 = !{!55, !41, i64 7920}
!253 = !{!55, !11, i64 189}
!254 = !{!55, !11, i64 190}
!255 = !{!55, !12, i64 7864}
!256 = !{!55, !12, i64 7868}
!257 = !{!55, !12, i64 7872}
!258 = !{!55, !12, i64 7876}
!259 = !{!55, !11, i64 7840}
!260 = !{!55, !11, i64 7841}
!261 = !{!55, !12, i64 7856}
!262 = !{!55, !12, i64 7880}
!263 = !{!55, !6, i64 8320}
!264 = !{!265, !12, i64 0}
!265 = !{!"_ZTS19ImGuiFocusScopeData", !12, i64 0, !12, i64 4}
!266 = !{!265, !12, i64 4}
!267 = distinct !{!267, !140}
!268 = !{!10, !11, i64 3}
!269 = !{!17, !11, i64 203}
!270 = !{!17, !20, i64 222}
!271 = !{!124, !20, i64 522}
!272 = distinct !{!272, !140}
!273 = distinct !{!273, !140}


; 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