; LLVM IR from aap/librw :: skeleton/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, [6 x i8], %struct.ImGuiIO, %struct.ImGuiStyle, ptr, float, float, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, 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, float, float, i8, i8, i8, i32, i32, float, i8, i8, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, i8, i8, ptr, i32, float, double, double, double, %struct.ImBitArray, [154 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %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, ptr, i32, i32, i32, i32, i32, i32, i32, %struct.ImVector.9, i32, float, i32, i32, i32, i64, i8, i8, i8, i8, i8, i8, i8, %struct.ImGuiNavItemData, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, 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, i16, %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, [9 x ptr], i8, i32, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i32, i8, i8, i8, i32, i8, i8, i8, i32, float, %struct.ImVec4, %struct.ImGuiMetricsConfig, %struct.ImGuiIDStackTool, %struct.ImGuiDebugAllocInfo, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.28, [64 x i8] }
%struct.ImGuiIO = type <{ i32, i32, %struct.ImVec2, float, float, ptr, ptr, ptr, ptr, float, i8, [3 x i8], ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8], float, float, float, float, float, float, i8, i8, i8, i8, i8, [7 x i8], ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i16, i8, i8, i8, i8, i8, i8, i8, [3 x i8], float, i32, i32, i32, i32, %struct.ImVec2, ptr, %struct.ImVec2, [5 x i8], [3 x i8], float, float, i32, i8, i8, i8, i8, i32, [666 x %struct.ImGuiKeyData], i8, [3 x 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, i8, [5 x float], [5 x float], [5 x float], float, i8, i8, i8, i8, i16, [2 x i8], %struct.ImVector, [666 x i32], [666 x i8], [2 x i8], [16 x float], [4 x i8] }>
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, float, float, 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, float, float, float, float, %struct.ImVec4, i32, %struct.ImVector.0, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.4 }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImBitArray = type { [5 x i32] }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [154 x i16], %struct.ImVector.5, %struct.ImVector.5 }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, i32, 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, i32, i32, i32, %struct.ImVector, %struct.ImVector.28, %struct.ImVector.28, i8, i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i32, i8, i32, i32 }
%"struct.ImStb::STB_TexteditState" = type { i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, float, %"struct.ImStb::StbUndoState" }
%"struct.ImStb::StbUndoState" = type { [99 x %"struct.ImStb::StbUndoRecord"], [999 x i16], i16, i16, i32, i32 }
%"struct.ImStb::StbUndoRecord" = type { i32, i32, i32, i32 }
%struct.ImGuiInputTextDeactivatedState = type { i32, %struct.ImVector.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.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, float, ptr }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, 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], ptr, i32, i32, i8, [7 x i8], ptr, i8, i8, [6 x i8], ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.8, %struct.ImVector.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.17 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.371 = 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.389 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [64 x i8], align 16
@.str.415 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [34 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 [34 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.494 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.520 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.529 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.530 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.531 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.532 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.533 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.535 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.536 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.537 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.538 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.539 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.540 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.541 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.542 = 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(200), 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(200), 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 ptr @_ZN5ImGui10GetVersionEv() #1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui7TreePopEv() #6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef %0) #7 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca [8 x ptr], align 16
  %8 = alloca [13 x ptr], align 16
  %9 = alloca %struct.ImVec2, align 4
  %10 = alloca i32, align 4
  %11 = alloca %struct.ImRect, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca %struct.ImVec2, align 4
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca %struct.ImVec2, align 4
  %18 = alloca [128 x i8], align 16
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %struct.ImRect, align 4
  %22 = alloca %struct.ImVec2, align 4
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca %struct.ImVec2, align 4
  %27 = alloca %struct.ImRect, align 4
  %28 = alloca %struct.ImVec2, align 4
  %29 = alloca %struct.ImVec2, align 4
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca ptr, align 8
  %59 = alloca ptr, align 8
  %60 = alloca i32, align 4
  %61 = alloca ptr, align 8
  %62 = alloca i32, align 4
  %63 = alloca ptr, align 8
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca 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 3
  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 274
  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.366, 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 %1997

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

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

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

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

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

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

206:                                              ; preds = %203, %198
  %207 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.389)
  br i1 %207, label %208, label %559

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

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

226:                                              ; preds = %221
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %227

227:                                              ; preds = %226, %221, %208
  %228 = load ptr, ptr %3, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.ImGuiContext, ptr %228, i32 0, i32 3
  %230 = getelementptr inbounds %struct.ImGuiIO, ptr %229, i32 0, i32 30
  %231 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.394, ptr noundef %230)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.395)
  %232 = load ptr, ptr %5, align 8, !tbaa !5
  %233 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %232, i32 0, i32 0
  %234 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.396, ptr noundef %233)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.397)
  %235 = load ptr, ptr %5, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %235, i32 0, i32 1
  %237 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.398, ptr noundef %236)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.399)
  %238 = load ptr, ptr %5, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %238, i32 0, i32 3
  %240 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.400, ptr noundef %239)
  %241 = load ptr, ptr %5, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %241, i32 0, i32 2
  %243 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.401, ptr noundef %242)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %244 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %245 = fmul float %244, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %245)
  %246 = load ptr, ptr %5, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %246, i32 0, i32 9
  %248 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 0
  %249 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.402, ptr noundef %247, ptr noundef %248, i32 noundef 8, i32 noundef 8)
  %250 = zext i1 %249 to i32
  %251 = load ptr, ptr %5, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %251, i32 0, i32 2
  %253 = load i8, ptr %252, align 2, !tbaa !120, !range !13, !noundef !14
  %254 = trunc i8 %253 to i1
  %255 = zext i1 %254 to i32
  %256 = or i32 %255, %250
  %257 = icmp ne i32 %256, 0
  %258 = zext i1 %257 to i8
  store i8 %258, ptr %252, align 2, !tbaa !120
  %259 = load ptr, ptr %5, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %259, i32 0, i32 2
  %261 = load i8, ptr %260, align 2, !tbaa !120, !range !13, !noundef !14
  %262 = trunc i8 %261 to i1
  br i1 %262, label %263, label %316

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

384:                                              ; preds = %376, %359, %352
  store i32 7, ptr %6, align 4
  br label %530

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

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

408:                                              ; preds = %398, %385
  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 %409

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

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

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

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

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

422:                                              ; preds = %419
  br label %526

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

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

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

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

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

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

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

480:                                              ; preds = %430
  br label %525

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

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

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

525:                                              ; preds = %524, %480
  br label %526

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

529:                                              ; preds = %412
  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 %530

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

532:                                              ; preds = %530
  br label %533

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

536:                                              ; preds = %351
  br label %537

537:                                              ; preds = %536, %339, %316
  %538 = load ptr, ptr %3, align 8, !tbaa !5
  %539 = getelementptr inbounds %struct.ImGuiContext, ptr %538, i32 0, i32 89
  %540 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.409, ptr noundef %539)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.410)
  %541 = load ptr, ptr %4, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.ImGuiIO, ptr %541, i32 0, i32 32
  %543 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.411, ptr noundef %542)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.412)
  %544 = load ptr, ptr %5, align 8, !tbaa !5
  %545 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %544, i32 0, i32 7
  %546 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.413, ptr noundef %545)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.414)
  %547 = load ptr, ptr %5, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %547, i32 0, i32 7
  %549 = load i8, ptr %548, align 1, !tbaa !150, !range !13, !noundef !14
  %550 = trunc i8 %549 to i1
  br i1 %550, label %551, label %558

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

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

557:                                              ; preds = %556, %551
  br label %558

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

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

565:                                              ; preds = %559
  %566 = load ptr, ptr %3, align 8, !tbaa !5
  %567 = getelementptr inbounds %struct.ImGuiContext, ptr %566, i32 0, i32 26
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %567, ptr noundef @.str.418)
  %568 = load ptr, ptr %3, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.ImGuiContext, ptr %568, i32 0, i32 27
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %569, ptr noundef @.str.419)
  %570 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.420)
  br i1 %570, label %571, label %617

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

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

585:                                              ; preds = %581
  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 %603

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

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

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

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

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

617:                                              ; preds = %603, %565
  call void @_ZN5ImGui7TreePopEv()
  br label %618

618:                                              ; preds = %617, %559
  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
  %619 = load ptr, ptr %3, align 8, !tbaa !5
  %620 = getelementptr inbounds %struct.ImGuiContext, ptr %619, i32 0, i32 100
  store ptr %620, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  %621 = load ptr, ptr %39, align 8, !tbaa !5
  %622 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %621)
  store ptr %622, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  %623 = load ptr, ptr %39, align 8, !tbaa !5
  %624 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %623)
  store ptr %624, ptr %41, align 8, !tbaa !5
  br label %625

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

629:                                              ; preds = %625
  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 %643

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

640:                                              ; preds = %630
  %641 = load ptr, ptr %40, align 8, !tbaa !5
  %642 = getelementptr inbounds ptr, ptr %641, i32 1
  store ptr %642, ptr %40, align 8, !tbaa !5
  br label %625

643:                                              ; preds = %629
  %644 = load i32, ptr %38, align 4, !tbaa !123
  %645 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.421, ptr noundef @.str.422, i32 noundef %644)
  br i1 %645, label %646, label %692

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

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

663:                                              ; preds = %659
  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 %691

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

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

678:                                              ; preds = %674
  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 %687

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

684:                                              ; preds = %679
  %685 = load ptr, ptr %48, align 8, !tbaa !5
  %686 = getelementptr inbounds ptr, ptr %685, i32 1
  store ptr %686, ptr %48, align 8, !tbaa !5
  br label %674

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

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

691:                                              ; preds = %663
  call void @_ZN5ImGui7TreePopEv()
  br label %692

692:                                              ; preds = %691, %643
  %693 = load ptr, ptr %3, align 8, !tbaa !5
  %694 = getelementptr inbounds %struct.ImGuiContext, ptr %693, i32 0, i32 100
  %695 = getelementptr inbounds %struct.ImVector.14, ptr %694, i32 0, i32 0
  %696 = load i32, ptr %695, align 8, !tbaa !161
  %697 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.426, ptr noundef @.str.427, i32 noundef %696)
  br i1 %697, label %698, label %723

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

700:                                              ; preds = %698
  call void @_ZL25RenderViewportsThumbnailsv()
  call void @_ZN5ImGui7TreePopEv()
  br label %701

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

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

714:                                              ; preds = %710
  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 %722

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

719:                                              ; preds = %715
  %720 = load ptr, ptr %52, align 8, !tbaa !5
  %721 = getelementptr inbounds ptr, ptr %720, i32 1
  store ptr %721, ptr %52, align 8, !tbaa !5
  br label %710

722:                                              ; preds = %714
  call void @_ZN5ImGui7TreePopEv()
  br label %723

723:                                              ; preds = %722, %692
  %724 = load ptr, ptr %3, align 8, !tbaa !5
  %725 = getelementptr inbounds %struct.ImGuiContext, ptr %724, i32 0, i32 97
  %726 = getelementptr inbounds %struct.ImVector.12, ptr %725, i32 0, i32 0
  %727 = load i32, ptr %726, align 8, !tbaa !163
  %728 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.429, ptr noundef @.str.430, i32 noundef %727)
  br i1 %728, label %729, label %815

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

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

740:                                              ; preds = %736
  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 %814

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

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

755:                                              ; preds = %741
  br label %756

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

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

766:                                              ; preds = %760, %756
  %767 = phi i1 [ false, %756 ], [ %765, %760 ]
  %768 = zext i1 %767 to i64
  %769 = select i1 %767, ptr @.str.433, ptr @.str.17
  %770 = load ptr, ptr %59, align 8, !tbaa !5
  %771 = icmp ne ptr %770, null
  br i1 %771, label %772, label %778

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

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

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

792:                                              ; preds = %778
  br label %793

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

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

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

808:                                              ; preds = %797, %793
  br label %809

809:                                              ; preds = %808, %802
  %810 = phi ptr [ %807, %802 ], [ @.str.432, %808 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.431, i32 noundef %748, ptr noundef %757, ptr noundef %769, ptr noundef %781, ptr noundef %794, ptr noundef %810)
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  br label %811

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

814:                                              ; preds = %740
  call void @_ZN5ImGui7TreePopEv()
  br label %815

815:                                              ; preds = %814, %723
  %816 = load ptr, ptr %3, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.ImGuiContext, ptr %816, i32 0, i32 189
  %818 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %817)
  %819 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.435, ptr noundef @.str.436, i32 noundef %818)
  br i1 %819, label %820, label %843

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

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

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

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

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

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

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

842:                                              ; preds = %827
  call void @_ZN5ImGui7TreePopEv()
  br label %843

843:                                              ; preds = %842, %815
  %844 = load ptr, ptr %3, align 8, !tbaa !5
  %845 = getelementptr inbounds %struct.ImGuiContext, ptr %844, i32 0, i32 185
  %846 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %845)
  %847 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.438, ptr noundef @.str.439, i32 noundef %846)
  br i1 %847, label %848, label %870

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

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

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

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

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

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

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

869:                                              ; preds = %855
  call void @_ZN5ImGui7TreePopEv()
  br label %870

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

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

882:                                              ; preds = %880, %870
  %883 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.442)
  br i1 %883, label %884, label %887

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

887:                                              ; preds = %884, %882
  %888 = load ptr, ptr %3, align 8, !tbaa !5
  %889 = getelementptr inbounds %struct.ImGuiContext, ptr %888, i32 0, i32 237
  %890 = getelementptr inbounds %struct.ImGuiTypingSelectState, ptr %889, i32 0, i32 1
  %891 = getelementptr inbounds [64 x i8], ptr %890, i64 0, i64 0
  %892 = load i8, ptr %891, align 8, !tbaa !45
  %893 = sext i8 %892 to i32
  %894 = icmp ne i32 %893, 0
  %895 = zext i1 %894 to i64
  %896 = select i1 %894, i32 1, i32 0
  %897 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.443, ptr noundef @.str.444, i32 noundef %896)
  br i1 %897, label %898, label %901

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

901:                                              ; preds = %898, %887
  %902 = load ptr, ptr %3, align 8, !tbaa !5
  %903 = getelementptr inbounds %struct.ImGuiContext, ptr %902, i32 0, i32 196
  %904 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %903)
  %905 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.445, ptr noundef @.str.446, i32 noundef %904)
  br i1 %905, label %906, label %943

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

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

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

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

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

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

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

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

943:                                              ; preds = %942, %901
  %944 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.448)
  br i1 %944, label %945, label %1066

945:                                              ; preds = %943
  %946 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.449)
  br i1 %946, label %947, label %948

947:                                              ; preds = %945
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %948

948:                                              ; preds = %947, %945
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %949 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.450)
  br i1 %949, label %950, label %952

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

952:                                              ; preds = %950, %948
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %953 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.451)
  br i1 %953, label %954, label %959

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

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

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

970:                                              ; preds = %959
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef @.str.166, ptr noundef null)
  br label %971

971:                                              ; preds = %970, %965
  %972 = load ptr, ptr %4, align 8, !tbaa !5
  %973 = getelementptr inbounds %struct.ImGuiIO, ptr %972, i32 0, i32 34
  %974 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.453, ptr noundef %973)
  %975 = load ptr, ptr %3, align 8, !tbaa !5
  %976 = getelementptr inbounds %struct.ImGuiContext, ptr %975, i32 0, i32 241
  %977 = load float, ptr %976, align 4, !tbaa !182
  %978 = fpext float %977 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.454, double noundef %978)
  %979 = load ptr, ptr %3, align 8, !tbaa !5
  %980 = getelementptr inbounds %struct.ImGuiContext, ptr %979, i32 0, i32 243
  %981 = getelementptr inbounds %struct.ImVector.31, ptr %980, i32 0, i32 0
  %982 = load i32, ptr %981, align 8, !tbaa !183
  %983 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.455, ptr noundef @.str.456, i32 noundef %982)
  br i1 %983, label %984, label %1005

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

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

995:                                              ; preds = %991
  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 %1004

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

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

1004:                                             ; preds = %995
  call void @_ZN5ImGui7TreePopEv()
  br label %1005

1005:                                             ; preds = %1004, %971
  %1006 = load ptr, ptr %3, align 8, !tbaa !5
  %1007 = getelementptr inbounds %struct.ImGuiContext, ptr %1006, i32 0, i32 244
  %1008 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1007)
  %1009 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.457, ptr noundef @.str.458, i32 noundef %1008)
  br i1 %1009, label %1010, label %1026

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

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

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

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

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

1025:                                             ; preds = %1017
  call void @_ZN5ImGui7TreePopEv()
  br label %1026

1026:                                             ; preds = %1025, %1005
  %1027 = load ptr, ptr %3, align 8, !tbaa !5
  %1028 = getelementptr inbounds %struct.ImGuiContext, ptr %1027, i32 0, i32 245
  %1029 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1028)
  %1030 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.459, ptr noundef @.str.460, i32 noundef %1029)
  br i1 %1030, label %1031, label %1047

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

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

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

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

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

1046:                                             ; preds = %1038
  call void @_ZN5ImGui7TreePopEv()
  br label %1047

1047:                                             ; preds = %1046, %1026
  %1048 = load ptr, ptr %3, align 8, !tbaa !5
  %1049 = getelementptr inbounds %struct.ImGuiContext, ptr %1048, i32 0, i32 242
  %1050 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1049)
  %1051 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.461, ptr noundef @.str.462, i32 noundef %1050)
  br i1 %1051, label %1052, label %1065

1052:                                             ; preds = %1047
  %1053 = load ptr, ptr %3, align 8, !tbaa !5
  %1054 = getelementptr inbounds %struct.ImGuiContext, ptr %1053, i32 0, i32 242
  %1055 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %1054)
  %1056 = load ptr, ptr %3, align 8, !tbaa !5
  %1057 = getelementptr inbounds %struct.ImGuiContext, ptr %1056, i32 0, i32 242
  %1058 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %1057, i32 0, i32 0
  %1059 = getelementptr inbounds %struct.ImVector.28, ptr %1058, i32 0, i32 0
  %1060 = load i32, ptr %1059, align 8, !tbaa !188
  %1061 = sext i32 %1060 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #9
  %1062 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %1063 = fmul float %1062, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %74, float noundef 0xB810000000000000, float noundef %1063)
  %1064 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.463, ptr noundef %1055, i64 noundef %1061, 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 %1065

1065:                                             ; preds = %1052, %1047
  call void @_ZN5ImGui7TreePopEv()
  br label %1066

1066:                                             ; preds = %1065, %943
  %1067 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.464)
  br i1 %1067, label %1068, label %1139

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

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

1082:                                             ; preds = %1079, %1068
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.467)
  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
  %1083 = load i32, ptr %76, align 4, !tbaa !123
  %1084 = sub nsw i32 %1083, 1
  store i32 %1084, ptr %77, align 4, !tbaa !123
  br label %1085

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

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

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

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

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

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

1138:                                             ; preds = %1088
  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 %1139

1139:                                             ; preds = %1138, %1066
  %1140 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.470)
  br i1 %1140, label %1141, label %1550

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

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

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

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

1149:                                             ; preds = %1146
  %1150 = load i32, ptr %79, align 4, !tbaa !198
  %1151 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %1150)
  br i1 %1151, label %1153, label %1152

1152:                                             ; preds = %1149, %1146
  br label %1166

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

1166:                                             ; preds = %1153, %1152
  %1167 = load i32, ptr %79, align 4, !tbaa !198
  %1168 = add nsw i32 %1167, 1
  store i32 %1168, ptr %79, align 4, !tbaa !198
  br label %1142, !llvm.loop !201

1169:                                             ; preds = %1145
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.475)
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  store i32 0, ptr %80, align 4, !tbaa !198
  br label %1170

1170:                                             ; preds = %1189, %1169
  %1171 = load i32, ptr %80, align 4, !tbaa !198
  %1172 = icmp slt i32 %1171, 666
  br i1 %1172, label %1174, label %1173

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

1174:                                             ; preds = %1170
  %1175 = load i32, ptr %80, align 4, !tbaa !198
  %1176 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1175)
  br i1 %1176, label %1180, label %1177

1177:                                             ; preds = %1174
  %1178 = load i32, ptr %80, align 4, !tbaa !198
  %1179 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %1178, i1 noundef zeroext true)
  br i1 %1179, label %1181, label %1180

1180:                                             ; preds = %1177, %1174
  br label %1189

1181:                                             ; preds = %1177
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1182 = load i32, ptr %80, align 4, !tbaa !198
  %1183 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1182)
  %1184 = zext i1 %1183 to i64
  %1185 = select i1 %1183, ptr @.str.452, ptr @.str.473
  %1186 = load i32, ptr %80, align 4, !tbaa !198
  %1187 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1186)
  %1188 = load i32, ptr %80, align 4, !tbaa !198
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1185, ptr noundef %1187, i32 noundef %1188)
  br label %1189

1189:                                             ; preds = %1181, %1180
  %1190 = load i32, ptr %80, align 4, !tbaa !198
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr %80, align 4, !tbaa !198
  br label %1170, !llvm.loop !202

1192:                                             ; preds = %1173
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.476)
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #9
  store i32 0, ptr %81, align 4, !tbaa !198
  br label %1193

1193:                                             ; preds = %1212, %1192
  %1194 = load i32, ptr %81, align 4, !tbaa !198
  %1195 = icmp slt i32 %1194, 666
  br i1 %1195, label %1197, label %1196

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

1197:                                             ; preds = %1193
  %1198 = load i32, ptr %81, align 4, !tbaa !198
  %1199 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1198)
  br i1 %1199, label %1203, label %1200

1200:                                             ; preds = %1197
  %1201 = load i32, ptr %81, align 4, !tbaa !198
  %1202 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %1201)
  br i1 %1202, label %1204, label %1203

1203:                                             ; preds = %1200, %1197
  br label %1212

1204:                                             ; preds = %1200
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1205 = load i32, ptr %81, align 4, !tbaa !198
  %1206 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1205)
  %1207 = zext i1 %1206 to i64
  %1208 = select i1 %1206, ptr @.str.452, ptr @.str.473
  %1209 = load i32, ptr %81, align 4, !tbaa !198
  %1210 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1209)
  %1211 = load i32, ptr %81, align 4, !tbaa !198
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1208, ptr noundef %1210, i32 noundef %1211)
  br label %1212

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

1215:                                             ; preds = %1196
  %1216 = load ptr, ptr %4, align 8, !tbaa !5
  %1217 = getelementptr inbounds %struct.ImGuiIO, ptr %1216, i32 0, i32 69
  %1218 = load i8, ptr %1217, align 4, !tbaa !204, !range !13, !noundef !14
  %1219 = trunc i8 %1218 to i1
  %1220 = zext i1 %1219 to i64
  %1221 = select i1 %1219, ptr @.str.478, ptr @.str.17
  %1222 = load ptr, ptr %4, align 8, !tbaa !5
  %1223 = getelementptr inbounds %struct.ImGuiIO, ptr %1222, i32 0, i32 70
  %1224 = load i8, ptr %1223, align 1, !tbaa !205, !range !13, !noundef !14
  %1225 = trunc i8 %1224 to i1
  %1226 = zext i1 %1225 to i64
  %1227 = select i1 %1225, ptr @.str.479, ptr @.str.17
  %1228 = load ptr, ptr %4, align 8, !tbaa !5
  %1229 = getelementptr inbounds %struct.ImGuiIO, ptr %1228, i32 0, i32 71
  %1230 = load i8, ptr %1229, align 2, !tbaa !206, !range !13, !noundef !14
  %1231 = trunc i8 %1230 to i1
  %1232 = zext i1 %1231 to i64
  %1233 = select i1 %1231, ptr @.str.480, ptr @.str.17
  %1234 = load ptr, ptr %4, align 8, !tbaa !5
  %1235 = getelementptr inbounds %struct.ImGuiIO, ptr %1234, i32 0, i32 72
  %1236 = load i8, ptr %1235, align 1, !tbaa !207, !range !13, !noundef !14
  %1237 = trunc i8 %1236 to i1
  %1238 = zext i1 %1237 to i64
  %1239 = select i1 %1237, ptr @.str.481, ptr @.str.17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.477, ptr noundef %1221, ptr noundef %1227, ptr noundef %1233, ptr noundef %1239)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.482)
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  store i32 0, ptr %82, align 4, !tbaa !123
  br label %1240

1240:                                             ; preds = %1270, %1215
  %1241 = load i32, ptr %82, align 4, !tbaa !123
  %1242 = load ptr, ptr %4, align 8, !tbaa !5
  %1243 = getelementptr inbounds %struct.ImGuiIO, ptr %1242, i32 0, i32 100
  %1244 = getelementptr inbounds %struct.ImVector, ptr %1243, i32 0, i32 0
  %1245 = load i32, ptr %1244, align 8, !tbaa !208
  %1246 = icmp slt i32 %1241, %1245
  br i1 %1246, label %1248, label %1247

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

1248:                                             ; preds = %1240
  call void @llvm.lifetime.start.p0(i64 2, ptr %83) #9
  %1249 = load ptr, ptr %4, align 8, !tbaa !5
  %1250 = getelementptr inbounds %struct.ImGuiIO, ptr %1249, i32 0, i32 100
  %1251 = load i32, ptr %82, align 4, !tbaa !123
  %1252 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1250, i32 noundef %1251)
  %1253 = load i16, ptr %1252, align 2, !tbaa !209
  store i16 %1253, ptr %83, align 2, !tbaa !209
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1254 = load i16, ptr %83, align 2, !tbaa !209
  %1255 = zext i16 %1254 to i32
  %1256 = icmp sgt i32 %1255, 32
  br i1 %1256, label %1257, label %1264

1257:                                             ; preds = %1248
  %1258 = load i16, ptr %83, align 2, !tbaa !209
  %1259 = zext i16 %1258 to i32
  %1260 = icmp sle i32 %1259, 255
  br i1 %1260, label %1261, label %1264

1261:                                             ; preds = %1257
  %1262 = load i16, ptr %83, align 2, !tbaa !209
  %1263 = trunc i16 %1262 to i8
  br label %1265

1264:                                             ; preds = %1257, %1248
  br label %1265

1265:                                             ; preds = %1264, %1261
  %1266 = phi i8 [ %1263, %1261 ], [ 63, %1264 ]
  %1267 = sext i8 %1266 to i32
  %1268 = load i16, ptr %83, align 2, !tbaa !209
  %1269 = zext i16 %1268 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.483, i32 noundef %1267, i32 noundef %1269)
  call void @llvm.lifetime.end.p0(i64 2, ptr %83) #9
  br label %1270

1270:                                             ; preds = %1265
  %1271 = load i32, ptr %82, align 4, !tbaa !123
  %1272 = add nsw i32 %1271, 1
  store i32 %1272, ptr %82, align 4, !tbaa !123
  br label %1240, !llvm.loop !210

1273:                                             ; preds = %1247
  %1274 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %1274)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.484)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1275 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %1275, label %1276, label %1287

1276:                                             ; preds = %1273
  %1277 = load ptr, ptr %4, align 8, !tbaa !5
  %1278 = getelementptr inbounds %struct.ImGuiIO, ptr %1277, i32 0, i32 63
  %1279 = getelementptr inbounds %struct.ImVec2, ptr %1278, i32 0, i32 0
  %1280 = load float, ptr %1279, align 8, !tbaa !211
  %1281 = fpext float %1280 to double
  %1282 = load ptr, ptr %4, align 8, !tbaa !5
  %1283 = getelementptr inbounds %struct.ImGuiIO, ptr %1282, i32 0, i32 63
  %1284 = getelementptr inbounds %struct.ImVec2, ptr %1283, i32 0, i32 1
  %1285 = load float, ptr %1284, align 4, !tbaa !212
  %1286 = fpext float %1285 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.485, double noundef %1281, double noundef %1286)
  br label %1288

1287:                                             ; preds = %1273
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.486)
  br label %1288

1288:                                             ; preds = %1287, %1276
  %1289 = load ptr, ptr %4, align 8, !tbaa !5
  %1290 = getelementptr inbounds %struct.ImGuiIO, ptr %1289, i32 0, i32 61
  %1291 = getelementptr inbounds %struct.ImVec2, ptr %1290, i32 0, i32 0
  %1292 = load float, ptr %1291, align 8, !tbaa !213
  %1293 = fpext float %1292 to double
  %1294 = load ptr, ptr %4, align 8, !tbaa !5
  %1295 = getelementptr inbounds %struct.ImGuiIO, ptr %1294, i32 0, i32 61
  %1296 = getelementptr inbounds %struct.ImVec2, ptr %1295, i32 0, i32 1
  %1297 = load float, ptr %1296, align 4, !tbaa !214
  %1298 = fpext float %1297 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.487, double noundef %1293, double noundef %1298)
  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.488)
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  store i32 0, ptr %85, align 4, !tbaa !123
  br label %1299

1299:                                             ; preds = %1317, %1288
  %1300 = load i32, ptr %85, align 4, !tbaa !123
  %1301 = load i32, ptr %84, align 4, !tbaa !123
  %1302 = icmp slt i32 %1300, %1301
  br i1 %1302, label %1304, label %1303

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

1304:                                             ; preds = %1299
  %1305 = load i32, ptr %85, align 4, !tbaa !123
  %1306 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef %1305)
  br i1 %1306, label %1307, label %1316

1307:                                             ; preds = %1304
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1308 = load i32, ptr %85, align 4, !tbaa !123
  %1309 = load ptr, ptr %4, align 8, !tbaa !5
  %1310 = getelementptr inbounds %struct.ImGuiIO, ptr %1309, i32 0, i32 90
  %1311 = load i32, ptr %85, align 4, !tbaa !123
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds [5 x float], ptr %1310, i64 0, i64 %1312
  %1314 = load float, ptr %1313, align 4, !tbaa !215
  %1315 = fpext float %1314 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.489, i32 noundef %1308, double noundef %1315)
  br label %1316

1316:                                             ; preds = %1307, %1304
  br label %1317

1317:                                             ; preds = %1316
  %1318 = load i32, ptr %85, align 4, !tbaa !123
  %1319 = add nsw i32 %1318, 1
  store i32 %1319, ptr %85, align 4, !tbaa !123
  br label %1299, !llvm.loop !216

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

1321:                                             ; preds = %1339, %1320
  %1322 = load i32, ptr %86, align 4, !tbaa !123
  %1323 = load i32, ptr %84, align 4, !tbaa !123
  %1324 = icmp slt i32 %1322, %1323
  br i1 %1324, label %1326, label %1325

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

1326:                                             ; preds = %1321
  %1327 = load i32, ptr %86, align 4, !tbaa !123
  %1328 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef %1327, i1 noundef zeroext false)
  br i1 %1328, label %1329, label %1338

1329:                                             ; preds = %1326
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1330 = load i32, ptr %86, align 4, !tbaa !123
  %1331 = load ptr, ptr %4, align 8, !tbaa !5
  %1332 = getelementptr inbounds %struct.ImGuiIO, ptr %1331, i32 0, i32 82
  %1333 = load i32, ptr %86, align 4, !tbaa !123
  %1334 = sext i32 %1333 to i64
  %1335 = getelementptr inbounds [5 x i16], ptr %1332, i64 0, i64 %1334
  %1336 = load i16, ptr %1335, align 2, !tbaa !209
  %1337 = zext i16 %1336 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.491, i32 noundef %1330, i32 noundef %1337)
  br label %1338

1338:                                             ; preds = %1329, %1326
  br label %1339

1339:                                             ; preds = %1338
  %1340 = load i32, ptr %86, align 4, !tbaa !123
  %1341 = add nsw i32 %1340, 1
  store i32 %1341, ptr %86, align 4, !tbaa !123
  br label %1321, !llvm.loop !217

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

1343:                                             ; preds = %1354, %1342
  %1344 = load i32, ptr %87, align 4, !tbaa !123
  %1345 = load i32, ptr %84, align 4, !tbaa !123
  %1346 = icmp slt i32 %1344, %1345
  br i1 %1346, label %1348, label %1347

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

1348:                                             ; preds = %1343
  %1349 = load i32, ptr %87, align 4, !tbaa !123
  %1350 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef %1349)
  br i1 %1350, label %1351, label %1353

1351:                                             ; preds = %1348
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1352 = load i32, ptr %87, align 4, !tbaa !123
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.493, i32 noundef %1352)
  br label %1353

1353:                                             ; preds = %1351, %1348
  br label %1354

1354:                                             ; preds = %1353
  %1355 = load i32, ptr %87, align 4, !tbaa !123
  %1356 = add nsw i32 %1355, 1
  store i32 %1356, ptr %87, align 4, !tbaa !123
  br label %1343, !llvm.loop !218

1357:                                             ; preds = %1347
  %1358 = load ptr, ptr %4, align 8, !tbaa !5
  %1359 = getelementptr inbounds %struct.ImGuiIO, ptr %1358, i32 0, i32 66
  %1360 = load float, ptr %1359, align 8, !tbaa !219
  %1361 = fpext float %1360 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.494, double noundef %1361)
  %1362 = load ptr, ptr %3, align 8, !tbaa !5
  %1363 = getelementptr inbounds %struct.ImGuiContext, ptr %1362, i32 0, i32 204
  %1364 = load float, ptr %1363, align 4, !tbaa !220
  %1365 = fpext float %1364 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.495, double noundef %1365)
  %1366 = load ptr, ptr %4, align 8, !tbaa !5
  %1367 = getelementptr inbounds %struct.ImGuiIO, ptr %1366, i32 0, i32 68
  %1368 = load i32, ptr %1367, align 8, !tbaa !221
  %1369 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %1368)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.496, ptr noundef %1369)
  %1370 = load ptr, ptr %4, align 8, !tbaa !5
  %1371 = getelementptr inbounds %struct.ImGuiIO, ptr %1370, i32 0, i32 93
  %1372 = load float, ptr %1371, align 4, !tbaa !222
  %1373 = fpext float %1372 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.497, double noundef %1373)
  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.498)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1374 = load ptr, ptr %3, align 8, !tbaa !5
  %1375 = getelementptr inbounds %struct.ImGuiContext, ptr %1374, i32 0, i32 39
  %1376 = load ptr, ptr %1375, align 8, !tbaa !223
  %1377 = icmp ne ptr %1376, null
  br i1 %1377, label %1378, label %1384

1378:                                             ; preds = %1357
  %1379 = load ptr, ptr %3, align 8, !tbaa !5
  %1380 = getelementptr inbounds %struct.ImGuiContext, ptr %1379, i32 0, i32 39
  %1381 = load ptr, ptr %1380, align 8, !tbaa !223
  %1382 = getelementptr inbounds %struct.ImGuiWindow, ptr %1381, i32 0, i32 1
  %1383 = load ptr, ptr %1382, align 8, !tbaa !122
  br label %1385

1384:                                             ; preds = %1357
  br label %1385

1385:                                             ; preds = %1384, %1378
  %1386 = phi ptr [ %1383, %1378 ], [ @.str.432, %1384 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.499, ptr noundef %1386)
  %1387 = load ptr, ptr %3, align 8, !tbaa !5
  %1388 = getelementptr inbounds %struct.ImGuiContext, ptr %1387, i32 0, i32 43
  %1389 = load float, ptr %1388, align 8, !tbaa !224
  %1390 = fpext float %1389 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.500, double noundef %1390)
  %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 = fpext float %1394 to double
  %1396 = load ptr, ptr %3, align 8, !tbaa !5
  %1397 = getelementptr inbounds %struct.ImGuiContext, ptr %1396, i32 0, i32 45
  %1398 = getelementptr inbounds %struct.ImVec2, ptr %1397, i32 0, i32 1
  %1399 = load float, ptr %1398, align 4, !tbaa !226
  %1400 = fpext float %1399 to double
  %1401 = load ptr, ptr %3, align 8, !tbaa !5
  %1402 = getelementptr inbounds %struct.ImGuiContext, ptr %1401, i32 0, i32 45
  %1403 = getelementptr inbounds %struct.ImVec2, ptr %1402, i32 0, i32 0
  %1404 = load float, ptr %1403, align 4, !tbaa !225
  %1405 = load ptr, ptr %3, align 8, !tbaa !5
  %1406 = getelementptr inbounds %struct.ImGuiContext, ptr %1405, i32 0, i32 45
  %1407 = getelementptr inbounds %struct.ImVec2, ptr %1406, i32 0, i32 1
  %1408 = load float, ptr %1407, align 4, !tbaa !226
  %1409 = fcmp ogt float %1404, %1408
  br i1 %1409, label %1410, label %1411

1410:                                             ; preds = %1385
  br label %1423

1411:                                             ; preds = %1385
  %1412 = load ptr, ptr %3, align 8, !tbaa !5
  %1413 = getelementptr inbounds %struct.ImGuiContext, ptr %1412, i32 0, i32 45
  %1414 = getelementptr inbounds %struct.ImVec2, ptr %1413, i32 0, i32 0
  %1415 = load float, ptr %1414, align 4, !tbaa !225
  %1416 = load ptr, ptr %3, align 8, !tbaa !5
  %1417 = getelementptr inbounds %struct.ImGuiContext, ptr %1416, i32 0, i32 45
  %1418 = getelementptr inbounds %struct.ImVec2, ptr %1417, i32 0, i32 1
  %1419 = load float, ptr %1418, align 4, !tbaa !226
  %1420 = fcmp olt float %1415, %1419
  %1421 = zext i1 %1420 to i64
  %1422 = select i1 %1420, ptr @.str.502, ptr @.str.503
  br label %1423

1423:                                             ; preds = %1411, %1410
  %1424 = phi ptr [ @.str.349, %1410 ], [ %1422, %1411 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.501, double noundef %1395, double noundef %1400, ptr noundef %1424)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.504)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #9
  %1425 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1426 = fmul float %1425, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %88, float noundef 0xB810000000000000, float noundef %1426)
  %1427 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef @.str.505, 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 %1427, label %1428, label %1472

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

1429:                                             ; preds = %1468, %1428
  %1430 = load i32, ptr %89, align 4, !tbaa !198
  %1431 = icmp slt i32 %1430, 666
  br i1 %1431, label %1433, label %1432

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

1433:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #9
  %1434 = load ptr, ptr %3, align 8, !tbaa !5
  %1435 = load i32, ptr %89, align 4, !tbaa !198
  %1436 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %1434, i32 noundef %1435)
  store ptr %1436, ptr %90, align 8, !tbaa !5
  %1437 = load ptr, ptr %90, align 8, !tbaa !5
  %1438 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1437, i32 0, i32 0
  %1439 = load i32, ptr %1438, align 4, !tbaa !227
  %1440 = icmp eq i32 %1439, -1
  br i1 %1440, label %1441, label %1442

1441:                                             ; preds = %1433
  store i32 69, ptr %6, align 4
  br label %1465

1442:                                             ; preds = %1433
  %1443 = load i32, ptr %89, align 4, !tbaa !198
  %1444 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1443)
  %1445 = load ptr, ptr %90, align 8, !tbaa !5
  %1446 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1445, i32 0, i32 0
  %1447 = load i32, ptr %1446, align 4, !tbaa !227
  %1448 = load ptr, ptr %90, align 8, !tbaa !5
  %1449 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1448, i32 0, i32 3
  %1450 = load i8, ptr %1449, align 1, !tbaa !229, !range !13, !noundef !14
  %1451 = trunc i8 %1450 to i1
  br i1 %1451, label %1452, label %1453

1452:                                             ; preds = %1442
  br label %1460

1453:                                             ; preds = %1442
  %1454 = load ptr, ptr %90, align 8, !tbaa !5
  %1455 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1454, i32 0, i32 2
  %1456 = load i8, ptr %1455, align 4, !tbaa !230, !range !13, !noundef !14
  %1457 = trunc i8 %1456 to i1
  %1458 = zext i1 %1457 to i64
  %1459 = select i1 %1457, ptr @.str.508, ptr @.str.17
  br label %1460

1460:                                             ; preds = %1453, %1452
  %1461 = phi ptr [ @.str.507, %1452 ], [ %1459, %1453 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.506, ptr noundef %1444, i32 noundef %1447, ptr noundef %1461)
  %1462 = load ptr, ptr %90, align 8, !tbaa !5
  %1463 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1462, i32 0, i32 0
  %1464 = load i32, ptr %1463, align 4, !tbaa !227
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1464)
  store i32 0, ptr %6, align 4
  br label %1465

1465:                                             ; preds = %1460, %1441
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #9
  %1466 = load i32, ptr %6, align 4
  switch i32 %1466, label %2000 [
    i32 0, label %1467
    i32 69, label %1468
  ]

1467:                                             ; preds = %1465
  br label %1468

1468:                                             ; preds = %1467, %1465
  %1469 = load i32, ptr %89, align 4, !tbaa !198
  %1470 = add nsw i32 %1469, 1
  store i32 %1470, ptr %89, align 4, !tbaa !198
  br label %1429, !llvm.loop !231

1471:                                             ; preds = %1432
  br label %1472

1472:                                             ; preds = %1471, %1423
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.509)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.510)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #9
  %1473 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1474 = fmul float %1473, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %91, float noundef 0xB810000000000000, float noundef %1474)
  %1475 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef @.str.511, 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 %1475, label %1476, label %1541

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

1477:                                             ; preds = %1537, %1476
  %1478 = load i32, ptr %92, align 4, !tbaa !198
  %1479 = icmp slt i32 %1478, 666
  br i1 %1479, label %1481, label %1480

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

1481:                                             ; preds = %1477
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #9
  %1482 = load ptr, ptr %3, align 8, !tbaa !5
  %1483 = getelementptr inbounds %struct.ImGuiContext, ptr %1482, i32 0, i32 79
  store ptr %1483, ptr %93, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %94) #9
  %1484 = load ptr, ptr %93, align 8, !tbaa !5
  %1485 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1484, i32 0, i32 0
  %1486 = load i32, ptr %92, align 4, !tbaa !198
  %1487 = sub nsw i32 %1486, 512
  %1488 = sext i32 %1487 to i64
  %1489 = getelementptr inbounds [154 x i16], ptr %1485, i64 0, i64 %1488
  %1490 = load i16, ptr %1489, align 2, !tbaa !209
  store i16 %1490, ptr %94, align 2, !tbaa !209
  br label %1491

1491:                                             ; preds = %1532, %1481
  %1492 = load i16, ptr %94, align 2, !tbaa !209
  %1493 = sext i16 %1492 to i32
  %1494 = icmp ne i32 %1493, -1
  br i1 %1494, label %1496, label %1495

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

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

1525:                                             ; preds = %1496
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1526 = call noundef zeroext i1 @_ZN5ImGui16DebugBreakButtonEPKcS1_(ptr noundef @.str.513, ptr noundef @.str.514)
  br i1 %1526, label %1527, label %1531

1527:                                             ; preds = %1525
  %1528 = load i32, ptr %96, align 4, !tbaa !123
  %1529 = load ptr, ptr %3, align 8, !tbaa !5
  %1530 = getelementptr inbounds %struct.ImGuiContext, ptr %1529, i32 0, i32 82
  store i32 %1528, ptr %1530, align 8, !tbaa !237
  br label %1531

1531:                                             ; preds = %1527, %1525
  br label %1532

1532:                                             ; preds = %1531, %1496
  %1533 = load ptr, ptr %95, align 8, !tbaa !5
  %1534 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1533, i32 0, i32 0
  %1535 = load i16, ptr %1534, align 4, !tbaa !238
  store i16 %1535, 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 %1491, !llvm.loop !239

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

1537:                                             ; preds = %1536
  %1538 = load i32, ptr %92, align 4, !tbaa !198
  %1539 = add nsw i32 %1538, 1
  store i32 %1539, ptr %92, align 4, !tbaa !198
  br label %1477, !llvm.loop !240

1540:                                             ; preds = %1480
  br label %1541

1541:                                             ; preds = %1540, %1472
  call void @_ZN5ImGui8EndChildEv()
  %1542 = load ptr, ptr %3, align 8, !tbaa !5
  %1543 = getelementptr inbounds %struct.ImGuiContext, ptr %1542, i32 0, i32 81
  %1544 = load i8, ptr %1543, align 4, !tbaa !241, !range !13, !noundef !14
  %1545 = trunc i8 %1544 to i1
  %1546 = zext i1 %1545 to i32
  %1547 = load ptr, ptr %3, align 8, !tbaa !5
  %1548 = getelementptr inbounds %struct.ImGuiContext, ptr %1547, i32 0, i32 80
  %1549 = load i32, ptr %1548, align 8, !tbaa !242
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.515, i32 noundef %1546, i32 noundef %1549)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1550

1550:                                             ; preds = %1541, %1139
  %1551 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.516)
  br i1 %1551, label %1552, label %1803

1552:                                             ; preds = %1550
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.517)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1553 = load ptr, ptr %3, align 8, !tbaa !5
  %1554 = getelementptr inbounds %struct.ImGuiContext, ptr %1553, i32 0, i32 35
  %1555 = load ptr, ptr %1554, align 8, !tbaa !243
  %1556 = icmp ne ptr %1555, null
  br i1 %1556, label %1557, label %1563

1557:                                             ; preds = %1552
  %1558 = load ptr, ptr %3, align 8, !tbaa !5
  %1559 = getelementptr inbounds %struct.ImGuiContext, ptr %1558, i32 0, i32 35
  %1560 = load ptr, ptr %1559, align 8, !tbaa !243
  %1561 = getelementptr inbounds %struct.ImGuiWindow, ptr %1560, i32 0, i32 1
  %1562 = load ptr, ptr %1561, align 8, !tbaa !122
  br label %1564

1563:                                             ; preds = %1552
  br label %1564

1564:                                             ; preds = %1563, %1557
  %1565 = phi ptr [ %1562, %1557 ], [ @.str.432, %1563 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.518, ptr noundef %1565)
  %1566 = load ptr, ptr %3, align 8, !tbaa !5
  %1567 = getelementptr inbounds %struct.ImGuiContext, ptr %1566, i32 0, i32 35
  %1568 = load ptr, ptr %1567, align 8, !tbaa !243
  %1569 = icmp ne ptr %1568, null
  br i1 %1569, label %1570, label %1578

1570:                                             ; preds = %1564
  %1571 = load ptr, ptr %3, align 8, !tbaa !5
  %1572 = getelementptr inbounds %struct.ImGuiContext, ptr %1571, i32 0, i32 35
  %1573 = load ptr, ptr %1572, align 8, !tbaa !243
  %1574 = getelementptr inbounds %struct.ImGuiWindow, ptr %1573, i32 0, i32 91
  %1575 = load ptr, ptr %1574, align 8, !tbaa !244
  %1576 = getelementptr inbounds %struct.ImGuiWindow, ptr %1575, i32 0, i32 1
  %1577 = load ptr, ptr %1576, align 8, !tbaa !122
  br label %1579

1578:                                             ; preds = %1564
  br label %1579

1579:                                             ; preds = %1578, %1570
  %1580 = phi ptr [ %1577, %1570 ], [ @.str.432, %1578 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.519, ptr noundef %1580)
  %1581 = load ptr, ptr %3, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.ImGuiContext, ptr %1581, i32 0, i32 36
  %1583 = load ptr, ptr %1582, align 8, !tbaa !245
  %1584 = icmp ne ptr %1583, null
  br i1 %1584, label %1585, label %1591

1585:                                             ; preds = %1579
  %1586 = load ptr, ptr %3, align 8, !tbaa !5
  %1587 = getelementptr inbounds %struct.ImGuiContext, ptr %1586, i32 0, i32 36
  %1588 = load ptr, ptr %1587, align 8, !tbaa !245
  %1589 = getelementptr inbounds %struct.ImGuiWindow, ptr %1588, i32 0, i32 1
  %1590 = load ptr, ptr %1589, align 8, !tbaa !122
  br label %1592

1591:                                             ; preds = %1579
  br label %1592

1592:                                             ; preds = %1591, %1585
  %1593 = phi ptr [ %1590, %1585 ], [ @.str.432, %1591 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.520, ptr noundef %1593)
  %1594 = load ptr, ptr %3, align 8, !tbaa !5
  %1595 = getelementptr inbounds %struct.ImGuiContext, ptr %1594, i32 0, i32 38
  %1596 = load ptr, ptr %1595, align 8, !tbaa !246
  %1597 = icmp ne ptr %1596, null
  br i1 %1597, label %1598, label %1604

1598:                                             ; preds = %1592
  %1599 = load ptr, ptr %3, align 8, !tbaa !5
  %1600 = getelementptr inbounds %struct.ImGuiContext, ptr %1599, i32 0, i32 38
  %1601 = load ptr, ptr %1600, align 8, !tbaa !246
  %1602 = getelementptr inbounds %struct.ImGuiWindow, ptr %1601, i32 0, i32 1
  %1603 = load ptr, ptr %1602, align 8, !tbaa !122
  br label %1605

1604:                                             ; preds = %1592
  br label %1605

1605:                                             ; preds = %1604, %1598
  %1606 = phi ptr [ %1603, %1598 ], [ @.str.432, %1604 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.521, ptr noundef %1606)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.522)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1607 = load ptr, ptr %3, align 8, !tbaa !5
  %1608 = getelementptr inbounds %struct.ImGuiContext, ptr %1607, i32 0, i32 54
  %1609 = load i32, ptr %1608, align 4, !tbaa !247
  %1610 = load ptr, ptr %3, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.ImGuiContext, ptr %1610, i32 0, i32 68
  %1612 = load i32, ptr %1611, align 4, !tbaa !248
  %1613 = load ptr, ptr %3, align 8, !tbaa !5
  %1614 = getelementptr inbounds %struct.ImGuiContext, ptr %1613, i32 0, i32 56
  %1615 = load float, ptr %1614, align 4, !tbaa !249
  %1616 = fpext float %1615 to double
  %1617 = load ptr, ptr %3, align 8, !tbaa !5
  %1618 = getelementptr inbounds %struct.ImGuiContext, ptr %1617, i32 0, i32 58
  %1619 = load i8, ptr %1618, align 1, !tbaa !250, !range !13, !noundef !14
  %1620 = trunc i8 %1619 to i1
  %1621 = zext i1 %1620 to i32
  %1622 = load ptr, ptr %3, align 8, !tbaa !5
  %1623 = getelementptr inbounds %struct.ImGuiContext, ptr %1622, i32 0, i32 67
  %1624 = load i32, ptr %1623, align 8, !tbaa !251
  %1625 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1624)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.523, i32 noundef %1609, i32 noundef %1612, double noundef %1616, i32 noundef %1621, ptr noundef %1625)
  %1626 = load ptr, ptr %3, align 8, !tbaa !5
  %1627 = getelementptr inbounds %struct.ImGuiContext, ptr %1626, i32 0, i32 54
  %1628 = load i32, ptr %1627, align 4, !tbaa !247
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1628)
  %1629 = load ptr, ptr %3, align 8, !tbaa !5
  %1630 = getelementptr inbounds %struct.ImGuiContext, ptr %1629, i32 0, i32 66
  %1631 = load ptr, ptr %1630, align 8, !tbaa !252
  %1632 = icmp ne ptr %1631, null
  br i1 %1632, label %1633, label %1639

1633:                                             ; preds = %1605
  %1634 = load ptr, ptr %3, align 8, !tbaa !5
  %1635 = getelementptr inbounds %struct.ImGuiContext, ptr %1634, i32 0, i32 66
  %1636 = load ptr, ptr %1635, align 8, !tbaa !252
  %1637 = getelementptr inbounds %struct.ImGuiWindow, ptr %1636, i32 0, i32 1
  %1638 = load ptr, ptr %1637, align 8, !tbaa !122
  br label %1640

1639:                                             ; preds = %1605
  br label %1640

1640:                                             ; preds = %1639, %1633
  %1641 = phi ptr [ %1638, %1633 ], [ @.str.432, %1639 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.524, ptr noundef %1641)
  %1642 = load ptr, ptr %3, align 8, !tbaa !5
  %1643 = getelementptr inbounds %struct.ImGuiContext, ptr %1642, i32 0, i32 81
  %1644 = load i8, ptr %1643, align 4, !tbaa !241, !range !13, !noundef !14
  %1645 = trunc i8 %1644 to i1
  %1646 = zext i1 %1645 to i32
  %1647 = load ptr, ptr %3, align 8, !tbaa !5
  %1648 = getelementptr inbounds %struct.ImGuiContext, ptr %1647, i32 0, i32 80
  %1649 = load i32, ptr %1648, align 8, !tbaa !242
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.525, i32 noundef %1646, i32 noundef %1649)
  %1650 = load ptr, ptr %3, align 8, !tbaa !5
  %1651 = getelementptr inbounds %struct.ImGuiContext, ptr %1650, i32 0, i32 48
  %1652 = load i32, ptr %1651, align 4, !tbaa !253
  %1653 = load ptr, ptr %3, align 8, !tbaa !5
  %1654 = getelementptr inbounds %struct.ImGuiContext, ptr %1653, i32 0, i32 49
  %1655 = load float, ptr %1654, align 8, !tbaa !254
  %1656 = fpext float %1655 to double
  %1657 = load ptr, ptr %3, align 8, !tbaa !5
  %1658 = getelementptr inbounds %struct.ImGuiContext, ptr %1657, i32 0, i32 51
  %1659 = load i8, ptr %1658, align 8, !tbaa !255, !range !13, !noundef !14
  %1660 = trunc i8 %1659 to i1
  %1661 = zext i1 %1660 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.526, i32 noundef %1652, double noundef %1656, i32 noundef %1661)
  %1662 = load ptr, ptr %3, align 8, !tbaa !5
  %1663 = getelementptr inbounds %struct.ImGuiContext, ptr %1662, i32 0, i32 197
  %1664 = load i32, ptr %1663, align 8, !tbaa !256
  %1665 = load ptr, ptr %3, align 8, !tbaa !5
  %1666 = getelementptr inbounds %struct.ImGuiContext, ptr %1665, i32 0, i32 199
  %1667 = load float, ptr %1666, align 8, !tbaa !257
  %1668 = fpext float %1667 to double
  %1669 = load ptr, ptr %3, align 8, !tbaa !5
  %1670 = getelementptr inbounds %struct.ImGuiContext, ptr %1669, i32 0, i32 200
  %1671 = load float, ptr %1670, align 4, !tbaa !258
  %1672 = fpext float %1671 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.527, i32 noundef %1664, double noundef %1668, double noundef %1672)
  %1673 = load ptr, ptr %3, align 8, !tbaa !5
  %1674 = getelementptr inbounds %struct.ImGuiContext, ptr %1673, i32 0, i32 160
  %1675 = load i8, ptr %1674, align 4, !tbaa !259, !range !13, !noundef !14
  %1676 = trunc i8 %1675 to i1
  %1677 = zext i1 %1676 to i32
  %1678 = load ptr, ptr %3, align 8, !tbaa !5
  %1679 = getelementptr inbounds %struct.ImGuiContext, ptr %1678, i32 0, i32 167
  %1680 = getelementptr inbounds %struct.ImGuiPayload, ptr %1679, i32 0, i32 2
  %1681 = load i32, ptr %1680, align 4, !tbaa !260
  %1682 = load ptr, ptr %3, align 8, !tbaa !5
  %1683 = getelementptr inbounds %struct.ImGuiContext, ptr %1682, i32 0, i32 167
  %1684 = getelementptr inbounds %struct.ImGuiPayload, ptr %1683, i32 0, i32 5
  %1685 = getelementptr inbounds [33 x i8], ptr %1684, i64 0, i64 0
  %1686 = load ptr, ptr %3, align 8, !tbaa !5
  %1687 = getelementptr inbounds %struct.ImGuiContext, ptr %1686, i32 0, i32 167
  %1688 = getelementptr inbounds %struct.ImGuiPayload, ptr %1687, i32 0, i32 1
  %1689 = load i32, ptr %1688, align 8, !tbaa !261
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.528, i32 noundef %1677, i32 noundef %1681, ptr noundef %1685, i32 noundef %1689)
  %1690 = load ptr, ptr %3, align 8, !tbaa !5
  %1691 = getelementptr inbounds %struct.ImGuiContext, ptr %1690, i32 0, i32 167
  %1692 = getelementptr inbounds %struct.ImGuiPayload, ptr %1691, i32 0, i32 2
  %1693 = load i32, ptr %1692, align 4, !tbaa !260
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1693)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.529)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1694 = load ptr, ptr %3, align 8, !tbaa !5
  %1695 = getelementptr inbounds %struct.ImGuiContext, ptr %1694, i32 0, i32 101
  %1696 = load ptr, ptr %1695, align 8, !tbaa !121
  %1697 = icmp ne ptr %1696, null
  br i1 %1697, label %1698, label %1704

1698:                                             ; preds = %1640
  %1699 = load ptr, ptr %3, align 8, !tbaa !5
  %1700 = getelementptr inbounds %struct.ImGuiContext, ptr %1699, i32 0, i32 101
  %1701 = load ptr, ptr %1700, align 8, !tbaa !121
  %1702 = getelementptr inbounds %struct.ImGuiWindow, ptr %1701, i32 0, i32 1
  %1703 = load ptr, ptr %1702, align 8, !tbaa !122
  br label %1705

1704:                                             ; preds = %1640
  br label %1705

1705:                                             ; preds = %1704, %1698
  %1706 = phi ptr [ %1703, %1698 ], [ @.str.432, %1704 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.530, ptr noundef %1706)
  %1707 = load ptr, ptr %3, align 8, !tbaa !5
  %1708 = getelementptr inbounds %struct.ImGuiContext, ptr %1707, i32 0, i32 102
  %1709 = load i32, ptr %1708, align 8, !tbaa !262
  %1710 = load ptr, ptr %3, align 8, !tbaa !5
  %1711 = getelementptr inbounds %struct.ImGuiContext, ptr %1710, i32 0, i32 104
  %1712 = load i32, ptr %1711, align 8, !tbaa !263
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.531, i32 noundef %1709, i32 noundef %1712)
  %1713 = load ptr, ptr %3, align 8, !tbaa !5
  %1714 = getelementptr inbounds %struct.ImGuiContext, ptr %1713, i32 0, i32 102
  %1715 = load i32, ptr %1714, align 8, !tbaa !262
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1715)
  %1716 = load ptr, ptr %3, align 8, !tbaa !5
  %1717 = getelementptr inbounds %struct.ImGuiContext, ptr %1716, i32 0, i32 114
  %1718 = load i32, ptr %1717, align 8, !tbaa !264
  %1719 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1718)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.532, ptr noundef %1719)
  %1720 = load ptr, ptr %3, align 8, !tbaa !5
  %1721 = getelementptr inbounds %struct.ImGuiContext, ptr %1720, i32 0, i32 115
  %1722 = load i64, ptr %1721, align 8, !tbaa !265
  %1723 = load ptr, ptr %3, align 8, !tbaa !5
  %1724 = getelementptr inbounds %struct.ImGuiContext, ptr %1723, i32 0, i32 115
  %1725 = load i64, ptr %1724, align 8, !tbaa !265
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.533, i64 noundef %1722, i64 noundef %1725)
  %1726 = load ptr, ptr %3, align 8, !tbaa !5
  %1727 = getelementptr inbounds %struct.ImGuiContext, ptr %1726, i32 0, i32 3
  %1728 = getelementptr inbounds %struct.ImGuiIO, ptr %1727, i32 0, i32 53
  %1729 = load i8, ptr %1728, align 1, !tbaa !266, !range !13, !noundef !14
  %1730 = trunc i8 %1729 to i1
  %1731 = zext i1 %1730 to i32
  %1732 = load ptr, ptr %3, align 8, !tbaa !5
  %1733 = getelementptr inbounds %struct.ImGuiContext, ptr %1732, i32 0, i32 3
  %1734 = getelementptr inbounds %struct.ImGuiIO, ptr %1733, i32 0, i32 54
  %1735 = load i8, ptr %1734, align 8, !tbaa !267, !range !13, !noundef !14
  %1736 = trunc i8 %1735 to i1
  %1737 = zext i1 %1736 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.534, i32 noundef %1731, i32 noundef %1737)
  %1738 = load ptr, ptr %3, align 8, !tbaa !5
  %1739 = getelementptr inbounds %struct.ImGuiContext, ptr %1738, i32 0, i32 105
  %1740 = load i32, ptr %1739, align 4, !tbaa !268
  %1741 = load ptr, ptr %3, align 8, !tbaa !5
  %1742 = getelementptr inbounds %struct.ImGuiContext, ptr %1741, i32 0, i32 106
  %1743 = load i32, ptr %1742, align 8, !tbaa !269
  %1744 = load ptr, ptr %3, align 8, !tbaa !5
  %1745 = getelementptr inbounds %struct.ImGuiContext, ptr %1744, i32 0, i32 107
  %1746 = load i32, ptr %1745, align 4, !tbaa !270
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.535, i32 noundef %1740, i32 noundef %1743, i32 noundef %1746)
  %1747 = load ptr, ptr %3, align 8, !tbaa !5
  %1748 = getelementptr inbounds %struct.ImGuiContext, ptr %1747, i32 0, i32 108
  %1749 = load i32, ptr %1748, align 8, !tbaa !271
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.536, i32 noundef %1749)
  %1750 = load ptr, ptr %3, align 8, !tbaa !5
  %1751 = getelementptr inbounds %struct.ImGuiContext, ptr %1750, i32 0, i32 118
  %1752 = load i8, ptr %1751, align 2, !tbaa !272, !range !13, !noundef !14
  %1753 = trunc i8 %1752 to i1
  %1754 = zext i1 %1753 to i32
  %1755 = load ptr, ptr %3, align 8, !tbaa !5
  %1756 = getelementptr inbounds %struct.ImGuiContext, ptr %1755, i32 0, i32 119
  %1757 = load i8, ptr %1756, align 1, !tbaa !273, !range !13, !noundef !14
  %1758 = trunc i8 %1757 to i1
  %1759 = zext i1 %1758 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.537, i32 noundef %1754, i32 noundef %1759)
  %1760 = load ptr, ptr %3, align 8, !tbaa !5
  %1761 = getelementptr inbounds %struct.ImGuiContext, ptr %1760, i32 0, i32 103
  %1762 = load i32, ptr %1761, align 4, !tbaa !274
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.538, i32 noundef %1762)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.539)
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #9
  %1763 = load ptr, ptr %3, align 8, !tbaa !5
  %1764 = getelementptr inbounds %struct.ImGuiContext, ptr %1763, i32 0, i32 109
  %1765 = getelementptr inbounds %struct.ImVector.9, ptr %1764, i32 0, i32 0
  %1766 = load i32, ptr %1765, align 8, !tbaa !275
  %1767 = sub nsw i32 %1766, 1
  store i32 %1767, ptr %97, align 4, !tbaa !123
  br label %1768

1768:                                             ; preds = %1786, %1705
  %1769 = load i32, ptr %97, align 4, !tbaa !123
  %1770 = icmp sge i32 %1769, 0
  br i1 %1770, label %1772, label %1771

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

1772:                                             ; preds = %1768
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #9
  %1773 = load ptr, ptr %3, align 8, !tbaa !5
  %1774 = getelementptr inbounds %struct.ImGuiContext, ptr %1773, i32 0, i32 109
  %1775 = load i32, ptr %97, align 4, !tbaa !123
  %1776 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZN8ImVectorI19ImGuiFocusScopeDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1774, i32 noundef %1775)
  store ptr %1776, ptr %98, align 8, !tbaa !5
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef 0.000000e+00)
  %1777 = load ptr, ptr %98, align 8, !tbaa !5
  %1778 = getelementptr inbounds %struct.ImGuiFocusScopeData, ptr %1777, i32 0, i32 0
  %1779 = load i32, ptr %1778, align 4, !tbaa !276
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.540, i32 noundef %1779)
  %1780 = load ptr, ptr %98, align 8, !tbaa !5
  %1781 = getelementptr inbounds %struct.ImGuiFocusScopeData, ptr %1780, i32 0, i32 1
  %1782 = load i32, ptr %1781, align 4, !tbaa !278
  %1783 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %1782)
  %1784 = getelementptr inbounds %struct.ImGuiWindow, ptr %1783, i32 0, i32 1
  %1785 = load ptr, ptr %1784, align 8, !tbaa !122
  call void (ptr, ...) @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef @.str.541, ptr noundef %1785)
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #9
  br label %1786

1786:                                             ; preds = %1772
  %1787 = load i32, ptr %97, align 4, !tbaa !123
  %1788 = add nsw i32 %1787, -1
  store i32 %1788, ptr %97, align 4, !tbaa !123
  br label %1768, !llvm.loop !279

1789:                                             ; preds = %1771
  %1790 = load ptr, ptr %3, align 8, !tbaa !5
  %1791 = getelementptr inbounds %struct.ImGuiContext, ptr %1790, i32 0, i32 150
  %1792 = load ptr, ptr %1791, align 8, !tbaa !280
  %1793 = icmp ne ptr %1792, null
  br i1 %1793, label %1794, label %1800

1794:                                             ; preds = %1789
  %1795 = load ptr, ptr %3, align 8, !tbaa !5
  %1796 = getelementptr inbounds %struct.ImGuiContext, ptr %1795, i32 0, i32 150
  %1797 = load ptr, ptr %1796, align 8, !tbaa !280
  %1798 = getelementptr inbounds %struct.ImGuiWindow, ptr %1797, i32 0, i32 1
  %1799 = load ptr, ptr %1798, align 8, !tbaa !122
  br label %1801

1800:                                             ; preds = %1789
  br label %1801

1801:                                             ; preds = %1800, %1794
  %1802 = phi ptr [ %1799, %1794 ], [ @.str.432, %1800 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.542, ptr noundef %1802)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1803

1803:                                             ; preds = %1801, %1550
  %1804 = load ptr, ptr %5, align 8, !tbaa !5
  %1805 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1804, i32 0, i32 2
  %1806 = load i8, ptr %1805, align 2, !tbaa !120, !range !13, !noundef !14
  %1807 = trunc i8 %1806 to i1
  br i1 %1807, label %1813, label %1808

1808:                                             ; preds = %1803
  %1809 = load ptr, ptr %5, align 8, !tbaa !5
  %1810 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1809, i32 0, i32 3
  %1811 = load i8, ptr %1810, align 1, !tbaa !281, !range !13, !noundef !14
  %1812 = trunc i8 %1811 to i1
  br i1 %1812, label %1813, label %1892

1813:                                             ; preds = %1808, %1803
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #9
  %1814 = load ptr, ptr %3, align 8, !tbaa !5
  %1815 = getelementptr inbounds %struct.ImGuiContext, ptr %1814, i32 0, i32 26
  store ptr %1815, ptr %99, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #9
  %1816 = load ptr, ptr %99, align 8, !tbaa !5
  %1817 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %1816)
  store ptr %1817, ptr %100, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #9
  %1818 = load ptr, ptr %99, align 8, !tbaa !5
  %1819 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %1818)
  store ptr %1819, ptr %101, align 8, !tbaa !5
  br label %1820

1820:                                             ; preds = %1888, %1813
  %1821 = load ptr, ptr %100, align 8, !tbaa !5
  %1822 = load ptr, ptr %101, align 8, !tbaa !5
  %1823 = icmp ne ptr %1821, %1822
  br i1 %1823, label %1825, label %1824

1824:                                             ; preds = %1820
  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 %1891

1825:                                             ; preds = %1820
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #9
  %1826 = load ptr, ptr %100, align 8, !tbaa !5
  %1827 = load ptr, ptr %1826, align 8, !tbaa !5
  store ptr %1827, ptr %102, align 8, !tbaa !5
  %1828 = load ptr, ptr %102, align 8, !tbaa !5
  %1829 = getelementptr inbounds %struct.ImGuiWindow, ptr %1828, i32 0, i32 37
  %1830 = load i8, ptr %1829, align 1, !tbaa !282, !range !13, !noundef !14
  %1831 = trunc i8 %1830 to i1
  br i1 %1831, label %1833, label %1832

1832:                                             ; preds = %1825
  store i32 79, ptr %6, align 4
  br label %1885

1833:                                             ; preds = %1825
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #9
  %1834 = load ptr, ptr %102, align 8, !tbaa !5
  %1835 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1834)
  store ptr %1835, ptr %103, align 8, !tbaa !5
  %1836 = load ptr, ptr %5, align 8, !tbaa !5
  %1837 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1836, i32 0, i32 2
  %1838 = load i8, ptr %1837, align 2, !tbaa !120, !range !13, !noundef !14
  %1839 = trunc i8 %1838 to i1
  br i1 %1839, label %1840, label %1853

1840:                                             ; preds = %1833
  call void @llvm.lifetime.start.p0(i64 16, ptr %104) #9
  %1841 = load ptr, ptr %102, align 8, !tbaa !5
  %1842 = load ptr, ptr %5, align 8, !tbaa !5
  %1843 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1842, i32 0, i32 9
  %1844 = load i32, ptr %1843, align 4, !tbaa !115
  %1845 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %1841, i32 noundef %1844)
  %1846 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %104, i32 0, i32 0
  %1847 = extractvalue { <2 x float>, <2 x float> } %1845, 0
  store <2 x float> %1847, ptr %1846, align 4
  %1848 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %104, i32 0, i32 1
  %1849 = extractvalue { <2 x float>, <2 x float> } %1845, 1
  store <2 x float> %1849, ptr %1848, align 4
  %1850 = load ptr, ptr %103, align 8, !tbaa !5
  %1851 = getelementptr inbounds %struct.ImRect, ptr %104, i32 0, i32 0
  %1852 = getelementptr inbounds %struct.ImRect, ptr %104, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(200) %1850, ptr noundef nonnull align 4 dereferenceable(8) %1851, ptr noundef nonnull align 4 dereferenceable(8) %1852, 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 %1853

1853:                                             ; preds = %1840, %1833
  %1854 = load ptr, ptr %5, align 8, !tbaa !5
  %1855 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1854, i32 0, i32 3
  %1856 = load i8, ptr %1855, align 1, !tbaa !281, !range !13, !noundef !14
  %1857 = trunc i8 %1856 to i1
  br i1 %1857, label %1858, label %1884

1858:                                             ; preds = %1853
  %1859 = load ptr, ptr %102, align 8, !tbaa !5
  %1860 = getelementptr inbounds %struct.ImGuiWindow, ptr %1859, i32 0, i32 3
  %1861 = load i32, ptr %1860, align 4, !tbaa !167
  %1862 = and i32 %1861, 16777216
  %1863 = icmp ne i32 %1862, 0
  br i1 %1863, label %1884, label %1864

1864:                                             ; preds = %1858
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #9
  %1865 = getelementptr inbounds [32 x i8], ptr %105, i64 0, i64 0
  %1866 = load ptr, ptr %102, align 8, !tbaa !5
  %1867 = getelementptr inbounds %struct.ImGuiWindow, ptr %1866, i32 0, i32 53
  %1868 = load i16, ptr %1867, align 2, !tbaa !283
  %1869 = sext i16 %1868 to i32
  %1870 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %1865, i64 noundef 32, ptr noundef @.str.358, i32 noundef %1869)
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #9
  %1871 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  store float %1871, ptr %106, align 4, !tbaa !215
  %1872 = load ptr, ptr %103, align 8, !tbaa !5
  %1873 = load ptr, ptr %102, align 8, !tbaa !5
  %1874 = getelementptr inbounds %struct.ImGuiWindow, ptr %1873, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #9
  %1875 = load ptr, ptr %102, align 8, !tbaa !5
  %1876 = getelementptr inbounds %struct.ImGuiWindow, ptr %1875, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #9
  %1877 = load float, ptr %106, align 4, !tbaa !215
  %1878 = load float, ptr %106, align 4, !tbaa !215
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %108, float noundef %1877, float noundef %1878)
  %1879 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1876, ptr noundef nonnull align 4 dereferenceable(8) %108)
  store <2 x float> %1879, ptr %107, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(200) %1872, ptr noundef nonnull align 4 dereferenceable(8) %1874, 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
  %1880 = load ptr, ptr %103, align 8, !tbaa !5
  %1881 = load ptr, ptr %102, align 8, !tbaa !5
  %1882 = getelementptr inbounds %struct.ImGuiWindow, ptr %1881, i32 0, i32 7
  %1883 = getelementptr inbounds [32 x i8], ptr %105, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(200) %1880, ptr noundef nonnull align 4 dereferenceable(8) %1882, i32 noundef -1, ptr noundef %1883, 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 %1884

1884:                                             ; preds = %1864, %1858, %1853
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #9
  store i32 0, ptr %6, align 4
  br label %1885

1885:                                             ; preds = %1884, %1832
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  %1886 = load i32, ptr %6, align 4
  switch i32 %1886, label %2000 [
    i32 0, label %1887
    i32 79, label %1888
  ]

1887:                                             ; preds = %1885
  br label %1888

1888:                                             ; preds = %1887, %1885
  %1889 = load ptr, ptr %100, align 8, !tbaa !5
  %1890 = getelementptr inbounds ptr, ptr %1889, i32 1
  store ptr %1890, ptr %100, align 8, !tbaa !5
  br label %1820

1891:                                             ; preds = %1824
  br label %1892

1892:                                             ; preds = %1891, %1808
  %1893 = load ptr, ptr %5, align 8, !tbaa !5
  %1894 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1893, i32 0, i32 4
  %1895 = load i8, ptr %1894, align 4, !tbaa !130, !range !13, !noundef !14
  %1896 = trunc i8 %1895 to i1
  br i1 %1896, label %1897, label %1996

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

1898:                                             ; preds = %1992, %1897
  %1899 = load i32, ptr %109, align 4, !tbaa !123
  %1900 = load ptr, ptr %3, align 8, !tbaa !5
  %1901 = getelementptr inbounds %struct.ImGuiContext, ptr %1900, i32 0, i32 185
  %1902 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1901)
  %1903 = icmp slt i32 %1899, %1902
  br i1 %1903, label %1905, label %1904

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

1905:                                             ; preds = %1898
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #9
  %1906 = load ptr, ptr %3, align 8, !tbaa !5
  %1907 = getelementptr inbounds %struct.ImGuiContext, ptr %1906, i32 0, i32 185
  %1908 = load i32, ptr %109, align 4, !tbaa !123
  %1909 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1907, i32 noundef %1908)
  store ptr %1909, ptr %110, align 8, !tbaa !5
  %1910 = load ptr, ptr %110, align 8, !tbaa !5
  %1911 = icmp eq ptr %1910, null
  br i1 %1911, label %1921, label %1912

1912:                                             ; preds = %1905
  %1913 = load ptr, ptr %110, align 8, !tbaa !5
  %1914 = getelementptr inbounds %struct.ImGuiTable, ptr %1913, i32 0, i32 12
  %1915 = load i32, ptr %1914, align 8, !tbaa !131
  %1916 = load ptr, ptr %3, align 8, !tbaa !5
  %1917 = getelementptr inbounds %struct.ImGuiContext, ptr %1916, i32 0, i32 12
  %1918 = load i32, ptr %1917, align 8, !tbaa !142
  %1919 = sub nsw i32 %1918, 1
  %1920 = icmp slt i32 %1915, %1919
  br i1 %1920, label %1921, label %1922

1921:                                             ; preds = %1912, %1905
  store i32 82, ptr %6, align 4
  br label %1989

1922:                                             ; preds = %1912
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #9
  %1923 = load ptr, ptr %110, align 8, !tbaa !5
  %1924 = getelementptr inbounds %struct.ImGuiTable, ptr %1923, i32 0, i32 55
  %1925 = load ptr, ptr %1924, align 8, !tbaa !143
  %1926 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1925)
  store ptr %1926, ptr %111, align 8, !tbaa !5
  %1927 = load ptr, ptr %5, align 8, !tbaa !5
  %1928 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1927, i32 0, i32 10
  %1929 = load i32, ptr %1928, align 4, !tbaa !116
  %1930 = icmp sge i32 %1929, 6
  br i1 %1930, label %1931, label %1975

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

1932:                                             ; preds = %1971, %1931
  %1933 = load i32, ptr %112, align 4, !tbaa !123
  %1934 = load ptr, ptr %110, align 8, !tbaa !5
  %1935 = getelementptr inbounds %struct.ImGuiTable, ptr %1934, i32 0, i32 13
  %1936 = load i32, ptr %1935, align 4, !tbaa !146
  %1937 = icmp slt i32 %1933, %1936
  br i1 %1937, label %1939, label %1938

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

1939:                                             ; preds = %1932
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #9
  %1940 = load ptr, ptr %110, align 8, !tbaa !5
  %1941 = load ptr, ptr %5, align 8, !tbaa !5
  %1942 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1941, i32 0, i32 10
  %1943 = load i32, ptr %1942, align 4, !tbaa !116
  %1944 = load i32, ptr %112, align 4, !tbaa !123
  %1945 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1940, i32 noundef %1943, i32 noundef %1944)
  %1946 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %113, i32 0, i32 0
  %1947 = extractvalue { <2 x float>, <2 x float> } %1945, 0
  store <2 x float> %1947, ptr %1946, align 4
  %1948 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %113, i32 0, i32 1
  %1949 = extractvalue { <2 x float>, <2 x float> } %1945, 1
  store <2 x float> %1949, ptr %1948, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #9
  %1950 = load ptr, ptr %110, align 8, !tbaa !5
  %1951 = getelementptr inbounds %struct.ImGuiTable, ptr %1950, i32 0, i32 70
  %1952 = load i16, ptr %1951, align 2, !tbaa !284
  %1953 = sext i16 %1952 to i32
  %1954 = load i32, ptr %112, align 4, !tbaa !123
  %1955 = icmp eq i32 %1953, %1954
  %1956 = zext i1 %1955 to i64
  %1957 = select i1 %1955, i32 -8323073, i32 -8388353
  store i32 %1957, ptr %114, align 4, !tbaa !123
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #9
  %1958 = load ptr, ptr %110, align 8, !tbaa !5
  %1959 = getelementptr inbounds %struct.ImGuiTable, ptr %1958, i32 0, i32 70
  %1960 = load i16, ptr %1959, align 2, !tbaa !284
  %1961 = sext i16 %1960 to i32
  %1962 = load i32, ptr %112, align 4, !tbaa !123
  %1963 = icmp eq i32 %1961, %1962
  %1964 = zext i1 %1963 to i64
  %1965 = select i1 %1963, float 3.000000e+00, float 1.000000e+00
  store float %1965, ptr %115, align 4, !tbaa !215
  %1966 = load ptr, ptr %111, align 8, !tbaa !5
  %1967 = getelementptr inbounds %struct.ImRect, ptr %113, i32 0, i32 0
  %1968 = getelementptr inbounds %struct.ImRect, ptr %113, i32 0, i32 1
  %1969 = load i32, ptr %114, align 4, !tbaa !123
  %1970 = load float, ptr %115, align 4, !tbaa !215
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(200) %1966, ptr noundef nonnull align 4 dereferenceable(8) %1967, ptr noundef nonnull align 4 dereferenceable(8) %1968, i32 noundef %1969, float noundef 0.000000e+00, i32 noundef 0, float noundef %1970)
  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 %1971

1971:                                             ; preds = %1939
  %1972 = load i32, ptr %112, align 4, !tbaa !123
  %1973 = add nsw i32 %1972, 1
  store i32 %1973, ptr %112, align 4, !tbaa !123
  br label %1932, !llvm.loop !285

1974:                                             ; preds = %1938
  br label %1988

1975:                                             ; preds = %1922
  call void @llvm.lifetime.start.p0(i64 16, ptr %116) #9
  %1976 = load ptr, ptr %110, align 8, !tbaa !5
  %1977 = load ptr, ptr %5, align 8, !tbaa !5
  %1978 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1977, i32 0, i32 10
  %1979 = load i32, ptr %1978, align 4, !tbaa !116
  %1980 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1976, i32 noundef %1979, i32 noundef -1)
  %1981 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %116, i32 0, i32 0
  %1982 = extractvalue { <2 x float>, <2 x float> } %1980, 0
  store <2 x float> %1982, ptr %1981, align 4
  %1983 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %116, i32 0, i32 1
  %1984 = extractvalue { <2 x float>, <2 x float> } %1980, 1
  store <2 x float> %1984, ptr %1983, align 4
  %1985 = load ptr, ptr %111, align 8, !tbaa !5
  %1986 = getelementptr inbounds %struct.ImRect, ptr %116, i32 0, i32 0
  %1987 = getelementptr inbounds %struct.ImRect, ptr %116, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(200) %1985, ptr noundef nonnull align 4 dereferenceable(8) %1986, ptr noundef nonnull align 4 dereferenceable(8) %1987, 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 %1988

1988:                                             ; preds = %1975, %1974
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  store i32 0, ptr %6, align 4
  br label %1989

1989:                                             ; preds = %1988, %1921
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #9
  %1990 = load i32, ptr %6, align 4
  switch i32 %1990, label %2000 [
    i32 0, label %1991
    i32 82, label %1992
  ]

1991:                                             ; preds = %1989
  br label %1992

1992:                                             ; preds = %1991, %1989
  %1993 = load i32, ptr %109, align 4, !tbaa !123
  %1994 = add nsw i32 %1993, 1
  store i32 %1994, ptr %109, align 4, !tbaa !123
  br label %1898, !llvm.loop !286

1995:                                             ; preds = %1904
  br label %1996

1996:                                             ; preds = %1995, %1892
  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 %1997

1997:                                             ; preds = %1996, %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
  %1998 = load i32, ptr %6, align 4
  switch i32 %1998, label %2000 [
    i32 0, label %1999
    i32 1, label %1999
  ]

1999:                                             ; preds = %1997, %1997
  ret void

2000:                                             ; preds = %1997, %1989, %1885, %1465, %530
  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 void @_ZN5ImGui9SeparatorEv() #6

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

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

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

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

declare void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef) #6

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef, i32 noundef, i32 noundef) #8 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_(ptr noundef, ptr noundef) #1 align 2

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) #6

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) #6

declare void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef) #6

; 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

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

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

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

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

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

declare void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef) #6

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

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

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

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

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTS18ImGuiMetricsConfig", !11, i64 0, !11, i64 1, !11, i64 2, !11, i64 3, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !11, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!10, !11, i64 1}
!16 = !{!17, !20, i64 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 896, !6, i64 904, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !6, i64 944, !6, i64 952, !7, i64 960, !7, i64 968, !7, i64 1000, !12, i64 1016, !12, i64 1020, !12, i64 1024, !11, i64 1028}
!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, !41, i64 128, !43, i64 152, !44, i64 168, !19, i64 184, !6, i64 192}
!35 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS15ImDrawCmdHeader", !40, i64 0, !6, i64 16, !12, i64 24}
!40 = !{!"_ZTS6ImVec4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!41 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !42, i64 8}
!42 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!43 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorIPvE", !12, i64 0, !12, i64 4, !6, i64 8}
!45 = !{!7, !7, i64 0}
!46 = !{!47, !19, i64 228}
!47 = !{!"_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, !19, i64 92, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !19, i64 112, !11, i64 116, !11, i64 117, !11, i64 118, !11, i64 119, !11, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !6, i64 208, !20, i64 216, !11, i64 218, !11, i64 219, !11, i64 220, !11, i64 221, !11, i64 222, !11, i64 223, !11, i64 224, !19, i64 228, !12, i64 232, !12, i64 236, !12, i64 240, !12, i64 244, !18, i64 248, !6, i64 256, !18, i64 264, !7, i64 272, !19, i64 280, !19, i64 284, !48, i64 288, !11, i64 292, !11, i64 293, !11, i64 294, !11, i64 295, !12, i64 296, !7, i64 300, !11, i64 10956, !18, i64 10960, !7, i64 10968, !7, i64 11008, !7, i64 11048, !7, i64 11053, !7, i64 11058, !7, i64 11068, !7, i64 11078, !7, i64 11083, !7, i64 11088, !11, i64 11093, !11, i64 11094, !7, i64 11096, !7, i64 11116, !7, i64 11136, !19, i64 11156, !11, i64 11160, !11, i64 11161, !7, i64 11162, !11, i64 11163, !20, i64 11164, !36, i64 11168, !7, i64 11184, !7, i64 13848, !7, i64 14516}
!48 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!49 = !{!47, !12, i64 232}
!50 = !{!47, !12, i64 236}
!51 = !{!47, !12, i64 240}
!52 = !{!53, !12, i64 25112}
!53 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !47, i64 8, !54, i64 14592, !6, i64 15752, !19, i64 15760, !19, i64 15764, !19, i64 15768, !19, i64 15772, !55, i64 15776, !56, i64 16312, !12, i64 16320, !12, i64 16324, !12, i64 16328, !11, i64 16332, !11, i64 16333, !11, i64 16334, !11, i64 16335, !11, i64 16336, !6, i64 16344, !7, i64 16352, !57, i64 16368, !57, i64 16384, !48, i64 16400, !12, i64 16404, !27, i64 16408, !27, i64 16424, !27, i64 16440, !58, i64 16456, !31, i64 16472, !12, i64 16488, !18, i64 16492, !12, i64 16500, !6, i64 16504, !6, i64 16512, !6, i64 16520, !6, i64 16528, !6, i64 16536, !6, i64 16544, !18, i64 16552, !12, i64 16560, !12, i64 16564, !19, i64 16568, !18, i64 16572, !18, i64 16580, !12, i64 16588, !12, i64 16592, !12, i64 16596, !19, i64 16600, !19, i64 16604, !11, i64 16608, !11, i64 16609, !11, i64 16610, !12, i64 16612, !12, i64 16616, !19, i64 16620, !11, i64 16624, !11, i64 16625, !11, i64 16626, !11, i64 16627, !11, i64 16628, !11, i64 16629, !11, i64 16630, !12, i64 16631, !18, i64 16632, !6, i64 16640, !59, i64 16648, !12, i64 16652, !11, i64 16656, !11, i64 16657, !6, i64 16664, !12, i64 16672, !19, i64 16676, !56, i64 16680, !56, i64 16688, !56, i64 16696, !60, i64 16704, !7, i64 16724, !61, i64 18576, !12, i64 18920, !11, i64 18924, !12, i64 18928, !12, i64 18932, !12, i64 18936, !12, i64 18940, !63, i64 18944, !66, i64 19000, !67, i64 19080, !11, i64 19192, !12, i64 19196, !68, i64 19200, !69, i64 19216, !70, i64 19232, !71, i64 19248, !72, i64 19264, !73, i64 19280, !74, i64 19296, !74, i64 19312, !75, i64 19328, !76, i64 19344, !6, i64 19360, !12, i64 19368, !12, i64 19372, !25, i64 19376, !12, i64 19380, !12, i64 19384, !12, i64 19388, !12, i64 19392, !71, i64 19400, !12, i64 19416, !19, i64 19420, !12, i64 19424, !12, i64 19428, !59, i64 19432, !64, i64 19440, !11, i64 19448, !11, i64 19449, !11, i64 19450, !11, i64 19451, !11, i64 19452, !11, i64 19453, !11, i64 19454, !77, i64 19456, !11, i64 19512, !11, i64 19513, !11, i64 19514, !12, i64 19516, !12, i64 19520, !12, i64 19524, !21, i64 19528, !21, i64 19532, !21, i64 19536, !29, i64 19540, !29, i64 19556, !12, i64 19572, !12, i64 19576, !12, i64 19580, !77, i64 19584, !77, i64 19640, !77, i64 19696, !77, i64 19752, !12, i64 19808, !12, i64 19812, !12, i64 19816, !12, i64 19820, !11, i64 19824, !11, i64 19825, !12, i64 19828, !12, i64 19832, !6, i64 19840, !6, i64 19848, !6, i64 19856, !19, i64 19864, !19, i64 19868, !11, i64 19872, !78, i64 19876, !18, i64 19880, !18, i64 19888, !19, i64 19896, !11, i64 19900, !11, i64 19901, !11, i64 19902, !12, i64 19904, !12, i64 19908, !12, i64 19912, !79, i64 19920, !29, i64 19984, !29, i64 20000, !12, i64 20016, !12, i64 20020, !19, i64 20024, !12, i64 20028, !12, i64 20032, !12, i64 20036, !12, i64 20040, !80, i64 20048, !7, i64 20064, !12, i64 20080, !81, i64 20088, !6, i64 20104, !12, i64 20112, !12, i64 20116, !82, i64 20120, !83, i64 20136, !28, i64 20176, !42, i64 20192, !6, i64 20208, !85, i64 20216, !87, i64 20256, !88, i64 20272, !89, i64 20288, !6, i64 20392, !12, i64 20400, !90, i64 20408, !91, i64 20424, !12, i64 20464, !12, i64 20468, !19, i64 20472, !19, i64 20476, !12, i64 20480, !12, i64 20484, !12, i64 20488, !19, i64 20492, !18, i64 20496, !93, i64 20504, !97, i64 24240, !98, i64 24264, !12, i64 24384, !65, i64 24388, !12, i64 24396, !12, i64 24400, !12, i64 24404, !12, i64 24408, !12, i64 24412, !19, i64 24416, !19, i64 24420, !12, i64 24424, !40, i64 24428, !100, i64 24444, !29, i64 24492, !11, i64 24508, !20, i64 24510, !19, i64 24512, !19, i64 24516, !19, i64 24520, !11, i64 24524, !11, i64 24525, !19, i64 24528, !19, i64 24532, !19, i64 24536, !20, i64 24540, !20, i64 24542, !20, i64 24544, !94, i64 24552, !22, i64 24568, !101, i64 24584, !103, i64 24688, !103, i64 24704, !11, i64 24720, !19, i64 24724, !104, i64 24728, !105, i64 24744, !106, i64 24760, !107, i64 24776, !108, i64 24792, !12, i64 24808, !7, i64 24816, !11, i64 24888, !109, i64 24892, !6, i64 24896, !104, i64 24904, !6, i64 24920, !6, i64 24928, !19, i64 24936, !11, i64 24940, !12, i64 24944, !12, i64 24948, !12, i64 24952, !12, i64 24956, !104, i64 24960, !110, i64 24976, !12, i64 25000, !7, i64 25004, !7, i64 25005, !11, i64 25006, !12, i64 25008, !7, i64 25012, !11, i64 25013, !7, i64 25014, !12, i64 25016, !19, i64 25020, !40, i64 25024, !10, i64 25040, !111, i64 25072, !113, i64 25112, !7, i64 25172, !12, i64 25412, !12, i64 25416, !19, i64 25420, !12, i64 25424, !12, i64 25428, !12, i64 25432, !94, i64 25440, !7, i64 25456}
!54 = !{!"_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}
!55 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !19, i64 16, !19, i64 20, !19, i64 24, !19, i64 28, !40, i64 32, !12, i64 48, !38, i64 56, !7, i64 72, !19, i64 456, !7, i64 460, !6, i64 528}
!56 = !{!"double", !7, i64 0}
!57 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!59 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!60 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!61 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !62, i64 312, !62, i64 328}
!62 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!63 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !12, i64 8, !64, i64 16, !19, i64 24, !12, i64 28, !12, i64 32, !11, i64 36, !7, i64 37, !65, i64 38, !12, i64 48}
!64 = !{!"long long", !7, i64 0}
!65 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!66 = !{!"_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}
!67 = !{!"_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}
!68 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_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, !64, i64 48}
!78 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!79 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !7, i64 24, !11, i64 57, !11, i64 58}
!80 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!81 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!83 = !{!"_ZTS6ImPoolI10ImGuiTableE", !84, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!84 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !86, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!86 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!87 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!88 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!89 = !{!"_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}
!90 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!91 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !92, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!92 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !12, i64 0, !12, i64 4, !6, i64 8}
!93 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !36, i64 24, !94, i64 40, !94, i64 56, !11, i64 72, !12, i64 76, !19, i64 80, !95, i64 84, !19, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !12, i64 3720, !11, i64 3724, !12, i64 3728, !12, i64 3732}
!94 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!95 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !12, i64 0, !12, i64 4, !12, i64 8, !7, i64 12, !12, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !19, i64 28, !96, i64 32}
!96 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !20, i64 3582, !20, i64 3584, !12, i64 3588, !12, i64 3592}
!97 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !94, 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", !94, i64 0}
!105 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!106 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !94, i64 0}
!107 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !94, i64 0}
!108 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!109 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!110 = !{!"_ZTS14ImGuiTextIndex", !72, 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 = !{!53, !12, i64 25116}
!115 = !{!10, !12, i64 12}
!116 = !{!10, !12, i64 16}
!117 = !{!18, !19, i64 0}
!118 = !{!53, !19, i64 14792}
!119 = !{!53, !11, i64 25013}
!120 = !{!10, !11, i64 2}
!121 = !{!53, !6, i64 19360}
!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 = !{!53, !12, i64 16320}
!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 = !{!53, !12, i64 16408}
!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 = !{!53, !12, i64 19344}
!162 = !{!10, !12, i64 24}
!163 = !{!53, !12, i64 19296}
!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 896}
!170 = distinct !{!170, !129}
!171 = distinct !{!171, !129}
!172 = !{!53, !6, i64 56}
!173 = !{!174, !12, i64 88}
!174 = !{!"_ZTS11ImFontAtlas", !12, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !11, i64 24, !6, i64 32, !11, i64 40, !11, i64 41, !6, i64 48, !6, i64 56, !12, i64 64, !12, i64 68, !18, i64 72, !18, i64 80, !70, 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 = !{!89, !12, i64 0}
!178 = !{!89, !11, i64 5}
!179 = !{!89, !11, i64 4}
!180 = distinct !{!180, !129}
!181 = !{!53, !6, i64 32}
!182 = !{!53, !19, i64 24724}
!183 = !{!53, !12, i64 24744}
!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 = !{!53, !12, i64 24728}
!189 = !{!113, !12, i64 0}
!190 = !{!113, !12, i64 4}
!191 = !{!53, !11, i64 16335}
!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 = !{!78, !78, 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 = !{!47, !11, i64 292}
!205 = !{!47, !11, i64 293}
!206 = !{!47, !11, i64 294}
!207 = !{!47, !11, i64 295}
!208 = !{!47, !12, i64 11168}
!209 = !{!20, !20, i64 0}
!210 = distinct !{!210, !129}
!211 = !{!47, !19, i64 264}
!212 = !{!47, !19, i64 268}
!213 = !{!47, !19, i64 248}
!214 = !{!47, !19, i64 252}
!215 = !{!19, !19, i64 0}
!216 = distinct !{!216, !129}
!217 = distinct !{!217, !129}
!218 = distinct !{!218, !129}
!219 = !{!47, !19, i64 280}
!220 = !{!53, !19, i64 20492}
!221 = !{!47, !48, i64 288}
!222 = !{!47, !19, i64 11156}
!223 = !{!53, !6, i64 16544}
!224 = !{!53, !19, i64 16568}
!225 = !{!53, !19, i64 16580}
!226 = !{!53, !19, i64 16584}
!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 = !{!53, !11, i64 124}
!237 = !{!53, !12, i64 18928}
!238 = !{!233, !20, i64 0}
!239 = distinct !{!239, !129}
!240 = distinct !{!240, !129}
!241 = !{!53, !11, i64 18924}
!242 = !{!53, !12, i64 18920}
!243 = !{!53, !6, i64 16512}
!244 = !{!17, !6, i64 912}
!245 = !{!53, !6, i64 16520}
!246 = !{!53, !6, i64 16536}
!247 = !{!53, !12, i64 16612}
!248 = !{!53, !12, i64 16652}
!249 = !{!53, !19, i64 16620}
!250 = !{!53, !11, i64 16625}
!251 = !{!53, !59, i64 16648}
!252 = !{!53, !6, i64 16640}
!253 = !{!53, !12, i64 16596}
!254 = !{!53, !19, i64 16600}
!255 = !{!53, !11, i64 16608}
!256 = !{!53, !12, i64 20464}
!257 = !{!53, !19, i64 20472}
!258 = !{!53, !19, i64 20476}
!259 = !{!53, !11, i64 19900}
!260 = !{!53, !12, i64 19932}
!261 = !{!53, !12, i64 19928}
!262 = !{!53, !12, i64 19368}
!263 = !{!53, !25, i64 19376}
!264 = !{!53, !59, i64 19432}
!265 = !{!53, !64, i64 19440}
!266 = !{!53, !11, i64 231}
!267 = !{!53, !11, i64 232}
!268 = !{!53, !12, i64 19380}
!269 = !{!53, !12, i64 19384}
!270 = !{!53, !12, i64 19388}
!271 = !{!53, !12, i64 19392}
!272 = !{!53, !11, i64 19450}
!273 = !{!53, !11, i64 19451}
!274 = !{!53, !12, i64 19372}
!275 = !{!53, !12, i64 19400}
!276 = !{!277, !12, i64 0}
!277 = !{!"_ZTS19ImGuiFocusScopeData", !12, i64 0, !12, i64 4}
!278 = !{!277, !12, i64 4}
!279 = distinct !{!279, !129}
!280 = !{!53, !6, i64 19840}
!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.17 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.371 = 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.389 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [64 x i8], align 16
@.str.415 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [34 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 [34 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.494 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.514 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.515 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.516 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.517 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.518 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.519 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.520 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.521 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.522 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.523 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.524 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.525 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.526 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.527 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.528 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.529 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.530 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.531 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.532 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.533 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.535 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.536 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.537 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.538 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.539 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.540 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.541 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.542 = 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(200), 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(200), 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 ptr @_ZN5ImGui10GetVersionEv() local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui7TreePopEv() local_unnamed_addr #6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef %0) local_unnamed_addr #7 {
  %2 = alloca [8 x ptr], align 16
  %3 = alloca [13 x ptr], align 16
  %4 = alloca %struct.ImRect, align 8
  %5 = alloca %struct.ImVec2, align 8
  %6 = alloca %struct.ImVec2, align 4
  %7 = alloca %struct.ImVec2, align 8
  %8 = alloca %struct.ImVec2, align 4
  %9 = alloca [128 x i8], align 16
  %10 = alloca %struct.ImRect, align 8
  %11 = alloca %struct.ImVec2, align 4
  %12 = alloca %struct.ImVec2, align 8
  %13 = alloca %struct.ImVec2, align 4
  %14 = alloca %struct.ImVec2, align 8
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca %struct.ImRect, align 8
  %17 = alloca %struct.ImVec2, align 4
  %18 = alloca %struct.ImVec2, align 8
  %19 = alloca %struct.ImVec2, align 4
  %20 = alloca %struct.ImVec2, align 8
  %21 = alloca %struct.ImVec2, align 4
  %22 = alloca ptr, align 8
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca %struct.ImRect, align 8
  %27 = alloca [32 x i8], align 16
  %28 = alloca %struct.ImVec2, align 8
  %29 = alloca %struct.ImVec2, align 4
  %30 = alloca %struct.ImRect, align 8
  %31 = alloca %struct.ImRect, align 8
  %32 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %33 = getelementptr inbounds i8, ptr %32, i64 25040
  %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 25041
  %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.366, 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 %1186

50:                                               ; preds = %44
  tail call void @_ZN5ImGui19DebugBreakClearDataEv()
  %51 = tail call noundef ptr @_ZN5ImGui10GetVersionEv()
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.367, ptr noundef %51)
  %52 = getelementptr inbounds i8, ptr %32, i64 16352
  %53 = load i8, ptr %52, align 8, !tbaa !45
  %.not = icmp eq i8 %53, 0
  br i1 %.not, label %55, label %54

54:                                               ; 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.368, ptr noundef nonnull %52)
  br label %55

55:                                               ; preds = %54, %50
  %56 = getelementptr inbounds i8, ptr %32, i64 236
  %57 = load float, ptr %56, align 4, !tbaa !46
  %58 = fdiv float 1.000000e+03, %57
  %59 = fpext float %58 to double
  %60 = fpext float %57 to double
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.369, double noundef %59, double noundef %60)
  %61 = getelementptr inbounds i8, ptr %32, i64 240
  %62 = load i32, ptr %61, align 8, !tbaa !49
  %63 = getelementptr inbounds i8, ptr %32, i64 244
  %64 = load i32, ptr %63, align 4, !tbaa !50
  %65 = sdiv i32 %64, 3
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.370, i32 noundef %62, i32 noundef %64, i32 noundef %65)
  %66 = getelementptr inbounds i8, ptr %32, i64 248
  %67 = load i32, ptr %66, align 8, !tbaa !51
  %68 = getelementptr inbounds i8, ptr %32, i64 25112
  %69 = load i32, ptr %68, align 8, !tbaa !52
  %70 = getelementptr inbounds i8, ptr %32, i64 25116
  %71 = load i32, ptr %70, align 4, !tbaa !114
  %72 = sub nsw i32 %69, %71
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.371, i32 noundef %67, i32 noundef %72)
  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)
  %73 = getelementptr inbounds i8, ptr %32, i64 25052
  %74 = load i32, ptr %73, align 4, !tbaa !115
  %75 = icmp slt i32 %74, 0
  br i1 %75, label %76, label %77

76:                                               ; preds = %55
  store i32 4, ptr %73, align 4, !tbaa !115
  br label %77

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

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

82:                                               ; preds = %81, %77
  %83 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.389)
  br i1 %83, label %84, label %389

84:                                               ; preds = %82
  %85 = tail call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef nonnull @.str.391, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %85, i64 0
  %86 = getelementptr inbounds i8, ptr %32, i64 14792
  %87 = load float, ptr %86, align 8, !tbaa !117
  %88 = fadd float %.sroa.0.0.vec.extract, %87
  tail call void @_ZN5ImGui15SeparatorTextExEjPKcS1_f(i32 noundef 0, ptr noundef nonnull @.str.390, ptr noundef null, float noundef %88)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.392)
  %89 = getelementptr inbounds i8, ptr %32, i64 25013
  %90 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.393, ptr noundef nonnull %89)
  br i1 %90, label %91, label %95

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

94:                                               ; preds = %91
  tail call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %95

95:                                               ; preds = %94, %91, %84
  %96 = getelementptr inbounds i8, ptr %32, i64 124
  %97 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.394, ptr noundef nonnull %96)
  tail call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.395)
  %98 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.396, 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.397)
  %99 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.398, 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.399)
  %100 = getelementptr inbounds i8, ptr %32, i64 25043
  %101 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.400, ptr noundef nonnull %100)
  %102 = getelementptr inbounds i8, ptr %32, i64 25042
  %103 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.401, ptr noundef nonnull %102)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %104 = tail call noundef float @_ZN5ImGui11GetFontSizeEv()
  %105 = fmul float %104, 1.200000e+01
  tail call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %105)
  %106 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.402, ptr noundef nonnull %73, ptr noundef nonnull %2, i32 noundef 8, i32 noundef 8)
  %107 = load i8, ptr %102, align 2, !tbaa !119, !range !13, !noundef !14
  %108 = zext i1 %106 to i8
  %109 = or i8 %107, %108
  %.not506 = icmp eq i8 %109, 0
  store i8 %109, ptr %102, align 2, !tbaa !119
  br i1 %.not506, label %260, label %110

110:                                              ; preds = %95
  %111 = getelementptr inbounds i8, ptr %32, i64 19360
  %112 = load ptr, ptr %111, align 8, !tbaa !120
  %.not507 = icmp eq ptr %112, null
  br i1 %.not507, label %260, label %113

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

260:                                              ; preds = %113, %110, %95
  %261 = getelementptr inbounds i8, ptr %32, i64 25044
  %262 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.405, ptr noundef nonnull %261)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %263 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %264 = fmul float %263, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %264)
  %265 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.406, ptr noundef nonnull %78, ptr noundef nonnull %3, i32 noundef 13, i32 noundef 13)
  %266 = load i8, ptr %261, align 4, !tbaa !122, !range !13, !noundef !14
  %267 = zext i1 %265 to i8
  %268 = or i8 %266, %267
  %.not508 = icmp eq i8 %268, 0
  store i8 %268, ptr %261, align 4, !tbaa !122
  br i1 %.not508, label %.loopexit564, label %269

269:                                              ; preds = %260
  %270 = getelementptr inbounds i8, ptr %32, i64 19360
  %271 = load ptr, ptr %270, align 8, !tbaa !120
  %.not509 = icmp eq ptr %271, null
  br i1 %.not509, label %.loopexit564, label %.preheader563

.preheader563:                                    ; preds = %269
  %272 = getelementptr inbounds i8, ptr %32, i64 20136
  %273 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %272)
  %274 = icmp sgt i32 %273, 0
  br i1 %274, label %.lr.ph570, label %.loopexit564

.lr.ph570:                                        ; preds = %.preheader563
  %275 = getelementptr inbounds i8, ptr %32, i64 16320
  %276 = getelementptr inbounds i8, ptr %16, i64 8
  %277 = getelementptr inbounds i8, ptr %10, i64 8
  br label %278

278:                                              ; preds = %.lr.ph570, %372
  %.0454569 = phi i32 [ 0, %.lr.ph570 ], [ %373, %372 ]
  %279 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %272, i32 noundef %.0454569)
  %280 = icmp eq ptr %279, null
  br i1 %280, label %372, label %281

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

287:                                              ; preds = %281
  %288 = getelementptr inbounds i8, ptr %279, i64 384
  %289 = load ptr, ptr %288, align 8, !tbaa !135
  %290 = load ptr, ptr %270, align 8, !tbaa !120
  %.not540 = icmp eq ptr %289, %290
  br i1 %.not540, label %294, label %291

291:                                              ; preds = %287
  %292 = getelementptr inbounds i8, ptr %279, i64 392
  %293 = load ptr, ptr %292, align 8, !tbaa !136
  %.not541 = icmp eq ptr %293, %290
  br i1 %.not541, label %294, label %372

294:                                              ; preds = %291, %287
  %295 = load i32, ptr %279, align 8, !tbaa !137
  %296 = getelementptr inbounds i8, ptr %279, i64 108
  %297 = load i32, ptr %296, align 4, !tbaa !138
  %298 = getelementptr inbounds i8, ptr %289, i64 8
  %299 = load ptr, ptr %298, align 8, !tbaa !121
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.407, i32 noundef %295, i32 noundef %297, ptr noundef %299)
  %300 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %300, label %301, label %307

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

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

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

309:                                              ; preds = %307, %.loopexit562
  %indvars.iv = phi i64 [ 0, %307 ], [ %indvars.iv.next, %.loopexit562 ]
  %310 = icmp ugt i64 %indvars.iv, 5
  br i1 %310, label %311, label %345

311:                                              ; preds = %309
  %312 = trunc nuw nsw i64 %indvars.iv to i32
  switch i32 %312, label %.loopexit562 [
    i32 8, label %313
    i32 6, label %313
  ]

313:                                              ; preds = %311, %311
  %314 = load i32, ptr %296, align 4, !tbaa !138
  %315 = icmp sgt i32 %314, 0
  br i1 %315, label %.lr.ph, label %.loopexit562

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

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

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

341:                                              ; preds = %337, %317
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #9
  %342 = add nuw nsw i32 %.0457566, 1
  %343 = load i32, ptr %296, align 4, !tbaa !138
  %344 = icmp slt i32 %342, %343
  br i1 %344, label %317, label %.loopexit562, !llvm.loop !139

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

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

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

.loopexit562:                                     ; preds = %341, %313, %311, %371
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 13
  br i1 %exitcond.not, label %308, label %309, !llvm.loop !141

372:                                              ; preds = %278, %281, %291, %308
  %373 = add nuw nsw i32 %.0454569, 1
  %374 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %272)
  %375 = icmp slt i32 %373, %374
  br i1 %375, label %278, label %.loopexit564, !llvm.loop !142

.loopexit564:                                     ; preds = %372, %.preheader563, %269, %260
  %376 = getelementptr inbounds i8, ptr %32, i64 19192
  %377 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.409, ptr noundef nonnull %376)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.410)
  %378 = getelementptr inbounds i8, ptr %32, i64 126
  %379 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.411, ptr noundef nonnull %378)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.412)
  %380 = getelementptr inbounds i8, ptr %32, i64 25047
  %381 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.413, ptr noundef nonnull %380)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.414)
  %382 = load i8, ptr %380, align 1, !tbaa !143, !range !13, !noundef !14
  %383 = trunc nuw i8 %382 to i1
  br i1 %383, label %384, label %388

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

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

388:                                              ; preds = %384, %387, %.loopexit564
  call void @_ZN5ImGui7TreePopEv()
  br label %389

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

393:                                              ; preds = %389
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %390, ptr noundef nonnull @.str.418)
  %394 = getelementptr inbounds i8, ptr %32, i64 16424
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %394, ptr noundef nonnull @.str.419)
  %395 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.420)
  br i1 %395, label %396, label %416

396:                                              ; preds = %393
  %397 = getelementptr inbounds i8, ptr %32, i64 16440
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %397, i32 noundef 0)
  %398 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %390)
  %399 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %390)
  %.not511571 = icmp eq ptr %398, %399
  br i1 %.not511571, label %._crit_edge, label %.lr.ph573

.lr.ph573:                                        ; preds = %396
  %400 = getelementptr inbounds i8, ptr %32, i64 16320
  br label %407

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

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

413:                                              ; preds = %407
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %397, ptr noundef nonnull align 8 dereferenceable(8) %22)
  br label %414

414:                                              ; preds = %413, %407
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  %415 = getelementptr inbounds i8, ptr %.0458572, i64 8
  %.not511 = icmp eq ptr %415, %399
  br i1 %.not511, label %._crit_edge, label %407

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

417:                                              ; preds = %416, %389
  %418 = getelementptr inbounds i8, ptr %32, i64 19344
  %419 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %418)
  %420 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %418)
  %.not512574 = icmp eq ptr %419, %420
  br i1 %.not512574, label %._crit_edge579, label %.lr.ph578

._crit_edge579:                                   ; preds = %.lr.ph578, %417
  %.0459.lcssa = phi i32 [ 0, %417 ], [ %425, %.lr.ph578 ]
  %421 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.421, ptr noundef nonnull @.str.422, i32 noundef %.0459.lcssa)
  br i1 %421, label %427, label %441

.lr.ph578:                                        ; preds = %417, %.lr.ph578
  %.0459576 = phi i32 [ %425, %.lr.ph578 ], [ 0, %417 ]
  %.0460575 = phi ptr [ %426, %.lr.ph578 ], [ %419, %417 ]
  %422 = load ptr, ptr %.0460575, align 8, !tbaa !5
  %423 = getelementptr inbounds i8, ptr %422, i64 96
  %424 = load i32, ptr %423, align 8, !tbaa !148
  %425 = add nsw i32 %424, %.0459576
  %426 = getelementptr inbounds i8, ptr %.0460575, i64 8
  %.not512 = icmp eq ptr %426, %420
  br i1 %.not512, label %._crit_edge579, label %.lr.ph578

427:                                              ; preds = %._crit_edge579
  %428 = getelementptr inbounds i8, ptr %32, i64 25045
  %429 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.423, ptr noundef nonnull %428)
  %430 = getelementptr inbounds i8, ptr %32, i64 25046
  %431 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.424, ptr noundef nonnull %430)
  %432 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %418)
  %433 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %418)
  %.not513585 = icmp eq ptr %432, %433
  br i1 %.not513585, label %._crit_edge589, label %.lr.ph588

._crit_edge589:                                   ; preds = %._crit_edge584, %427
  call void @_ZN5ImGui7TreePopEv()
  br label %441

.lr.ph588:                                        ; preds = %427, %._crit_edge584
  %.0462586 = phi ptr [ %438, %._crit_edge584 ], [ %432, %427 ]
  %434 = load ptr, ptr %.0462586, align 8, !tbaa !5
  %435 = getelementptr inbounds i8, ptr %434, i64 96
  %436 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %435)
  %437 = call noundef ptr @_ZN8ImVectorIP10ImDrawListE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %435)
  %.not538580 = icmp eq ptr %436, %437
  br i1 %.not538580, label %._crit_edge584, label %.lr.ph583

._crit_edge584:                                   ; preds = %.lr.ph583, %.lr.ph588
  %438 = getelementptr inbounds i8, ptr %.0462586, i64 8
  %.not513 = icmp eq ptr %438, %433
  br i1 %.not513, label %._crit_edge589, label %.lr.ph588

.lr.ph583:                                        ; preds = %.lr.ph588, %.lr.ph583
  %.0463581 = phi ptr [ %440, %.lr.ph583 ], [ %436, %.lr.ph588 ]
  %439 = load ptr, ptr %.0463581, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowP14ImGuiViewportPPK10ImDrawListPKc(ptr noundef null, ptr noundef %434, ptr noundef %439, ptr noundef nonnull @.str.425)
  %440 = getelementptr inbounds i8, ptr %.0463581, i64 8
  %.not538 = icmp eq ptr %440, %437
  br i1 %.not538, label %._crit_edge584, label %.lr.ph583

441:                                              ; preds = %._crit_edge589, %._crit_edge579
  %442 = load i32, ptr %418, align 8, !tbaa !154
  %443 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.426, ptr noundef nonnull @.str.427, i32 noundef %442)
  br i1 %443, label %444, label %453

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

446:                                              ; preds = %444
  call void @_ZL25RenderViewportsThumbnailsv()
  call void @_ZN5ImGui7TreePopEv()
  br label %447

447:                                              ; preds = %446, %444
  %448 = getelementptr inbounds i8, ptr %32, i64 25064
  store i32 0, ptr %448, align 4, !tbaa !155
  %449 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %418)
  %450 = call noundef ptr @_ZN8ImVectorIP14ImGuiViewportPE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %418)
  %.not514590 = icmp eq ptr %449, %450
  br i1 %.not514590, label %._crit_edge594, label %.lr.ph593

._crit_edge594:                                   ; preds = %.lr.ph593, %447
  call void @_ZN5ImGui7TreePopEv()
  br label %453

.lr.ph593:                                        ; preds = %447, %.lr.ph593
  %.0465591 = phi ptr [ %452, %.lr.ph593 ], [ %449, %447 ]
  %451 = load ptr, ptr %.0465591, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %451)
  %452 = getelementptr inbounds i8, ptr %.0465591, i64 8
  %.not514 = icmp eq ptr %452, %450
  br i1 %.not514, label %._crit_edge594, label %.lr.ph593

453:                                              ; preds = %._crit_edge594, %441
  %454 = getelementptr inbounds i8, ptr %32, i64 19296
  %455 = load i32, ptr %454, align 8, !tbaa !156
  %456 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.429, ptr noundef nonnull @.str.430, i32 noundef %455)
  br i1 %456, label %457, label %489

457:                                              ; preds = %453
  %458 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %454)
  %459 = call noundef ptr @_ZN8ImVectorI14ImGuiPopupDataE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %454)
  %.not515595 = icmp eq ptr %458, %459
  br i1 %.not515595, label %._crit_edge599, label %.lr.ph598

._crit_edge599:                                   ; preds = %486, %457
  call void @_ZN5ImGui7TreePopEv()
  br label %489

.lr.ph598:                                        ; preds = %457, %486
  %.0466596 = phi ptr [ %488, %486 ], [ %458, %457 ]
  %460 = getelementptr inbounds i8, ptr %.0466596, i64 8
  %461 = load ptr, ptr %460, align 8, !tbaa !157
  %462 = load i32, ptr %.0466596, align 8, !tbaa !159
  %.not535 = icmp eq ptr %461, null
  br i1 %.not535, label %.thread546, label %463

463:                                              ; preds = %.lr.ph598
  %464 = getelementptr inbounds i8, ptr %461, i64 8
  %465 = load ptr, ptr %464, align 8, !tbaa !121
  %466 = getelementptr inbounds i8, ptr %461, i64 20
  %467 = load i32, ptr %466, align 4, !tbaa !160
  %.fr551 = freeze i32 %467
  %468 = and i32 %.fr551, 16777216
  %.not550 = icmp eq i32 %468, 0
  %spec.select = select i1 %.not550, ptr @.str.17, ptr @.str.433
  %469 = and i32 %.fr551, 268435456
  %.not552 = icmp eq i32 %469, 0
  %spec.select548 = select i1 %.not552, ptr @.str.17, ptr @.str.434
  br label %.thread546

.thread546:                                       ; preds = %463, %.lr.ph598
  %470 = phi ptr [ @.str.432, %.lr.ph598 ], [ %465, %463 ]
  %471 = phi ptr [ @.str.17, %.lr.ph598 ], [ %spec.select, %463 ]
  %472 = phi ptr [ @.str.17, %.lr.ph598 ], [ %spec.select548, %463 ]
  %473 = getelementptr inbounds i8, ptr %.0466596, i64 16
  %474 = load ptr, ptr %473, align 8, !tbaa !161
  %.not536 = icmp eq ptr %474, null
  br i1 %.not536, label %478, label %475

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

478:                                              ; preds = %.thread546, %475
  %479 = phi ptr [ %477, %475 ], [ @.str.432, %.thread546 ]
  br i1 %.not535, label %486, label %480

480:                                              ; preds = %478
  %481 = getelementptr inbounds i8, ptr %461, i64 896
  %482 = load ptr, ptr %481, align 8, !tbaa !162
  %.not537 = icmp eq ptr %482, null
  br i1 %.not537, label %486, label %483

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

486:                                              ; preds = %478, %480, %483
  %487 = phi ptr [ %485, %483 ], [ @.str.432, %480 ], [ @.str.432, %478 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.431, i32 noundef %462, ptr noundef %470, ptr noundef nonnull %471, ptr noundef nonnull %472, ptr noundef %479, ptr noundef %487)
  %488 = getelementptr inbounds i8, ptr %.0466596, i64 56
  %.not515 = icmp eq ptr %488, %459
  br i1 %.not515, label %._crit_edge599, label %.lr.ph598

489:                                              ; preds = %._crit_edge599, %453
  %490 = getelementptr inbounds i8, ptr %32, i64 20216
  %491 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %490)
  %492 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.435, ptr noundef nonnull @.str.436, i32 noundef %491)
  br i1 %492, label %.preheader561, label %501

.preheader561:                                    ; preds = %489
  %493 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %490)
  %494 = icmp sgt i32 %493, 0
  br i1 %494, label %.lr.ph601, label %._crit_edge602

._crit_edge602:                                   ; preds = %497, %.preheader561
  call void @_ZN5ImGui7TreePopEv()
  br label %501

.lr.ph601:                                        ; preds = %.preheader561, %497
  %.0468600 = phi i32 [ %498, %497 ], [ 0, %.preheader561 ]
  %495 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %490, i32 noundef %.0468600)
  %.not534 = icmp eq ptr %495, null
  br i1 %.not534, label %497, label %496

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

497:                                              ; preds = %496, %.lr.ph601
  %498 = add nuw nsw i32 %.0468600, 1
  %499 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %490)
  %500 = icmp slt i32 %498, %499
  br i1 %500, label %.lr.ph601, label %._crit_edge602, !llvm.loop !163

501:                                              ; preds = %._crit_edge602, %489
  %502 = getelementptr inbounds i8, ptr %32, i64 20136
  %503 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %502)
  %504 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.438, ptr noundef nonnull @.str.439, i32 noundef %503)
  br i1 %504, label %.preheader560, label %513

.preheader560:                                    ; preds = %501
  %505 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %502)
  %506 = icmp sgt i32 %505, 0
  br i1 %506, label %.lr.ph604, label %._crit_edge605

._crit_edge605:                                   ; preds = %509, %.preheader560
  call void @_ZN5ImGui7TreePopEv()
  br label %513

.lr.ph604:                                        ; preds = %.preheader560, %509
  %.0470603 = phi i32 [ %510, %509 ], [ 0, %.preheader560 ]
  %507 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %502, i32 noundef %.0470603)
  %.not533 = icmp eq ptr %507, null
  br i1 %.not533, label %509, label %508

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

509:                                              ; preds = %508, %.lr.ph604
  %510 = add nuw nsw i32 %.0470603, 1
  %511 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %502)
  %512 = icmp slt i32 %510, %511
  br i1 %512, label %.lr.ph604, label %._crit_edge605, !llvm.loop !164

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

519:                                              ; preds = %513
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef nonnull %515)
  call void @_ZN5ImGui7TreePopEv()
  br label %520

520:                                              ; preds = %519, %513
  %521 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.442)
  br i1 %521, label %522, label %524

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

524:                                              ; preds = %522, %520
  %525 = getelementptr inbounds i8, ptr %32, i64 24608
  %526 = load i8, ptr %525, align 8, !tbaa !45
  %.not516 = icmp ne i8 %526, 0
  %527 = zext i1 %.not516 to i32
  %528 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.443, ptr noundef nonnull @.str.444, i32 noundef %527)
  br i1 %528, label %529, label %531

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

531:                                              ; preds = %529, %524
  %532 = getelementptr inbounds i8, ptr %32, i64 20424
  %533 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %532)
  %534 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.445, ptr noundef nonnull @.str.446, i32 noundef %533)
  br i1 %534, label %535, label %552

535:                                              ; preds = %531
  %536 = getelementptr inbounds i8, ptr %32, i64 20288
  %537 = load i32, ptr %536, align 8, !tbaa !170
  %538 = getelementptr inbounds i8, ptr %32, i64 20293
  %539 = load i8, ptr %538, align 1, !tbaa !171, !range !13, !noundef !14
  %540 = zext nneg i8 %539 to i32
  %541 = getelementptr inbounds i8, ptr %32, i64 20292
  %542 = load i8, ptr %541, align 4, !tbaa !172, !range !13, !noundef !14
  %543 = zext nneg i8 %542 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.447, i32 noundef %537, i32 noundef %540, i32 noundef %543)
  %544 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %532)
  %545 = icmp sgt i32 %544, 0
  br i1 %545, label %.lr.ph608, label %._crit_edge609

._crit_edge609:                                   ; preds = %548, %535
  call void @_ZN5ImGui7TreePopEv()
  br label %552

.lr.ph608:                                        ; preds = %535, %548
  %.0475606 = phi i32 [ %549, %548 ], [ 0, %535 ]
  %546 = call noundef ptr @_ZN6ImPoolI21ImGuiMultiSelectStateE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %532, i32 noundef %.0475606)
  %.not532 = icmp eq ptr %546, null
  br i1 %.not532, label %548, label %547

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

548:                                              ; preds = %547, %.lr.ph608
  %549 = add nuw nsw i32 %.0475606, 1
  %550 = call noundef i32 @_ZNK6ImPoolI21ImGuiMultiSelectStateE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %532)
  %551 = icmp slt i32 %549, %550
  br i1 %551, label %.lr.ph608, label %._crit_edge609, !llvm.loop !173

552:                                              ; preds = %._crit_edge609, %531
  %553 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.448)
  br i1 %553, label %554, label %611

554:                                              ; preds = %552
  %555 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.449)
  br i1 %555, label %556, label %557

556:                                              ; preds = %554
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %557

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

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

561:                                              ; preds = %559, %557
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %562 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.451)
  br i1 %562, label %563, label %566

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

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

569:                                              ; preds = %566
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.452, ptr noundef nonnull %568)
  br label %571

570:                                              ; preds = %566
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef nonnull @.str.166, ptr noundef null)
  br label %571

571:                                              ; preds = %570, %569
  %572 = getelementptr inbounds i8, ptr %32, i64 128
  %573 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.453, ptr noundef nonnull %572)
  %574 = getelementptr inbounds i8, ptr %32, i64 24724
  %575 = load float, ptr %574, align 4, !tbaa !175
  %576 = fpext float %575 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.454, double noundef %576)
  %577 = getelementptr inbounds i8, ptr %32, i64 24744
  %578 = load i32, ptr %577, align 8, !tbaa !176
  %579 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.455, ptr noundef nonnull @.str.456, i32 noundef %578)
  br i1 %579, label %580, label %585

580:                                              ; preds = %571
  %581 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %577)
  %582 = call noundef ptr @_ZN8ImVectorI20ImGuiSettingsHandlerE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %577)
  %.not518610 = icmp eq ptr %581, %582
  br i1 %.not518610, label %._crit_edge614, label %.lr.ph613

._crit_edge614:                                   ; preds = %.lr.ph613, %580
  call void @_ZN5ImGui7TreePopEv()
  br label %585

.lr.ph613:                                        ; preds = %580, %.lr.ph613
  %.0476611 = phi ptr [ %584, %.lr.ph613 ], [ %581, %580 ]
  %583 = load ptr, ptr %.0476611, align 8, !tbaa !177
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.452, ptr noundef %583)
  %584 = getelementptr inbounds i8, ptr %.0476611, i64 72
  %.not518 = icmp eq ptr %584, %582
  br i1 %.not518, label %._crit_edge614, label %.lr.ph613

585:                                              ; preds = %._crit_edge614, %571
  %586 = getelementptr inbounds i8, ptr %32, i64 24760
  %587 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %586)
  %588 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.457, ptr noundef nonnull @.str.458, i32 noundef %587)
  br i1 %588, label %589, label %592

589:                                              ; preds = %585
  %590 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %586)
  %.not519615 = icmp eq ptr %590, null
  br i1 %.not519615, label %._crit_edge619, label %.lr.ph618

._crit_edge619:                                   ; preds = %.lr.ph618, %589
  call void @_ZN5ImGui7TreePopEv()
  br label %592

.lr.ph618:                                        ; preds = %589, %.lr.ph618
  %.0481616 = phi ptr [ %591, %.lr.ph618 ], [ %590, %589 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0481616)
  %591 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %586, ptr noundef nonnull %.0481616)
  %.not519 = icmp eq ptr %591, null
  br i1 %.not519, label %._crit_edge619, label %.lr.ph618, !llvm.loop !179

592:                                              ; preds = %._crit_edge619, %585
  %593 = getelementptr inbounds i8, ptr %32, i64 24776
  %594 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %593)
  %595 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.459, ptr noundef nonnull @.str.460, i32 noundef %594)
  br i1 %595, label %596, label %599

596:                                              ; preds = %592
  %597 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %593)
  %.not520620 = icmp eq ptr %597, null
  br i1 %.not520620, label %._crit_edge624, label %.lr.ph623

._crit_edge624:                                   ; preds = %.lr.ph623, %596
  call void @_ZN5ImGui7TreePopEv()
  br label %599

.lr.ph623:                                        ; preds = %596, %.lr.ph623
  %.0483621 = phi ptr [ %598, %.lr.ph623 ], [ %597, %596 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0483621)
  %598 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %593, ptr noundef nonnull %.0483621)
  %.not520 = icmp eq ptr %598, null
  br i1 %.not520, label %._crit_edge624, label %.lr.ph623, !llvm.loop !180

599:                                              ; preds = %._crit_edge624, %592
  %600 = getelementptr inbounds i8, ptr %32, i64 24728
  %601 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %600)
  %602 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.461, ptr noundef nonnull @.str.462, i32 noundef %601)
  br i1 %602, label %603, label %610

603:                                              ; preds = %599
  %604 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %600)
  %605 = load i32, ptr %600, align 8, !tbaa !181
  %606 = sext i32 %605 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  %607 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %608 = fmul float %607, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0xB810000000000000, float noundef %608)
  %609 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.463, ptr noundef %604, i64 noundef %606, 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 %610

610:                                              ; preds = %603, %599
  call void @_ZN5ImGui7TreePopEv()
  br label %611

611:                                              ; preds = %610, %552
  %612 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.464)
  br i1 %612, label %613, label %706

613:                                              ; preds = %611
  %614 = load i32, ptr %68, align 4, !tbaa !182
  %615 = load i32, ptr %70, align 4, !tbaa !183
  %616 = sub nsw i32 %614, %615
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.465, i32 noundef %616)
  %617 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.466)
  br i1 %617, label %618, label %620

618:                                              ; preds = %613
  %619 = getelementptr inbounds i8, ptr %32, i64 16335
  store i8 1, ptr %619, align 1, !tbaa !184
  br label %620

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

706:                                              ; preds = %620, %611
  %707 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.470)
  br i1 %707, label %708, label %955

708:                                              ; preds = %706
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.471)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.472)
  br label %710

709:                                              ; preds = %722
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.475)
  br label %725

710:                                              ; preds = %708, %722
  %.0480626 = phi i32 [ 0, %708 ], [ %723, %722 ]
  %711 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0480626)
  br i1 %711, label %722, label %712

712:                                              ; preds = %710
  %713 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %.0480626)
  br i1 %713, label %714, label %722

714:                                              ; preds = %712
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %715 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0480626)
  %716 = select i1 %715, ptr @.str.452, ptr @.str.473
  %717 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0480626)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %716, ptr noundef %717, i32 noundef %.0480626)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %718 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %.0480626)
  %719 = getelementptr inbounds i8, ptr %718, i64 4
  %720 = load float, ptr %719, align 4, !tbaa !190
  %721 = fpext float %720 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.474, double noundef %721)
  br label %722

722:                                              ; preds = %710, %712, %714
  %723 = add nuw nsw i32 %.0480626, 1
  %exitcond658.not = icmp eq i32 %723, 666
  br i1 %exitcond658.not, label %709, label %710, !llvm.loop !192

724:                                              ; preds = %733
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.476)
  br label %755

725:                                              ; preds = %709, %733
  %.0479627 = phi i32 [ 0, %709 ], [ %734, %733 ]
  %726 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0479627)
  br i1 %726, label %733, label %727

727:                                              ; preds = %725
  %728 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %.0479627, i1 noundef zeroext true)
  br i1 %728, label %729, label %733

729:                                              ; preds = %727
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %730 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0479627)
  %731 = select i1 %730, ptr @.str.452, ptr @.str.473
  %732 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0479627)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %731, ptr noundef %732, i32 noundef %.0479627)
  br label %733

733:                                              ; preds = %725, %727, %729
  %734 = add nuw nsw i32 %.0479627, 1
  %exitcond659.not = icmp eq i32 %734, 666
  br i1 %exitcond659.not, label %724, label %725, !llvm.loop !193

735:                                              ; preds = %763
  %736 = getelementptr inbounds i8, ptr %32, i64 300
  %737 = load i8, ptr %736, align 4, !tbaa !194, !range !13, !noundef !14
  %738 = trunc nuw i8 %737 to i1
  %739 = select i1 %738, ptr @.str.478, ptr @.str.17
  %740 = getelementptr inbounds i8, ptr %32, i64 301
  %741 = load i8, ptr %740, align 1, !tbaa !195, !range !13, !noundef !14
  %742 = trunc nuw i8 %741 to i1
  %743 = select i1 %742, ptr @.str.479, ptr @.str.17
  %744 = getelementptr inbounds i8, ptr %32, i64 302
  %745 = load i8, ptr %744, align 2, !tbaa !196, !range !13, !noundef !14
  %746 = trunc nuw i8 %745 to i1
  %747 = select i1 %746, ptr @.str.480, ptr @.str.17
  %748 = getelementptr inbounds i8, ptr %32, i64 303
  %749 = load i8, ptr %748, align 1, !tbaa !197, !range !13, !noundef !14
  %750 = trunc nuw i8 %749 to i1
  %751 = select i1 %750, ptr @.str.481, ptr @.str.17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.477, ptr noundef nonnull %739, ptr noundef nonnull %743, ptr noundef nonnull %747, ptr noundef nonnull %751)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.482)
  %752 = getelementptr inbounds i8, ptr %32, i64 11176
  %753 = load i32, ptr %752, align 8, !tbaa !198
  %754 = icmp sgt i32 %753, 0
  br i1 %754, label %.lr.ph631, label %._crit_edge632

755:                                              ; preds = %724, %763
  %.0478628 = phi i32 [ 0, %724 ], [ %764, %763 ]
  %756 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0478628)
  br i1 %756, label %763, label %757

757:                                              ; preds = %755
  %758 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %.0478628)
  br i1 %758, label %759, label %763

759:                                              ; preds = %757
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %760 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0478628)
  %761 = select i1 %760, ptr @.str.452, ptr @.str.473
  %762 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0478628)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %761, ptr noundef %762, i32 noundef %.0478628)
  br label %763

763:                                              ; preds = %755, %757, %759
  %764 = add nuw nsw i32 %.0478628, 1
  %exitcond660.not = icmp eq i32 %764, 666
  br i1 %exitcond660.not, label %735, label %755, !llvm.loop !199

._crit_edge632:                                   ; preds = %.lr.ph631, %735
  %765 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %765)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.484)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %766 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %766, label %776, label %783

.lr.ph631:                                        ; preds = %735, %.lr.ph631
  %.0477629 = phi i32 [ %773, %.lr.ph631 ], [ 0, %735 ]
  %767 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %752, i32 noundef %.0477629)
  %768 = load i16, ptr %767, align 2, !tbaa !200
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %769 = zext i16 %768 to i32
  %770 = add i16 %768, -33
  %or.cond4 = icmp ult i16 %770, 223
  %sext = shl i32 %769, 24
  %771 = ashr exact i32 %sext, 24
  %772 = select i1 %or.cond4, i32 %771, i32 63
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.483, i32 noundef %772, i32 noundef %769)
  %773 = add nuw nsw i32 %.0477629, 1
  %774 = load i32, ptr %752, align 8, !tbaa !198
  %775 = icmp slt i32 %773, %774
  br i1 %775, label %.lr.ph631, label %._crit_edge632, !llvm.loop !201

776:                                              ; preds = %._crit_edge632
  %777 = getelementptr inbounds i8, ptr %32, i64 272
  %778 = load float, ptr %777, align 8, !tbaa !202
  %779 = fpext float %778 to double
  %780 = getelementptr inbounds i8, ptr %32, i64 276
  %781 = load float, ptr %780, align 4, !tbaa !203
  %782 = fpext float %781 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.485, double noundef %779, double noundef %782)
  br label %784

783:                                              ; preds = %._crit_edge632
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.486)
  br label %784

784:                                              ; preds = %783, %776
  %785 = getelementptr inbounds i8, ptr %32, i64 256
  %786 = load float, ptr %785, align 8, !tbaa !204
  %787 = fpext float %786 to double
  %788 = getelementptr inbounds i8, ptr %32, i64 260
  %789 = load float, ptr %788, align 4, !tbaa !205
  %790 = fpext float %789 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.487, double noundef %787, double noundef %790)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.488)
  %791 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 0)
  br i1 %791, label %792, label %796

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

796:                                              ; preds = %784, %792
  %797 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 1)
  br i1 %797, label %798, label %802

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

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

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

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

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

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

816:                                              ; preds = %814
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %817 = getelementptr inbounds i8, ptr %32, i64 11120
  %818 = load float, ptr %817, align 4, !tbaa !206
  %819 = fpext float %818 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.489, i32 noundef 4, double noundef %819)
  br label %820

820:                                              ; preds = %816, %814
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.490)
  %821 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
  br i1 %821, label %822, label %826

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

826:                                              ; preds = %820, %822
  %827 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 1, i1 noundef zeroext false)
  br i1 %827, label %828, label %832

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

832:                                              ; preds = %828, %826
  %833 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 2, i1 noundef zeroext false)
  br i1 %833, label %834, label %838

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

838:                                              ; preds = %834, %832
  %839 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 3, i1 noundef zeroext false)
  br i1 %839, label %840, label %844

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

844:                                              ; preds = %840, %838
  %845 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 4, i1 noundef zeroext false)
  br i1 %845, label %846, label %850

846:                                              ; preds = %844
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %847 = getelementptr inbounds i8, ptr %32, i64 11074
  %848 = load i16, ptr %847, align 2, !tbaa !200
  %849 = zext i16 %848 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.491, i32 noundef 4, i32 noundef %849)
  br label %850

850:                                              ; preds = %846, %844
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.492)
  %851 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 0)
  br i1 %851, label %852, label %853

852:                                              ; preds = %850
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.493, i32 noundef 0)
  br label %853

853:                                              ; preds = %850, %852
  %854 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 1)
  br i1 %854, label %855, label %856

855:                                              ; preds = %853
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.493, i32 noundef 1)
  br label %856

856:                                              ; preds = %855, %853
  %857 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 2)
  br i1 %857, label %858, label %859

858:                                              ; preds = %856
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.493, i32 noundef 2)
  br label %859

859:                                              ; preds = %858, %856
  %860 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 3)
  br i1 %860, label %861, label %862

861:                                              ; preds = %859
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.493, i32 noundef 3)
  br label %862

862:                                              ; preds = %861, %859
  %863 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 4)
  br i1 %863, label %864, label %865

864:                                              ; preds = %862
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.493, i32 noundef 4)
  br label %865

865:                                              ; preds = %864, %862
  %866 = getelementptr inbounds i8, ptr %32, i64 288
  %867 = load float, ptr %866, align 8, !tbaa !207
  %868 = fpext float %867 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.494, double noundef %868)
  %869 = getelementptr inbounds i8, ptr %32, i64 20492
  %870 = load float, ptr %869, align 4, !tbaa !208
  %871 = fpext float %870 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.495, double noundef %871)
  %872 = getelementptr inbounds i8, ptr %32, i64 296
  %873 = load i32, ptr %872, align 8, !tbaa !209
  %874 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %873)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.496, ptr noundef %874)
  %875 = getelementptr inbounds i8, ptr %32, i64 11164
  %876 = load float, ptr %875, align 4, !tbaa !210
  %877 = fpext float %876 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.497, double noundef %877)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.498)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %878 = getelementptr inbounds i8, ptr %32, i64 16544
  %879 = load ptr, ptr %878, align 8, !tbaa !211
  %.not521 = icmp eq ptr %879, null
  br i1 %.not521, label %883, label %880

880:                                              ; preds = %865
  %881 = getelementptr inbounds i8, ptr %879, i64 8
  %882 = load ptr, ptr %881, align 8, !tbaa !121
  br label %883

883:                                              ; preds = %865, %880
  %884 = phi ptr [ %882, %880 ], [ @.str.432, %865 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.499, ptr noundef %884)
  %885 = getelementptr inbounds i8, ptr %32, i64 16568
  %886 = load float, ptr %885, align 8, !tbaa !212
  %887 = fpext float %886 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.500, double noundef %887)
  %888 = getelementptr inbounds i8, ptr %32, i64 16580
  %889 = load float, ptr %888, align 4, !tbaa !213
  %890 = fpext float %889 to double
  %891 = getelementptr inbounds i8, ptr %32, i64 16584
  %892 = load float, ptr %891, align 4, !tbaa !214
  %893 = fpext float %892 to double
  %894 = fcmp ogt float %889, %892
  %895 = fcmp olt float %889, %892
  %896 = select i1 %895, ptr @.str.502, ptr @.str.503
  %897 = select i1 %894, ptr @.str.349, ptr %896
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.501, double noundef %890, double noundef %893, ptr noundef nonnull %897)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.504)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  %898 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %899 = fmul float %898, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 0xB810000000000000, float noundef %899)
  %900 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef nonnull @.str.505, 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 %900, label %.preheader558, label %.loopexit559

.preheader558:                                    ; preds = %883, %918
  %.0471636 = phi i32 [ %919, %918 ], [ 512, %883 ]
  %901 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %32, i32 noundef %.0471636)
  %902 = load i32, ptr %901, align 4, !tbaa !215
  %903 = icmp eq i32 %902, -1
  br i1 %903, label %918, label %904

904:                                              ; preds = %.preheader558
  %905 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0471636)
  %906 = load i32, ptr %901, align 4, !tbaa !215
  %907 = getelementptr inbounds i8, ptr %901, i64 9
  %908 = load i8, ptr %907, align 1, !tbaa !217, !range !13, !noundef !14
  %909 = trunc nuw i8 %908 to i1
  br i1 %909, label %915, label %910

910:                                              ; preds = %904
  %911 = getelementptr inbounds i8, ptr %901, i64 8
  %912 = load i8, ptr %911, align 4, !tbaa !218, !range !13, !noundef !14
  %913 = trunc nuw i8 %912 to i1
  %914 = select i1 %913, ptr @.str.508, ptr @.str.17
  br label %915

915:                                              ; preds = %904, %910
  %916 = phi ptr [ %914, %910 ], [ @.str.507, %904 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.506, ptr noundef %905, i32 noundef %906, ptr noundef nonnull %916)
  %917 = load i32, ptr %901, align 4, !tbaa !215
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %917)
  br label %918

918:                                              ; preds = %.preheader558, %915
  %919 = add nuw nsw i32 %.0471636, 1
  %exitcond670.not = icmp eq i32 %919, 666
  br i1 %exitcond670.not, label %.loopexit559, label %.preheader558, !llvm.loop !219

.loopexit559:                                     ; preds = %918, %883
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.509)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.510)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #9
  %920 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %921 = fmul float %920, 8.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef 0xB810000000000000, float noundef %921)
  %922 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2ii(ptr noundef nonnull @.str.511, 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 %922, label %.preheader556, label %.loopexit557

.preheader556:                                    ; preds = %.loopexit559
  %923 = getelementptr inbounds i8, ptr %32, i64 18576
  %924 = getelementptr inbounds i8, ptr %32, i64 18888
  %925 = getelementptr inbounds i8, ptr %32, i64 124
  %926 = getelementptr inbounds i8, ptr %32, i64 18928
  br label %927

927:                                              ; preds = %.preheader556, %._crit_edge642
  %indvars.iv671 = phi i64 [ 512, %.preheader556 ], [ %indvars.iv.next672, %._crit_edge642 ]
  %928 = add nsw i64 %indvars.iv671, -512
  %929 = getelementptr inbounds [154 x i16], ptr %923, i64 0, i64 %928
  %.0467637 = load i16, ptr %929, align 2, !tbaa !200
  %.not531638 = icmp eq i16 %.0467637, -1
  br i1 %.not531638, label %._crit_edge642, label %.lr.ph641.preheader

.lr.ph641.preheader:                              ; preds = %927
  %930 = trunc nuw nsw i64 %indvars.iv671 to i32
  br label %.lr.ph641

._crit_edge642:                                   ; preds = %949, %927
  %indvars.iv.next672 = add nuw nsw i64 %indvars.iv671, 1
  %exitcond674.not = icmp eq i64 %indvars.iv.next672, 666
  br i1 %exitcond674.not, label %.loopexit557, label %927, !llvm.loop !220

.lr.ph641:                                        ; preds = %.lr.ph641.preheader, %949
  %.0467639 = phi i16 [ %.0467, %949 ], [ %.0467637, %.lr.ph641.preheader ]
  %931 = sext i16 %.0467639 to i32
  %932 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %924, i32 noundef %931)
  %933 = getelementptr inbounds i8, ptr %932, i64 2
  %934 = load i16, ptr %933, align 2, !tbaa !221
  %935 = zext i16 %934 to i32
  %936 = or i32 %930, %935
  %937 = call noundef ptr @_ZN5ImGui15GetKeyChordNameEi(i32 noundef %936)
  %938 = getelementptr inbounds i8, ptr %932, i64 8
  %939 = load i32, ptr %938, align 4, !tbaa !223
  %940 = getelementptr inbounds i8, ptr %932, i64 4
  %941 = load i8, ptr %940, align 4, !tbaa !224
  %942 = zext i8 %941 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.512, ptr noundef %937, i32 noundef %939, i32 noundef %942)
  %943 = load i32, ptr %938, align 4, !tbaa !223
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %943)
  %944 = load i8, ptr %925, align 4, !tbaa !225, !range !13, !noundef !14
  %945 = trunc nuw i8 %944 to i1
  br i1 %945, label %946, label %949

946:                                              ; preds = %.lr.ph641
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %947 = call noundef zeroext i1 @_ZN5ImGui16DebugBreakButtonEPKcS1_(ptr noundef nonnull @.str.513, ptr noundef nonnull @.str.514)
  br i1 %947, label %948, label %949

948:                                              ; preds = %946
  store i32 %936, ptr %926, align 8, !tbaa !226
  br label %949

949:                                              ; preds = %946, %948, %.lr.ph641
  %.0467 = load i16, ptr %932, align 4, !tbaa !200
  %.not531 = icmp eq i16 %.0467, -1
  br i1 %.not531, label %._crit_edge642, label %.lr.ph641, !llvm.loop !227

.loopexit557:                                     ; preds = %._crit_edge642, %.loopexit559
  call void @_ZN5ImGui8EndChildEv()
  %950 = getelementptr inbounds i8, ptr %32, i64 18924
  %951 = load i8, ptr %950, align 4, !tbaa !228, !range !13, !noundef !14
  %952 = zext nneg i8 %951 to i32
  %953 = getelementptr inbounds i8, ptr %32, i64 18920
  %954 = load i32, ptr %953, align 8, !tbaa !229
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.515, i32 noundef %952, i32 noundef %954)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %955

955:                                              ; preds = %.loopexit557, %706
  %956 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.516)
  br i1 %956, label %957, label %1095

957:                                              ; preds = %955
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.517)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %958 = getelementptr inbounds i8, ptr %32, i64 16512
  %959 = load ptr, ptr %958, align 8, !tbaa !230
  %.not522 = icmp eq ptr %959, null
  br i1 %.not522, label %963, label %960

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

963:                                              ; preds = %957, %960
  %964 = phi ptr [ %962, %960 ], [ @.str.432, %957 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.518, ptr noundef %964)
  %965 = load ptr, ptr %958, align 8, !tbaa !230
  %.not523 = icmp eq ptr %965, null
  br i1 %.not523, label %971, label %966

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

971:                                              ; preds = %963, %966
  %972 = phi ptr [ %970, %966 ], [ @.str.432, %963 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.519, ptr noundef %972)
  %973 = getelementptr inbounds i8, ptr %32, i64 16520
  %974 = load ptr, ptr %973, align 8, !tbaa !232
  %.not524 = icmp eq ptr %974, null
  br i1 %.not524, 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.432, %971 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.520, ptr noundef %979)
  %980 = getelementptr inbounds i8, ptr %32, i64 16536
  %981 = load ptr, ptr %980, align 8, !tbaa !233
  %.not525 = icmp eq ptr %981, null
  br i1 %.not525, label %985, label %982

982:                                              ; preds = %978
  %983 = getelementptr inbounds i8, ptr %981, i64 8
  %984 = load ptr, ptr %983, align 8, !tbaa !121
  br label %985

985:                                              ; preds = %978, %982
  %986 = phi ptr [ %984, %982 ], [ @.str.432, %978 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.521, ptr noundef %986)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.522)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %987 = getelementptr inbounds i8, ptr %32, i64 16612
  %988 = load i32, ptr %987, align 4, !tbaa !234
  %989 = getelementptr inbounds i8, ptr %32, i64 16652
  %990 = load i32, ptr %989, align 4, !tbaa !235
  %991 = getelementptr inbounds i8, ptr %32, i64 16620
  %992 = load float, ptr %991, align 4, !tbaa !236
  %993 = fpext float %992 to double
  %994 = getelementptr inbounds i8, ptr %32, i64 16625
  %995 = load i8, ptr %994, align 1, !tbaa !237, !range !13, !noundef !14
  %996 = zext nneg i8 %995 to i32
  %997 = getelementptr inbounds i8, ptr %32, i64 16648
  %998 = load i32, ptr %997, align 8, !tbaa !238
  %999 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %998)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.523, i32 noundef %988, i32 noundef %990, double noundef %993, i32 noundef %996, ptr noundef %999)
  %1000 = load i32, ptr %987, align 4, !tbaa !234
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1000)
  %1001 = getelementptr inbounds i8, ptr %32, i64 16640
  %1002 = load ptr, ptr %1001, align 8, !tbaa !239
  %.not526 = icmp eq ptr %1002, null
  br i1 %.not526, label %1006, label %1003

1003:                                             ; preds = %985
  %1004 = getelementptr inbounds i8, ptr %1002, i64 8
  %1005 = load ptr, ptr %1004, align 8, !tbaa !121
  br label %1006

1006:                                             ; preds = %985, %1003
  %1007 = phi ptr [ %1005, %1003 ], [ @.str.432, %985 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.524, ptr noundef %1007)
  %1008 = getelementptr inbounds i8, ptr %32, i64 18924
  %1009 = load i8, ptr %1008, align 4, !tbaa !228, !range !13, !noundef !14
  %1010 = zext nneg i8 %1009 to i32
  %1011 = getelementptr inbounds i8, ptr %32, i64 18920
  %1012 = load i32, ptr %1011, align 8, !tbaa !229
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.525, i32 noundef %1010, i32 noundef %1012)
  %1013 = getelementptr inbounds i8, ptr %32, i64 16596
  %1014 = load i32, ptr %1013, align 4, !tbaa !240
  %1015 = getelementptr inbounds i8, ptr %32, i64 16600
  %1016 = load float, ptr %1015, align 8, !tbaa !241
  %1017 = fpext float %1016 to double
  %1018 = getelementptr inbounds i8, ptr %32, i64 16608
  %1019 = load i8, ptr %1018, align 8, !tbaa !242, !range !13, !noundef !14
  %1020 = zext nneg i8 %1019 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.526, i32 noundef %1014, double noundef %1017, i32 noundef %1020)
  %1021 = getelementptr inbounds i8, ptr %32, i64 20464
  %1022 = load i32, ptr %1021, align 8, !tbaa !243
  %1023 = getelementptr inbounds i8, ptr %32, i64 20472
  %1024 = load float, ptr %1023, align 8, !tbaa !244
  %1025 = fpext float %1024 to double
  %1026 = getelementptr inbounds i8, ptr %32, i64 20476
  %1027 = load float, ptr %1026, align 4, !tbaa !245
  %1028 = fpext float %1027 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.527, i32 noundef %1022, double noundef %1025, double noundef %1028)
  %1029 = getelementptr inbounds i8, ptr %32, i64 19900
  %1030 = load i8, ptr %1029, align 4, !tbaa !246, !range !13, !noundef !14
  %1031 = zext nneg i8 %1030 to i32
  %1032 = getelementptr inbounds i8, ptr %32, i64 19932
  %1033 = load i32, ptr %1032, align 4, !tbaa !247
  %1034 = getelementptr inbounds i8, ptr %32, i64 19944
  %1035 = getelementptr inbounds i8, ptr %32, i64 19928
  %1036 = load i32, ptr %1035, align 8, !tbaa !248
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.528, i32 noundef %1031, i32 noundef %1033, ptr noundef nonnull %1034, i32 noundef %1036)
  %1037 = load i32, ptr %1032, align 4, !tbaa !247
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1037)
  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)
  %1038 = getelementptr inbounds i8, ptr %32, i64 19360
  %1039 = load ptr, ptr %1038, align 8, !tbaa !120
  %.not527 = icmp eq ptr %1039, null
  br i1 %.not527, label %1043, label %1040

1040:                                             ; preds = %1006
  %1041 = getelementptr inbounds i8, ptr %1039, i64 8
  %1042 = load ptr, ptr %1041, align 8, !tbaa !121
  br label %1043

1043:                                             ; preds = %1006, %1040
  %1044 = phi ptr [ %1042, %1040 ], [ @.str.432, %1006 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.530, ptr noundef %1044)
  %1045 = getelementptr inbounds i8, ptr %32, i64 19368
  %1046 = load i32, ptr %1045, align 8, !tbaa !249
  %1047 = getelementptr inbounds i8, ptr %32, i64 19376
  %1048 = load i32, ptr %1047, align 8, !tbaa !250
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.531, i32 noundef %1046, i32 noundef %1048)
  %1049 = load i32, ptr %1045, align 8, !tbaa !249
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1049)
  %1050 = getelementptr inbounds i8, ptr %32, i64 19432
  %1051 = load i32, ptr %1050, align 8, !tbaa !251
  %1052 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1051)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.532, ptr noundef %1052)
  %1053 = getelementptr inbounds i8, ptr %32, i64 19440
  %1054 = load i64, ptr %1053, align 8, !tbaa !252
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.533, i64 noundef %1054, i64 noundef %1054)
  %1055 = getelementptr inbounds i8, ptr %32, i64 231
  %1056 = load i8, ptr %1055, align 1, !tbaa !253, !range !13, !noundef !14
  %1057 = zext nneg i8 %1056 to i32
  %1058 = getelementptr inbounds i8, ptr %32, i64 232
  %1059 = load i8, ptr %1058, align 8, !tbaa !254, !range !13, !noundef !14
  %1060 = zext nneg i8 %1059 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.534, i32 noundef %1057, i32 noundef %1060)
  %1061 = getelementptr inbounds i8, ptr %32, i64 19380
  %1062 = load i32, ptr %1061, align 4, !tbaa !255
  %1063 = getelementptr inbounds i8, ptr %32, i64 19384
  %1064 = load i32, ptr %1063, align 8, !tbaa !256
  %1065 = getelementptr inbounds i8, ptr %32, i64 19388
  %1066 = load i32, ptr %1065, align 4, !tbaa !257
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.535, i32 noundef %1062, i32 noundef %1064, i32 noundef %1066)
  %1067 = getelementptr inbounds i8, ptr %32, i64 19392
  %1068 = load i32, ptr %1067, align 8, !tbaa !258
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.536, i32 noundef %1068)
  %1069 = getelementptr inbounds i8, ptr %32, i64 19450
  %1070 = load i8, ptr %1069, align 2, !tbaa !259, !range !13, !noundef !14
  %1071 = zext nneg i8 %1070 to i32
  %1072 = getelementptr inbounds i8, ptr %32, i64 19451
  %1073 = load i8, ptr %1072, align 1, !tbaa !260, !range !13, !noundef !14
  %1074 = zext nneg i8 %1073 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.537, i32 noundef %1071, i32 noundef %1074)
  %1075 = getelementptr inbounds i8, ptr %32, i64 19372
  %1076 = load i32, ptr %1075, align 4, !tbaa !261
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.538, i32 noundef %1076)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.539)
  %1077 = getelementptr inbounds i8, ptr %32, i64 19400
  %1078 = load i32, ptr %1077, align 8, !tbaa !262
  %1079 = icmp sgt i32 %1078, 0
  br i1 %1079, label %.lr.ph646, label %._crit_edge647

._crit_edge647:                                   ; preds = %.lr.ph646, %1043
  %1080 = getelementptr inbounds i8, ptr %32, i64 19840
  %1081 = load ptr, ptr %1080, align 8, !tbaa !263
  %.not528 = icmp eq ptr %1081, null
  br i1 %.not528, label %1093, label %1090

.lr.ph646:                                        ; preds = %1043, %.lr.ph646
  %.0464.in644 = phi i32 [ %.0464, %.lr.ph646 ], [ %1078, %1043 ]
  %.0464 = add nsw i32 %.0464.in644, -1
  %1082 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZN8ImVectorI19ImGuiFocusScopeDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1077, i32 noundef %.0464)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef 0.000000e+00)
  %1083 = load i32, ptr %1082, align 4, !tbaa !264
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.540, i32 noundef %1083)
  %1084 = getelementptr inbounds i8, ptr %1082, i64 4
  %1085 = load i32, ptr %1084, align 4, !tbaa !266
  %1086 = call noundef ptr @_ZN5ImGui14FindWindowByIDEj(i32 noundef %1085)
  %1087 = getelementptr inbounds i8, ptr %1086, i64 8
  %1088 = load ptr, ptr %1087, align 8, !tbaa !121
  call void (ptr, ...) @_ZN5ImGui14SetItemTooltipEPKcz(ptr noundef nonnull @.str.541, ptr noundef %1088)
  %1089 = icmp ugt i32 %.0464.in644, 1
  br i1 %1089, label %.lr.ph646, label %._crit_edge647, !llvm.loop !267

1090:                                             ; preds = %._crit_edge647
  %1091 = getelementptr inbounds i8, ptr %1081, i64 8
  %1092 = load ptr, ptr %1091, align 8, !tbaa !121
  br label %1093

1093:                                             ; preds = %._crit_edge647, %1090
  %1094 = phi ptr [ %1092, %1090 ], [ @.str.432, %._crit_edge647 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.542, ptr noundef %1094)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1095

1095:                                             ; preds = %1093, %955
  %1096 = getelementptr inbounds i8, ptr %32, i64 25042
  %1097 = load i8, ptr %1096, align 2, !tbaa !119, !range !13, !noundef !14
  %1098 = trunc nuw i8 %1097 to i1
  br i1 %1098, label %1103, label %1099

1099:                                             ; preds = %1095
  %1100 = getelementptr inbounds i8, ptr %32, i64 25043
  %1101 = load i8, ptr %1100, align 1, !tbaa !268, !range !13, !noundef !14
  %1102 = trunc nuw i8 %1101 to i1
  br i1 %1102, label %1103, label %.loopexit555

1103:                                             ; preds = %1099, %1095
  %1104 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %390)
  %1105 = call noundef ptr @_ZN8ImVectorIP11ImGuiWindowE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %390)
  %.not529648 = icmp eq ptr %1104, %1105
  br i1 %.not529648, label %.loopexit555, label %.lr.ph651

.lr.ph651:                                        ; preds = %1103
  %1106 = getelementptr inbounds i8, ptr %26, i64 8
  %1107 = getelementptr inbounds i8, ptr %32, i64 25043
  br label %1108

1108:                                             ; preds = %.lr.ph651, %1137
  %.0461649 = phi ptr [ %1104, %.lr.ph651 ], [ %1138, %1137 ]
  %1109 = load ptr, ptr %.0461649, align 8, !tbaa !5
  %1110 = getelementptr inbounds i8, ptr %1109, i64 203
  %1111 = load i8, ptr %1110, align 1, !tbaa !269, !range !13, !noundef !14
  %1112 = trunc nuw i8 %1111 to i1
  br i1 %1112, label %1113, label %1137

1113:                                             ; preds = %1108
  %1114 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %1109)
  %1115 = load i8, ptr %1096, align 2, !tbaa !119, !range !13, !noundef !14
  %1116 = trunc nuw i8 %1115 to i1
  br i1 %1116, label %1117, label %1122

1117:                                             ; preds = %1113
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #9
  %1118 = load i32, ptr %73, align 4, !tbaa !115
  %1119 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef nonnull %1109, i32 noundef %1118)
  %1120 = extractvalue { <2 x float>, <2 x float> } %1119, 0
  store <2 x float> %1120, ptr %26, align 8
  %1121 = extractvalue { <2 x float>, <2 x float> } %1119, 1
  store <2 x float> %1121, ptr %1106, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(200) %1114, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %1106, 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 %1122

1122:                                             ; preds = %1117, %1113
  %1123 = load i8, ptr %1107, align 1, !tbaa !268, !range !13, !noundef !14
  %1124 = trunc nuw i8 %1123 to i1
  br i1 %1124, label %1125, label %1137

1125:                                             ; preds = %1122
  %1126 = getelementptr inbounds i8, ptr %1109, i64 20
  %1127 = load i32, ptr %1126, align 4, !tbaa !160
  %1128 = and i32 %1127, 16777216
  %.not530 = icmp eq i32 %1128, 0
  br i1 %.not530, label %1129, label %1137

1129:                                             ; preds = %1125
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  %1130 = getelementptr inbounds i8, ptr %1109, i64 222
  %1131 = load i16, ptr %1130, align 2, !tbaa !270
  %1132 = sext i16 %1131 to i32
  %1133 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %27, i64 noundef 32, ptr noundef nonnull @.str.358, i32 noundef %1132)
  %1134 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %1135 = getelementptr inbounds i8, ptr %1109, 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 %1134, float noundef %1134)
  %1136 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1135, ptr noundef nonnull align 4 dereferenceable(8) %29)
  store <2 x float> %1136, ptr %28, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(200) %1114, ptr noundef nonnull align 4 dereferenceable(8) %1135, 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(200) %1114, ptr noundef nonnull align 4 dereferenceable(8) %1135, i32 noundef -1, ptr noundef nonnull %27, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  br label %1137

1137:                                             ; preds = %1122, %1125, %1129, %1108
  %1138 = getelementptr inbounds i8, ptr %.0461649, i64 8
  %.not529 = icmp eq ptr %1138, %1105
  br i1 %.not529, label %.loopexit555, label %1108

.loopexit555:                                     ; preds = %1137, %1103, %1099
  %1139 = getelementptr inbounds i8, ptr %32, i64 25044
  %1140 = load i8, ptr %1139, align 4, !tbaa !122, !range !13, !noundef !14
  %1141 = trunc nuw i8 %1140 to i1
  br i1 %1141, label %.preheader553, label %.loopexit554

.preheader553:                                    ; preds = %.loopexit555
  %1142 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %502)
  %1143 = icmp sgt i32 %1142, 0
  br i1 %1143, label %.lr.ph655, label %.loopexit554

.lr.ph655:                                        ; preds = %.preheader553
  %1144 = getelementptr inbounds i8, ptr %32, i64 16320
  %1145 = getelementptr inbounds i8, ptr %31, i64 8
  %1146 = getelementptr inbounds i8, ptr %30, i64 8
  br label %1147

1147:                                             ; preds = %.lr.ph655, %.loopexit
  %.0456654 = phi i32 [ 0, %.lr.ph655 ], [ %1183, %.loopexit ]
  %1148 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %502, i32 noundef %.0456654)
  %1149 = icmp eq ptr %1148, null
  br i1 %1149, label %.loopexit, label %1150

1150:                                             ; preds = %1147
  %1151 = getelementptr inbounds i8, ptr %1148, i64 104
  %1152 = load i32, ptr %1151, align 8, !tbaa !123
  %1153 = load i32, ptr %1144, align 8, !tbaa !134
  %1154 = add nsw i32 %1153, -1
  %1155 = icmp slt i32 %1152, %1154
  br i1 %1155, label %.loopexit, label %1156

1156:                                             ; preds = %1150
  %1157 = getelementptr inbounds i8, ptr %1148, i64 384
  %1158 = load ptr, ptr %1157, align 8, !tbaa !135
  %1159 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1158)
  %1160 = load i32, ptr %78, align 4, !tbaa !116
  %1161 = icmp sgt i32 %1160, 5
  br i1 %1161, label %.preheader, label %1179

.preheader:                                       ; preds = %1156
  %1162 = getelementptr inbounds i8, ptr %1148, i64 108
  %1163 = load i32, ptr %1162, align 4, !tbaa !138
  %1164 = icmp sgt i32 %1163, 0
  br i1 %1164, label %.lr.ph653, label %.loopexit

.lr.ph653:                                        ; preds = %.preheader
  %1165 = getelementptr inbounds i8, ptr %1148, i64 522
  br label %1166

1166:                                             ; preds = %.lr.ph653, %1166
  %.0453652 = phi i32 [ 0, %.lr.ph653 ], [ %1176, %1166 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #9
  %1167 = load i32, ptr %78, align 4, !tbaa !116
  %1168 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1148, i32 noundef %1167, i32 noundef %.0453652)
  %1169 = extractvalue { <2 x float>, <2 x float> } %1168, 0
  store <2 x float> %1169, ptr %30, align 8
  %1170 = extractvalue { <2 x float>, <2 x float> } %1168, 1
  store <2 x float> %1170, ptr %1146, align 8
  %1171 = load i16, ptr %1165, align 2, !tbaa !271
  %1172 = sext i16 %1171 to i32
  %1173 = icmp eq i32 %.0453652, %1172
  %1174 = select i1 %1173, i32 -8323073, i32 -8388353
  %1175 = select i1 %1173, float 3.000000e+00, float 1.000000e+00
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(200) %1159, ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %1146, i32 noundef %1174, float noundef 0.000000e+00, i32 noundef 0, float noundef %1175)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #9
  %1176 = add nuw nsw i32 %.0453652, 1
  %1177 = load i32, ptr %1162, align 4, !tbaa !138
  %1178 = icmp slt i32 %1176, %1177
  br i1 %1178, label %1166, label %.loopexit, !llvm.loop !272

1179:                                             ; preds = %1156
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #9
  %1180 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1148, i32 noundef %1160, i32 noundef -1)
  %1181 = extractvalue { <2 x float>, <2 x float> } %1180, 0
  store <2 x float> %1181, ptr %31, align 8
  %1182 = extractvalue { <2 x float>, <2 x float> } %1180, 1
  store <2 x float> %1182, ptr %1145, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(200) %1159, ptr noundef nonnull align 4 dereferenceable(8) %31, ptr noundef nonnull align 4 dereferenceable(8) %1145, 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 = %1166, %.preheader, %1179, %1147, %1150
  %1183 = add nuw nsw i32 %.0456654, 1
  %1184 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %502)
  %1185 = icmp slt i32 %1183, %1184
  br i1 %1185, label %1147, label %.loopexit554, !llvm.loop !273

.loopexit554:                                     ; preds = %.loopexit, %.preheader553, %.loopexit555
  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 %1186

1186:                                             ; preds = %.loopexit554, %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 void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #6

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

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

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

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

declare void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef) local_unnamed_addr #6

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #8 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_(ptr noundef, ptr noundef) #1 align 2

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) local_unnamed_addr #6

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) local_unnamed_addr #6

declare void @_ZN5ImGui26DebugNodeTypingSelectStateEP22ImGuiTypingSelectState(ptr noundef) local_unnamed_addr #6

; 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

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

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

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

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

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

declare void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef) local_unnamed_addr #6

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

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

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

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

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

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTS18ImGuiMetricsConfig", !11, i64 0, !11, i64 1, !11, i64 2, !11, i64 3, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !11, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!10, !11, i64 1}
!16 = !{!17, !20, i64 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 896, !6, i64 904, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !6, i64 944, !6, i64 952, !7, i64 960, !7, i64 968, !7, i64 1000, !12, i64 1016, !12, i64 1020, !12, i64 1024, !11, i64 1028}
!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, !41, i64 128, !43, i64 152, !44, i64 168, !19, i64 184, !6, i64 192}
!35 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS15ImDrawCmdHeader", !40, i64 0, !6, i64 16, !12, i64 24}
!40 = !{!"_ZTS6ImVec4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!41 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !42, i64 8}
!42 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!43 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorIPvE", !12, i64 0, !12, i64 4, !6, i64 8}
!45 = !{!7, !7, i64 0}
!46 = !{!47, !19, i64 228}
!47 = !{!"_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, !19, i64 92, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !19, i64 112, !11, i64 116, !11, i64 117, !11, i64 118, !11, i64 119, !11, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !6, i64 208, !20, i64 216, !11, i64 218, !11, i64 219, !11, i64 220, !11, i64 221, !11, i64 222, !11, i64 223, !11, i64 224, !19, i64 228, !12, i64 232, !12, i64 236, !12, i64 240, !12, i64 244, !18, i64 248, !6, i64 256, !18, i64 264, !7, i64 272, !19, i64 280, !19, i64 284, !48, i64 288, !11, i64 292, !11, i64 293, !11, i64 294, !11, i64 295, !12, i64 296, !7, i64 300, !11, i64 10956, !18, i64 10960, !7, i64 10968, !7, i64 11008, !7, i64 11048, !7, i64 11053, !7, i64 11058, !7, i64 11068, !7, i64 11078, !7, i64 11083, !7, i64 11088, !11, i64 11093, !11, i64 11094, !7, i64 11096, !7, i64 11116, !7, i64 11136, !19, i64 11156, !11, i64 11160, !11, i64 11161, !7, i64 11162, !11, i64 11163, !20, i64 11164, !36, i64 11168, !7, i64 11184, !7, i64 13848, !7, i64 14516}
!48 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!49 = !{!47, !12, i64 232}
!50 = !{!47, !12, i64 236}
!51 = !{!47, !12, i64 240}
!52 = !{!53, !12, i64 25112}
!53 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !47, i64 8, !54, i64 14592, !6, i64 15752, !19, i64 15760, !19, i64 15764, !19, i64 15768, !19, i64 15772, !55, i64 15776, !56, i64 16312, !12, i64 16320, !12, i64 16324, !12, i64 16328, !11, i64 16332, !11, i64 16333, !11, i64 16334, !11, i64 16335, !11, i64 16336, !6, i64 16344, !7, i64 16352, !57, i64 16368, !57, i64 16384, !48, i64 16400, !12, i64 16404, !27, i64 16408, !27, i64 16424, !27, i64 16440, !58, i64 16456, !31, i64 16472, !12, i64 16488, !18, i64 16492, !12, i64 16500, !6, i64 16504, !6, i64 16512, !6, i64 16520, !6, i64 16528, !6, i64 16536, !6, i64 16544, !18, i64 16552, !12, i64 16560, !12, i64 16564, !19, i64 16568, !18, i64 16572, !18, i64 16580, !12, i64 16588, !12, i64 16592, !12, i64 16596, !19, i64 16600, !19, i64 16604, !11, i64 16608, !11, i64 16609, !11, i64 16610, !12, i64 16612, !12, i64 16616, !19, i64 16620, !11, i64 16624, !11, i64 16625, !11, i64 16626, !11, i64 16627, !11, i64 16628, !11, i64 16629, !11, i64 16630, !12, i64 16631, !18, i64 16632, !6, i64 16640, !59, i64 16648, !12, i64 16652, !11, i64 16656, !11, i64 16657, !6, i64 16664, !12, i64 16672, !19, i64 16676, !56, i64 16680, !56, i64 16688, !56, i64 16696, !60, i64 16704, !7, i64 16724, !61, i64 18576, !12, i64 18920, !11, i64 18924, !12, i64 18928, !12, i64 18932, !12, i64 18936, !12, i64 18940, !63, i64 18944, !66, i64 19000, !67, i64 19080, !11, i64 19192, !12, i64 19196, !68, i64 19200, !69, i64 19216, !70, i64 19232, !71, i64 19248, !72, i64 19264, !73, i64 19280, !74, i64 19296, !74, i64 19312, !75, i64 19328, !76, i64 19344, !6, i64 19360, !12, i64 19368, !12, i64 19372, !25, i64 19376, !12, i64 19380, !12, i64 19384, !12, i64 19388, !12, i64 19392, !71, i64 19400, !12, i64 19416, !19, i64 19420, !12, i64 19424, !12, i64 19428, !59, i64 19432, !64, i64 19440, !11, i64 19448, !11, i64 19449, !11, i64 19450, !11, i64 19451, !11, i64 19452, !11, i64 19453, !11, i64 19454, !77, i64 19456, !11, i64 19512, !11, i64 19513, !11, i64 19514, !12, i64 19516, !12, i64 19520, !12, i64 19524, !21, i64 19528, !21, i64 19532, !21, i64 19536, !29, i64 19540, !29, i64 19556, !12, i64 19572, !12, i64 19576, !12, i64 19580, !77, i64 19584, !77, i64 19640, !77, i64 19696, !77, i64 19752, !12, i64 19808, !12, i64 19812, !12, i64 19816, !12, i64 19820, !11, i64 19824, !11, i64 19825, !12, i64 19828, !12, i64 19832, !6, i64 19840, !6, i64 19848, !6, i64 19856, !19, i64 19864, !19, i64 19868, !11, i64 19872, !78, i64 19876, !18, i64 19880, !18, i64 19888, !19, i64 19896, !11, i64 19900, !11, i64 19901, !11, i64 19902, !12, i64 19904, !12, i64 19908, !12, i64 19912, !79, i64 19920, !29, i64 19984, !29, i64 20000, !12, i64 20016, !12, i64 20020, !19, i64 20024, !12, i64 20028, !12, i64 20032, !12, i64 20036, !12, i64 20040, !80, i64 20048, !7, i64 20064, !12, i64 20080, !81, i64 20088, !6, i64 20104, !12, i64 20112, !12, i64 20116, !82, i64 20120, !83, i64 20136, !28, i64 20176, !42, i64 20192, !6, i64 20208, !85, i64 20216, !87, i64 20256, !88, i64 20272, !89, i64 20288, !6, i64 20392, !12, i64 20400, !90, i64 20408, !91, i64 20424, !12, i64 20464, !12, i64 20468, !19, i64 20472, !19, i64 20476, !12, i64 20480, !12, i64 20484, !12, i64 20488, !19, i64 20492, !18, i64 20496, !93, i64 20504, !97, i64 24240, !98, i64 24264, !12, i64 24384, !65, i64 24388, !12, i64 24396, !12, i64 24400, !12, i64 24404, !12, i64 24408, !12, i64 24412, !19, i64 24416, !19, i64 24420, !12, i64 24424, !40, i64 24428, !100, i64 24444, !29, i64 24492, !11, i64 24508, !20, i64 24510, !19, i64 24512, !19, i64 24516, !19, i64 24520, !11, i64 24524, !11, i64 24525, !19, i64 24528, !19, i64 24532, !19, i64 24536, !20, i64 24540, !20, i64 24542, !20, i64 24544, !94, i64 24552, !22, i64 24568, !101, i64 24584, !103, i64 24688, !103, i64 24704, !11, i64 24720, !19, i64 24724, !104, i64 24728, !105, i64 24744, !106, i64 24760, !107, i64 24776, !108, i64 24792, !12, i64 24808, !7, i64 24816, !11, i64 24888, !109, i64 24892, !6, i64 24896, !104, i64 24904, !6, i64 24920, !6, i64 24928, !19, i64 24936, !11, i64 24940, !12, i64 24944, !12, i64 24948, !12, i64 24952, !12, i64 24956, !104, i64 24960, !110, i64 24976, !12, i64 25000, !7, i64 25004, !7, i64 25005, !11, i64 25006, !12, i64 25008, !7, i64 25012, !11, i64 25013, !7, i64 25014, !12, i64 25016, !19, i64 25020, !40, i64 25024, !10, i64 25040, !111, i64 25072, !113, i64 25112, !7, i64 25172, !12, i64 25412, !12, i64 25416, !19, i64 25420, !12, i64 25424, !12, i64 25428, !12, i64 25432, !94, i64 25440, !7, i64 25456}
!54 = !{!"_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}
!55 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !19, i64 16, !19, i64 20, !19, i64 24, !19, i64 28, !40, i64 32, !12, i64 48, !38, i64 56, !7, i64 72, !19, i64 456, !7, i64 460, !6, i64 528}
!56 = !{!"double", !7, i64 0}
!57 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!59 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!60 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!61 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !62, i64 312, !62, i64 328}
!62 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!63 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !12, i64 4, !12, i64 8, !64, i64 16, !19, i64 24, !12, i64 28, !12, i64 32, !11, i64 36, !7, i64 37, !65, i64 38, !12, i64 48}
!64 = !{!"long long", !7, i64 0}
!65 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!66 = !{!"_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}
!67 = !{!"_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}
!68 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_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, !64, i64 48}
!78 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!79 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !7, i64 24, !11, i64 57, !11, i64 58}
!80 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!81 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!83 = !{!"_ZTS6ImPoolI10ImGuiTableE", !84, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!84 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !86, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!86 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!87 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!88 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!89 = !{!"_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}
!90 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!91 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !92, i64 0, !31, i64 16, !12, i64 32, !12, i64 36}
!92 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !12, i64 0, !12, i64 4, !6, i64 8}
!93 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !36, i64 24, !94, i64 40, !94, i64 56, !11, i64 72, !12, i64 76, !19, i64 80, !95, i64 84, !19, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !12, i64 3720, !11, i64 3724, !12, i64 3728, !12, i64 3732}
!94 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!95 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !12, i64 0, !12, i64 4, !12, i64 8, !7, i64 12, !12, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !19, i64 28, !96, i64 32}
!96 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !20, i64 3582, !20, i64 3584, !12, i64 3588, !12, i64 3592}
!97 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !94, 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", !94, i64 0}
!105 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!106 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !94, i64 0}
!107 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !94, i64 0}
!108 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!109 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!110 = !{!"_ZTS14ImGuiTextIndex", !72, 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 = !{!53, !12, i64 25116}
!115 = !{!10, !12, i64 12}
!116 = !{!10, !12, i64 16}
!117 = !{!53, !19, i64 14792}
!118 = !{!53, !11, i64 25013}
!119 = !{!10, !11, i64 2}
!120 = !{!53, !6, i64 19360}
!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 = !{!53, !12, i64 16320}
!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 = !{!53, !12, i64 16408}
!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 = !{!53, !12, i64 19344}
!155 = !{!10, !12, i64 24}
!156 = !{!53, !12, i64 19296}
!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 896}
!163 = distinct !{!163, !140}
!164 = distinct !{!164, !140}
!165 = !{!53, !6, i64 56}
!166 = !{!167, !12, i64 88}
!167 = !{!"_ZTS11ImFontAtlas", !12, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !11, i64 24, !6, i64 32, !11, i64 40, !11, i64 41, !6, i64 48, !6, i64 56, !12, i64 64, !12, i64 68, !18, i64 72, !18, i64 80, !70, 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 = !{!89, !12, i64 0}
!171 = !{!89, !11, i64 5}
!172 = !{!89, !11, i64 4}
!173 = distinct !{!173, !140}
!174 = !{!53, !6, i64 32}
!175 = !{!53, !19, i64 24724}
!176 = !{!53, !12, i64 24744}
!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 = !{!53, !12, i64 24728}
!182 = !{!113, !12, i64 0}
!183 = !{!113, !12, i64 4}
!184 = !{!53, !11, i64 16335}
!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 = !{!47, !11, i64 292}
!195 = !{!47, !11, i64 293}
!196 = !{!47, !11, i64 294}
!197 = !{!47, !11, i64 295}
!198 = !{!47, !12, i64 11168}
!199 = distinct !{!199, !140}
!200 = !{!20, !20, i64 0}
!201 = distinct !{!201, !140}
!202 = !{!47, !19, i64 264}
!203 = !{!47, !19, i64 268}
!204 = !{!47, !19, i64 248}
!205 = !{!47, !19, i64 252}
!206 = !{!19, !19, i64 0}
!207 = !{!47, !19, i64 280}
!208 = !{!53, !19, i64 20492}
!209 = !{!47, !48, i64 288}
!210 = !{!47, !19, i64 11156}
!211 = !{!53, !6, i64 16544}
!212 = !{!53, !19, i64 16568}
!213 = !{!53, !19, i64 16580}
!214 = !{!53, !19, i64 16584}
!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 = !{!53, !11, i64 124}
!226 = !{!53, !12, i64 18928}
!227 = distinct !{!227, !140}
!228 = !{!53, !11, i64 18924}
!229 = !{!53, !12, i64 18920}
!230 = !{!53, !6, i64 16512}
!231 = !{!17, !6, i64 912}
!232 = !{!53, !6, i64 16520}
!233 = !{!53, !6, i64 16536}
!234 = !{!53, !12, i64 16612}
!235 = !{!53, !12, i64 16652}
!236 = !{!53, !19, i64 16620}
!237 = !{!53, !11, i64 16625}
!238 = !{!53, !59, i64 16648}
!239 = !{!53, !6, i64 16640}
!240 = !{!53, !12, i64 16596}
!241 = !{!53, !19, i64 16600}
!242 = !{!53, !11, i64 16608}
!243 = !{!53, !12, i64 20464}
!244 = !{!53, !19, i64 20472}
!245 = !{!53, !19, i64 20476}
!246 = !{!53, !11, i64 19900}
!247 = !{!53, !12, i64 19932}
!248 = !{!53, !12, i64 19928}
!249 = !{!53, !12, i64 19368}
!250 = !{!53, !25, i64 19376}
!251 = !{!53, !59, i64 19432}
!252 = !{!53, !64, i64 19440}
!253 = !{!53, !11, i64 231}
!254 = !{!53, !11, i64 232}
!255 = !{!53, !12, i64 19380}
!256 = !{!53, !12, i64 19384}
!257 = !{!53, !12, i64 19388}
!258 = !{!53, !12, i64 19392}
!259 = !{!53, !11, i64 19450}
!260 = !{!53, !11, i64 19451}
!261 = !{!53, !12, i64 19372}
!262 = !{!53, !12, i64 19400}
!263 = !{!53, !6, i64 19840}
!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