; LLVM IR from hbatagelo/abcg :: abcg/external/imgui/imgui.ll (ZN5ImGui17ShowMetricsWindowEPb)

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

%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }
%struct.ImGuiContext = type { i8, i8, %struct.ImGuiIO, %struct.ImVector.0, %struct.ImVector.0, %struct.ImGuiStyle, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i8, ptr, %struct.ImVector.2, %struct.ImVector.2, %struct.ImVector.2, %struct.ImVector.3, %struct.ImGuiStorage, i32, %struct.ImVec2, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, ptr, i32, float, [140 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImVector.12, %struct.ImVector.12, i32, %struct.ImVector.13, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ImRect, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, ptr, ptr, ptr, float, float, i8, %struct.ImVec2, %struct.ImVec2, float, i32, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.14, [16 x i8], i32, %struct.ImVector.15, ptr, i32, %struct.ImVector.16, %struct.ImPool, %struct.ImVector.18, %struct.ImVector.19, ptr, %struct.ImPool.20, %struct.ImVector.22, %struct.ImVector.23, i32, i32, float, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImFont, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, float, float, i8, i8, float, float, float, float, i16, i16, %struct.ImVector.24, %struct.ImVector.9, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i8, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.26, %struct.ImChunkStream, %struct.ImChunkStream.27, %struct.ImVector.28, i32, [7 x ptr], i8, i32, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i8, i8, i8, i8, i8, i32, %struct.ImGuiMetricsConfig, %struct.ImGuiStackTool, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.24 }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, float, float, float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, float, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, [652 x i32], [652 x i8], [16 x float], ptr, %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, i32, [652 x %struct.ImGuiKeyData], i8, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x i8], [5 x i8], [5 x float], [5 x float], [5 x float], float, i8, i8, i8, i8, i16, %struct.ImVector }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImVector.0 = 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, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [53 x %struct.ImVec4] }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, %struct.ImVector.1, [48 x %struct.ImVec2], float, [64 x i8], 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.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [140 x i16], %struct.ImVector.5, %struct.ImVector.5 }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, float, i32, i32, i8, [3 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect }
%struct.ImGuiNextWindowData = type <{ i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, [3 x i8], %struct.ImRect, [4 x i8], ptr, ptr, float, %struct.ImVec2, [4 x i8] }>
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type { ptr, i32, i32, %struct.ImRect, i32, float, float, float }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.17, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImPool.20 = type { %struct.ImVector.21, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, i32, i32, i32, [4 x i8], %struct.ImVector, %struct.ImVector.24, %struct.ImVector.24, i8, [3 x i8], i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ImStb::STB_TexteditState" = type { i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, float, %"struct.ImStb::StbUndoState" }
%"struct.ImStb::StbUndoState" = type { [99 x %"struct.ImStb::StbUndoRecord"], [999 x i16], i16, i16, i32, i32 }
%"struct.ImStb::StbUndoRecord" = type { i32, i32, i32, i32 }
%struct.ImFont = type <{ %struct.ImVector.18, float, float, %struct.ImVector, %struct.ImVector.25, 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.25 = type { i32, i32, ptr }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.24 }
%struct.ImChunkStream.27 = type { %struct.ImVector.24 }
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.24 }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.10, i32, [4 x i8] }>
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiStackTool = type { i32, i32, i32, %struct.ImVector.29, i8, float }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImGuiWindow = type <{ ptr, ptr, i32, i32, ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, i16, i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.9, %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.32, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], 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, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.2, ptr, ptr, i32, i32, i32, float, float, %struct.ImVector.18, %struct.ImVector.18 }
%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.32 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.33, %struct.ImVector, %struct.ImVector.34, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.35, %struct.ImVector.36, %struct.ImVector.1, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImVector.35 = type { i32, i32, ptr }
%struct.ImVector.36 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.19 }
%struct.ImGuiTable = type <{ i32, i32, ptr, ptr, %struct.ImSpan, %struct.ImSpan.37, %struct.ImSpan.38, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i16, i16, 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, %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.39, %struct.ImGuiTableColumnSortSpecs, [4 x i8], %struct.ImVector.40, %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, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [5 x i8] }>
%struct.ImSpan = type { ptr, ptr }
%struct.ImSpan.37 = type { ptr, ptr }
%struct.ImSpan.38 = type { ptr, ptr }
%struct.ImGuiTableInstanceData = type { i32, float, float, float }
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.40 = 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, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, ptr }
%struct.ImDrawData = type { i8, i32, i32, i32, ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2 }
%struct.ImDrawDataBuilder = type { [2 x %struct.ImVector.45] }
%struct.ImVector.45 = type { i32, i32, ptr }
%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.43, %struct.ImVector.44, [64 x %struct.ImVec4], ptr, i32, i32, i32, [4 x i8] }>
%struct.ImVector.43 = type { i32, i32, ptr }
%struct.ImVector.44 = type { i32, i32, ptr }
%struct.ImGuiSettingsHandler = type { ptr, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.ImGuiKeyRoutingData = type { i16, i16, i8, i32, i32 }

@GImGui = external dso_local global ptr, align 8
@.str.16 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [42 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.344 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [100 x i8], align 16
@.str.347 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.376 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.422 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.423 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.470 = 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: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef) #3

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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 nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui15GetKeyOwnerDataE8ImGuiKey(i32 noundef) #4

declare void @_ZN5ImGui7TreePopEv() #7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef %0) #8 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca [8 x ptr], align 16
  %8 = alloca [13 x ptr], align 16
  %9 = alloca i8, align 1
  %10 = alloca i32, align 4
  %11 = alloca %struct.ImRect, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca %struct.ImVec2, align 4
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca %struct.ImVec2, align 4
  %18 = alloca [128 x i8], align 16
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %struct.ImRect, align 4
  %22 = alloca %struct.ImVec2, align 4
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca %struct.ImVec2, align 4
  %27 = alloca %struct.ImRect, align 4
  %28 = alloca %struct.ImVec2, align 4
  %29 = alloca %struct.ImVec2, align 4
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca ptr, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca ptr, align 8
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca i32, align 4
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca %struct.ImVec2, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i16, align 2
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca %struct.ImVec2, align 4
  %64 = alloca i32, align 4
  %65 = alloca ptr, align 8
  %66 = alloca %struct.ImVec2, align 4
  %67 = alloca i32, align 4
  %68 = alloca ptr, align 8
  %69 = alloca i16, align 2
  %70 = alloca [64 x i8], align 16
  %71 = alloca ptr, align 8
  %72 = alloca i32, align 4
  %73 = alloca ptr, align 8
  %74 = alloca ptr, align 8
  %75 = alloca %struct.ImRect, align 4
  %76 = alloca [32 x i8], align 16
  %77 = alloca float, align 4
  %78 = alloca %struct.ImVec2, align 4
  %79 = alloca %struct.ImVec2, align 4
  %80 = alloca i32, align 4
  %81 = alloca ptr, align 8
  %82 = alloca ptr, align 8
  %83 = alloca i32, align 4
  %84 = alloca %struct.ImRect, align 4
  %85 = alloca i32, align 4
  %86 = alloca float, align 4
  %87 = 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
  %88 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %88, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #9
  %89 = load ptr, ptr %3, align 8, !tbaa !5
  %90 = getelementptr inbounds %struct.ImGuiContext, ptr %89, i32 0, i32 2
  store ptr %90, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #9
  %91 = load ptr, ptr %3, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.ImGuiContext, ptr %91, i32 0, i32 227
  store ptr %92, ptr %5, align 8, !tbaa !5
  %93 = load ptr, ptr %5, align 8, !tbaa !5
  %94 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %93, i32 0, i32 0
  %95 = load i8, ptr %94, align 4, !tbaa !9, !range !13, !noundef !14
  %96 = trunc i8 %95 to i1
  br i1 %96, label %97, label %100

97:                                               ; preds = %1
  %98 = load ptr, ptr %5, align 8, !tbaa !5
  %99 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %98, i32 0, i32 0
  call void @_ZN5ImGui18ShowDebugLogWindowEPb(ptr noundef %99)
  br label %100

100:                                              ; preds = %97, %1
  %101 = load ptr, ptr %5, align 8, !tbaa !5
  %102 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %101, i32 0, i32 1
  %103 = load i8, ptr %102, align 1, !tbaa !15, !range !13, !noundef !14
  %104 = trunc i8 %103 to i1
  br i1 %104, label %105, label %108

105:                                              ; preds = %100
  %106 = load ptr, ptr %5, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %106, i32 0, i32 1
  call void @_ZN5ImGui19ShowStackToolWindowEPb(ptr noundef %107)
  br label %108

108:                                              ; preds = %105, %100
  %109 = load ptr, ptr %2, align 8, !tbaa !5
  %110 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.322, ptr noundef %109, i32 noundef 0)
  br i1 %110, label %111, label %117

111:                                              ; preds = %108
  %112 = call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %113 = getelementptr inbounds %struct.ImGuiWindow, ptr %112, i32 0, i32 43
  %114 = load i16, ptr %113, align 2, !tbaa !16
  %115 = sext i16 %114 to i32
  %116 = icmp sgt i32 %115, 1
  br i1 %116, label %117, label %118

117:                                              ; preds = %111, %108
  call void @_ZN5ImGui3EndEv()
  store i32 1, ptr %6, align 4
  br label %1750

118:                                              ; preds = %111
  %119 = call noundef ptr @_ZN5ImGui10GetVersionEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.323, ptr noundef %119)
  %120 = load ptr, ptr %4, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.ImGuiIO, ptr %120, i32 0, i32 48
  %122 = load float, ptr %121, align 8, !tbaa !44
  %123 = fdiv float 1.000000e+03, %122
  %124 = fpext float %123 to double
  %125 = load ptr, ptr %4, align 8, !tbaa !5
  %126 = getelementptr inbounds %struct.ImGuiIO, ptr %125, i32 0, i32 48
  %127 = load float, ptr %126, align 8, !tbaa !44
  %128 = fpext float %127 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.324, double noundef %124, double noundef %128)
  %129 = load ptr, ptr %4, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.ImGuiIO, ptr %129, i32 0, i32 49
  %131 = load i32, ptr %130, align 4, !tbaa !46
  %132 = load ptr, ptr %4, align 8, !tbaa !5
  %133 = getelementptr inbounds %struct.ImGuiIO, ptr %132, i32 0, i32 50
  %134 = load i32, ptr %133, align 8, !tbaa !47
  %135 = load ptr, ptr %4, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.ImGuiIO, ptr %135, i32 0, i32 50
  %137 = load i32, ptr %136, align 8, !tbaa !47
  %138 = sdiv i32 %137, 3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.325, i32 noundef %131, i32 noundef %134, i32 noundef %138)
  %139 = load ptr, ptr %4, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.ImGuiIO, ptr %139, i32 0, i32 51
  %141 = load i32, ptr %140, align 4, !tbaa !48
  %142 = load ptr, ptr %4, align 8, !tbaa !5
  %143 = getelementptr inbounds %struct.ImGuiIO, ptr %142, i32 0, i32 53
  %144 = load i32, ptr %143, align 4, !tbaa !49
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.326, i32 noundef %141, i32 noundef %144)
  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)
  %145 = load ptr, ptr %5, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %145, i32 0, i32 8
  %147 = load i32, ptr %146, align 4, !tbaa !50
  %148 = icmp slt i32 %147, 0
  br i1 %148, label %149, label %152

149:                                              ; preds = %118
  %150 = load ptr, ptr %5, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %150, i32 0, i32 8
  store i32 4, ptr %151, align 4, !tbaa !50
  br label %152

152:                                              ; preds = %149, %118
  %153 = load ptr, ptr %5, align 8, !tbaa !5
  %154 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %153, i32 0, i32 9
  %155 = load i32, ptr %154, align 4, !tbaa !51
  %156 = icmp slt i32 %155, 0
  br i1 %156, label %157, label %160

157:                                              ; preds = %152
  %158 = load ptr, ptr %5, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %158, i32 0, i32 9
  store i32 2, ptr %159, align 4, !tbaa !51
  br label %160

160:                                              ; preds = %157, %152
  %161 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.344)
  br i1 %161, label %162, label %494

162:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #9
  %163 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.345)
  %164 = zext i1 %163 to i8
  store i8 %164, ptr %9, align 1, !tbaa !52
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.346)
  %165 = load i8, ptr %9, align 1, !tbaa !52, !range !13, !noundef !14
  %166 = trunc i8 %165 to i1
  br i1 %166, label %167, label %174

167:                                              ; preds = %162
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %168 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.347, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 100, i32 noundef 0, ptr noundef null, ptr noundef null)
  %169 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !53
  %170 = sext i8 %169 to i32
  %171 = icmp ne i32 %170, 0
  br i1 %171, label %172, label %173

172:                                              ; preds = %167
  call void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf)
  br label %173

173:                                              ; preds = %172, %167
  call void @_ZN5ImGui7TreePopEv()
  br label %174

174:                                              ; preds = %173, %162
  %175 = load ptr, ptr %3, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.ImGuiContext, ptr %175, i32 0, i32 224
  %177 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.348, ptr noundef %176)
  br i1 %177, label %178, label %184

178:                                              ; preds = %174
  %179 = load ptr, ptr %3, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.ImGuiContext, ptr %179, i32 0, i32 224
  %181 = load i8, ptr %180, align 1, !tbaa !54, !range !13, !noundef !14
  %182 = trunc i8 %181 to i1
  br i1 %182, label %183, label %184

183:                                              ; preds = %178
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %184

184:                                              ; preds = %183, %178, %174
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.349)
  %185 = load ptr, ptr %5, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %185, i32 0, i32 0
  %187 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.350, ptr noundef %186)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.351)
  %188 = load ptr, ptr %5, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %188, i32 0, i32 1
  %190 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.352, ptr noundef %189)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.353)
  %191 = load ptr, ptr %5, align 8, !tbaa !5
  %192 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %191, i32 0, i32 3
  %193 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.354, ptr noundef %192)
  %194 = load ptr, ptr %5, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %194, i32 0, i32 2
  %196 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.355, ptr noundef %195)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %197 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %198 = fmul float %197, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %198)
  %199 = load ptr, ptr %5, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %199, i32 0, i32 8
  %201 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 0
  %202 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.356, ptr noundef %200, ptr noundef %201, i32 noundef 8, i32 noundef 8)
  %203 = zext i1 %202 to i32
  %204 = load ptr, ptr %5, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %204, i32 0, i32 2
  %206 = load i8, ptr %205, align 2, !tbaa !102, !range !13, !noundef !14
  %207 = trunc i8 %206 to i1
  %208 = zext i1 %207 to i32
  %209 = or i32 %208, %203
  %210 = icmp ne i32 %209, 0
  %211 = zext i1 %210 to i8
  store i8 %211, ptr %205, align 2, !tbaa !102
  %212 = load ptr, ptr %5, align 8, !tbaa !5
  %213 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %212, i32 0, i32 2
  %214 = load i8, ptr %213, align 2, !tbaa !102, !range !13, !noundef !14
  %215 = trunc i8 %214 to i1
  br i1 %215, label %216, label %269

216:                                              ; preds = %184
  %217 = load ptr, ptr %3, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.ImGuiContext, ptr %217, i32 0, i32 84
  %219 = load ptr, ptr %218, align 8, !tbaa !103
  %220 = icmp ne ptr %219, null
  br i1 %220, label %221, label %269

221:                                              ; preds = %216
  %222 = load ptr, ptr %3, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.ImGuiContext, ptr %222, i32 0, i32 84
  %224 = load ptr, ptr %223, align 8, !tbaa !103
  %225 = getelementptr inbounds %struct.ImGuiWindow, ptr %224, i32 0, i32 1
  %226 = load ptr, ptr %225, align 8, !tbaa !104
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.357, ptr noundef %226)
  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 !105
  br label %227

227:                                              ; preds = %265, %221
  %228 = load i32, ptr %10, align 4, !tbaa !105
  %229 = icmp slt i32 %228, 8
  br i1 %229, label %231, label %230

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

231:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #9
  %232 = load ptr, ptr %3, align 8, !tbaa !5
  %233 = getelementptr inbounds %struct.ImGuiContext, ptr %232, i32 0, i32 84
  %234 = load ptr, ptr %233, align 8, !tbaa !103
  %235 = load i32, ptr %10, align 4, !tbaa !105
  %236 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %234, i32 noundef %235)
  %237 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %11, i32 0, i32 0
  %238 = extractvalue { <2 x float>, <2 x float> } %236, 0
  store <2 x float> %238, ptr %237, align 4
  %239 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %11, i32 0, i32 1
  %240 = extractvalue { <2 x float>, <2 x float> } %236, 1
  store <2 x float> %240, ptr %239, align 4
  %241 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 0
  %242 = getelementptr inbounds %struct.ImVec2, ptr %241, i32 0, i32 0
  %243 = load float, ptr %242, align 4, !tbaa !106
  %244 = fpext float %243 to double
  %245 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 0
  %246 = getelementptr inbounds %struct.ImVec2, ptr %245, i32 0, i32 1
  %247 = load float, ptr %246, align 4, !tbaa !107
  %248 = fpext float %247 to double
  %249 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 1
  %250 = getelementptr inbounds %struct.ImVec2, ptr %249, i32 0, i32 0
  %251 = load float, ptr %250, align 4, !tbaa !108
  %252 = fpext float %251 to double
  %253 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 1
  %254 = getelementptr inbounds %struct.ImVec2, ptr %253, i32 0, i32 1
  %255 = load float, ptr %254, align 4, !tbaa !109
  %256 = fpext float %255 to double
  %257 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %258 = fpext float %257 to double
  %259 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %260 = fpext float %259 to double
  %261 = load i32, ptr %10, align 4, !tbaa !105
  %262 = sext i32 %261 to i64
  %263 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 %262
  %264 = load ptr, ptr %263, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.358, double noundef %244, double noundef %248, double noundef %252, double noundef %256, double noundef %258, double noundef %260, ptr noundef %264)
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #9
  br label %265

265:                                              ; preds = %231
  %266 = load i32, ptr %10, align 4, !tbaa !105
  %267 = add nsw i32 %266, 1
  store i32 %267, ptr %10, align 4, !tbaa !105
  br label %227, !llvm.loop !110

268:                                              ; preds = %230
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %269

269:                                              ; preds = %268, %216, %184
  %270 = load ptr, ptr %5, align 8, !tbaa !5
  %271 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %270, i32 0, i32 4
  %272 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.359, ptr noundef %271)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %273 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %274 = fmul float %273, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %274)
  %275 = load ptr, ptr %5, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %275, i32 0, i32 9
  %277 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 0
  %278 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.360, ptr noundef %276, ptr noundef %277, i32 noundef 13, i32 noundef 13)
  %279 = zext i1 %278 to i32
  %280 = load ptr, ptr %5, align 8, !tbaa !5
  %281 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %280, i32 0, i32 4
  %282 = load i8, ptr %281, align 4, !tbaa !112, !range !13, !noundef !14
  %283 = trunc i8 %282 to i1
  %284 = zext i1 %283 to i32
  %285 = or i32 %284, %279
  %286 = icmp ne i32 %285, 0
  %287 = zext i1 %286 to i8
  store i8 %287, ptr %281, align 4, !tbaa !112
  %288 = load ptr, ptr %5, align 8, !tbaa !5
  %289 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %288, i32 0, i32 4
  %290 = load i8, ptr %289, align 4, !tbaa !112, !range !13, !noundef !14
  %291 = trunc i8 %290 to i1
  br i1 %291, label %292, label %490

292:                                              ; preds = %269
  %293 = load ptr, ptr %3, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.ImGuiContext, ptr %293, i32 0, i32 84
  %295 = load ptr, ptr %294, align 8, !tbaa !103
  %296 = icmp ne ptr %295, null
  br i1 %296, label %297, label %490

297:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  store i32 0, ptr %12, align 4, !tbaa !105
  br label %298

298:                                              ; preds = %486, %297
  %299 = load i32, ptr %12, align 4, !tbaa !105
  %300 = load ptr, ptr %3, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.ImGuiContext, ptr %300, i32 0, i32 160
  %302 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %301)
  %303 = icmp slt i32 %299, %302
  br i1 %303, label %305, label %304

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

305:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %306 = load ptr, ptr %3, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.ImGuiContext, ptr %306, i32 0, i32 160
  %308 = load i32, ptr %12, align 4, !tbaa !105
  %309 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %307, i32 noundef %308)
  store ptr %309, ptr %13, align 8, !tbaa !5
  %310 = load ptr, ptr %13, align 8, !tbaa !5
  %311 = icmp eq ptr %310, null
  br i1 %311, label %337, label %312

312:                                              ; preds = %305
  %313 = load ptr, ptr %13, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.ImGuiTable, ptr %313, i32 0, i32 12
  %315 = load i32, ptr %314, align 8, !tbaa !113
  %316 = load ptr, ptr %3, align 8, !tbaa !5
  %317 = getelementptr inbounds %struct.ImGuiContext, ptr %316, i32 0, i32 11
  %318 = load i32, ptr %317, align 8, !tbaa !123
  %319 = sub nsw i32 %318, 1
  %320 = icmp slt i32 %315, %319
  br i1 %320, label %337, label %321

321:                                              ; preds = %312
  %322 = load ptr, ptr %13, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.ImGuiTable, ptr %322, i32 0, i32 53
  %324 = load ptr, ptr %323, align 8, !tbaa !124
  %325 = load ptr, ptr %3, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.ImGuiContext, ptr %325, i32 0, i32 84
  %327 = load ptr, ptr %326, align 8, !tbaa !103
  %328 = icmp ne ptr %324, %327
  br i1 %328, label %329, label %338

329:                                              ; preds = %321
  %330 = load ptr, ptr %13, align 8, !tbaa !5
  %331 = getelementptr inbounds %struct.ImGuiTable, ptr %330, i32 0, i32 54
  %332 = load ptr, ptr %331, align 8, !tbaa !125
  %333 = load ptr, ptr %3, align 8, !tbaa !5
  %334 = getelementptr inbounds %struct.ImGuiContext, ptr %333, i32 0, i32 84
  %335 = load ptr, ptr %334, align 8, !tbaa !103
  %336 = icmp ne ptr %332, %335
  br i1 %336, label %337, label %338

337:                                              ; preds = %329, %312, %305
  store i32 7, ptr %6, align 4
  br label %483

338:                                              ; preds = %329, %321
  %339 = load ptr, ptr %13, align 8, !tbaa !5
  %340 = getelementptr inbounds %struct.ImGuiTable, ptr %339, i32 0, i32 0
  %341 = load i32, ptr %340, align 8, !tbaa !126
  %342 = load ptr, ptr %13, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.ImGuiTable, ptr %342, i32 0, i32 13
  %344 = load i32, ptr %343, align 4, !tbaa !127
  %345 = load ptr, ptr %13, align 8, !tbaa !5
  %346 = getelementptr inbounds %struct.ImGuiTable, ptr %345, i32 0, i32 53
  %347 = load ptr, ptr %346, align 8, !tbaa !124
  %348 = getelementptr inbounds %struct.ImGuiWindow, ptr %347, i32 0, i32 1
  %349 = load ptr, ptr %348, align 8, !tbaa !104
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.361, i32 noundef %341, i32 noundef %344, ptr noundef %349)
  %350 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %350, label %351, label %361

351:                                              ; preds = %338
  %352 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %353 = load ptr, ptr %13, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.ImGuiTable, ptr %353, i32 0, i32 44
  %355 = getelementptr inbounds %struct.ImRect, ptr %354, 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)
  %356 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %355, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %356, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %357 = load ptr, ptr %13, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.ImGuiTable, ptr %357, i32 0, i32 44
  %359 = getelementptr inbounds %struct.ImRect, ptr %358, 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)
  %360 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %359, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %360, ptr %16, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %352, 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 %361

361:                                              ; preds = %351, %338
  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 !105
  br label %362

362:                                              ; preds = %479, %361
  %363 = load i32, ptr %19, align 4, !tbaa !105
  %364 = icmp slt i32 %363, 13
  br i1 %364, label %366, label %365

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

366:                                              ; preds = %362
  %367 = load i32, ptr %19, align 4, !tbaa !105
  %368 = icmp sge i32 %367, 6
  br i1 %368, label %369, label %434

369:                                              ; preds = %366
  %370 = load i32, ptr %19, align 4, !tbaa !105
  %371 = icmp ne i32 %370, 6
  br i1 %371, label %372, label %376

372:                                              ; preds = %369
  %373 = load i32, ptr %19, align 4, !tbaa !105
  %374 = icmp ne i32 %373, 8
  br i1 %374, label %375, label %376

375:                                              ; preds = %372
  br label %479

376:                                              ; preds = %372, %369
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store i32 0, ptr %20, align 4, !tbaa !105
  br label %377

377:                                              ; preds = %430, %376
  %378 = load i32, ptr %20, align 4, !tbaa !105
  %379 = load ptr, ptr %13, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.ImGuiTable, ptr %379, i32 0, i32 13
  %381 = load i32, ptr %380, align 4, !tbaa !127
  %382 = icmp slt i32 %378, %381
  br i1 %382, label %384, label %383

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

384:                                              ; preds = %377
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #9
  %385 = load ptr, ptr %13, align 8, !tbaa !5
  %386 = load i32, ptr %19, align 4, !tbaa !105
  %387 = load i32, ptr %20, align 4, !tbaa !105
  %388 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %385, i32 noundef %386, i32 noundef %387)
  %389 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %21, i32 0, i32 0
  %390 = extractvalue { <2 x float>, <2 x float> } %388, 0
  store <2 x float> %390, ptr %389, align 4
  %391 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %21, i32 0, i32 1
  %392 = extractvalue { <2 x float>, <2 x float> } %388, 1
  store <2 x float> %392, ptr %391, align 4
  %393 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %394 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  %395 = getelementptr inbounds %struct.ImVec2, ptr %394, i32 0, i32 0
  %396 = load float, ptr %395, align 4, !tbaa !106
  %397 = fpext float %396 to double
  %398 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  %399 = getelementptr inbounds %struct.ImVec2, ptr %398, i32 0, i32 1
  %400 = load float, ptr %399, align 4, !tbaa !107
  %401 = fpext float %400 to double
  %402 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  %403 = getelementptr inbounds %struct.ImVec2, ptr %402, i32 0, i32 0
  %404 = load float, ptr %403, align 4, !tbaa !108
  %405 = fpext float %404 to double
  %406 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  %407 = getelementptr inbounds %struct.ImVec2, ptr %406, i32 0, i32 1
  %408 = load float, ptr %407, align 4, !tbaa !109
  %409 = fpext float %408 to double
  %410 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %21)
  %411 = fpext float %410 to double
  %412 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %21)
  %413 = fpext float %412 to double
  %414 = load i32, ptr %20, align 4, !tbaa !105
  %415 = load i32, ptr %19, align 4, !tbaa !105
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 %416
  %418 = load ptr, ptr %417, align 8, !tbaa !5
  %419 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %393, i64 noundef 128, ptr noundef @.str.362, double noundef %397, double noundef %401, double noundef %405, double noundef %409, double noundef %411, double noundef %413, i32 noundef %414, ptr noundef %418)
  %420 = 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)
  %421 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %420, 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
  %422 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %422, label %423, label %429

423:                                              ; preds = %384
  %424 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %425 = 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)
  %426 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %425, ptr noundef nonnull align 4 dereferenceable(8) %24)
  store <2 x float> %426, ptr %23, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %427 = 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)
  %428 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %427, ptr noundef nonnull align 4 dereferenceable(8) %26)
  store <2 x float> %428, ptr %25, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %424, 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 %429

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

430:                                              ; preds = %429
  %431 = load i32, ptr %20, align 4, !tbaa !105
  %432 = add nsw i32 %431, 1
  store i32 %432, ptr %20, align 4, !tbaa !105
  br label %377, !llvm.loop !128

433:                                              ; preds = %383
  br label %478

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

471:                                              ; preds = %434
  %472 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %473 = 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)
  %474 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %473, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %474, ptr %29, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %475 = 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)
  %476 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %475, ptr noundef nonnull align 4 dereferenceable(8) %32)
  store <2 x float> %476, ptr %31, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %472, 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 %477

477:                                              ; preds = %471, %434
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #9
  br label %478

478:                                              ; preds = %477, %433
  br label %479

479:                                              ; preds = %478, %375
  %480 = load i32, ptr %19, align 4, !tbaa !105
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr %19, align 4, !tbaa !105
  br label %362, !llvm.loop !129

482:                                              ; preds = %365
  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 %483

483:                                              ; preds = %482, %337
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  %484 = load i32, ptr %6, align 4
  switch i32 %484, label %1753 [
    i32 0, label %485
    i32 7, label %486
  ]

485:                                              ; preds = %483
  br label %486

486:                                              ; preds = %485, %483
  %487 = load i32, ptr %12, align 4, !tbaa !105
  %488 = add nsw i32 %487, 1
  store i32 %488, ptr %12, align 4, !tbaa !105
  br label %298, !llvm.loop !130

489:                                              ; preds = %304
  br label %490

490:                                              ; preds = %489, %292, %269
  %491 = load ptr, ptr %4, align 8, !tbaa !5
  %492 = getelementptr inbounds %struct.ImGuiIO, ptr %491, i32 0, i32 30
  %493 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.363, ptr noundef %492)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.364)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  br label %494

494:                                              ; preds = %490, %160
  %495 = load ptr, ptr %3, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.ImGuiContext, ptr %495, i32 0, i32 20
  %497 = getelementptr inbounds %struct.ImVector.2, ptr %496, i32 0, i32 0
  %498 = load i32, ptr %497, align 8, !tbaa !131
  %499 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.365, ptr noundef @.str.366, i32 noundef %498)
  br i1 %499, label %500, label %556

500:                                              ; preds = %494
  %501 = load ptr, ptr %3, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.ImGuiContext, ptr %501, i32 0, i32 20
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %502, ptr noundef @.str.367)
  %503 = load ptr, ptr %3, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.ImGuiContext, ptr %503, i32 0, i32 21
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %504, ptr noundef @.str.368)
  %505 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.369)
  br i1 %505, label %506, label %555

506:                                              ; preds = %500
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %507 = load ptr, ptr %3, align 8, !tbaa !5
  %508 = getelementptr inbounds %struct.ImGuiContext, ptr %507, i32 0, i32 22
  store ptr %508, ptr %33, align 8, !tbaa !5
  %509 = load ptr, ptr %33, align 8, !tbaa !5
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %509, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  store i32 0, ptr %34, align 4, !tbaa !105
  br label %510

510:                                              ; preds = %538, %506
  %511 = load i32, ptr %34, align 4, !tbaa !105
  %512 = load ptr, ptr %3, align 8, !tbaa !5
  %513 = getelementptr inbounds %struct.ImGuiContext, ptr %512, i32 0, i32 20
  %514 = getelementptr inbounds %struct.ImVector.2, ptr %513, i32 0, i32 0
  %515 = load i32, ptr %514, align 8, !tbaa !131
  %516 = icmp slt i32 %511, %515
  br i1 %516, label %518, label %517

517:                                              ; preds = %510
  store i32 14, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %541

518:                                              ; preds = %510
  %519 = load ptr, ptr %3, align 8, !tbaa !5
  %520 = getelementptr inbounds %struct.ImGuiContext, ptr %519, i32 0, i32 20
  %521 = load i32, ptr %34, align 4, !tbaa !105
  %522 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %520, i32 noundef %521)
  %523 = load ptr, ptr %522, align 8, !tbaa !5
  %524 = getelementptr inbounds %struct.ImGuiWindow, ptr %523, i32 0, i32 72
  %525 = load i32, ptr %524, align 8, !tbaa !132
  %526 = add nsw i32 %525, 1
  %527 = load ptr, ptr %3, align 8, !tbaa !5
  %528 = getelementptr inbounds %struct.ImGuiContext, ptr %527, i32 0, i32 11
  %529 = load i32, ptr %528, align 8, !tbaa !123
  %530 = icmp sge i32 %526, %529
  br i1 %530, label %531, label %537

531:                                              ; preds = %518
  %532 = load ptr, ptr %33, align 8, !tbaa !5
  %533 = load ptr, ptr %3, align 8, !tbaa !5
  %534 = getelementptr inbounds %struct.ImGuiContext, ptr %533, i32 0, i32 20
  %535 = load i32, ptr %34, align 4, !tbaa !105
  %536 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %534, i32 noundef %535)
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %532, ptr noundef nonnull align 8 dereferenceable(8) %536)
  br label %537

537:                                              ; preds = %531, %518
  br label %538

538:                                              ; preds = %537
  %539 = load i32, ptr %34, align 4, !tbaa !105
  %540 = add nsw i32 %539, 1
  store i32 %540, ptr %34, align 4, !tbaa !105
  br label %510, !llvm.loop !133

541:                                              ; preds = %517
  %542 = load ptr, ptr %33, align 8, !tbaa !5
  %543 = getelementptr inbounds %struct.ImVector.2, ptr %542, i32 0, i32 2
  %544 = load ptr, ptr %543, align 8, !tbaa !134
  %545 = load ptr, ptr %33, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.ImVector.2, ptr %545, i32 0, i32 0
  %547 = load i32, ptr %546, align 8, !tbaa !135
  %548 = sext i32 %547 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %544, i64 noundef %548, i64 noundef 8, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %549 = load ptr, ptr %33, align 8, !tbaa !5
  %550 = getelementptr inbounds %struct.ImVector.2, ptr %549, i32 0, i32 2
  %551 = load ptr, ptr %550, align 8, !tbaa !134
  %552 = load ptr, ptr %33, align 8, !tbaa !5
  %553 = getelementptr inbounds %struct.ImVector.2, ptr %552, i32 0, i32 0
  %554 = load i32, ptr %553, align 8, !tbaa !135
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %551, i32 noundef %554, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  br label %555

555:                                              ; preds = %541, %500
  call void @_ZN5ImGui7TreePopEv()
  br label %556

556:                                              ; preds = %555, %494
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  store i32 0, ptr %35, align 4, !tbaa !105
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  store i32 0, ptr %36, align 4, !tbaa !105
  br label %557

557:                                              ; preds = %575, %556
  %558 = load i32, ptr %36, align 4, !tbaa !105
  %559 = load ptr, ptr %3, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.ImGuiContext, ptr %559, i32 0, i32 83
  %561 = getelementptr inbounds %struct.ImVector.13, ptr %560, i32 0, i32 0
  %562 = load i32, ptr %561, align 8, !tbaa !136
  %563 = icmp slt i32 %558, %562
  br i1 %563, label %565, label %564

564:                                              ; preds = %557
  store i32 17, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %578

565:                                              ; preds = %557
  %566 = load ptr, ptr %3, align 8, !tbaa !5
  %567 = getelementptr inbounds %struct.ImGuiContext, ptr %566, i32 0, i32 83
  %568 = load i32, ptr %36, align 4, !tbaa !105
  %569 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %567, i32 noundef %568)
  %570 = load ptr, ptr %569, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.ImGuiViewportP, ptr %570, i32 0, i32 4
  %572 = call noundef i32 @_ZNK17ImDrawDataBuilder16GetDrawListCountEv(ptr noundef nonnull align 8 dereferenceable(32) %571)
  %573 = load i32, ptr %35, align 4, !tbaa !105
  %574 = add nsw i32 %573, %572
  store i32 %574, ptr %35, align 4, !tbaa !105
  br label %575

575:                                              ; preds = %565
  %576 = load i32, ptr %36, align 4, !tbaa !105
  %577 = add nsw i32 %576, 1
  store i32 %577, ptr %36, align 4, !tbaa !105
  br label %557, !llvm.loop !137

578:                                              ; preds = %564
  %579 = load i32, ptr %35, align 4, !tbaa !105
  %580 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.370, ptr noundef @.str.371, i32 noundef %579)
  br i1 %580, label %581, label %641

581:                                              ; preds = %578
  %582 = load ptr, ptr %5, align 8, !tbaa !5
  %583 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %582, i32 0, i32 5
  %584 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.372, ptr noundef %583)
  %585 = load ptr, ptr %5, align 8, !tbaa !5
  %586 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %585, i32 0, i32 6
  %587 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.373, ptr noundef %586)
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  store i32 0, ptr %37, align 4, !tbaa !105
  br label %588

588:                                              ; preds = %637, %581
  %589 = load i32, ptr %37, align 4, !tbaa !105
  %590 = load ptr, ptr %3, align 8, !tbaa !5
  %591 = getelementptr inbounds %struct.ImGuiContext, ptr %590, i32 0, i32 83
  %592 = getelementptr inbounds %struct.ImVector.13, ptr %591, i32 0, i32 0
  %593 = load i32, ptr %592, align 8, !tbaa !136
  %594 = icmp slt i32 %589, %593
  br i1 %594, label %596, label %595

595:                                              ; preds = %588
  store i32 20, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %640

596:                                              ; preds = %588
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #9
  %597 = load ptr, ptr %3, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.ImGuiContext, ptr %597, i32 0, i32 83
  %599 = load i32, ptr %37, align 4, !tbaa !105
  %600 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %598, i32 noundef %599)
  %601 = load ptr, ptr %600, align 8, !tbaa !5
  store ptr %601, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  store i32 0, ptr %39, align 4, !tbaa !105
  br label %602

602:                                              ; preds = %633, %596
  %603 = load i32, ptr %39, align 4, !tbaa !105
  %604 = icmp slt i32 %603, 2
  br i1 %604, label %606, label %605

605:                                              ; preds = %602
  store i32 23, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %636

606:                                              ; preds = %602
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  store i32 0, ptr %40, align 4, !tbaa !105
  br label %607

607:                                              ; preds = %629, %606
  %608 = load i32, ptr %40, align 4, !tbaa !105
  %609 = load ptr, ptr %38, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.ImGuiViewportP, ptr %609, i32 0, i32 4
  %611 = getelementptr inbounds %struct.ImDrawDataBuilder, ptr %610, i32 0, i32 0
  %612 = load i32, ptr %39, align 4, !tbaa !105
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds [2 x %struct.ImVector.45], ptr %611, i64 0, i64 %613
  %615 = getelementptr inbounds %struct.ImVector.45, ptr %614, i32 0, i32 0
  %616 = load i32, ptr %615, align 8, !tbaa !138
  %617 = icmp slt i32 %608, %616
  br i1 %617, label %619, label %618

618:                                              ; preds = %607
  store i32 26, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %632

619:                                              ; preds = %607
  %620 = load ptr, ptr %38, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.ImGuiViewportP, ptr %620, i32 0, i32 4
  %622 = getelementptr inbounds %struct.ImDrawDataBuilder, ptr %621, i32 0, i32 0
  %623 = load i32, ptr %39, align 4, !tbaa !105
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds [2 x %struct.ImVector.45], ptr %622, i64 0, i64 %624
  %626 = load i32, ptr %40, align 4, !tbaa !105
  %627 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %625, i32 noundef %626)
  %628 = load ptr, ptr %627, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %628, ptr noundef @.str.374)
  br label %629

629:                                              ; preds = %619
  %630 = load i32, ptr %40, align 4, !tbaa !105
  %631 = add nsw i32 %630, 1
  store i32 %631, ptr %40, align 4, !tbaa !105
  br label %607, !llvm.loop !140

632:                                              ; preds = %618
  br label %633

633:                                              ; preds = %632
  %634 = load i32, ptr %39, align 4, !tbaa !105
  %635 = add nsw i32 %634, 1
  store i32 %635, ptr %39, align 4, !tbaa !105
  br label %602, !llvm.loop !141

636:                                              ; preds = %605
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  br label %637

637:                                              ; preds = %636
  %638 = load i32, ptr %37, align 4, !tbaa !105
  %639 = add nsw i32 %638, 1
  store i32 %639, ptr %37, align 4, !tbaa !105
  br label %588, !llvm.loop !142

640:                                              ; preds = %595
  call void @_ZN5ImGui7TreePopEv()
  br label %641

641:                                              ; preds = %640, %578
  %642 = load ptr, ptr %3, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.ImGuiContext, ptr %642, i32 0, i32 83
  %644 = getelementptr inbounds %struct.ImVector.13, ptr %643, i32 0, i32 0
  %645 = load i32, ptr %644, align 8, !tbaa !136
  %646 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.375, ptr noundef @.str.376, i32 noundef %645)
  br i1 %646, label %647, label %668

647:                                              ; preds = %641
  %648 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %648)
  call void @_ZL25RenderViewportsThumbnailsv()
  %649 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %649)
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  store i32 0, ptr %41, align 4, !tbaa !105
  br label %650

650:                                              ; preds = %664, %647
  %651 = load i32, ptr %41, align 4, !tbaa !105
  %652 = load ptr, ptr %3, align 8, !tbaa !5
  %653 = getelementptr inbounds %struct.ImGuiContext, ptr %652, i32 0, i32 83
  %654 = getelementptr inbounds %struct.ImVector.13, ptr %653, i32 0, i32 0
  %655 = load i32, ptr %654, align 8, !tbaa !136
  %656 = icmp slt i32 %651, %655
  br i1 %656, label %658, label %657

657:                                              ; preds = %650
  store i32 29, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %667

658:                                              ; preds = %650
  %659 = load ptr, ptr %3, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.ImGuiContext, ptr %659, i32 0, i32 83
  %661 = load i32, ptr %41, align 4, !tbaa !105
  %662 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %660, i32 noundef %661)
  %663 = load ptr, ptr %662, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %663)
  br label %664

664:                                              ; preds = %658
  %665 = load i32, ptr %41, align 4, !tbaa !105
  %666 = add nsw i32 %665, 1
  store i32 %666, ptr %41, align 4, !tbaa !105
  br label %650, !llvm.loop !143

667:                                              ; preds = %657
  call void @_ZN5ImGui7TreePopEv()
  br label %668

668:                                              ; preds = %667, %641
  %669 = load ptr, ptr %3, align 8, !tbaa !5
  %670 = getelementptr inbounds %struct.ImGuiContext, ptr %669, i32 0, i32 80
  %671 = getelementptr inbounds %struct.ImVector.12, ptr %670, i32 0, i32 0
  %672 = load i32, ptr %671, align 8, !tbaa !144
  %673 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.377, ptr noundef @.str.378, i32 noundef %672)
  br i1 %673, label %674, label %760

674:                                              ; preds = %668
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  store i32 0, ptr %42, align 4, !tbaa !105
  br label %675

675:                                              ; preds = %756, %674
  %676 = load i32, ptr %42, align 4, !tbaa !105
  %677 = load ptr, ptr %3, align 8, !tbaa !5
  %678 = getelementptr inbounds %struct.ImGuiContext, ptr %677, i32 0, i32 80
  %679 = getelementptr inbounds %struct.ImVector.12, ptr %678, i32 0, i32 0
  %680 = load i32, ptr %679, align 8, !tbaa !144
  %681 = icmp slt i32 %676, %680
  br i1 %681, label %683, label %682

682:                                              ; preds = %675
  store i32 32, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %759

683:                                              ; preds = %675
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  %684 = load ptr, ptr %3, align 8, !tbaa !5
  %685 = getelementptr inbounds %struct.ImGuiContext, ptr %684, i32 0, i32 80
  %686 = load i32, ptr %42, align 4, !tbaa !105
  %687 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %685, i32 noundef %686)
  store ptr %687, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  %688 = load ptr, ptr %43, align 8, !tbaa !5
  %689 = getelementptr inbounds %struct.ImGuiPopupData, ptr %688, i32 0, i32 2
  %690 = load ptr, ptr %689, align 8, !tbaa !145
  store ptr %690, ptr %44, align 8, !tbaa !5
  %691 = load ptr, ptr %43, align 8, !tbaa !5
  %692 = getelementptr inbounds %struct.ImGuiPopupData, ptr %691, i32 0, i32 0
  %693 = load i32, ptr %692, align 8, !tbaa !147
  %694 = load ptr, ptr %44, align 8, !tbaa !5
  %695 = icmp ne ptr %694, null
  br i1 %695, label %696, label %700

696:                                              ; preds = %683
  %697 = load ptr, ptr %44, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.ImGuiWindow, ptr %697, i32 0, i32 1
  %699 = load ptr, ptr %698, align 8, !tbaa !104
  br label %701

700:                                              ; preds = %683
  br label %701

701:                                              ; preds = %700, %696
  %702 = phi ptr [ %699, %696 ], [ @.str.380, %700 ]
  %703 = load ptr, ptr %44, align 8, !tbaa !5
  %704 = icmp ne ptr %703, null
  br i1 %704, label %705, label %711

705:                                              ; preds = %701
  %706 = load ptr, ptr %44, align 8, !tbaa !5
  %707 = getelementptr inbounds %struct.ImGuiWindow, ptr %706, i32 0, i32 3
  %708 = load i32, ptr %707, align 4, !tbaa !148
  %709 = and i32 %708, 16777216
  %710 = icmp ne i32 %709, 0
  br label %711

711:                                              ; preds = %705, %701
  %712 = phi i1 [ false, %701 ], [ %710, %705 ]
  %713 = zext i1 %712 to i64
  %714 = select i1 %712, ptr @.str.381, ptr @.str.16
  %715 = load ptr, ptr %44, align 8, !tbaa !5
  %716 = icmp ne ptr %715, null
  br i1 %716, label %717, label %723

717:                                              ; preds = %711
  %718 = load ptr, ptr %44, align 8, !tbaa !5
  %719 = getelementptr inbounds %struct.ImGuiWindow, ptr %718, i32 0, i32 3
  %720 = load i32, ptr %719, align 4, !tbaa !148
  %721 = and i32 %720, 268435456
  %722 = icmp ne i32 %721, 0
  br label %723

723:                                              ; preds = %717, %711
  %724 = phi i1 [ false, %711 ], [ %722, %717 ]
  %725 = zext i1 %724 to i64
  %726 = select i1 %724, ptr @.str.382, ptr @.str.16
  %727 = load ptr, ptr %43, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.ImGuiPopupData, ptr %727, i32 0, i32 3
  %729 = load ptr, ptr %728, align 8, !tbaa !149
  %730 = icmp ne ptr %729, null
  br i1 %730, label %731, label %737

731:                                              ; preds = %723
  %732 = load ptr, ptr %43, align 8, !tbaa !5
  %733 = getelementptr inbounds %struct.ImGuiPopupData, ptr %732, i32 0, i32 3
  %734 = load ptr, ptr %733, align 8, !tbaa !149
  %735 = getelementptr inbounds %struct.ImGuiWindow, ptr %734, i32 0, i32 1
  %736 = load ptr, ptr %735, align 8, !tbaa !104
  br label %738

737:                                              ; preds = %723
  br label %738

738:                                              ; preds = %737, %731
  %739 = phi ptr [ %736, %731 ], [ @.str.380, %737 ]
  %740 = load ptr, ptr %44, align 8, !tbaa !5
  %741 = icmp ne ptr %740, null
  br i1 %741, label %742, label %753

742:                                              ; preds = %738
  %743 = load ptr, ptr %44, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.ImGuiWindow, ptr %743, i32 0, i32 82
  %745 = load ptr, ptr %744, align 8, !tbaa !150
  %746 = icmp ne ptr %745, null
  br i1 %746, label %747, label %753

747:                                              ; preds = %742
  %748 = load ptr, ptr %44, align 8, !tbaa !5
  %749 = getelementptr inbounds %struct.ImGuiWindow, ptr %748, i32 0, i32 82
  %750 = load ptr, ptr %749, align 8, !tbaa !150
  %751 = getelementptr inbounds %struct.ImGuiWindow, ptr %750, i32 0, i32 1
  %752 = load ptr, ptr %751, align 8, !tbaa !104
  br label %754

753:                                              ; preds = %742, %738
  br label %754

754:                                              ; preds = %753, %747
  %755 = phi ptr [ %752, %747 ], [ @.str.380, %753 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.379, i32 noundef %693, ptr noundef %702, ptr noundef %714, ptr noundef %726, ptr noundef %739, ptr noundef %755)
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  br label %756

756:                                              ; preds = %754
  %757 = load i32, ptr %42, align 4, !tbaa !105
  %758 = add nsw i32 %757, 1
  store i32 %758, ptr %42, align 4, !tbaa !105
  br label %675, !llvm.loop !151

759:                                              ; preds = %682
  call void @_ZN5ImGui7TreePopEv()
  br label %760

760:                                              ; preds = %759, %668
  %761 = load ptr, ptr %3, align 8, !tbaa !5
  %762 = getelementptr inbounds %struct.ImGuiContext, ptr %761, i32 0, i32 164
  %763 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %762)
  %764 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.383, ptr noundef @.str.384, i32 noundef %763)
  br i1 %764, label %765, label %788

765:                                              ; preds = %760
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  store i32 0, ptr %45, align 4, !tbaa !105
  br label %766

766:                                              ; preds = %784, %765
  %767 = load i32, ptr %45, align 4, !tbaa !105
  %768 = load ptr, ptr %3, align 8, !tbaa !5
  %769 = getelementptr inbounds %struct.ImGuiContext, ptr %768, i32 0, i32 164
  %770 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %769)
  %771 = icmp slt i32 %767, %770
  br i1 %771, label %773, label %772

772:                                              ; preds = %766
  store i32 35, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %787

773:                                              ; preds = %766
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #9
  %774 = load ptr, ptr %3, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct.ImGuiContext, ptr %774, i32 0, i32 164
  %776 = load i32, ptr %45, align 4, !tbaa !105
  %777 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %775, i32 noundef %776)
  store ptr %777, ptr %46, align 8, !tbaa !5
  %778 = load ptr, ptr %46, align 8, !tbaa !5
  %779 = icmp ne ptr %778, null
  br i1 %779, label %780, label %783

780:                                              ; preds = %773
  %781 = load ptr, ptr %46, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef %781)
  %782 = load ptr, ptr %46, align 8, !tbaa !5
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef %782, ptr noundef @.str.385)
  call void @_ZN5ImGui5PopIDEv()
  br label %783

783:                                              ; preds = %780, %773
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  br label %784

784:                                              ; preds = %783
  %785 = load i32, ptr %45, align 4, !tbaa !105
  %786 = add nsw i32 %785, 1
  store i32 %786, ptr %45, align 4, !tbaa !105
  br label %766, !llvm.loop !152

787:                                              ; preds = %772
  call void @_ZN5ImGui7TreePopEv()
  br label %788

788:                                              ; preds = %787, %760
  %789 = load ptr, ptr %3, align 8, !tbaa !5
  %790 = getelementptr inbounds %struct.ImGuiContext, ptr %789, i32 0, i32 160
  %791 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %790)
  %792 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.386, ptr noundef @.str.387, i32 noundef %791)
  br i1 %792, label %793, label %815

793:                                              ; preds = %788
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  store i32 0, ptr %47, align 4, !tbaa !105
  br label %794

794:                                              ; preds = %811, %793
  %795 = load i32, ptr %47, align 4, !tbaa !105
  %796 = load ptr, ptr %3, align 8, !tbaa !5
  %797 = getelementptr inbounds %struct.ImGuiContext, ptr %796, i32 0, i32 160
  %798 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %797)
  %799 = icmp slt i32 %795, %798
  br i1 %799, label %801, label %800

800:                                              ; preds = %794
  store i32 38, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %814

801:                                              ; preds = %794
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  %802 = load ptr, ptr %3, align 8, !tbaa !5
  %803 = getelementptr inbounds %struct.ImGuiContext, ptr %802, i32 0, i32 160
  %804 = load i32, ptr %47, align 4, !tbaa !105
  %805 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %803, i32 noundef %804)
  store ptr %805, ptr %48, align 8, !tbaa !5
  %806 = load ptr, ptr %48, align 8, !tbaa !5
  %807 = icmp ne ptr %806, null
  br i1 %807, label %808, label %810

808:                                              ; preds = %801
  %809 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef %809)
  br label %810

810:                                              ; preds = %808, %801
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  br label %811

811:                                              ; preds = %810
  %812 = load i32, ptr %47, align 4, !tbaa !105
  %813 = add nsw i32 %812, 1
  store i32 %813, ptr %47, align 4, !tbaa !105
  br label %794, !llvm.loop !153

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

815:                                              ; preds = %814, %788
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %816 = load ptr, ptr %3, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.ImGuiContext, ptr %816, i32 0, i32 2
  %818 = getelementptr inbounds %struct.ImGuiIO, ptr %817, i32 0, i32 15
  %819 = load ptr, ptr %818, align 8, !tbaa !154
  store ptr %819, ptr %49, align 8, !tbaa !5
  %820 = load ptr, ptr %49, align 8, !tbaa !5
  %821 = getelementptr inbounds %struct.ImFontAtlas, ptr %820, i32 0, i32 17
  %822 = getelementptr inbounds %struct.ImVector.8, ptr %821, i32 0, i32 0
  %823 = load i32, ptr %822, align 8, !tbaa !155
  %824 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.388, ptr noundef @.str.389, i32 noundef %823)
  br i1 %824, label %825, label %827

825:                                              ; preds = %815
  %826 = load ptr, ptr %49, align 8, !tbaa !5
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef %826)
  call void @_ZN5ImGui7TreePopEv()
  br label %827

827:                                              ; preds = %825, %815
  %828 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.390)
  br i1 %828, label %829, label %832

829:                                              ; preds = %827
  %830 = load ptr, ptr %3, align 8, !tbaa !5
  %831 = getelementptr inbounds %struct.ImGuiContext, ptr %830, i32 0, i32 172
  call void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef %831)
  call void @_ZN5ImGui7TreePopEv()
  br label %832

832:                                              ; preds = %829, %827
  %833 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.391)
  br i1 %833, label %834, label %951

834:                                              ; preds = %832
  %835 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.392)
  br i1 %835, label %836, label %837

836:                                              ; preds = %834
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %837

837:                                              ; preds = %836, %834
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %838 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.393)
  br i1 %838, label %839, label %841

839:                                              ; preds = %837
  %840 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %841

841:                                              ; preds = %839, %837
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %842 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.394)
  br i1 %842, label %843, label %848

843:                                              ; preds = %841
  %844 = load ptr, ptr %3, align 8, !tbaa !5
  %845 = getelementptr inbounds %struct.ImGuiContext, ptr %844, i32 0, i32 2
  %846 = getelementptr inbounds %struct.ImGuiIO, ptr %845, i32 0, i32 5
  %847 = load ptr, ptr %846, align 8, !tbaa !159
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %847)
  br label %848

848:                                              ; preds = %843, %841
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %849 = load ptr, ptr %3, align 8, !tbaa !5
  %850 = getelementptr inbounds %struct.ImGuiContext, ptr %849, i32 0, i32 2
  %851 = getelementptr inbounds %struct.ImGuiIO, ptr %850, i32 0, i32 5
  %852 = load ptr, ptr %851, align 8, !tbaa !159
  %853 = icmp ne ptr %852, null
  br i1 %853, label %854, label %859

854:                                              ; preds = %848
  %855 = load ptr, ptr %3, align 8, !tbaa !5
  %856 = getelementptr inbounds %struct.ImGuiContext, ptr %855, i32 0, i32 2
  %857 = getelementptr inbounds %struct.ImGuiIO, ptr %856, i32 0, i32 5
  %858 = load ptr, ptr %857, align 8, !tbaa !159
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.395, ptr noundef %858)
  br label %860

859:                                              ; preds = %848
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef @.str.243, ptr noundef null)
  br label %860

860:                                              ; preds = %859, %854
  %861 = load ptr, ptr %3, align 8, !tbaa !5
  %862 = getelementptr inbounds %struct.ImGuiContext, ptr %861, i32 0, i32 199
  %863 = load float, ptr %862, align 4, !tbaa !160
  %864 = fpext float %863 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.396, double noundef %864)
  %865 = load ptr, ptr %3, align 8, !tbaa !5
  %866 = getelementptr inbounds %struct.ImGuiContext, ptr %865, i32 0, i32 201
  %867 = getelementptr inbounds %struct.ImVector.26, ptr %866, i32 0, i32 0
  %868 = load i32, ptr %867, align 8, !tbaa !161
  %869 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.397, ptr noundef @.str.398, i32 noundef %868)
  br i1 %869, label %870, label %890

870:                                              ; preds = %860
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  store i32 0, ptr %50, align 4, !tbaa !105
  br label %871

871:                                              ; preds = %886, %870
  %872 = load i32, ptr %50, align 4, !tbaa !105
  %873 = load ptr, ptr %3, align 8, !tbaa !5
  %874 = getelementptr inbounds %struct.ImGuiContext, ptr %873, i32 0, i32 201
  %875 = getelementptr inbounds %struct.ImVector.26, ptr %874, i32 0, i32 0
  %876 = load i32, ptr %875, align 8, !tbaa !161
  %877 = icmp slt i32 %872, %876
  br i1 %877, label %879, label %878

878:                                              ; preds = %871
  store i32 41, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %889

879:                                              ; preds = %871
  %880 = load ptr, ptr %3, align 8, !tbaa !5
  %881 = getelementptr inbounds %struct.ImGuiContext, ptr %880, i32 0, i32 201
  %882 = load i32, ptr %50, align 4, !tbaa !105
  %883 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %881, i32 noundef %882)
  %884 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %883, i32 0, i32 0
  %885 = load ptr, ptr %884, align 8, !tbaa !162
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.399, ptr noundef %885)
  br label %886

886:                                              ; preds = %879
  %887 = load i32, ptr %50, align 4, !tbaa !105
  %888 = add nsw i32 %887, 1
  store i32 %888, ptr %50, align 4, !tbaa !105
  br label %871, !llvm.loop !164

889:                                              ; preds = %878
  call void @_ZN5ImGui7TreePopEv()
  br label %890

890:                                              ; preds = %889, %860
  %891 = load ptr, ptr %3, align 8, !tbaa !5
  %892 = getelementptr inbounds %struct.ImGuiContext, ptr %891, i32 0, i32 202
  %893 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %892)
  %894 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.400, ptr noundef @.str.401, i32 noundef %893)
  br i1 %894, label %895, label %911

895:                                              ; preds = %890
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  %896 = load ptr, ptr %3, align 8, !tbaa !5
  %897 = getelementptr inbounds %struct.ImGuiContext, ptr %896, i32 0, i32 202
  %898 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %897)
  store ptr %898, ptr %51, align 8, !tbaa !5
  br label %899

899:                                              ; preds = %905, %895
  %900 = load ptr, ptr %51, align 8, !tbaa !5
  %901 = icmp ne ptr %900, null
  br i1 %901, label %903, label %902

902:                                              ; preds = %899
  store i32 44, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  br label %910

903:                                              ; preds = %899
  %904 = load ptr, ptr %51, align 8, !tbaa !5
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef %904)
  br label %905

905:                                              ; preds = %903
  %906 = load ptr, ptr %3, align 8, !tbaa !5
  %907 = getelementptr inbounds %struct.ImGuiContext, ptr %906, i32 0, i32 202
  %908 = load ptr, ptr %51, align 8, !tbaa !5
  %909 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %907, ptr noundef %908)
  store ptr %909, ptr %51, align 8, !tbaa !5
  br label %899, !llvm.loop !165

910:                                              ; preds = %902
  call void @_ZN5ImGui7TreePopEv()
  br label %911

911:                                              ; preds = %910, %890
  %912 = load ptr, ptr %3, align 8, !tbaa !5
  %913 = getelementptr inbounds %struct.ImGuiContext, ptr %912, i32 0, i32 203
  %914 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %913)
  %915 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.402, ptr noundef @.str.403, i32 noundef %914)
  br i1 %915, label %916, label %932

916:                                              ; preds = %911
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  %917 = load ptr, ptr %3, align 8, !tbaa !5
  %918 = getelementptr inbounds %struct.ImGuiContext, ptr %917, i32 0, i32 203
  %919 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %918)
  store ptr %919, ptr %52, align 8, !tbaa !5
  br label %920

920:                                              ; preds = %926, %916
  %921 = load ptr, ptr %52, align 8, !tbaa !5
  %922 = icmp ne ptr %921, null
  br i1 %922, label %924, label %923

923:                                              ; preds = %920
  store i32 47, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  br label %931

924:                                              ; preds = %920
  %925 = load ptr, ptr %52, align 8, !tbaa !5
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef %925)
  br label %926

926:                                              ; preds = %924
  %927 = load ptr, ptr %3, align 8, !tbaa !5
  %928 = getelementptr inbounds %struct.ImGuiContext, ptr %927, i32 0, i32 203
  %929 = load ptr, ptr %52, align 8, !tbaa !5
  %930 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %928, ptr noundef %929)
  store ptr %930, ptr %52, align 8, !tbaa !5
  br label %920, !llvm.loop !166

931:                                              ; preds = %923
  call void @_ZN5ImGui7TreePopEv()
  br label %932

932:                                              ; preds = %931, %911
  %933 = load ptr, ptr %3, align 8, !tbaa !5
  %934 = getelementptr inbounds %struct.ImGuiContext, ptr %933, i32 0, i32 200
  %935 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %934)
  %936 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.404, ptr noundef @.str.405, i32 noundef %935)
  br i1 %936, label %937, label %950

937:                                              ; preds = %932
  %938 = load ptr, ptr %3, align 8, !tbaa !5
  %939 = getelementptr inbounds %struct.ImGuiContext, ptr %938, i32 0, i32 200
  %940 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %939)
  %941 = load ptr, ptr %3, align 8, !tbaa !5
  %942 = getelementptr inbounds %struct.ImGuiContext, ptr %941, i32 0, i32 200
  %943 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %942, i32 0, i32 0
  %944 = getelementptr inbounds %struct.ImVector.24, ptr %943, i32 0, i32 0
  %945 = load i32, ptr %944, align 8, !tbaa !167
  %946 = sext i32 %945 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %947 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %948 = fmul float %947, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %53, float noundef 0xB810000000000000, float noundef %948)
  %949 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.406, ptr noundef %940, i64 noundef %946, ptr noundef nonnull align 4 dereferenceable(8) %53, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  call void @_ZN5ImGui7TreePopEv()
  br label %950

950:                                              ; preds = %937, %932
  call void @_ZN5ImGui7TreePopEv()
  br label %951

951:                                              ; preds = %950, %832
  %952 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.407)
  br i1 %952, label %953, label %1336

953:                                              ; preds = %951
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.408)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.409)
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  store i32 0, ptr %54, align 4, !tbaa !168
  br label %954

954:                                              ; preds = %978, %953
  %955 = load i32, ptr %54, align 4, !tbaa !168
  %956 = icmp slt i32 %955, 652
  br i1 %956, label %958, label %957

957:                                              ; preds = %954
  store i32 50, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %981

958:                                              ; preds = %954
  %959 = load i32, ptr %54, align 4, !tbaa !168
  %960 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %959)
  br i1 %960, label %964, label %961

961:                                              ; preds = %958
  %962 = load i32, ptr %54, align 4, !tbaa !168
  %963 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %962)
  br i1 %963, label %965, label %964

964:                                              ; preds = %961, %958
  br label %978

965:                                              ; preds = %961
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %966 = load i32, ptr %54, align 4, !tbaa !168
  %967 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %966)
  %968 = zext i1 %967 to i64
  %969 = select i1 %967, ptr @.str.395, ptr @.str.410
  %970 = load i32, ptr %54, align 4, !tbaa !168
  %971 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %970)
  %972 = load i32, ptr %54, align 4, !tbaa !168
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %969, ptr noundef %971, i32 noundef %972)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %973 = load i32, ptr %54, align 4, !tbaa !168
  %974 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %973)
  %975 = getelementptr inbounds %struct.ImGuiKeyData, ptr %974, i32 0, i32 1
  %976 = load float, ptr %975, align 4, !tbaa !170
  %977 = fpext float %976 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.411, double noundef %977)
  br label %978

978:                                              ; preds = %965, %964
  %979 = load i32, ptr %54, align 4, !tbaa !168
  %980 = add nsw i32 %979, 1
  store i32 %980, ptr %54, align 4, !tbaa !168
  br label %954, !llvm.loop !172

981:                                              ; preds = %957
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.412)
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  store i32 0, ptr %55, align 4, !tbaa !168
  br label %982

982:                                              ; preds = %1001, %981
  %983 = load i32, ptr %55, align 4, !tbaa !168
  %984 = icmp slt i32 %983, 652
  br i1 %984, label %986, label %985

985:                                              ; preds = %982
  store i32 53, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %1004

986:                                              ; preds = %982
  %987 = load i32, ptr %55, align 4, !tbaa !168
  %988 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %987)
  br i1 %988, label %992, label %989

989:                                              ; preds = %986
  %990 = load i32, ptr %55, align 4, !tbaa !168
  %991 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %990, i1 noundef zeroext true)
  br i1 %991, label %993, label %992

992:                                              ; preds = %989, %986
  br label %1001

993:                                              ; preds = %989
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %994 = load i32, ptr %55, align 4, !tbaa !168
  %995 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %994)
  %996 = zext i1 %995 to i64
  %997 = select i1 %995, ptr @.str.395, ptr @.str.410
  %998 = load i32, ptr %55, align 4, !tbaa !168
  %999 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %998)
  %1000 = load i32, ptr %55, align 4, !tbaa !168
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %997, ptr noundef %999, i32 noundef %1000)
  br label %1001

1001:                                             ; preds = %993, %992
  %1002 = load i32, ptr %55, align 4, !tbaa !168
  %1003 = add nsw i32 %1002, 1
  store i32 %1003, ptr %55, align 4, !tbaa !168
  br label %982, !llvm.loop !173

1004:                                             ; preds = %985
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.413)
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  store i32 0, ptr %56, align 4, !tbaa !168
  br label %1005

1005:                                             ; preds = %1024, %1004
  %1006 = load i32, ptr %56, align 4, !tbaa !168
  %1007 = icmp slt i32 %1006, 652
  br i1 %1007, label %1009, label %1008

1008:                                             ; preds = %1005
  store i32 56, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %1027

1009:                                             ; preds = %1005
  %1010 = load i32, ptr %56, align 4, !tbaa !168
  %1011 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1010)
  br i1 %1011, label %1015, label %1012

1012:                                             ; preds = %1009
  %1013 = load i32, ptr %56, align 4, !tbaa !168
  %1014 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %1013)
  br i1 %1014, label %1016, label %1015

1015:                                             ; preds = %1012, %1009
  br label %1024

1016:                                             ; preds = %1012
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1017 = load i32, ptr %56, align 4, !tbaa !168
  %1018 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1017)
  %1019 = zext i1 %1018 to i64
  %1020 = select i1 %1018, ptr @.str.395, ptr @.str.410
  %1021 = load i32, ptr %56, align 4, !tbaa !168
  %1022 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1021)
  %1023 = load i32, ptr %56, align 4, !tbaa !168
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1020, ptr noundef %1022, i32 noundef %1023)
  br label %1024

1024:                                             ; preds = %1016, %1015
  %1025 = load i32, ptr %56, align 4, !tbaa !168
  %1026 = add nsw i32 %1025, 1
  store i32 %1026, ptr %56, align 4, !tbaa !168
  br label %1005, !llvm.loop !174

1027:                                             ; preds = %1008
  %1028 = load ptr, ptr %4, align 8, !tbaa !5
  %1029 = getelementptr inbounds %struct.ImGuiIO, ptr %1028, i32 0, i32 63
  %1030 = load i8, ptr %1029, align 8, !tbaa !175, !range !13, !noundef !14
  %1031 = trunc i8 %1030 to i1
  %1032 = zext i1 %1031 to i64
  %1033 = select i1 %1031, ptr @.str.415, ptr @.str.16
  %1034 = load ptr, ptr %4, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.ImGuiIO, ptr %1034, i32 0, i32 64
  %1036 = load i8, ptr %1035, align 1, !tbaa !176, !range !13, !noundef !14
  %1037 = trunc i8 %1036 to i1
  %1038 = zext i1 %1037 to i64
  %1039 = select i1 %1037, ptr @.str.416, ptr @.str.16
  %1040 = load ptr, ptr %4, align 8, !tbaa !5
  %1041 = getelementptr inbounds %struct.ImGuiIO, ptr %1040, i32 0, i32 65
  %1042 = load i8, ptr %1041, align 2, !tbaa !177, !range !13, !noundef !14
  %1043 = trunc i8 %1042 to i1
  %1044 = zext i1 %1043 to i64
  %1045 = select i1 %1043, ptr @.str.417, ptr @.str.16
  %1046 = load ptr, ptr %4, align 8, !tbaa !5
  %1047 = getelementptr inbounds %struct.ImGuiIO, ptr %1046, i32 0, i32 66
  %1048 = load i8, ptr %1047, align 1, !tbaa !178, !range !13, !noundef !14
  %1049 = trunc i8 %1048 to i1
  %1050 = zext i1 %1049 to i64
  %1051 = select i1 %1049, ptr @.str.418, ptr @.str.16
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.414, ptr noundef %1033, ptr noundef %1039, ptr noundef %1045, ptr noundef %1051)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.419)
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  store i32 0, ptr %57, align 4, !tbaa !105
  br label %1052

1052:                                             ; preds = %1082, %1027
  %1053 = load i32, ptr %57, align 4, !tbaa !105
  %1054 = load ptr, ptr %4, align 8, !tbaa !5
  %1055 = getelementptr inbounds %struct.ImGuiIO, ptr %1054, i32 0, i32 89
  %1056 = getelementptr inbounds %struct.ImVector, ptr %1055, i32 0, i32 0
  %1057 = load i32, ptr %1056, align 8, !tbaa !179
  %1058 = icmp slt i32 %1053, %1057
  br i1 %1058, label %1060, label %1059

1059:                                             ; preds = %1052
  store i32 59, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %1085

1060:                                             ; preds = %1052
  call void @llvm.lifetime.start.p0(i64 2, ptr %58) #9
  %1061 = load ptr, ptr %4, align 8, !tbaa !5
  %1062 = getelementptr inbounds %struct.ImGuiIO, ptr %1061, i32 0, i32 89
  %1063 = load i32, ptr %57, align 4, !tbaa !105
  %1064 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1062, i32 noundef %1063)
  %1065 = load i16, ptr %1064, align 2, !tbaa !180
  store i16 %1065, ptr %58, align 2, !tbaa !180
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1066 = load i16, ptr %58, align 2, !tbaa !180
  %1067 = zext i16 %1066 to i32
  %1068 = icmp sgt i32 %1067, 32
  br i1 %1068, label %1069, label %1076

1069:                                             ; preds = %1060
  %1070 = load i16, ptr %58, align 2, !tbaa !180
  %1071 = zext i16 %1070 to i32
  %1072 = icmp sle i32 %1071, 255
  br i1 %1072, label %1073, label %1076

1073:                                             ; preds = %1069
  %1074 = load i16, ptr %58, align 2, !tbaa !180
  %1075 = trunc i16 %1074 to i8
  br label %1077

1076:                                             ; preds = %1069, %1060
  br label %1077

1077:                                             ; preds = %1076, %1073
  %1078 = phi i8 [ %1075, %1073 ], [ 63, %1076 ]
  %1079 = sext i8 %1078 to i32
  %1080 = load i16, ptr %58, align 2, !tbaa !180
  %1081 = zext i16 %1080 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.420, i32 noundef %1079, i32 noundef %1081)
  call void @llvm.lifetime.end.p0(i64 2, ptr %58) #9
  br label %1082

1082:                                             ; preds = %1077
  %1083 = load i32, ptr %57, align 4, !tbaa !105
  %1084 = add nsw i32 %1083, 1
  store i32 %1084, ptr %57, align 4, !tbaa !105
  br label %1052, !llvm.loop !181

1085:                                             ; preds = %1059
  %1086 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %1086)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.421)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1087 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %1087, label %1088, label %1099

1088:                                             ; preds = %1085
  %1089 = load ptr, ptr %4, align 8, !tbaa !5
  %1090 = getelementptr inbounds %struct.ImGuiIO, ptr %1089, i32 0, i32 59
  %1091 = getelementptr inbounds %struct.ImVec2, ptr %1090, i32 0, i32 0
  %1092 = load float, ptr %1091, align 8, !tbaa !182
  %1093 = fpext float %1092 to double
  %1094 = load ptr, ptr %4, align 8, !tbaa !5
  %1095 = getelementptr inbounds %struct.ImGuiIO, ptr %1094, i32 0, i32 59
  %1096 = getelementptr inbounds %struct.ImVec2, ptr %1095, i32 0, i32 1
  %1097 = load float, ptr %1096, align 4, !tbaa !183
  %1098 = fpext float %1097 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.422, double noundef %1093, double noundef %1098)
  br label %1100

1099:                                             ; preds = %1085
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.423)
  br label %1100

1100:                                             ; preds = %1099, %1088
  %1101 = load ptr, ptr %4, align 8, !tbaa !5
  %1102 = getelementptr inbounds %struct.ImGuiIO, ptr %1101, i32 0, i32 54
  %1103 = getelementptr inbounds %struct.ImVec2, ptr %1102, i32 0, i32 0
  %1104 = load float, ptr %1103, align 8, !tbaa !184
  %1105 = fpext float %1104 to double
  %1106 = load ptr, ptr %4, align 8, !tbaa !5
  %1107 = getelementptr inbounds %struct.ImGuiIO, ptr %1106, i32 0, i32 54
  %1108 = getelementptr inbounds %struct.ImVec2, ptr %1107, i32 0, i32 1
  %1109 = load float, ptr %1108, align 4, !tbaa !185
  %1110 = fpext float %1109 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.424, double noundef %1105, double noundef %1110)
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #9
  store i32 5, ptr %59, align 4, !tbaa !105
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.425)
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  store i32 0, ptr %60, align 4, !tbaa !105
  br label %1111

1111:                                             ; preds = %1129, %1100
  %1112 = load i32, ptr %60, align 4, !tbaa !105
  %1113 = load i32, ptr %59, align 4, !tbaa !105
  %1114 = icmp slt i32 %1112, %1113
  br i1 %1114, label %1116, label %1115

1115:                                             ; preds = %1111
  store i32 62, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %1132

1116:                                             ; preds = %1111
  %1117 = load i32, ptr %60, align 4, !tbaa !105
  %1118 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef %1117)
  br i1 %1118, label %1119, label %1128

1119:                                             ; preds = %1116
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1120 = load i32, ptr %60, align 4, !tbaa !105
  %1121 = load ptr, ptr %4, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.ImGuiIO, ptr %1121, i32 0, i32 80
  %1123 = load i32, ptr %60, align 4, !tbaa !105
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds [5 x float], ptr %1122, i64 0, i64 %1124
  %1126 = load float, ptr %1125, align 4, !tbaa !186
  %1127 = fpext float %1126 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.426, i32 noundef %1120, double noundef %1127)
  br label %1128

1128:                                             ; preds = %1119, %1116
  br label %1129

1129:                                             ; preds = %1128
  %1130 = load i32, ptr %60, align 4, !tbaa !105
  %1131 = add nsw i32 %1130, 1
  store i32 %1131, ptr %60, align 4, !tbaa !105
  br label %1111, !llvm.loop !187

1132:                                             ; preds = %1115
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.427)
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  store i32 0, ptr %61, align 4, !tbaa !105
  br label %1133

1133:                                             ; preds = %1151, %1132
  %1134 = load i32, ptr %61, align 4, !tbaa !105
  %1135 = load i32, ptr %59, align 4, !tbaa !105
  %1136 = icmp slt i32 %1134, %1135
  br i1 %1136, label %1138, label %1137

1137:                                             ; preds = %1133
  store i32 65, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %1154

1138:                                             ; preds = %1133
  %1139 = load i32, ptr %61, align 4, !tbaa !105
  %1140 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef %1139, i1 noundef zeroext false)
  br i1 %1140, label %1141, label %1150

1141:                                             ; preds = %1138
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1142 = load i32, ptr %61, align 4, !tbaa !105
  %1143 = load ptr, ptr %4, align 8, !tbaa !5
  %1144 = getelementptr inbounds %struct.ImGuiIO, ptr %1143, i32 0, i32 75
  %1145 = load i32, ptr %61, align 4, !tbaa !105
  %1146 = sext i32 %1145 to i64
  %1147 = getelementptr inbounds [5 x i16], ptr %1144, i64 0, i64 %1146
  %1148 = load i16, ptr %1147, align 2, !tbaa !180
  %1149 = zext i16 %1148 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.428, i32 noundef %1142, i32 noundef %1149)
  br label %1150

1150:                                             ; preds = %1141, %1138
  br label %1151

1151:                                             ; preds = %1150
  %1152 = load i32, ptr %61, align 4, !tbaa !105
  %1153 = add nsw i32 %1152, 1
  store i32 %1153, ptr %61, align 4, !tbaa !105
  br label %1133, !llvm.loop !188

1154:                                             ; preds = %1137
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.429)
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  store i32 0, ptr %62, align 4, !tbaa !105
  br label %1155

1155:                                             ; preds = %1166, %1154
  %1156 = load i32, ptr %62, align 4, !tbaa !105
  %1157 = load i32, ptr %59, align 4, !tbaa !105
  %1158 = icmp slt i32 %1156, %1157
  br i1 %1158, label %1160, label %1159

1159:                                             ; preds = %1155
  store i32 68, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %1169

1160:                                             ; preds = %1155
  %1161 = load i32, ptr %62, align 4, !tbaa !105
  %1162 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef %1161)
  br i1 %1162, label %1163, label %1165

1163:                                             ; preds = %1160
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1164 = load i32, ptr %62, align 4, !tbaa !105
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.430, i32 noundef %1164)
  br label %1165

1165:                                             ; preds = %1163, %1160
  br label %1166

1166:                                             ; preds = %1165
  %1167 = load i32, ptr %62, align 4, !tbaa !105
  %1168 = add nsw i32 %1167, 1
  store i32 %1168, ptr %62, align 4, !tbaa !105
  br label %1155, !llvm.loop !189

1169:                                             ; preds = %1159
  %1170 = load ptr, ptr %4, align 8, !tbaa !5
  %1171 = getelementptr inbounds %struct.ImGuiIO, ptr %1170, i32 0, i32 61
  %1172 = load float, ptr %1171, align 8, !tbaa !190
  %1173 = fpext float %1172 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.431, double noundef %1173)
  %1174 = load ptr, ptr %4, align 8, !tbaa !5
  %1175 = getelementptr inbounds %struct.ImGuiIO, ptr %1174, i32 0, i32 83
  %1176 = load float, ptr %1175, align 4, !tbaa !191
  %1177 = fpext float %1176 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.432, double noundef %1177)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.433)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1178 = load ptr, ptr %3, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.ImGuiContext, ptr %1178, i32 0, i32 31
  %1180 = load ptr, ptr %1179, align 8, !tbaa !192
  %1181 = icmp ne ptr %1180, null
  br i1 %1181, label %1182, label %1188

1182:                                             ; preds = %1169
  %1183 = load ptr, ptr %3, align 8, !tbaa !5
  %1184 = getelementptr inbounds %struct.ImGuiContext, ptr %1183, i32 0, i32 31
  %1185 = load ptr, ptr %1184, align 8, !tbaa !192
  %1186 = getelementptr inbounds %struct.ImGuiWindow, ptr %1185, i32 0, i32 1
  %1187 = load ptr, ptr %1186, align 8, !tbaa !104
  br label %1189

1188:                                             ; preds = %1169
  br label %1189

1189:                                             ; preds = %1188, %1182
  %1190 = phi ptr [ %1187, %1182 ], [ @.str.380, %1188 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.434, ptr noundef %1190)
  %1191 = load ptr, ptr %3, align 8, !tbaa !5
  %1192 = getelementptr inbounds %struct.ImGuiContext, ptr %1191, i32 0, i32 34
  %1193 = load float, ptr %1192, align 4, !tbaa !193
  %1194 = fpext float %1193 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.435, double noundef %1194)
  %1195 = load ptr, ptr %3, align 8, !tbaa !5
  %1196 = getelementptr inbounds %struct.ImGuiContext, ptr %1195, i32 0, i32 36
  %1197 = getelementptr inbounds %struct.ImVec2, ptr %1196, i32 0, i32 0
  %1198 = load float, ptr %1197, align 8, !tbaa !194
  %1199 = fpext float %1198 to double
  %1200 = load ptr, ptr %3, align 8, !tbaa !5
  %1201 = getelementptr inbounds %struct.ImGuiContext, ptr %1200, i32 0, i32 36
  %1202 = getelementptr inbounds %struct.ImVec2, ptr %1201, i32 0, i32 1
  %1203 = load float, ptr %1202, align 4, !tbaa !195
  %1204 = fpext float %1203 to double
  %1205 = load ptr, ptr %3, align 8, !tbaa !5
  %1206 = getelementptr inbounds %struct.ImGuiContext, ptr %1205, i32 0, i32 36
  %1207 = getelementptr inbounds %struct.ImVec2, ptr %1206, i32 0, i32 0
  %1208 = load float, ptr %1207, align 8, !tbaa !194
  %1209 = load ptr, ptr %3, align 8, !tbaa !5
  %1210 = getelementptr inbounds %struct.ImGuiContext, ptr %1209, i32 0, i32 36
  %1211 = getelementptr inbounds %struct.ImVec2, ptr %1210, i32 0, i32 1
  %1212 = load float, ptr %1211, align 4, !tbaa !195
  %1213 = fcmp ogt float %1208, %1212
  br i1 %1213, label %1214, label %1215

1214:                                             ; preds = %1189
  br label %1227

1215:                                             ; preds = %1189
  %1216 = load ptr, ptr %3, align 8, !tbaa !5
  %1217 = getelementptr inbounds %struct.ImGuiContext, ptr %1216, i32 0, i32 36
  %1218 = getelementptr inbounds %struct.ImVec2, ptr %1217, i32 0, i32 0
  %1219 = load float, ptr %1218, align 8, !tbaa !194
  %1220 = load ptr, ptr %3, align 8, !tbaa !5
  %1221 = getelementptr inbounds %struct.ImGuiContext, ptr %1220, i32 0, i32 36
  %1222 = getelementptr inbounds %struct.ImVec2, ptr %1221, i32 0, i32 1
  %1223 = load float, ptr %1222, align 4, !tbaa !195
  %1224 = fcmp olt float %1219, %1223
  %1225 = zext i1 %1224 to i64
  %1226 = select i1 %1224, ptr @.str.437, ptr @.str.438
  br label %1227

1227:                                             ; preds = %1215, %1214
  %1228 = phi ptr [ @.str.305, %1214 ], [ %1226, %1215 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.436, double noundef %1199, double noundef %1204, ptr noundef %1228)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.439)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  %1229 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1230 = fmul float %1229, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef 0xB810000000000000, float noundef %1230)
  %1231 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef @.str.440, ptr noundef nonnull align 4 dereferenceable(8) %63)
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  br i1 %1231, label %1232, label %1275

1232:                                             ; preds = %1227
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  store i32 512, ptr %64, align 4, !tbaa !168
  br label %1233

1233:                                             ; preds = %1271, %1232
  %1234 = load i32, ptr %64, align 4, !tbaa !168
  %1235 = icmp slt i32 %1234, 652
  br i1 %1235, label %1237, label %1236

1236:                                             ; preds = %1233
  store i32 71, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %1274

1237:                                             ; preds = %1233
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %1238 = load i32, ptr %64, align 4, !tbaa !168
  %1239 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataE8ImGuiKey(i32 noundef %1238)
  store ptr %1239, ptr %65, align 8, !tbaa !5
  %1240 = load ptr, ptr %65, align 8, !tbaa !5
  %1241 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1240, i32 0, i32 0
  %1242 = load i32, ptr %1241, align 4, !tbaa !196
  %1243 = icmp eq i32 %1242, -1
  br i1 %1243, label %1244, label %1245

1244:                                             ; preds = %1237
  store i32 73, ptr %6, align 4
  br label %1268

1245:                                             ; preds = %1237
  %1246 = load i32, ptr %64, align 4, !tbaa !168
  %1247 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1246)
  %1248 = load ptr, ptr %65, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1248, i32 0, i32 0
  %1250 = load i32, ptr %1249, align 4, !tbaa !196
  %1251 = load ptr, ptr %65, align 8, !tbaa !5
  %1252 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1251, i32 0, i32 3
  %1253 = load i8, ptr %1252, align 1, !tbaa !198, !range !13, !noundef !14
  %1254 = trunc i8 %1253 to i1
  br i1 %1254, label %1255, label %1256

1255:                                             ; preds = %1245
  br label %1263

1256:                                             ; preds = %1245
  %1257 = load ptr, ptr %65, align 8, !tbaa !5
  %1258 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1257, i32 0, i32 2
  %1259 = load i8, ptr %1258, align 4, !tbaa !199, !range !13, !noundef !14
  %1260 = trunc i8 %1259 to i1
  %1261 = zext i1 %1260 to i64
  %1262 = select i1 %1260, ptr @.str.443, ptr @.str.16
  br label %1263

1263:                                             ; preds = %1256, %1255
  %1264 = phi ptr [ @.str.442, %1255 ], [ %1262, %1256 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.441, ptr noundef %1247, i32 noundef %1250, ptr noundef %1264)
  %1265 = load ptr, ptr %65, align 8, !tbaa !5
  %1266 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1265, i32 0, i32 0
  %1267 = load i32, ptr %1266, align 4, !tbaa !196
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1267)
  store i32 0, ptr %6, align 4
  br label %1268

1268:                                             ; preds = %1263, %1244
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  %1269 = load i32, ptr %6, align 4
  switch i32 %1269, label %1753 [
    i32 0, label %1270
    i32 73, label %1271
  ]

1270:                                             ; preds = %1268
  br label %1271

1271:                                             ; preds = %1270, %1268
  %1272 = load i32, ptr %64, align 4, !tbaa !168
  %1273 = add nsw i32 %1272, 1
  store i32 %1273, ptr %64, align 4, !tbaa !168
  br label %1233, !llvm.loop !200

1274:                                             ; preds = %1236
  call void @_ZN5ImGui10EndListBoxEv()
  br label %1275

1275:                                             ; preds = %1274, %1227
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.444)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  %1276 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1277 = fmul float %1276, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %66, float noundef 0xB810000000000000, float noundef %1277)
  %1278 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef @.str.445, ptr noundef nonnull align 4 dereferenceable(8) %66)
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  br i1 %1278, label %1279, label %1327

1279:                                             ; preds = %1275
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  store i32 512, ptr %67, align 4, !tbaa !168
  br label %1280

1280:                                             ; preds = %1323, %1279
  %1281 = load i32, ptr %67, align 4, !tbaa !168
  %1282 = icmp slt i32 %1281, 652
  br i1 %1282, label %1284, label %1283

1283:                                             ; preds = %1280
  store i32 74, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %1326

1284:                                             ; preds = %1280
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #9
  %1285 = load ptr, ptr %3, align 8, !tbaa !5
  %1286 = getelementptr inbounds %struct.ImGuiContext, ptr %1285, i32 0, i32 64
  store ptr %1286, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %69) #9
  %1287 = load ptr, ptr %68, align 8, !tbaa !5
  %1288 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1287, i32 0, i32 0
  %1289 = load i32, ptr %67, align 4, !tbaa !168
  %1290 = sub nsw i32 %1289, 512
  %1291 = sext i32 %1290 to i64
  %1292 = getelementptr inbounds [140 x i16], ptr %1288, i64 0, i64 %1291
  %1293 = load i16, ptr %1292, align 2, !tbaa !180
  store i16 %1293, ptr %69, align 2, !tbaa !180
  br label %1294

1294:                                             ; preds = %1299, %1284
  %1295 = load i16, ptr %69, align 2, !tbaa !180
  %1296 = sext i16 %1295 to i32
  %1297 = icmp ne i32 %1296, -1
  br i1 %1297, label %1299, label %1298

1298:                                             ; preds = %1294
  store i32 77, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %69) #9
  br label %1322

1299:                                             ; preds = %1294
  call void @llvm.lifetime.start.p0(i64 64, ptr %70) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  %1300 = load ptr, ptr %68, align 8, !tbaa !5
  %1301 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1300, i32 0, i32 1
  %1302 = load i16, ptr %69, align 2, !tbaa !180
  %1303 = sext i16 %1302 to i32
  %1304 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1301, i32 noundef %1303)
  store ptr %1304, ptr %71, align 8, !tbaa !5
  %1305 = load i32, ptr %67, align 4, !tbaa !168
  %1306 = load ptr, ptr %71, align 8, !tbaa !5
  %1307 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1306, i32 0, i32 1
  %1308 = load i16, ptr %1307, align 2, !tbaa !201
  %1309 = zext i16 %1308 to i32
  %1310 = or i32 %1305, %1309
  %1311 = getelementptr inbounds [64 x i8], ptr %70, i64 0, i64 0
  call void @_ZN5ImGui15GetKeyChordNameEiPci(i32 noundef %1310, ptr noundef %1311, i32 noundef 64)
  %1312 = getelementptr inbounds [64 x i8], ptr %70, i64 0, i64 0
  %1313 = load ptr, ptr %71, align 8, !tbaa !5
  %1314 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1313, i32 0, i32 3
  %1315 = load i32, ptr %1314, align 4, !tbaa !203
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.446, ptr noundef %1312, i32 noundef %1315)
  %1316 = load ptr, ptr %71, align 8, !tbaa !5
  %1317 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1316, i32 0, i32 3
  %1318 = load i32, ptr %1317, align 4, !tbaa !203
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1318)
  %1319 = load ptr, ptr %71, align 8, !tbaa !5
  %1320 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1319, i32 0, i32 0
  %1321 = load i16, ptr %1320, align 4, !tbaa !204
  store i16 %1321, ptr %69, align 2, !tbaa !180
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %70) #9
  br label %1294, !llvm.loop !205

1322:                                             ; preds = %1298
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  br label %1323

1323:                                             ; preds = %1322
  %1324 = load i32, ptr %67, align 4, !tbaa !168
  %1325 = add nsw i32 %1324, 1
  store i32 %1325, ptr %67, align 4, !tbaa !168
  br label %1280, !llvm.loop !206

1326:                                             ; preds = %1283
  call void @_ZN5ImGui10EndListBoxEv()
  br label %1327

1327:                                             ; preds = %1326, %1275
  %1328 = load ptr, ptr %3, align 8, !tbaa !5
  %1329 = getelementptr inbounds %struct.ImGuiContext, ptr %1328, i32 0, i32 66
  %1330 = load i8, ptr %1329, align 4, !tbaa !207, !range !13, !noundef !14
  %1331 = trunc i8 %1330 to i1
  %1332 = zext i1 %1331 to i32
  %1333 = load ptr, ptr %3, align 8, !tbaa !5
  %1334 = getelementptr inbounds %struct.ImGuiContext, ptr %1333, i32 0, i32 65
  %1335 = load i32, ptr %1334, align 8, !tbaa !208
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.447, i32 noundef %1332, i32 noundef %1335)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1336

1336:                                             ; preds = %1327, %951
  %1337 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.448)
  br i1 %1337, label %1338, label %1556

1338:                                             ; preds = %1336
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.449)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1339 = load ptr, ptr %3, align 8, !tbaa !5
  %1340 = getelementptr inbounds %struct.ImGuiContext, ptr %1339, i32 0, i32 28
  %1341 = load ptr, ptr %1340, align 8, !tbaa !209
  %1342 = icmp ne ptr %1341, null
  br i1 %1342, label %1343, label %1349

1343:                                             ; preds = %1338
  %1344 = load ptr, ptr %3, align 8, !tbaa !5
  %1345 = getelementptr inbounds %struct.ImGuiContext, ptr %1344, i32 0, i32 28
  %1346 = load ptr, ptr %1345, align 8, !tbaa !209
  %1347 = getelementptr inbounds %struct.ImGuiWindow, ptr %1346, i32 0, i32 1
  %1348 = load ptr, ptr %1347, align 8, !tbaa !104
  br label %1350

1349:                                             ; preds = %1338
  br label %1350

1350:                                             ; preds = %1349, %1343
  %1351 = phi ptr [ %1348, %1343 ], [ @.str.380, %1349 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.450, ptr noundef %1351)
  %1352 = load ptr, ptr %3, align 8, !tbaa !5
  %1353 = getelementptr inbounds %struct.ImGuiContext, ptr %1352, i32 0, i32 28
  %1354 = load ptr, ptr %1353, align 8, !tbaa !209
  %1355 = icmp ne ptr %1354, null
  br i1 %1355, label %1356, label %1364

1356:                                             ; preds = %1350
  %1357 = load ptr, ptr %3, align 8, !tbaa !5
  %1358 = getelementptr inbounds %struct.ImGuiContext, ptr %1357, i32 0, i32 28
  %1359 = load ptr, ptr %1358, align 8, !tbaa !209
  %1360 = getelementptr inbounds %struct.ImGuiWindow, ptr %1359, i32 0, i32 84
  %1361 = load ptr, ptr %1360, align 8, !tbaa !210
  %1362 = getelementptr inbounds %struct.ImGuiWindow, ptr %1361, i32 0, i32 1
  %1363 = load ptr, ptr %1362, align 8, !tbaa !104
  br label %1365

1364:                                             ; preds = %1350
  br label %1365

1365:                                             ; preds = %1364, %1356
  %1366 = phi ptr [ %1363, %1356 ], [ @.str.380, %1364 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.451, ptr noundef %1366)
  %1367 = load ptr, ptr %3, align 8, !tbaa !5
  %1368 = getelementptr inbounds %struct.ImGuiContext, ptr %1367, i32 0, i32 29
  %1369 = load ptr, ptr %1368, align 8, !tbaa !211
  %1370 = icmp ne ptr %1369, null
  br i1 %1370, label %1371, label %1377

1371:                                             ; preds = %1365
  %1372 = load ptr, ptr %3, align 8, !tbaa !5
  %1373 = getelementptr inbounds %struct.ImGuiContext, ptr %1372, i32 0, i32 29
  %1374 = load ptr, ptr %1373, align 8, !tbaa !211
  %1375 = getelementptr inbounds %struct.ImGuiWindow, ptr %1374, i32 0, i32 1
  %1376 = load ptr, ptr %1375, align 8, !tbaa !104
  br label %1378

1377:                                             ; preds = %1365
  br label %1378

1378:                                             ; preds = %1377, %1371
  %1379 = phi ptr [ %1376, %1371 ], [ @.str.380, %1377 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.452, ptr noundef %1379)
  %1380 = load ptr, ptr %3, align 8, !tbaa !5
  %1381 = getelementptr inbounds %struct.ImGuiContext, ptr %1380, i32 0, i32 30
  %1382 = load ptr, ptr %1381, align 8, !tbaa !212
  %1383 = icmp ne ptr %1382, null
  br i1 %1383, label %1384, label %1390

1384:                                             ; preds = %1378
  %1385 = load ptr, ptr %3, align 8, !tbaa !5
  %1386 = getelementptr inbounds %struct.ImGuiContext, ptr %1385, i32 0, i32 30
  %1387 = load ptr, ptr %1386, align 8, !tbaa !212
  %1388 = getelementptr inbounds %struct.ImGuiWindow, ptr %1387, i32 0, i32 1
  %1389 = load ptr, ptr %1388, align 8, !tbaa !104
  br label %1391

1390:                                             ; preds = %1378
  br label %1391

1391:                                             ; preds = %1390, %1384
  %1392 = phi ptr [ %1389, %1384 ], [ @.str.380, %1390 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.453, ptr noundef %1392)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.454)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1393 = load ptr, ptr %3, align 8, !tbaa !5
  %1394 = getelementptr inbounds %struct.ImGuiContext, ptr %1393, i32 0, i32 44
  %1395 = load i32, ptr %1394, align 8, !tbaa !213
  %1396 = load ptr, ptr %3, align 8, !tbaa !5
  %1397 = getelementptr inbounds %struct.ImGuiContext, ptr %1396, i32 0, i32 57
  %1398 = load i32, ptr %1397, align 8, !tbaa !214
  %1399 = load ptr, ptr %3, align 8, !tbaa !5
  %1400 = getelementptr inbounds %struct.ImGuiContext, ptr %1399, i32 0, i32 46
  %1401 = load float, ptr %1400, align 8, !tbaa !215
  %1402 = fpext float %1401 to double
  %1403 = load ptr, ptr %3, align 8, !tbaa !5
  %1404 = getelementptr inbounds %struct.ImGuiContext, ptr %1403, i32 0, i32 48
  %1405 = load i8, ptr %1404, align 1, !tbaa !216, !range !13, !noundef !14
  %1406 = trunc i8 %1405 to i1
  %1407 = zext i1 %1406 to i32
  %1408 = load ptr, ptr %3, align 8, !tbaa !5
  %1409 = getelementptr inbounds %struct.ImGuiContext, ptr %1408, i32 0, i32 55
  %1410 = load i32, ptr %1409, align 8, !tbaa !217
  %1411 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1410)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.455, i32 noundef %1395, i32 noundef %1398, double noundef %1402, i32 noundef %1407, ptr noundef %1411)
  %1412 = load ptr, ptr %3, align 8, !tbaa !5
  %1413 = getelementptr inbounds %struct.ImGuiContext, ptr %1412, i32 0, i32 44
  %1414 = load i32, ptr %1413, align 8, !tbaa !213
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1414)
  %1415 = load ptr, ptr %3, align 8, !tbaa !5
  %1416 = getelementptr inbounds %struct.ImGuiContext, ptr %1415, i32 0, i32 54
  %1417 = load ptr, ptr %1416, align 8, !tbaa !218
  %1418 = icmp ne ptr %1417, null
  br i1 %1418, label %1419, label %1425

1419:                                             ; preds = %1391
  %1420 = load ptr, ptr %3, align 8, !tbaa !5
  %1421 = getelementptr inbounds %struct.ImGuiContext, ptr %1420, i32 0, i32 54
  %1422 = load ptr, ptr %1421, align 8, !tbaa !218
  %1423 = getelementptr inbounds %struct.ImGuiWindow, ptr %1422, i32 0, i32 1
  %1424 = load ptr, ptr %1423, align 8, !tbaa !104
  br label %1426

1425:                                             ; preds = %1391
  br label %1426

1426:                                             ; preds = %1425, %1419
  %1427 = phi ptr [ %1424, %1419 ], [ @.str.380, %1425 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.456, ptr noundef %1427)
  %1428 = load ptr, ptr %3, align 8, !tbaa !5
  %1429 = getelementptr inbounds %struct.ImGuiContext, ptr %1428, i32 0, i32 66
  %1430 = load i8, ptr %1429, align 4, !tbaa !207, !range !13, !noundef !14
  %1431 = trunc i8 %1430 to i1
  %1432 = zext i1 %1431 to i32
  %1433 = load ptr, ptr %3, align 8, !tbaa !5
  %1434 = getelementptr inbounds %struct.ImGuiContext, ptr %1433, i32 0, i32 65
  %1435 = load i32, ptr %1434, align 8, !tbaa !208
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.457, i32 noundef %1432, i32 noundef %1435)
  %1436 = load ptr, ptr %3, align 8, !tbaa !5
  %1437 = getelementptr inbounds %struct.ImGuiContext, ptr %1436, i32 0, i32 39
  %1438 = load i32, ptr %1437, align 8, !tbaa !219
  %1439 = load ptr, ptr %3, align 8, !tbaa !5
  %1440 = getelementptr inbounds %struct.ImGuiContext, ptr %1439, i32 0, i32 42
  %1441 = load float, ptr %1440, align 8, !tbaa !220
  %1442 = fpext float %1441 to double
  %1443 = load ptr, ptr %3, align 8, !tbaa !5
  %1444 = getelementptr inbounds %struct.ImGuiContext, ptr %1443, i32 0, i32 40
  %1445 = load i8, ptr %1444, align 4, !tbaa !221, !range !13, !noundef !14
  %1446 = trunc i8 %1445 to i1
  %1447 = zext i1 %1446 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.458, i32 noundef %1438, double noundef %1442, i32 noundef %1447)
  %1448 = load ptr, ptr %3, align 8, !tbaa !5
  %1449 = getelementptr inbounds %struct.ImGuiContext, ptr %1448, i32 0, i32 167
  %1450 = load i32, ptr %1449, align 8, !tbaa !222
  %1451 = load ptr, ptr %3, align 8, !tbaa !5
  %1452 = getelementptr inbounds %struct.ImGuiContext, ptr %1451, i32 0, i32 169
  %1453 = load float, ptr %1452, align 8, !tbaa !223
  %1454 = fpext float %1453 to double
  %1455 = load ptr, ptr %3, align 8, !tbaa !5
  %1456 = getelementptr inbounds %struct.ImGuiContext, ptr %1455, i32 0, i32 170
  %1457 = load float, ptr %1456, align 4, !tbaa !224
  %1458 = fpext float %1457 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.459, i32 noundef %1450, double noundef %1454, double noundef %1458)
  %1459 = load ptr, ptr %3, align 8, !tbaa !5
  %1460 = getelementptr inbounds %struct.ImGuiContext, ptr %1459, i32 0, i32 137
  %1461 = load i8, ptr %1460, align 4, !tbaa !225, !range !13, !noundef !14
  %1462 = trunc i8 %1461 to i1
  %1463 = zext i1 %1462 to i32
  %1464 = load ptr, ptr %3, align 8, !tbaa !5
  %1465 = getelementptr inbounds %struct.ImGuiContext, ptr %1464, i32 0, i32 144
  %1466 = getelementptr inbounds %struct.ImGuiPayload, ptr %1465, i32 0, i32 2
  %1467 = load i32, ptr %1466, align 4, !tbaa !226
  %1468 = load ptr, ptr %3, align 8, !tbaa !5
  %1469 = getelementptr inbounds %struct.ImGuiContext, ptr %1468, i32 0, i32 144
  %1470 = getelementptr inbounds %struct.ImGuiPayload, ptr %1469, i32 0, i32 5
  %1471 = getelementptr inbounds [33 x i8], ptr %1470, i64 0, i64 0
  %1472 = load ptr, ptr %3, align 8, !tbaa !5
  %1473 = getelementptr inbounds %struct.ImGuiContext, ptr %1472, i32 0, i32 144
  %1474 = getelementptr inbounds %struct.ImGuiPayload, ptr %1473, i32 0, i32 1
  %1475 = load i32, ptr %1474, align 8, !tbaa !227
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.460, i32 noundef %1463, i32 noundef %1467, ptr noundef %1471, i32 noundef %1475)
  %1476 = load ptr, ptr %3, align 8, !tbaa !5
  %1477 = getelementptr inbounds %struct.ImGuiContext, ptr %1476, i32 0, i32 144
  %1478 = getelementptr inbounds %struct.ImGuiPayload, ptr %1477, i32 0, i32 2
  %1479 = load i32, ptr %1478, align 4, !tbaa !226
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1479)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.461)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1480 = load ptr, ptr %3, align 8, !tbaa !5
  %1481 = getelementptr inbounds %struct.ImGuiContext, ptr %1480, i32 0, i32 84
  %1482 = load ptr, ptr %1481, align 8, !tbaa !103
  %1483 = icmp ne ptr %1482, null
  br i1 %1483, label %1484, label %1490

1484:                                             ; preds = %1426
  %1485 = load ptr, ptr %3, align 8, !tbaa !5
  %1486 = getelementptr inbounds %struct.ImGuiContext, ptr %1485, i32 0, i32 84
  %1487 = load ptr, ptr %1486, align 8, !tbaa !103
  %1488 = getelementptr inbounds %struct.ImGuiWindow, ptr %1487, i32 0, i32 1
  %1489 = load ptr, ptr %1488, align 8, !tbaa !104
  br label %1491

1490:                                             ; preds = %1426
  br label %1491

1491:                                             ; preds = %1490, %1484
  %1492 = phi ptr [ %1489, %1484 ], [ @.str.380, %1490 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.462, ptr noundef %1492)
  %1493 = load ptr, ptr %3, align 8, !tbaa !5
  %1494 = getelementptr inbounds %struct.ImGuiContext, ptr %1493, i32 0, i32 85
  %1495 = load i32, ptr %1494, align 8, !tbaa !228
  %1496 = load ptr, ptr %3, align 8, !tbaa !5
  %1497 = getelementptr inbounds %struct.ImGuiContext, ptr %1496, i32 0, i32 97
  %1498 = load i32, ptr %1497, align 8, !tbaa !229
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.463, i32 noundef %1495, i32 noundef %1498)
  %1499 = load ptr, ptr %3, align 8, !tbaa !5
  %1500 = getelementptr inbounds %struct.ImGuiContext, ptr %1499, i32 0, i32 85
  %1501 = load i32, ptr %1500, align 8, !tbaa !228
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1501)
  %1502 = load ptr, ptr %3, align 8, !tbaa !5
  %1503 = getelementptr inbounds %struct.ImGuiContext, ptr %1502, i32 0, i32 96
  %1504 = load i32, ptr %1503, align 4, !tbaa !230
  %1505 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1504)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.464, ptr noundef %1505)
  %1506 = load ptr, ptr %3, align 8, !tbaa !5
  %1507 = getelementptr inbounds %struct.ImGuiContext, ptr %1506, i32 0, i32 2
  %1508 = getelementptr inbounds %struct.ImGuiIO, ptr %1507, i32 0, i32 46
  %1509 = load i8, ptr %1508, align 1, !tbaa !231, !range !13, !noundef !14
  %1510 = trunc i8 %1509 to i1
  %1511 = zext i1 %1510 to i32
  %1512 = load ptr, ptr %3, align 8, !tbaa !5
  %1513 = getelementptr inbounds %struct.ImGuiContext, ptr %1512, i32 0, i32 2
  %1514 = getelementptr inbounds %struct.ImGuiIO, ptr %1513, i32 0, i32 47
  %1515 = load i8, ptr %1514, align 2, !tbaa !232, !range !13, !noundef !14
  %1516 = trunc i8 %1515 to i1
  %1517 = zext i1 %1516 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.465, i32 noundef %1511, i32 noundef %1517)
  %1518 = load ptr, ptr %3, align 8, !tbaa !5
  %1519 = getelementptr inbounds %struct.ImGuiContext, ptr %1518, i32 0, i32 87
  %1520 = load i32, ptr %1519, align 8, !tbaa !233
  %1521 = load ptr, ptr %3, align 8, !tbaa !5
  %1522 = getelementptr inbounds %struct.ImGuiContext, ptr %1521, i32 0, i32 88
  %1523 = load i32, ptr %1522, align 4, !tbaa !234
  %1524 = load ptr, ptr %3, align 8, !tbaa !5
  %1525 = getelementptr inbounds %struct.ImGuiContext, ptr %1524, i32 0, i32 89
  %1526 = load i32, ptr %1525, align 8, !tbaa !235
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.466, i32 noundef %1520, i32 noundef %1523, i32 noundef %1526)
  %1527 = load ptr, ptr %3, align 8, !tbaa !5
  %1528 = getelementptr inbounds %struct.ImGuiContext, ptr %1527, i32 0, i32 90
  %1529 = load i32, ptr %1528, align 4, !tbaa !236
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.467, i32 noundef %1529)
  %1530 = load ptr, ptr %3, align 8, !tbaa !5
  %1531 = getelementptr inbounds %struct.ImGuiContext, ptr %1530, i32 0, i32 100
  %1532 = load i8, ptr %1531, align 2, !tbaa !237, !range !13, !noundef !14
  %1533 = trunc i8 %1532 to i1
  %1534 = zext i1 %1533 to i32
  %1535 = load ptr, ptr %3, align 8, !tbaa !5
  %1536 = getelementptr inbounds %struct.ImGuiContext, ptr %1535, i32 0, i32 101
  %1537 = load i8, ptr %1536, align 1, !tbaa !238, !range !13, !noundef !14
  %1538 = trunc i8 %1537 to i1
  %1539 = zext i1 %1538 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.468, i32 noundef %1534, i32 noundef %1539)
  %1540 = load ptr, ptr %3, align 8, !tbaa !5
  %1541 = getelementptr inbounds %struct.ImGuiContext, ptr %1540, i32 0, i32 86
  %1542 = load i32, ptr %1541, align 4, !tbaa !239
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.469, i32 noundef %1542)
  %1543 = load ptr, ptr %3, align 8, !tbaa !5
  %1544 = getelementptr inbounds %struct.ImGuiContext, ptr %1543, i32 0, i32 127
  %1545 = load ptr, ptr %1544, align 8, !tbaa !240
  %1546 = icmp ne ptr %1545, null
  br i1 %1546, label %1547, label %1553

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

1553:                                             ; preds = %1491
  br label %1554

1554:                                             ; preds = %1553, %1547
  %1555 = phi ptr [ %1552, %1547 ], [ @.str.380, %1553 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.470, ptr noundef %1555)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1556

1556:                                             ; preds = %1554, %1336
  %1557 = load ptr, ptr %5, align 8, !tbaa !5
  %1558 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1557, i32 0, i32 2
  %1559 = load i8, ptr %1558, align 2, !tbaa !102, !range !13, !noundef !14
  %1560 = trunc i8 %1559 to i1
  br i1 %1560, label %1566, label %1561

1561:                                             ; preds = %1556
  %1562 = load ptr, ptr %5, align 8, !tbaa !5
  %1563 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1562, i32 0, i32 3
  %1564 = load i8, ptr %1563, align 1, !tbaa !241, !range !13, !noundef !14
  %1565 = trunc i8 %1564 to i1
  br i1 %1565, label %1566, label %1645

1566:                                             ; preds = %1561, %1556
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  store i32 0, ptr %72, align 4, !tbaa !105
  br label %1567

1567:                                             ; preds = %1641, %1566
  %1568 = load i32, ptr %72, align 4, !tbaa !105
  %1569 = load ptr, ptr %3, align 8, !tbaa !5
  %1570 = getelementptr inbounds %struct.ImGuiContext, ptr %1569, i32 0, i32 20
  %1571 = getelementptr inbounds %struct.ImVector.2, ptr %1570, i32 0, i32 0
  %1572 = load i32, ptr %1571, align 8, !tbaa !131
  %1573 = icmp slt i32 %1568, %1572
  br i1 %1573, label %1575, label %1574

1574:                                             ; preds = %1567
  store i32 79, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %1644

1575:                                             ; preds = %1567
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #9
  %1576 = load ptr, ptr %3, align 8, !tbaa !5
  %1577 = getelementptr inbounds %struct.ImGuiContext, ptr %1576, i32 0, i32 20
  %1578 = load i32, ptr %72, align 4, !tbaa !105
  %1579 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1577, i32 noundef %1578)
  %1580 = load ptr, ptr %1579, align 8, !tbaa !5
  store ptr %1580, ptr %73, align 8, !tbaa !5
  %1581 = load ptr, ptr %73, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.ImGuiWindow, ptr %1581, i32 0, i32 32
  %1583 = load i8, ptr %1582, align 1, !tbaa !242, !range !13, !noundef !14
  %1584 = trunc i8 %1583 to i1
  br i1 %1584, label %1586, label %1585

1585:                                             ; preds = %1575
  store i32 81, ptr %6, align 4
  br label %1638

1586:                                             ; preds = %1575
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #9
  %1587 = load ptr, ptr %73, align 8, !tbaa !5
  %1588 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1587)
  store ptr %1588, ptr %74, align 8, !tbaa !5
  %1589 = load ptr, ptr %5, align 8, !tbaa !5
  %1590 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1589, i32 0, i32 2
  %1591 = load i8, ptr %1590, align 2, !tbaa !102, !range !13, !noundef !14
  %1592 = trunc i8 %1591 to i1
  br i1 %1592, label %1593, label %1606

1593:                                             ; preds = %1586
  call void @llvm.lifetime.start.p0(i64 16, ptr %75) #9
  %1594 = load ptr, ptr %73, align 8, !tbaa !5
  %1595 = load ptr, ptr %5, align 8, !tbaa !5
  %1596 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1595, i32 0, i32 8
  %1597 = load i32, ptr %1596, align 4, !tbaa !50
  %1598 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %1594, i32 noundef %1597)
  %1599 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %75, i32 0, i32 0
  %1600 = extractvalue { <2 x float>, <2 x float> } %1598, 0
  store <2 x float> %1600, ptr %1599, align 4
  %1601 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %75, i32 0, i32 1
  %1602 = extractvalue { <2 x float>, <2 x float> } %1598, 1
  store <2 x float> %1602, ptr %1601, align 4
  %1603 = load ptr, ptr %74, align 8, !tbaa !5
  %1604 = getelementptr inbounds %struct.ImRect, ptr %75, i32 0, i32 0
  %1605 = getelementptr inbounds %struct.ImRect, ptr %75, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1603, ptr noundef nonnull align 4 dereferenceable(8) %1604, ptr noundef nonnull align 4 dereferenceable(8) %1605, 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 %75) #9
  br label %1606

1606:                                             ; preds = %1593, %1586
  %1607 = load ptr, ptr %5, align 8, !tbaa !5
  %1608 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1607, i32 0, i32 3
  %1609 = load i8, ptr %1608, align 1, !tbaa !241, !range !13, !noundef !14
  %1610 = trunc i8 %1609 to i1
  br i1 %1610, label %1611, label %1637

1611:                                             ; preds = %1606
  %1612 = load ptr, ptr %73, align 8, !tbaa !5
  %1613 = getelementptr inbounds %struct.ImGuiWindow, ptr %1612, i32 0, i32 3
  %1614 = load i32, ptr %1613, align 4, !tbaa !148
  %1615 = and i32 %1614, 16777216
  %1616 = icmp ne i32 %1615, 0
  br i1 %1616, label %1637, label %1617

1617:                                             ; preds = %1611
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #9
  %1618 = getelementptr inbounds [32 x i8], ptr %76, i64 0, i64 0
  %1619 = load ptr, ptr %73, align 8, !tbaa !5
  %1620 = getelementptr inbounds %struct.ImGuiWindow, ptr %1619, i32 0, i32 46
  %1621 = load i16, ptr %1620, align 8, !tbaa !243
  %1622 = sext i16 %1621 to i32
  %1623 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %1618, i64 noundef 32, ptr noundef @.str.314, i32 noundef %1622)
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  %1624 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  store float %1624, ptr %77, align 4, !tbaa !186
  %1625 = load ptr, ptr %74, align 8, !tbaa !5
  %1626 = load ptr, ptr %73, align 8, !tbaa !5
  %1627 = getelementptr inbounds %struct.ImGuiWindow, ptr %1626, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #9
  %1628 = load ptr, ptr %73, align 8, !tbaa !5
  %1629 = getelementptr inbounds %struct.ImGuiWindow, ptr %1628, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #9
  %1630 = load float, ptr %77, align 4, !tbaa !186
  %1631 = load float, ptr %77, align 4, !tbaa !186
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %79, float noundef %1630, float noundef %1631)
  %1632 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1629, ptr noundef nonnull align 4 dereferenceable(8) %79)
  store <2 x float> %1632, ptr %78, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1625, ptr noundef nonnull align 4 dereferenceable(8) %1627, ptr noundef nonnull align 4 dereferenceable(8) %78, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  %1633 = load ptr, ptr %74, align 8, !tbaa !5
  %1634 = load ptr, ptr %73, align 8, !tbaa !5
  %1635 = getelementptr inbounds %struct.ImGuiWindow, ptr %1634, i32 0, i32 5
  %1636 = getelementptr inbounds [32 x i8], ptr %76, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1633, ptr noundef nonnull align 4 dereferenceable(8) %1635, i32 noundef -1, ptr noundef %1636, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #9
  br label %1637

1637:                                             ; preds = %1617, %1611, %1606
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #9
  store i32 0, ptr %6, align 4
  br label %1638

1638:                                             ; preds = %1637, %1585
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #9
  %1639 = load i32, ptr %6, align 4
  switch i32 %1639, label %1753 [
    i32 0, label %1640
    i32 81, label %1641
  ]

1640:                                             ; preds = %1638
  br label %1641

1641:                                             ; preds = %1640, %1638
  %1642 = load i32, ptr %72, align 4, !tbaa !105
  %1643 = add nsw i32 %1642, 1
  store i32 %1643, ptr %72, align 4, !tbaa !105
  br label %1567, !llvm.loop !244

1644:                                             ; preds = %1574
  br label %1645

1645:                                             ; preds = %1644, %1561
  %1646 = load ptr, ptr %5, align 8, !tbaa !5
  %1647 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1646, i32 0, i32 4
  %1648 = load i8, ptr %1647, align 4, !tbaa !112, !range !13, !noundef !14
  %1649 = trunc i8 %1648 to i1
  br i1 %1649, label %1650, label %1749

1650:                                             ; preds = %1645
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  store i32 0, ptr %80, align 4, !tbaa !105
  br label %1651

1651:                                             ; preds = %1745, %1650
  %1652 = load i32, ptr %80, align 4, !tbaa !105
  %1653 = load ptr, ptr %3, align 8, !tbaa !5
  %1654 = getelementptr inbounds %struct.ImGuiContext, ptr %1653, i32 0, i32 160
  %1655 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1654)
  %1656 = icmp slt i32 %1652, %1655
  br i1 %1656, label %1658, label %1657

1657:                                             ; preds = %1651
  store i32 82, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %1748

1658:                                             ; preds = %1651
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #9
  %1659 = load ptr, ptr %3, align 8, !tbaa !5
  %1660 = getelementptr inbounds %struct.ImGuiContext, ptr %1659, i32 0, i32 160
  %1661 = load i32, ptr %80, align 4, !tbaa !105
  %1662 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1660, i32 noundef %1661)
  store ptr %1662, ptr %81, align 8, !tbaa !5
  %1663 = load ptr, ptr %81, align 8, !tbaa !5
  %1664 = icmp eq ptr %1663, null
  br i1 %1664, label %1674, label %1665

1665:                                             ; preds = %1658
  %1666 = load ptr, ptr %81, align 8, !tbaa !5
  %1667 = getelementptr inbounds %struct.ImGuiTable, ptr %1666, i32 0, i32 12
  %1668 = load i32, ptr %1667, align 8, !tbaa !113
  %1669 = load ptr, ptr %3, align 8, !tbaa !5
  %1670 = getelementptr inbounds %struct.ImGuiContext, ptr %1669, i32 0, i32 11
  %1671 = load i32, ptr %1670, align 8, !tbaa !123
  %1672 = sub nsw i32 %1671, 1
  %1673 = icmp slt i32 %1668, %1672
  br i1 %1673, label %1674, label %1675

1674:                                             ; preds = %1665, %1658
  store i32 84, ptr %6, align 4
  br label %1742

1675:                                             ; preds = %1665
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  %1676 = load ptr, ptr %81, align 8, !tbaa !5
  %1677 = getelementptr inbounds %struct.ImGuiTable, ptr %1676, i32 0, i32 53
  %1678 = load ptr, ptr %1677, align 8, !tbaa !124
  %1679 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1678)
  store ptr %1679, ptr %82, align 8, !tbaa !5
  %1680 = load ptr, ptr %5, align 8, !tbaa !5
  %1681 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1680, i32 0, i32 9
  %1682 = load i32, ptr %1681, align 4, !tbaa !51
  %1683 = icmp sge i32 %1682, 6
  br i1 %1683, label %1684, label %1728

1684:                                             ; preds = %1675
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  store i32 0, ptr %83, align 4, !tbaa !105
  br label %1685

1685:                                             ; preds = %1724, %1684
  %1686 = load i32, ptr %83, align 4, !tbaa !105
  %1687 = load ptr, ptr %81, align 8, !tbaa !5
  %1688 = getelementptr inbounds %struct.ImGuiTable, ptr %1687, i32 0, i32 13
  %1689 = load i32, ptr %1688, align 4, !tbaa !127
  %1690 = icmp slt i32 %1686, %1689
  br i1 %1690, label %1692, label %1691

1691:                                             ; preds = %1685
  store i32 85, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %1727

1692:                                             ; preds = %1685
  call void @llvm.lifetime.start.p0(i64 16, ptr %84) #9
  %1693 = load ptr, ptr %81, align 8, !tbaa !5
  %1694 = load ptr, ptr %5, align 8, !tbaa !5
  %1695 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1694, i32 0, i32 9
  %1696 = load i32, ptr %1695, align 4, !tbaa !51
  %1697 = load i32, ptr %83, align 4, !tbaa !105
  %1698 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1693, i32 noundef %1696, i32 noundef %1697)
  %1699 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %84, i32 0, i32 0
  %1700 = extractvalue { <2 x float>, <2 x float> } %1698, 0
  store <2 x float> %1700, ptr %1699, align 4
  %1701 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %84, i32 0, i32 1
  %1702 = extractvalue { <2 x float>, <2 x float> } %1698, 1
  store <2 x float> %1702, ptr %1701, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  %1703 = load ptr, ptr %81, align 8, !tbaa !5
  %1704 = getelementptr inbounds %struct.ImGuiTable, ptr %1703, i32 0, i32 67
  %1705 = load i16, ptr %1704, align 8, !tbaa !245
  %1706 = sext i16 %1705 to i32
  %1707 = load i32, ptr %83, align 4, !tbaa !105
  %1708 = icmp eq i32 %1706, %1707
  %1709 = zext i1 %1708 to i64
  %1710 = select i1 %1708, i32 -8323073, i32 -8388353
  store i32 %1710, ptr %85, align 4, !tbaa !105
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  %1711 = load ptr, ptr %81, align 8, !tbaa !5
  %1712 = getelementptr inbounds %struct.ImGuiTable, ptr %1711, i32 0, i32 67
  %1713 = load i16, ptr %1712, align 8, !tbaa !245
  %1714 = sext i16 %1713 to i32
  %1715 = load i32, ptr %83, align 4, !tbaa !105
  %1716 = icmp eq i32 %1714, %1715
  %1717 = zext i1 %1716 to i64
  %1718 = select i1 %1716, float 3.000000e+00, float 1.000000e+00
  store float %1718, ptr %86, align 4, !tbaa !186
  %1719 = load ptr, ptr %82, align 8, !tbaa !5
  %1720 = getelementptr inbounds %struct.ImRect, ptr %84, i32 0, i32 0
  %1721 = getelementptr inbounds %struct.ImRect, ptr %84, i32 0, i32 1
  %1722 = load i32, ptr %85, align 4, !tbaa !105
  %1723 = load float, ptr %86, align 4, !tbaa !186
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1719, ptr noundef nonnull align 4 dereferenceable(8) %1720, ptr noundef nonnull align 4 dereferenceable(8) %1721, i32 noundef %1722, float noundef 0.000000e+00, i32 noundef 0, float noundef %1723)
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #9
  br label %1724

1724:                                             ; preds = %1692
  %1725 = load i32, ptr %83, align 4, !tbaa !105
  %1726 = add nsw i32 %1725, 1
  store i32 %1726, ptr %83, align 4, !tbaa !105
  br label %1685, !llvm.loop !246

1727:                                             ; preds = %1691
  br label %1741

1728:                                             ; preds = %1675
  call void @llvm.lifetime.start.p0(i64 16, ptr %87) #9
  %1729 = load ptr, ptr %81, align 8, !tbaa !5
  %1730 = load ptr, ptr %5, align 8, !tbaa !5
  %1731 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1730, i32 0, i32 9
  %1732 = load i32, ptr %1731, align 4, !tbaa !51
  %1733 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1729, i32 noundef %1732, i32 noundef -1)
  %1734 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %87, i32 0, i32 0
  %1735 = extractvalue { <2 x float>, <2 x float> } %1733, 0
  store <2 x float> %1735, ptr %1734, align 4
  %1736 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %87, i32 0, i32 1
  %1737 = extractvalue { <2 x float>, <2 x float> } %1733, 1
  store <2 x float> %1737, ptr %1736, align 4
  %1738 = load ptr, ptr %82, align 8, !tbaa !5
  %1739 = getelementptr inbounds %struct.ImRect, ptr %87, i32 0, i32 0
  %1740 = getelementptr inbounds %struct.ImRect, ptr %87, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1738, ptr noundef nonnull align 4 dereferenceable(8) %1739, ptr noundef nonnull align 4 dereferenceable(8) %1740, 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 %87) #9
  br label %1741

1741:                                             ; preds = %1728, %1727
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  store i32 0, ptr %6, align 4
  br label %1742

1742:                                             ; preds = %1741, %1674
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  %1743 = load i32, ptr %6, align 4
  switch i32 %1743, label %1753 [
    i32 0, label %1744
    i32 84, label %1745
  ]

1744:                                             ; preds = %1742
  br label %1745

1745:                                             ; preds = %1744, %1742
  %1746 = load i32, ptr %80, align 4, !tbaa !105
  %1747 = add nsw i32 %1746, 1
  store i32 %1747, ptr %80, align 4, !tbaa !105
  br label %1651, !llvm.loop !247

1748:                                             ; preds = %1657
  br label %1749

1749:                                             ; preds = %1748, %1645
  call void @_ZN5ImGui3EndEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #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 %1750

1750:                                             ; preds = %1749, %117
  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
  %1751 = load i32, ptr %6, align 4
  switch i32 %1751, label %1753 [
    i32 0, label %1752
    i32 1, label %1752
  ]

1752:                                             ; preds = %1750, %1750
  ret void

1753:                                             ; preds = %1750, %1742, %1638, %1268, %483
  unreachable
}

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

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

declare void @_ZN5ImGui9SeparatorEv() #7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv() #7

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

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

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

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

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

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) #7

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) #7

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

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

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

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

declare void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef) #7

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

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

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

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

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

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

declare void @_ZN5ImGui10EndListBoxEv() #7

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

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

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 = { 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 #4 = { 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 #5 = { 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 #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { 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, !12, i64 8, !12, i64 12}
!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 194}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !6, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !18, i64 80, !19, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !19, i64 112, !19, i64 116, !12, i64 120, !12, i64 124, !12, i64 128, !18, i64 132, !18, i64 140, !18, i64 148, !18, i64 156, !18, i64 164, !18, i64 172, !11, i64 180, !11, i64 181, !11, i64 182, !11, i64 183, !11, i64 184, !11, i64 185, !11, i64 186, !11, i64 187, !11, i64 188, !11, i64 189, !11, i64 190, !11, i64 191, !11, i64 192, !7, i64 193, !20, i64 194, !20, i64 196, !20, i64 198, !20, i64 200, !20, i64 202, !12, i64 204, !7, i64 208, !7, i64 209, !7, i64 210, !11, i64 211, !12, i64 212, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !12, i64 220, !12, i64 221, !12, i64 222, !18, i64 224, !18, i64 232, !21, i64 240, !22, i64 256, !28, i64 488, !28, i64 504, !28, i64 520, !28, i64 536, !28, i64 552, !28, i64 568, !28, i64 584, !29, i64 600, !29, i64 604, !12, i64 608, !19, i64 612, !19, i64 616, !30, i64 624, !32, i64 640, !19, i64 656, !12, i64 660, !6, i64 664, !33, i64 672, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !6, i64 920, !7, i64 928, !7, i64 936, !12, i64 968, !12, i64 972, !12, i64 976, !11, i64 980}
!18 = !{!"_ZTS6ImVec2", !19, i64 0, !19, i64 4}
!19 = !{!"float", !7, i64 0}
!20 = !{!"short", !7, i64 0}
!21 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!22 = !{!"_ZTS19ImGuiWindowTempData", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !19, i64 56, !19, i64 60, !11, i64 64, !11, i64 65, !23, i64 68, !23, i64 72, !23, i64 76, !18, i64 80, !24, i64 88, !20, i64 92, !20, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !18, i64 100, !25, i64 108, !12, i64 136, !12, i64 140, !26, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !19, i64 188, !19, i64 192, !27, i64 200, !27, i64 216}
!23 = !{!"_ZTS6ImVec1", !19, i64 0}
!24 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!25 = !{!"_ZTS16ImGuiMenuColumns", !12, i64 0, !12, i64 4, !20, i64 8, !20, i64 10, !20, i64 12, !20, i64 14, !20, i64 16, !7, i64 18}
!26 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!28 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!29 = !{!"_ZTS8ImVec2ih", !20, i64 0, !20, i64 2}
!30 = !{!"_ZTS12ImGuiStorage", !31, i64 0}
!31 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !12, i64 0, !12, i64 4, !6, i64 8}
!32 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!33 = !{!"_ZTS10ImDrawList", !34, i64 0, !35, i64 16, !36, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !37, i64 88, !38, i64 104, !39, i64 120, !40, i64 136, !42, i64 168, !19, i64 192}
!34 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorIPvE", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!40 = !{!"_ZTS15ImDrawCmdHeader", !41, i64 0, !6, i64 16, !12, i64 24}
!41 = !{!"_ZTS6ImVec4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!42 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !43, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!44 = !{!45, !19, i64 216}
!45 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !6, i64 24, !6, i64 32, !19, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !19, i64 60, !19, i64 64, !6, i64 72, !6, i64 80, !19, i64 88, !11, i64 92, !6, i64 96, !18, i64 104, !11, i64 112, !11, i64 113, !11, i64 114, !11, i64 115, !11, i64 116, !11, i64 117, !11, i64 118, !11, i64 119, !19, i64 120, !11, i64 124, !11, i64 125, !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, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !11, i64 214, !19, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !12, i64 232, !12, i64 236, !18, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !18, i64 3584, !7, i64 3592, !19, i64 3600, !19, i64 3604, !11, i64 3608, !11, i64 3609, !11, i64 3610, !11, i64 3611, !12, i64 3612, !7, i64 3616, !11, i64 14048, !18, i64 14052, !7, i64 14060, !7, i64 14104, !7, i64 14144, !7, i64 14149, !7, i64 14154, !7, i64 14164, !7, i64 14174, !7, i64 14179, !7, i64 14184, !7, i64 14192, !7, i64 14212, !7, i64 14232, !19, i64 14252, !11, i64 14256, !11, i64 14257, !7, i64 14258, !11, i64 14259, !20, i64 14260, !35, i64 14264}
!46 = !{!45, !12, i64 220}
!47 = !{!45, !12, i64 224}
!48 = !{!45, !12, i64 228}
!49 = !{!45, !12, i64 236}
!50 = !{!10, !12, i64 8}
!51 = !{!10, !12, i64 12}
!52 = !{!11, !11, i64 0}
!53 = !{!7, !7, i64 0}
!54 = !{!55, !11, i64 23723}
!55 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !45, i64 8, !56, i64 14288, !56, i64 14304, !57, i64 14320, !6, i64 15392, !19, i64 15400, !19, i64 15404, !58, i64 15408, !59, i64 15936, !12, i64 15944, !12, i64 15948, !12, i64 15952, !11, i64 15956, !11, i64 15957, !11, i64 15958, !11, i64 15959, !11, i64 15960, !6, i64 15968, !26, i64 15976, !26, i64 15992, !26, i64 16008, !60, i64 16024, !30, i64 16040, !12, i64 16056, !18, i64 16060, !6, i64 16072, !6, i64 16080, !6, i64 16088, !6, i64 16096, !6, i64 16104, !18, i64 16112, !12, i64 16120, !19, i64 16124, !18, i64 16128, !18, i64 16136, !12, i64 16144, !12, i64 16148, !12, i64 16152, !11, i64 16156, !11, i64 16157, !19, i64 16160, !19, i64 16164, !12, i64 16168, !12, i64 16172, !19, i64 16176, !11, i64 16180, !11, i64 16181, !11, i64 16182, !11, i64 16183, !11, i64 16184, !11, i64 16185, !18, i64 16188, !6, i64 16200, !61, i64 16208, !12, i64 16212, !12, i64 16216, !11, i64 16220, !11, i64 16221, !6, i64 16224, !12, i64 16232, !19, i64 16236, !7, i64 16240, !62, i64 17920, !12, i64 18232, !11, i64 18236, !12, i64 18240, !12, i64 18244, !12, i64 18248, !12, i64 18252, !64, i64 18256, !65, i64 18276, !66, i64 18336, !67, i64 18448, !68, i64 18464, !69, i64 18480, !21, i64 18496, !70, i64 18512, !71, i64 18528, !72, i64 18544, !72, i64 18560, !12, i64 18576, !73, i64 18584, !6, i64 18600, !12, i64 18608, !12, i64 18612, !12, i64 18616, !12, i64 18620, !12, i64 18624, !12, i64 18628, !12, i64 18632, !12, i64 18636, !12, i64 18640, !12, i64 18644, !12, i64 18648, !61, i64 18652, !24, i64 18656, !11, i64 18660, !11, i64 18661, !11, i64 18662, !11, i64 18663, !11, i64 18664, !11, i64 18665, !11, i64 18666, !12, i64 18668, !28, i64 18672, !11, i64 18688, !11, i64 18689, !11, i64 18690, !12, i64 18692, !12, i64 18696, !12, i64 18700, !12, i64 18704, !12, i64 18708, !12, i64 18712, !28, i64 18716, !28, i64 18732, !12, i64 18748, !12, i64 18752, !12, i64 18756, !74, i64 18760, !74, i64 18808, !74, i64 18856, !74, i64 18904, !12, i64 18952, !12, i64 18956, !6, i64 18960, !6, i64 18968, !6, i64 18976, !19, i64 18984, !19, i64 18988, !11, i64 18992, !18, i64 18996, !18, i64 19004, !19, i64 19012, !12, i64 19016, !11, i64 19020, !11, i64 19021, !11, i64 19022, !12, i64 19024, !12, i64 19028, !12, i64 19032, !75, i64 19040, !28, i64 19104, !12, i64 19120, !12, i64 19124, !19, i64 19128, !12, i64 19132, !12, i64 19136, !12, i64 19140, !12, i64 19144, !76, i64 19152, !7, i64 19168, !12, i64 19184, !77, i64 19192, !6, i64 19208, !12, i64 19216, !78, i64 19224, !79, i64 19240, !27, i64 19280, !43, i64 19296, !6, i64 19312, !81, i64 19320, !83, i64 19360, !84, i64 19376, !12, i64 19392, !12, i64 19396, !19, i64 19400, !19, i64 19404, !18, i64 19408, !85, i64 19416, !89, i64 23144, !12, i64 23264, !12, i64 23268, !12, i64 23272, !12, i64 23276, !19, i64 23280, !19, i64 23284, !12, i64 23288, !41, i64 23292, !91, i64 23308, !19, i64 23356, !19, i64 23360, !11, i64 23364, !11, i64 23365, !19, i64 23368, !19, i64 23372, !19, i64 23376, !19, i64 23380, !20, i64 23384, !20, i64 23386, !86, i64 23392, !21, i64 23408, !92, i64 23424, !92, i64 23440, !7, i64 23456, !11, i64 23457, !19, i64 23460, !93, i64 23464, !94, i64 23480, !95, i64 23496, !96, i64 23512, !97, i64 23528, !12, i64 23544, !7, i64 23552, !11, i64 23608, !98, i64 23612, !6, i64 23616, !93, i64 23624, !6, i64 23640, !6, i64 23648, !19, i64 23656, !11, i64 23660, !12, i64 23664, !12, i64 23668, !12, i64 23672, !12, i64 23676, !93, i64 23680, !99, i64 23696, !7, i64 23720, !7, i64 23721, !7, i64 23722, !11, i64 23723, !7, i64 23724, !12, i64 23728, !10, i64 23732, !100, i64 23752, !7, i64 23792, !12, i64 24032, !12, i64 24036, !19, i64 24040, !12, i64 24044, !12, i64 24048, !12, i64 24052, !86, i64 24056}
!56 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!57 = !{!"_ZTS10ImGuiStyle", !19, i64 0, !19, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !18, i64 24, !18, i64 32, !12, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !18, i64 60, !19, i64 68, !19, i64 72, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !12, i64 148, !18, i64 152, !18, i64 160, !19, i64 168, !18, i64 172, !18, i64 180, !18, i64 188, !18, i64 196, !19, i64 204, !11, i64 208, !11, i64 209, !11, i64 210, !19, i64 212, !19, i64 216, !7, i64 220}
!58 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !19, i64 16, !19, i64 20, !19, i64 24, !41, i64 28, !12, i64 44, !39, i64 48, !7, i64 64, !19, i64 448, !7, i64 452, !6, i64 520}
!59 = !{!"double", !7, i64 0}
!60 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!62 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !63, i64 280, !63, i64 296}
!63 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!64 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !19, i64 4, !12, i64 8, !12, i64 12, !11, i64 16}
!65 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !28, i64 12, !28, i64 28, !28, i64 44}
!66 = !{!"_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, !11, i64 56, !28, i64 60, !6, i64 80, !6, i64 88, !19, i64 96, !18, i64 100}
!67 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !28, i64 16, !12, i64 32, !19, i64 36, !19, i64 40, !19, i64 44}
!75 = !{!"_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}
!76 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!79 = !{!"_ZTS6ImPoolI10ImGuiTableE", !80, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!80 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!81 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !82, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!82 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !35, i64 24, !86, i64 40, !86, i64 56, !11, i64 72, !12, i64 76, !19, i64 80, !87, i64 84, !19, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !12, i64 3720}
!86 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!87 = !{!"_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, !88, i64 32}
!88 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !20, i64 3582, !20, i64 3584, !12, i64 3588, !12, i64 3592}
!89 = !{!"_ZTS6ImFont", !27, i64 0, !19, i64 16, !19, i64 20, !35, i64 24, !90, 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}
!90 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!91 = !{!"_ZTS21ImGuiComboPreviewData", !28, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !19, i64 40, !12, i64 44}
!92 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !18, i64 4, !19, i64 12}
!93 = !{!"_ZTS15ImGuiTextBuffer", !86, i64 0}
!94 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!95 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !86, i64 0}
!96 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !86, i64 0}
!97 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!98 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!99 = !{!"_ZTS14ImGuiTextIndex", !70, i64 0, !12, i64 16}
!100 = !{!"_ZTS14ImGuiStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !101, i64 16, !11, i64 32, !19, i64 36}
!101 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!102 = !{!10, !11, i64 2}
!103 = !{!55, !6, i64 18600}
!104 = !{!17, !6, i64 8}
!105 = !{!12, !12, i64 0}
!106 = !{!28, !19, i64 0}
!107 = !{!28, !19, i64 4}
!108 = !{!28, !19, i64 8}
!109 = !{!28, !19, i64 12}
!110 = distinct !{!110, !111}
!111 = !{!"llvm.loop.mustprogress"}
!112 = !{!10, !11, i64 4}
!113 = !{!114, !12, i64 104}
!114 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !115, i64 24, !116, i64 40, !117, 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, !12, i64 144, !12, i64 146, !12, i64 148, !7, i64 152, !12, i64 160, !12, i64 164, !19, 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, !28, i64 232, !28, i64 248, !28, i64 264, !28, i64 280, !28, i64 296, !28, i64 312, !28, i64 328, !28, i64 344, !28, i64 360, !6, i64 376, !6, i64 384, !93, i64 392, !6, i64 408, !118, i64 416, !119, i64 432, !120, i64 448, !121, i64 464, !122, i64 480, !20, i64 496, !20, i64 498, !20, i64 500, !20, i64 502, !20, i64 504, !20, i64 506, !20, i64 508, !20, i64 510, !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, !11, i64 546, !11, i64 547, !11, i64 548, !11, i64 549, !11, i64 550, !11, i64 551, !11, i64 552, !11, i64 553, !11, i64 554, !11, i64 555, !11, i64 556, !11, i64 557, !11, i64 558, !11, i64 559, !11, i64 560, !11, i64 561, !11, i64 562}
!115 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!116 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!117 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!118 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!119 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!120 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !20, i64 4, !20, i64 6, !12, i64 8}
!121 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!122 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!123 = !{!55, !12, i64 15944}
!124 = !{!114, !6, i64 376}
!125 = !{!114, !6, i64 384}
!126 = !{!114, !12, i64 0}
!127 = !{!114, !12, i64 108}
!128 = distinct !{!128, !111}
!129 = distinct !{!129, !111}
!130 = distinct !{!130, !111}
!131 = !{!55, !12, i64 15976}
!132 = !{!17, !12, i64 608}
!133 = distinct !{!133, !111}
!134 = !{!26, !6, i64 8}
!135 = !{!26, !12, i64 0}
!136 = !{!55, !12, i64 18584}
!137 = distinct !{!137, !111}
!138 = !{!139, !12, i64 0}
!139 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!140 = distinct !{!140, !111}
!141 = distinct !{!141, !111}
!142 = distinct !{!142, !111}
!143 = distinct !{!143, !111}
!144 = !{!55, !12, i64 18544}
!145 = !{!146, !6, i64 8}
!146 = !{!"_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}
!147 = !{!146, !12, i64 0}
!148 = !{!17, !12, i64 20}
!149 = !{!146, !6, i64 16}
!150 = !{!17, !6, i64 872}
!151 = distinct !{!151, !111}
!152 = distinct !{!152, !111}
!153 = distinct !{!153, !111}
!154 = !{!55, !6, i64 88}
!155 = !{!156, !12, i64 88}
!156 = !{!"_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, !69, i64 88, !157, i64 104, !158, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!157 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!158 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!159 = !{!55, !6, i64 32}
!160 = !{!55, !19, i64 23460}
!161 = !{!55, !12, i64 23480}
!162 = !{!163, !6, i64 0}
!163 = !{!"_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}
!164 = distinct !{!164, !111}
!165 = distinct !{!165, !111}
!166 = distinct !{!166, !111}
!167 = !{!55, !12, i64 23464}
!168 = !{!169, !169, i64 0}
!169 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!170 = !{!171, !19, i64 4}
!171 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!172 = distinct !{!172, !111}
!173 = distinct !{!173, !111}
!174 = distinct !{!174, !111}
!175 = !{!45, !11, i64 3608}
!176 = !{!45, !11, i64 3609}
!177 = !{!45, !11, i64 3610}
!178 = !{!45, !11, i64 3611}
!179 = !{!45, !12, i64 14264}
!180 = !{!20, !20, i64 0}
!181 = distinct !{!181, !111}
!182 = !{!45, !19, i64 3584}
!183 = !{!45, !19, i64 3588}
!184 = !{!45, !19, i64 240}
!185 = !{!45, !19, i64 244}
!186 = !{!19, !19, i64 0}
!187 = distinct !{!187, !111}
!188 = distinct !{!188, !111}
!189 = distinct !{!189, !111}
!190 = !{!45, !19, i64 3600}
!191 = !{!45, !19, i64 14252}
!192 = !{!55, !6, i64 16104}
!193 = !{!55, !19, i64 16124}
!194 = !{!55, !19, i64 16136}
!195 = !{!55, !19, i64 16140}
!196 = !{!197, !12, i64 0}
!197 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!198 = !{!197, !11, i64 9}
!199 = !{!197, !11, i64 8}
!200 = distinct !{!200, !111}
!201 = !{!202, !20, i64 2}
!202 = !{!"_ZTS19ImGuiKeyRoutingData", !20, i64 0, !20, i64 2, !7, i64 4, !12, i64 8, !12, i64 12}
!203 = !{!202, !12, i64 8}
!204 = !{!202, !20, i64 0}
!205 = distinct !{!205, !111}
!206 = distinct !{!206, !111}
!207 = !{!55, !11, i64 18236}
!208 = !{!55, !12, i64 18232}
!209 = !{!55, !6, i64 16080}
!210 = !{!17, !6, i64 888}
!211 = !{!55, !6, i64 16088}
!212 = !{!55, !6, i64 16096}
!213 = !{!55, !12, i64 16168}
!214 = !{!55, !12, i64 16216}
!215 = !{!55, !19, i64 16176}
!216 = !{!55, !11, i64 16181}
!217 = !{!55, !61, i64 16208}
!218 = !{!55, !6, i64 16200}
!219 = !{!55, !12, i64 16152}
!220 = !{!55, !19, i64 16160}
!221 = !{!55, !11, i64 16156}
!222 = !{!55, !12, i64 19392}
!223 = !{!55, !19, i64 19400}
!224 = !{!55, !19, i64 19404}
!225 = !{!55, !11, i64 19020}
!226 = !{!55, !12, i64 19052}
!227 = !{!55, !12, i64 19048}
!228 = !{!55, !12, i64 18608}
!229 = !{!55, !24, i64 18656}
!230 = !{!55, !61, i64 18652}
!231 = !{!55, !11, i64 221}
!232 = !{!55, !11, i64 222}
!233 = !{!55, !12, i64 18616}
!234 = !{!55, !12, i64 18620}
!235 = !{!55, !12, i64 18624}
!236 = !{!55, !12, i64 18628}
!237 = !{!55, !11, i64 18662}
!238 = !{!55, !11, i64 18663}
!239 = !{!55, !12, i64 18612}
!240 = !{!55, !6, i64 18960}
!241 = !{!10, !11, i64 3}
!242 = !{!17, !11, i64 183}
!243 = !{!17, !20, i64 200}
!244 = distinct !{!244, !111}
!245 = !{!114, !20, i64 504}
!246 = distinct !{!246, !111}
!247 = distinct !{!247, !111}


; 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 }

@GImGui = external dso_local local_unnamed_addr global ptr, align 8
@.str.16 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [42 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.344 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [100 x i8], align 16
@.str.347 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.376 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.422 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.423 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.469 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.470 = 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: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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 nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui15GetKeyOwnerDataE8ImGuiKey(i32 noundef) local_unnamed_addr #4

declare void @_ZN5ImGui7TreePopEv() local_unnamed_addr #7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef %0) local_unnamed_addr #8 {
  %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 %struct.ImVec2, align 4
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca [64 x i8], align 16
  %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 23732
  %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 23733
  %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 @_ZN5ImGui19ShowStackToolWindowEPb(ptr noundef nonnull %38)
  br label %42

42:                                               ; preds = %41, %37
  %43 = tail call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.322, 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 194
  %47 = load i16, ptr %46, align 2, !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 %1048

50:                                               ; preds = %44
  %51 = tail call noundef ptr @_ZN5ImGui10GetVersionEv()
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.323, ptr noundef %51)
  %52 = getelementptr inbounds i8, ptr %32, i64 224
  %53 = load float, ptr %52, align 8, !tbaa !44
  %54 = fdiv float 1.000000e+03, %53
  %55 = fpext float %54 to double
  %56 = fpext float %53 to double
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.324, double noundef %55, double noundef %56)
  %57 = getelementptr inbounds i8, ptr %32, i64 228
  %58 = load i32, ptr %57, align 4, !tbaa !46
  %59 = getelementptr inbounds i8, ptr %32, i64 232
  %60 = load i32, ptr %59, align 8, !tbaa !47
  %61 = sdiv i32 %60, 3
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.325, i32 noundef %58, i32 noundef %60, i32 noundef %61)
  %62 = getelementptr inbounds i8, ptr %32, i64 236
  %63 = load i32, ptr %62, align 4, !tbaa !48
  %64 = getelementptr inbounds i8, ptr %32, i64 244
  %65 = load i32, ptr %64, align 4, !tbaa !49
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.326, i32 noundef %63, i32 noundef %65)
  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)
  %66 = getelementptr inbounds i8, ptr %32, i64 23740
  %67 = load i32, ptr %66, align 4, !tbaa !50
  %68 = icmp slt i32 %67, 0
  br i1 %68, label %69, label %70

69:                                               ; preds = %50
  store i32 4, ptr %66, align 4, !tbaa !50
  br label %70

70:                                               ; preds = %69, %50
  %71 = getelementptr inbounds i8, ptr %32, i64 23744
  %72 = load i32, ptr %71, align 4, !tbaa !51
  %73 = icmp slt i32 %72, 0
  br i1 %73, label %74, label %75

74:                                               ; preds = %70
  store i32 2, ptr %71, align 4, !tbaa !51
  br label %75

75:                                               ; preds = %74, %70
  %76 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.344)
  br i1 %76, label %77, label %372

77:                                               ; preds = %75
  %78 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.345)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.346)
  br i1 %78, label %79, label %84

79:                                               ; preds = %77
  tail call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %80 = tail call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.347, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 100, i32 noundef 0, ptr noundef null, ptr noundef null)
  %81 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !52
  %.not = icmp eq i8 %81, 0
  br i1 %.not, label %83, label %82

82:                                               ; preds = %79
  tail call void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE3buf)
  br label %83

83:                                               ; preds = %82, %79
  tail call void @_ZN5ImGui7TreePopEv()
  br label %84

84:                                               ; preds = %83, %77
  %85 = getelementptr inbounds i8, ptr %32, i64 23723
  %86 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.348, ptr noundef nonnull %85)
  br i1 %86, label %87, label %91

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

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

91:                                               ; preds = %90, %87, %84
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.349)
  %92 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.350, 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.351)
  %93 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.352, 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.353)
  %94 = getelementptr inbounds i8, ptr %32, i64 23735
  %95 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.354, ptr noundef nonnull %94)
  %96 = getelementptr inbounds i8, ptr %32, i64 23734
  %97 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.355, ptr noundef nonnull %96)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %98 = tail call noundef float @_ZN5ImGui11GetFontSizeEv()
  %99 = fmul float %98, 1.200000e+01
  tail call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %99)
  %100 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.356, ptr noundef nonnull %66, ptr noundef nonnull %2, i32 noundef 8, i32 noundef 8)
  %101 = load i8, ptr %96, align 2, !tbaa !101, !range !13, !noundef !14
  %102 = zext i1 %100 to i8
  %103 = or i8 %101, %102
  %.not428 = icmp eq i8 %103, 0
  store i8 %103, ptr %96, align 2, !tbaa !101
  br i1 %.not428, label %254, label %104

104:                                              ; preds = %91
  %105 = getelementptr inbounds i8, ptr %32, i64 18600
  %106 = load ptr, ptr %105, align 8, !tbaa !102
  %.not429 = icmp eq ptr %106, null
  br i1 %.not429, label %254, label %107

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

254:                                              ; preds = %107, %104, %91
  %255 = getelementptr inbounds i8, ptr %32, i64 23736
  %256 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.359, ptr noundef nonnull %255)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %257 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %258 = fmul float %257, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %258)
  %259 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.360, ptr noundef nonnull %71, ptr noundef nonnull %3, i32 noundef 13, i32 noundef 13)
  %260 = load i8, ptr %255, align 4, !tbaa !104, !range !13, !noundef !14
  %261 = zext i1 %259 to i8
  %262 = or i8 %260, %261
  %.not430 = icmp eq i8 %262, 0
  store i8 %262, ptr %255, align 4, !tbaa !104
  br i1 %.not430, label %.loopexit476, label %263

263:                                              ; preds = %254
  %264 = getelementptr inbounds i8, ptr %32, i64 18600
  %265 = load ptr, ptr %264, align 8, !tbaa !102
  %.not431 = icmp eq ptr %265, null
  br i1 %.not431, label %.loopexit476, label %.preheader475

.preheader475:                                    ; preds = %263
  %266 = getelementptr inbounds i8, ptr %32, i64 19240
  %267 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %266)
  %268 = icmp sgt i32 %267, 0
  br i1 %268, label %.lr.ph482, label %.loopexit476

.lr.ph482:                                        ; preds = %.preheader475
  %269 = getelementptr inbounds i8, ptr %32, i64 15944
  %270 = getelementptr inbounds i8, ptr %16, i64 8
  %271 = getelementptr inbounds i8, ptr %10, i64 8
  br label %272

272:                                              ; preds = %.lr.ph482, %366
  %.0379481 = phi i32 [ 0, %.lr.ph482 ], [ %367, %366 ]
  %273 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %266, i32 noundef %.0379481)
  %274 = icmp eq ptr %273, null
  br i1 %274, label %366, label %275

275:                                              ; preds = %272
  %276 = getelementptr inbounds i8, ptr %273, i64 104
  %277 = load i32, ptr %276, align 8, !tbaa !105
  %278 = load i32, ptr %269, align 8, !tbaa !115
  %279 = add nsw i32 %278, -1
  %280 = icmp slt i32 %277, %279
  br i1 %280, label %366, label %281

281:                                              ; preds = %275
  %282 = getelementptr inbounds i8, ptr %273, i64 376
  %283 = load ptr, ptr %282, align 8, !tbaa !116
  %284 = load ptr, ptr %264, align 8, !tbaa !102
  %.not451 = icmp eq ptr %283, %284
  br i1 %.not451, label %288, label %285

285:                                              ; preds = %281
  %286 = getelementptr inbounds i8, ptr %273, i64 384
  %287 = load ptr, ptr %286, align 8, !tbaa !117
  %.not452 = icmp eq ptr %287, %284
  br i1 %.not452, label %288, label %366

288:                                              ; preds = %285, %281
  %289 = load i32, ptr %273, align 8, !tbaa !118
  %290 = getelementptr inbounds i8, ptr %273, i64 108
  %291 = load i32, ptr %290, align 4, !tbaa !119
  %292 = getelementptr inbounds i8, ptr %283, i64 8
  %293 = load ptr, ptr %292, align 8, !tbaa !103
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.361, i32 noundef %289, i32 noundef %291, ptr noundef %293)
  %294 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %294, label %295, label %301

295:                                              ; preds = %288
  %296 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  %297 = getelementptr inbounds i8, ptr %273, i64 232
  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)
  %298 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %297, ptr noundef nonnull align 4 dereferenceable(8) %6)
  store <2 x float> %298, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %299 = getelementptr inbounds i8, ptr %273, i64 240
  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)
  %300 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %299, ptr noundef nonnull align 4 dereferenceable(8) %8)
  store <2 x float> %300, ptr %7, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %296, 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 %301

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

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

303:                                              ; preds = %301, %.loopexit474
  %indvars.iv = phi i64 [ 0, %301 ], [ %indvars.iv.next, %.loopexit474 ]
  %304 = icmp ugt i64 %indvars.iv, 5
  br i1 %304, label %305, label %339

305:                                              ; preds = %303
  %306 = trunc nuw nsw i64 %indvars.iv to i32
  switch i32 %306, label %.loopexit474 [
    i32 8, label %307
    i32 6, label %307
  ]

307:                                              ; preds = %305, %305
  %308 = load i32, ptr %290, align 4, !tbaa !119
  %309 = icmp sgt i32 %308, 0
  br i1 %309, label %.lr.ph, label %.loopexit474

.lr.ph:                                           ; preds = %307
  %310 = getelementptr inbounds [13 x ptr], ptr %3, i64 0, i64 %indvars.iv
  br label %311

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

331:                                              ; preds = %311
  %332 = 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)
  %333 = 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> %333, 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)
  %334 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %271, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %334, ptr %14, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %332, 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 %335

335:                                              ; preds = %331, %311
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #9
  %336 = add nuw nsw i32 %.0382478, 1
  %337 = load i32, ptr %290, align 4, !tbaa !119
  %338 = icmp slt i32 %336, %337
  br i1 %338, label %311, label %.loopexit474, !llvm.loop !120

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

361:                                              ; preds = %339
  %362 = 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)
  %363 = 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> %363, 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)
  %364 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %270, ptr noundef nonnull align 4 dereferenceable(8) %21)
  store <2 x float> %364, ptr %20, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %362, 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 %365

365:                                              ; preds = %361, %339
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #9
  br label %.loopexit474

.loopexit474:                                     ; preds = %335, %307, %305, %365
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 13
  br i1 %exitcond.not, label %302, label %303, !llvm.loop !122

366:                                              ; preds = %272, %275, %285, %302
  %367 = add nuw nsw i32 %.0379481, 1
  %368 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %266)
  %369 = icmp slt i32 %367, %368
  br i1 %369, label %272, label %.loopexit476, !llvm.loop !123

.loopexit476:                                     ; preds = %366, %.preheader475, %263, %254
  %370 = getelementptr inbounds i8, ptr %32, i64 133
  %371 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.363, ptr noundef nonnull %370)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.364)
  call void @_ZN5ImGui7TreePopEv()
  br label %372

372:                                              ; preds = %.loopexit476, %75
  %373 = getelementptr inbounds i8, ptr %32, i64 15976
  %374 = load i32, ptr %373, align 8, !tbaa !124
  %375 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.365, ptr noundef nonnull @.str.366, i32 noundef %374)
  br i1 %375, label %376, label %404

376:                                              ; preds = %372
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %373, ptr noundef nonnull @.str.367)
  %377 = getelementptr inbounds i8, ptr %32, i64 15992
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %377, ptr noundef nonnull @.str.368)
  %378 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.369)
  br i1 %378, label %379, label %403

379:                                              ; preds = %376
  %380 = getelementptr inbounds i8, ptr %32, i64 16008
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %380, i32 noundef 0)
  %381 = load i32, ptr %373, align 8, !tbaa !124
  %382 = icmp sgt i32 %381, 0
  br i1 %382, label %.lr.ph484, label %._crit_edge

.lr.ph484:                                        ; preds = %379
  %383 = getelementptr inbounds i8, ptr %32, i64 15944
  br label %390

._crit_edge:                                      ; preds = %399, %379
  %384 = getelementptr inbounds i8, ptr %32, i64 16016
  %385 = load ptr, ptr %384, align 8, !tbaa !125
  %386 = load i32, ptr %380, align 8, !tbaa !126
  %387 = sext i32 %386 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %385, i64 noundef %387, i64 noundef 8, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %388 = load ptr, ptr %384, align 8, !tbaa !125
  %389 = load i32, ptr %380, align 8, !tbaa !126
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %388, i32 noundef %389, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %403

390:                                              ; preds = %.lr.ph484, %399
  %.0383483 = phi i32 [ 0, %.lr.ph484 ], [ %400, %399 ]
  %391 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %373, i32 noundef %.0383483)
  %392 = load ptr, ptr %391, align 8, !tbaa !5
  %393 = getelementptr inbounds i8, ptr %392, i64 608
  %394 = load i32, ptr %393, align 8, !tbaa !127
  %395 = add nsw i32 %394, 1
  %396 = load i32, ptr %383, align 8, !tbaa !115
  %.not450 = icmp slt i32 %395, %396
  br i1 %.not450, label %399, label %397

397:                                              ; preds = %390
  %398 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %373, i32 noundef %.0383483)
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %380, ptr noundef nonnull align 8 dereferenceable(8) %398)
  br label %399

399:                                              ; preds = %390, %397
  %400 = add nuw nsw i32 %.0383483, 1
  %401 = load i32, ptr %373, align 8, !tbaa !124
  %402 = icmp slt i32 %400, %401
  br i1 %402, label %390, label %._crit_edge, !llvm.loop !128

403:                                              ; preds = %._crit_edge, %376
  call void @_ZN5ImGui7TreePopEv()
  br label %404

404:                                              ; preds = %403, %372
  %405 = getelementptr inbounds i8, ptr %32, i64 18584
  %406 = load i32, ptr %405, align 8, !tbaa !129
  %407 = icmp sgt i32 %406, 0
  br i1 %407, label %.lr.ph488, label %._crit_edge489

._crit_edge489:                                   ; preds = %.lr.ph488, %404
  %.0384.lcssa = phi i32 [ 0, %404 ], [ %413, %.lr.ph488 ]
  %408 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.370, ptr noundef nonnull @.str.371, i32 noundef %.0384.lcssa)
  br i1 %408, label %417, label %445

.lr.ph488:                                        ; preds = %404, %.lr.ph488
  %.0384486 = phi i32 [ %413, %.lr.ph488 ], [ 0, %404 ]
  %.0386485 = phi i32 [ %414, %.lr.ph488 ], [ 0, %404 ]
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %405, i32 noundef %.0386485)
  %410 = load ptr, ptr %409, align 8, !tbaa !5
  %411 = getelementptr inbounds i8, ptr %410, i64 120
  %412 = call noundef i32 @_ZNK17ImDrawDataBuilder16GetDrawListCountEv(ptr noundef nonnull align 8 dereferenceable(32) %411)
  %413 = add nsw i32 %412, %.0384486
  %414 = add nuw nsw i32 %.0386485, 1
  %415 = load i32, ptr %405, align 8, !tbaa !129
  %416 = icmp slt i32 %414, %415
  br i1 %416, label %.lr.ph488, label %._crit_edge489, !llvm.loop !130

417:                                              ; preds = %._crit_edge489
  %418 = getelementptr inbounds i8, ptr %32, i64 23737
  %419 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.372, ptr noundef nonnull %418)
  %420 = getelementptr inbounds i8, ptr %32, i64 23738
  %421 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.373, ptr noundef nonnull %420)
  %422 = load i32, ptr %405, align 8, !tbaa !129
  %423 = icmp sgt i32 %422, 0
  br i1 %423, label %.lr.ph497, label %._crit_edge498

._crit_edge498:                                   ; preds = %._crit_edge493.1, %417
  call void @_ZN5ImGui7TreePopEv()
  br label %445

.lr.ph497:                                        ; preds = %417, %._crit_edge493.1
  %.0388495 = phi i32 [ %437, %._crit_edge493.1 ], [ 0, %417 ]
  %424 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %405, i32 noundef %.0388495)
  %425 = load ptr, ptr %424, align 8, !tbaa !5
  %426 = getelementptr inbounds i8, ptr %425, i64 120
  %427 = load i32, ptr %426, align 8, !tbaa !131
  %428 = icmp sgt i32 %427, 0
  br i1 %428, label %.lr.ph492, label %._crit_edge493

._crit_edge493:                                   ; preds = %.lr.ph492, %.lr.ph497
  %429 = getelementptr inbounds i8, ptr %425, i64 136
  %430 = load i32, ptr %429, align 8, !tbaa !131
  %431 = icmp sgt i32 %430, 0
  br i1 %431, label %.lr.ph492.1, label %._crit_edge493.1

.lr.ph492.1:                                      ; preds = %._crit_edge493, %.lr.ph492.1
  %.0395491.1 = phi i32 [ %434, %.lr.ph492.1 ], [ 0, %._crit_edge493 ]
  %432 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %429, i32 noundef %.0395491.1)
  %433 = load ptr, ptr %432, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %433, ptr noundef nonnull @.str.374)
  %434 = add nuw nsw i32 %.0395491.1, 1
  %435 = load i32, ptr %429, align 8, !tbaa !131
  %436 = icmp slt i32 %434, %435
  br i1 %436, label %.lr.ph492.1, label %._crit_edge493.1, !llvm.loop !133

._crit_edge493.1:                                 ; preds = %.lr.ph492.1, %._crit_edge493
  %437 = add nuw nsw i32 %.0388495, 1
  %438 = load i32, ptr %405, align 8, !tbaa !129
  %439 = icmp slt i32 %437, %438
  br i1 %439, label %.lr.ph497, label %._crit_edge498, !llvm.loop !134

.lr.ph492:                                        ; preds = %.lr.ph497, %.lr.ph492
  %.0395491 = phi i32 [ %442, %.lr.ph492 ], [ 0, %.lr.ph497 ]
  %440 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %426, i32 noundef %.0395491)
  %441 = load ptr, ptr %440, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %441, ptr noundef nonnull @.str.374)
  %442 = add nuw nsw i32 %.0395491, 1
  %443 = load i32, ptr %426, align 8, !tbaa !131
  %444 = icmp slt i32 %442, %443
  br i1 %444, label %.lr.ph492, label %._crit_edge493, !llvm.loop !133

445:                                              ; preds = %._crit_edge498, %._crit_edge489
  %446 = load i32, ptr %405, align 8, !tbaa !129
  %447 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.375, ptr noundef nonnull @.str.376, i32 noundef %446)
  br i1 %447, label %448, label %458

448:                                              ; preds = %445
  %449 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %449)
  call void @_ZL25RenderViewportsThumbnailsv()
  %450 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %450)
  %451 = load i32, ptr %405, align 8, !tbaa !129
  %452 = icmp sgt i32 %451, 0
  br i1 %452, label %.lr.ph501, label %._crit_edge502

._crit_edge502:                                   ; preds = %.lr.ph501, %448
  call void @_ZN5ImGui7TreePopEv()
  br label %458

.lr.ph501:                                        ; preds = %448, %.lr.ph501
  %.0396499 = phi i32 [ %455, %.lr.ph501 ], [ 0, %448 ]
  %453 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %405, i32 noundef %.0396499)
  %454 = load ptr, ptr %453, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %454)
  %455 = add nuw nsw i32 %.0396499, 1
  %456 = load i32, ptr %405, align 8, !tbaa !129
  %457 = icmp slt i32 %455, %456
  br i1 %457, label %.lr.ph501, label %._crit_edge502, !llvm.loop !135

458:                                              ; preds = %._crit_edge502, %445
  %459 = getelementptr inbounds i8, ptr %32, i64 18544
  %460 = load i32, ptr %459, align 8, !tbaa !136
  %461 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.377, ptr noundef nonnull @.str.378, i32 noundef %460)
  br i1 %461, label %.preheader472, label %496

.preheader472:                                    ; preds = %458
  %462 = load i32, ptr %459, align 8, !tbaa !136
  %463 = icmp sgt i32 %462, 0
  br i1 %463, label %.lr.ph504, label %._crit_edge505

._crit_edge505:                                   ; preds = %491, %.preheader472
  call void @_ZN5ImGui7TreePopEv()
  br label %496

.lr.ph504:                                        ; preds = %.preheader472, %491
  %.0404503 = phi i32 [ %493, %491 ], [ 0, %.preheader472 ]
  %464 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %459, i32 noundef %.0404503)
  %465 = getelementptr inbounds i8, ptr %464, i64 8
  %466 = load ptr, ptr %465, align 8, !tbaa !137
  %467 = load i32, ptr %464, align 8, !tbaa !139
  %.not447 = icmp eq ptr %466, null
  br i1 %.not447, label %.thread457, label %468

468:                                              ; preds = %.lr.ph504
  %469 = getelementptr inbounds i8, ptr %466, i64 8
  %470 = load ptr, ptr %469, align 8, !tbaa !103
  %471 = getelementptr inbounds i8, ptr %466, i64 20
  %472 = load i32, ptr %471, align 4, !tbaa !140
  %.fr462 = freeze i32 %472
  %473 = and i32 %.fr462, 16777216
  %.not461 = icmp eq i32 %473, 0
  %spec.select = select i1 %.not461, ptr @.str.16, ptr @.str.381
  %474 = and i32 %.fr462, 268435456
  %.not463 = icmp eq i32 %474, 0
  %spec.select459 = select i1 %.not463, ptr @.str.16, ptr @.str.382
  br label %.thread457

.thread457:                                       ; preds = %468, %.lr.ph504
  %475 = phi ptr [ @.str.380, %.lr.ph504 ], [ %470, %468 ]
  %476 = phi ptr [ @.str.16, %.lr.ph504 ], [ %spec.select, %468 ]
  %477 = phi ptr [ @.str.16, %.lr.ph504 ], [ %spec.select459, %468 ]
  %478 = getelementptr inbounds i8, ptr %464, i64 16
  %479 = load ptr, ptr %478, align 8, !tbaa !141
  %.not448 = icmp eq ptr %479, null
  br i1 %.not448, label %483, label %480

480:                                              ; preds = %.thread457
  %481 = getelementptr inbounds i8, ptr %479, i64 8
  %482 = load ptr, ptr %481, align 8, !tbaa !103
  br label %483

483:                                              ; preds = %.thread457, %480
  %484 = phi ptr [ %482, %480 ], [ @.str.380, %.thread457 ]
  br i1 %.not447, label %491, label %485

485:                                              ; preds = %483
  %486 = getelementptr inbounds i8, ptr %466, i64 872
  %487 = load ptr, ptr %486, align 8, !tbaa !142
  %.not449 = icmp eq ptr %487, null
  br i1 %.not449, label %491, label %488

488:                                              ; preds = %485
  %489 = getelementptr inbounds i8, ptr %487, i64 8
  %490 = load ptr, ptr %489, align 8, !tbaa !103
  br label %491

491:                                              ; preds = %483, %485, %488
  %492 = phi ptr [ %490, %488 ], [ @.str.380, %485 ], [ @.str.380, %483 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.379, i32 noundef %467, ptr noundef %475, ptr noundef nonnull %476, ptr noundef nonnull %477, ptr noundef %484, ptr noundef %492)
  %493 = add nuw nsw i32 %.0404503, 1
  %494 = load i32, ptr %459, align 8, !tbaa !136
  %495 = icmp slt i32 %493, %494
  br i1 %495, label %.lr.ph504, label %._crit_edge505, !llvm.loop !143

496:                                              ; preds = %._crit_edge505, %458
  %497 = getelementptr inbounds i8, ptr %32, i64 19320
  %498 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %497)
  %499 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.383, ptr noundef nonnull @.str.384, i32 noundef %498)
  br i1 %499, label %.preheader471, label %508

.preheader471:                                    ; preds = %496
  %500 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %497)
  %501 = icmp sgt i32 %500, 0
  br i1 %501, label %.lr.ph507, label %._crit_edge508

._crit_edge508:                                   ; preds = %504, %.preheader471
  call void @_ZN5ImGui7TreePopEv()
  br label %508

.lr.ph507:                                        ; preds = %.preheader471, %504
  %.0405506 = phi i32 [ %505, %504 ], [ 0, %.preheader471 ]
  %502 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %497, i32 noundef %.0405506)
  %.not446 = icmp eq ptr %502, null
  br i1 %.not446, label %504, label %503

503:                                              ; preds = %.lr.ph507
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef nonnull %502)
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef nonnull %502, ptr noundef nonnull @.str.385)
  call void @_ZN5ImGui5PopIDEv()
  br label %504

504:                                              ; preds = %503, %.lr.ph507
  %505 = add nuw nsw i32 %.0405506, 1
  %506 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %497)
  %507 = icmp slt i32 %505, %506
  br i1 %507, label %.lr.ph507, label %._crit_edge508, !llvm.loop !144

508:                                              ; preds = %._crit_edge508, %496
  %509 = getelementptr inbounds i8, ptr %32, i64 19240
  %510 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %509)
  %511 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.386, ptr noundef nonnull @.str.387, i32 noundef %510)
  br i1 %511, label %.preheader470, label %520

.preheader470:                                    ; preds = %508
  %512 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %509)
  %513 = icmp sgt i32 %512, 0
  br i1 %513, label %.lr.ph510, label %._crit_edge511

._crit_edge511:                                   ; preds = %516, %.preheader470
  call void @_ZN5ImGui7TreePopEv()
  br label %520

.lr.ph510:                                        ; preds = %.preheader470, %516
  %.0406509 = phi i32 [ %517, %516 ], [ 0, %.preheader470 ]
  %514 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %509, i32 noundef %.0406509)
  %.not445 = icmp eq ptr %514, null
  br i1 %.not445, label %516, label %515

515:                                              ; preds = %.lr.ph510
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef nonnull %514)
  br label %516

516:                                              ; preds = %515, %.lr.ph510
  %517 = add nuw nsw i32 %.0406509, 1
  %518 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %509)
  %519 = icmp slt i32 %517, %518
  br i1 %519, label %.lr.ph510, label %._crit_edge511, !llvm.loop !145

520:                                              ; preds = %._crit_edge511, %508
  %521 = getelementptr inbounds i8, ptr %32, i64 88
  %522 = load ptr, ptr %521, align 8, !tbaa !146
  %523 = getelementptr inbounds i8, ptr %522, i64 88
  %524 = load i32, ptr %523, align 8, !tbaa !147
  %525 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.388, ptr noundef nonnull @.str.389, i32 noundef %524)
  br i1 %525, label %526, label %527

526:                                              ; preds = %520
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef nonnull %522)
  call void @_ZN5ImGui7TreePopEv()
  br label %527

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

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

531:                                              ; preds = %529, %527
  %532 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.391)
  br i1 %532, label %533, label %590

533:                                              ; preds = %531
  %534 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.392)
  br i1 %534, label %535, label %536

535:                                              ; preds = %533
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %536

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

538:                                              ; preds = %536
  %539 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %540

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

542:                                              ; preds = %540
  %543 = getelementptr inbounds i8, ptr %32, i64 32
  %544 = load ptr, ptr %543, align 8, !tbaa !151
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %544)
  br label %545

545:                                              ; preds = %542, %540
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %546 = getelementptr inbounds i8, ptr %32, i64 32
  %547 = load ptr, ptr %546, align 8, !tbaa !151
  %.not432 = icmp eq ptr %547, null
  br i1 %.not432, label %549, label %548

548:                                              ; preds = %545
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.395, ptr noundef nonnull %547)
  br label %550

549:                                              ; preds = %545
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef nonnull @.str.243, ptr noundef null)
  br label %550

550:                                              ; preds = %549, %548
  %551 = getelementptr inbounds i8, ptr %32, i64 23460
  %552 = load float, ptr %551, align 4, !tbaa !152
  %553 = fpext float %552 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.396, double noundef %553)
  %554 = getelementptr inbounds i8, ptr %32, i64 23480
  %555 = load i32, ptr %554, align 8, !tbaa !153
  %556 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.397, ptr noundef nonnull @.str.398, i32 noundef %555)
  br i1 %556, label %.preheader469, label %564

.preheader469:                                    ; preds = %550
  %557 = load i32, ptr %554, align 8, !tbaa !153
  %558 = icmp sgt i32 %557, 0
  br i1 %558, label %.lr.ph513, label %._crit_edge514

._crit_edge514:                                   ; preds = %.lr.ph513, %.preheader469
  call void @_ZN5ImGui7TreePopEv()
  br label %564

.lr.ph513:                                        ; preds = %.preheader469, %.lr.ph513
  %.0403512 = phi i32 [ %561, %.lr.ph513 ], [ 0, %.preheader469 ]
  %559 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %554, i32 noundef %.0403512)
  %560 = load ptr, ptr %559, align 8, !tbaa !154
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.399, ptr noundef %560)
  %561 = add nuw nsw i32 %.0403512, 1
  %562 = load i32, ptr %554, align 8, !tbaa !153
  %563 = icmp slt i32 %561, %562
  br i1 %563, label %.lr.ph513, label %._crit_edge514, !llvm.loop !156

564:                                              ; preds = %._crit_edge514, %550
  %565 = getelementptr inbounds i8, ptr %32, i64 23496
  %566 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %565)
  %567 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.400, ptr noundef nonnull @.str.401, i32 noundef %566)
  br i1 %567, label %568, label %571

568:                                              ; preds = %564
  %569 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %565)
  %.not433515 = icmp eq ptr %569, null
  br i1 %.not433515, label %._crit_edge519, label %.lr.ph518

._crit_edge519:                                   ; preds = %.lr.ph518, %568
  call void @_ZN5ImGui7TreePopEv()
  br label %571

.lr.ph518:                                        ; preds = %568, %.lr.ph518
  %.0402516 = phi ptr [ %570, %.lr.ph518 ], [ %569, %568 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0402516)
  %570 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %565, ptr noundef nonnull %.0402516)
  %.not433 = icmp eq ptr %570, null
  br i1 %.not433, label %._crit_edge519, label %.lr.ph518, !llvm.loop !157

571:                                              ; preds = %._crit_edge519, %564
  %572 = getelementptr inbounds i8, ptr %32, i64 23512
  %573 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %572)
  %574 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.402, ptr noundef nonnull @.str.403, i32 noundef %573)
  br i1 %574, label %575, label %578

575:                                              ; preds = %571
  %576 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %572)
  %.not434520 = icmp eq ptr %576, null
  br i1 %.not434520, label %._crit_edge524, label %.lr.ph523

._crit_edge524:                                   ; preds = %.lr.ph523, %575
  call void @_ZN5ImGui7TreePopEv()
  br label %578

.lr.ph523:                                        ; preds = %575, %.lr.ph523
  %.0401521 = phi ptr [ %577, %.lr.ph523 ], [ %576, %575 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0401521)
  %577 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %572, ptr noundef nonnull %.0401521)
  %.not434 = icmp eq ptr %577, null
  br i1 %.not434, label %._crit_edge524, label %.lr.ph523, !llvm.loop !158

578:                                              ; preds = %._crit_edge524, %571
  %579 = getelementptr inbounds i8, ptr %32, i64 23464
  %580 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %579)
  %581 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.404, ptr noundef nonnull @.str.405, i32 noundef %580)
  br i1 %581, label %582, label %589

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

589:                                              ; preds = %582, %578
  call void @_ZN5ImGui7TreePopEv()
  br label %590

590:                                              ; preds = %589, %531
  %591 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.407)
  br i1 %591, label %592, label %827

592:                                              ; preds = %590
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.408)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.409)
  br label %594

593:                                              ; preds = %606
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.412)
  br label %609

594:                                              ; preds = %592, %606
  %.0400525 = phi i32 [ 0, %592 ], [ %607, %606 ]
  %595 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0400525)
  br i1 %595, label %606, label %596

596:                                              ; preds = %594
  %597 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %.0400525)
  br i1 %597, label %598, label %606

598:                                              ; preds = %596
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %599 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0400525)
  %600 = select i1 %599, ptr @.str.395, ptr @.str.410
  %601 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0400525)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %600, ptr noundef %601, i32 noundef %.0400525)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %602 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %.0400525)
  %603 = getelementptr inbounds i8, ptr %602, i64 4
  %604 = load float, ptr %603, align 4, !tbaa !160
  %605 = fpext float %604 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.411, double noundef %605)
  br label %606

606:                                              ; preds = %594, %596, %598
  %607 = add nuw nsw i32 %.0400525, 1
  %exitcond554.not = icmp eq i32 %607, 652
  br i1 %exitcond554.not, label %593, label %594, !llvm.loop !162

608:                                              ; preds = %617
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.413)
  br label %639

609:                                              ; preds = %593, %617
  %.0399526 = phi i32 [ 0, %593 ], [ %618, %617 ]
  %610 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0399526)
  br i1 %610, label %617, label %611

611:                                              ; preds = %609
  %612 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %.0399526, i1 noundef zeroext true)
  br i1 %612, label %613, label %617

613:                                              ; preds = %611
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %614 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0399526)
  %615 = select i1 %614, ptr @.str.395, ptr @.str.410
  %616 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0399526)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %615, ptr noundef %616, i32 noundef %.0399526)
  br label %617

617:                                              ; preds = %609, %611, %613
  %618 = add nuw nsw i32 %.0399526, 1
  %exitcond555.not = icmp eq i32 %618, 652
  br i1 %exitcond555.not, label %608, label %609, !llvm.loop !163

619:                                              ; preds = %647
  %620 = getelementptr inbounds i8, ptr %32, i64 3616
  %621 = load i8, ptr %620, align 8, !tbaa !164, !range !13, !noundef !14
  %622 = trunc nuw i8 %621 to i1
  %623 = select i1 %622, ptr @.str.415, ptr @.str.16
  %624 = getelementptr inbounds i8, ptr %32, i64 3617
  %625 = load i8, ptr %624, align 1, !tbaa !165, !range !13, !noundef !14
  %626 = trunc nuw i8 %625 to i1
  %627 = select i1 %626, ptr @.str.416, ptr @.str.16
  %628 = getelementptr inbounds i8, ptr %32, i64 3618
  %629 = load i8, ptr %628, align 2, !tbaa !166, !range !13, !noundef !14
  %630 = trunc nuw i8 %629 to i1
  %631 = select i1 %630, ptr @.str.417, ptr @.str.16
  %632 = getelementptr inbounds i8, ptr %32, i64 3619
  %633 = load i8, ptr %632, align 1, !tbaa !167, !range !13, !noundef !14
  %634 = trunc nuw i8 %633 to i1
  %635 = select i1 %634, ptr @.str.418, ptr @.str.16
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.414, ptr noundef nonnull %623, ptr noundef nonnull %627, ptr noundef nonnull %631, ptr noundef nonnull %635)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.419)
  %636 = getelementptr inbounds i8, ptr %32, i64 14272
  %637 = load i32, ptr %636, align 8, !tbaa !168
  %638 = icmp sgt i32 %637, 0
  br i1 %638, label %.lr.ph530, label %._crit_edge531

639:                                              ; preds = %608, %647
  %.0398527 = phi i32 [ 0, %608 ], [ %648, %647 ]
  %640 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0398527)
  br i1 %640, label %647, label %641

641:                                              ; preds = %639
  %642 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %.0398527)
  br i1 %642, label %643, label %647

643:                                              ; preds = %641
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %644 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0398527)
  %645 = select i1 %644, ptr @.str.395, ptr @.str.410
  %646 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0398527)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %645, ptr noundef %646, i32 noundef %.0398527)
  br label %647

647:                                              ; preds = %639, %641, %643
  %648 = add nuw nsw i32 %.0398527, 1
  %exitcond556.not = icmp eq i32 %648, 652
  br i1 %exitcond556.not, label %619, label %639, !llvm.loop !169

._crit_edge531:                                   ; preds = %.lr.ph530, %619
  %649 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %649)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.421)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %650 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %650, label %660, label %667

.lr.ph530:                                        ; preds = %619, %.lr.ph530
  %.0397528 = phi i32 [ %657, %.lr.ph530 ], [ 0, %619 ]
  %651 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %636, i32 noundef %.0397528)
  %652 = load i16, ptr %651, align 2, !tbaa !170
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %653 = zext i16 %652 to i32
  %654 = add i16 %652, -33
  %or.cond4 = icmp ult i16 %654, 223
  %sext = shl i32 %653, 24
  %655 = ashr exact i32 %sext, 24
  %656 = select i1 %or.cond4, i32 %655, i32 63
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.420, i32 noundef %656, i32 noundef %653)
  %657 = add nuw nsw i32 %.0397528, 1
  %658 = load i32, ptr %636, align 8, !tbaa !168
  %659 = icmp slt i32 %657, %658
  br i1 %659, label %.lr.ph530, label %._crit_edge531, !llvm.loop !171

660:                                              ; preds = %._crit_edge531
  %661 = getelementptr inbounds i8, ptr %32, i64 3592
  %662 = load float, ptr %661, align 8, !tbaa !172
  %663 = fpext float %662 to double
  %664 = getelementptr inbounds i8, ptr %32, i64 3596
  %665 = load float, ptr %664, align 4, !tbaa !173
  %666 = fpext float %665 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.422, double noundef %663, double noundef %666)
  br label %668

667:                                              ; preds = %._crit_edge531
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.423)
  br label %668

668:                                              ; preds = %667, %660
  %669 = getelementptr inbounds i8, ptr %32, i64 248
  %670 = load float, ptr %669, align 8, !tbaa !174
  %671 = fpext float %670 to double
  %672 = getelementptr inbounds i8, ptr %32, i64 252
  %673 = load float, ptr %672, align 4, !tbaa !175
  %674 = fpext float %673 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.424, double noundef %671, double noundef %674)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.425)
  %675 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 0)
  br i1 %675, label %676, label %680

676:                                              ; preds = %668
  %677 = getelementptr inbounds i8, ptr %32, i64 14200
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %678 = load float, ptr %677, align 4, !tbaa !176
  %679 = fpext float %678 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.426, i32 noundef 0, double noundef %679)
  br label %680

680:                                              ; preds = %668, %676
  %681 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 1)
  br i1 %681, label %682, label %686

682:                                              ; preds = %680
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %683 = getelementptr inbounds i8, ptr %32, i64 14204
  %684 = load float, ptr %683, align 4, !tbaa !176
  %685 = fpext float %684 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.426, i32 noundef 1, double noundef %685)
  br label %686

686:                                              ; preds = %682, %680
  %687 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 2)
  br i1 %687, label %688, label %692

688:                                              ; preds = %686
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %689 = getelementptr inbounds i8, ptr %32, i64 14208
  %690 = load float, ptr %689, align 4, !tbaa !176
  %691 = fpext float %690 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.426, i32 noundef 2, double noundef %691)
  br label %692

692:                                              ; preds = %688, %686
  %693 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 3)
  br i1 %693, label %694, label %698

694:                                              ; preds = %692
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %695 = getelementptr inbounds i8, ptr %32, i64 14212
  %696 = load float, ptr %695, align 4, !tbaa !176
  %697 = fpext float %696 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.426, i32 noundef 3, double noundef %697)
  br label %698

698:                                              ; preds = %694, %692
  %699 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 4)
  br i1 %699, label %700, label %704

700:                                              ; preds = %698
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %701 = getelementptr inbounds i8, ptr %32, i64 14216
  %702 = load float, ptr %701, align 4, !tbaa !176
  %703 = fpext float %702 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.426, i32 noundef 4, double noundef %703)
  br label %704

704:                                              ; preds = %700, %698
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.427)
  %705 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
  br i1 %705, label %706, label %710

706:                                              ; preds = %704
  %707 = getelementptr inbounds i8, ptr %32, i64 14162
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %708 = load i16, ptr %707, align 2, !tbaa !170
  %709 = zext i16 %708 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.428, i32 noundef 0, i32 noundef %709)
  br label %710

710:                                              ; preds = %704, %706
  %711 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 1, i1 noundef zeroext false)
  br i1 %711, label %712, label %716

712:                                              ; preds = %710
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %713 = getelementptr inbounds i8, ptr %32, i64 14164
  %714 = load i16, ptr %713, align 2, !tbaa !170
  %715 = zext i16 %714 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.428, i32 noundef 1, i32 noundef %715)
  br label %716

716:                                              ; preds = %712, %710
  %717 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 2, i1 noundef zeroext false)
  br i1 %717, label %718, label %722

718:                                              ; preds = %716
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %719 = getelementptr inbounds i8, ptr %32, i64 14166
  %720 = load i16, ptr %719, align 2, !tbaa !170
  %721 = zext i16 %720 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.428, i32 noundef 2, i32 noundef %721)
  br label %722

722:                                              ; preds = %718, %716
  %723 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 3, i1 noundef zeroext false)
  br i1 %723, label %724, label %728

724:                                              ; preds = %722
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %725 = getelementptr inbounds i8, ptr %32, i64 14168
  %726 = load i16, ptr %725, align 2, !tbaa !170
  %727 = zext i16 %726 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.428, i32 noundef 3, i32 noundef %727)
  br label %728

728:                                              ; preds = %724, %722
  %729 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 4, i1 noundef zeroext false)
  br i1 %729, label %730, label %734

730:                                              ; preds = %728
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %731 = getelementptr inbounds i8, ptr %32, i64 14170
  %732 = load i16, ptr %731, align 2, !tbaa !170
  %733 = zext i16 %732 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.428, i32 noundef 4, i32 noundef %733)
  br label %734

734:                                              ; preds = %730, %728
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.429)
  %735 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 0)
  br i1 %735, label %736, label %737

736:                                              ; preds = %734
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.430, i32 noundef 0)
  br label %737

737:                                              ; preds = %734, %736
  %738 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 1)
  br i1 %738, label %739, label %740

739:                                              ; preds = %737
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.430, i32 noundef 1)
  br label %740

740:                                              ; preds = %739, %737
  %741 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 2)
  br i1 %741, label %742, label %743

742:                                              ; preds = %740
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.430, i32 noundef 2)
  br label %743

743:                                              ; preds = %742, %740
  %744 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 3)
  br i1 %744, label %745, label %746

745:                                              ; preds = %743
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.430, i32 noundef 3)
  br label %746

746:                                              ; preds = %745, %743
  %747 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 4)
  br i1 %747, label %748, label %749

748:                                              ; preds = %746
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.430, i32 noundef 4)
  br label %749

749:                                              ; preds = %748, %746
  %750 = getelementptr inbounds i8, ptr %32, i64 3608
  %751 = load float, ptr %750, align 8, !tbaa !177
  %752 = fpext float %751 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.431, double noundef %752)
  %753 = getelementptr inbounds i8, ptr %32, i64 14260
  %754 = load float, ptr %753, align 4, !tbaa !178
  %755 = fpext float %754 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.432, double noundef %755)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.433)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %756 = getelementptr inbounds i8, ptr %32, i64 16104
  %757 = load ptr, ptr %756, align 8, !tbaa !179
  %.not435 = icmp eq ptr %757, null
  br i1 %.not435, label %761, label %758

758:                                              ; preds = %749
  %759 = getelementptr inbounds i8, ptr %757, i64 8
  %760 = load ptr, ptr %759, align 8, !tbaa !103
  br label %761

761:                                              ; preds = %749, %758
  %762 = phi ptr [ %760, %758 ], [ @.str.380, %749 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.434, ptr noundef %762)
  %763 = getelementptr inbounds i8, ptr %32, i64 16124
  %764 = load float, ptr %763, align 4, !tbaa !180
  %765 = fpext float %764 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.435, double noundef %765)
  %766 = getelementptr inbounds i8, ptr %32, i64 16136
  %767 = load float, ptr %766, align 8, !tbaa !181
  %768 = fpext float %767 to double
  %769 = getelementptr inbounds i8, ptr %32, i64 16140
  %770 = load float, ptr %769, align 4, !tbaa !182
  %771 = fpext float %770 to double
  %772 = fcmp ogt float %767, %770
  %773 = fcmp olt float %767, %770
  %774 = select i1 %773, ptr @.str.437, ptr @.str.438
  %775 = select i1 %772, ptr @.str.305, ptr %774
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.436, double noundef %768, double noundef %771, ptr noundef nonnull %775)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.439)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  %776 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %777 = fmul float %776, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0xB810000000000000, float noundef %777)
  %778 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef nonnull @.str.440, ptr noundef nonnull align 4 dereferenceable(8) %23)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  br i1 %778, label %.preheader468, label %799

779:                                              ; preds = %797
  call void @_ZN5ImGui10EndListBoxEv()
  br label %799

.preheader468:                                    ; preds = %761, %797
  %.0391535 = phi i32 [ %798, %797 ], [ 512, %761 ]
  %780 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataE8ImGuiKey(i32 noundef %.0391535)
  %781 = load i32, ptr %780, align 4, !tbaa !183
  %782 = icmp eq i32 %781, -1
  br i1 %782, label %797, label %783

783:                                              ; preds = %.preheader468
  %784 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0391535)
  %785 = load i32, ptr %780, align 4, !tbaa !183
  %786 = getelementptr inbounds i8, ptr %780, i64 9
  %787 = load i8, ptr %786, align 1, !tbaa !185, !range !13, !noundef !14
  %788 = trunc nuw i8 %787 to i1
  br i1 %788, label %794, label %789

789:                                              ; preds = %783
  %790 = getelementptr inbounds i8, ptr %780, i64 8
  %791 = load i8, ptr %790, align 4, !tbaa !186, !range !13, !noundef !14
  %792 = trunc nuw i8 %791 to i1
  %793 = select i1 %792, ptr @.str.443, ptr @.str.16
  br label %794

794:                                              ; preds = %783, %789
  %795 = phi ptr [ %793, %789 ], [ @.str.442, %783 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.441, ptr noundef %784, i32 noundef %785, ptr noundef nonnull %795)
  %796 = load i32, ptr %780, align 4, !tbaa !183
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %796)
  br label %797

797:                                              ; preds = %.preheader468, %794
  %798 = add nuw nsw i32 %.0391535, 1
  %exitcond566.not = icmp eq i32 %798, 652
  br i1 %exitcond566.not, label %779, label %.preheader468, !llvm.loop !187

799:                                              ; preds = %779, %761
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.444)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  %800 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %801 = fmul float %800, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 0xB810000000000000, float noundef %801)
  %802 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef nonnull @.str.445, ptr noundef nonnull align 4 dereferenceable(8) %24)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  br i1 %802, label %.preheader467, label %821

.preheader467:                                    ; preds = %799
  %803 = getelementptr inbounds i8, ptr %32, i64 17920
  %804 = getelementptr inbounds i8, ptr %32, i64 18200
  br label %806

805:                                              ; preds = %._crit_edge540
  call void @_ZN5ImGui10EndListBoxEv()
  br label %821

806:                                              ; preds = %.preheader467, %._crit_edge540
  %indvars.iv567 = phi i64 [ 512, %.preheader467 ], [ %indvars.iv.next568, %._crit_edge540 ]
  %807 = add nsw i64 %indvars.iv567, -512
  %808 = getelementptr inbounds [140 x i16], ptr %803, i64 0, i64 %807
  %809 = load i16, ptr %808, align 2, !tbaa !170
  %.not444536 = icmp eq i16 %809, -1
  br i1 %.not444536, label %._crit_edge540, label %.lr.ph539.preheader

.lr.ph539.preheader:                              ; preds = %806
  %810 = trunc nuw nsw i64 %indvars.iv567 to i32
  br label %.lr.ph539

._crit_edge540:                                   ; preds = %.lr.ph539, %806
  %indvars.iv.next568 = add nuw nsw i64 %indvars.iv567, 1
  %exitcond570.not = icmp eq i64 %indvars.iv.next568, 652
  br i1 %exitcond570.not, label %805, label %806, !llvm.loop !188

.lr.ph539:                                        ; preds = %.lr.ph539.preheader, %.lr.ph539
  %.0387537 = phi i16 [ %820, %.lr.ph539 ], [ %809, %.lr.ph539.preheader ]
  %811 = sext i16 %.0387537 to i32
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %25) #9
  %812 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %804, i32 noundef %811)
  %813 = getelementptr inbounds i8, ptr %812, i64 2
  %814 = load i16, ptr %813, align 2, !tbaa !189
  %815 = zext i16 %814 to i32
  %816 = or i32 %810, %815
  call void @_ZN5ImGui15GetKeyChordNameEiPci(i32 noundef %816, ptr noundef nonnull %25, i32 noundef 64)
  %817 = getelementptr inbounds i8, ptr %812, i64 8
  %818 = load i32, ptr %817, align 4, !tbaa !191
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.446, ptr noundef nonnull %25, i32 noundef %818)
  %819 = load i32, ptr %817, align 4, !tbaa !191
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %819)
  %820 = load i16, ptr %812, align 4, !tbaa !192
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %25) #9
  %.not444 = icmp eq i16 %820, -1
  br i1 %.not444, label %._crit_edge540, label %.lr.ph539, !llvm.loop !193

821:                                              ; preds = %805, %799
  %822 = getelementptr inbounds i8, ptr %32, i64 18236
  %823 = load i8, ptr %822, align 4, !tbaa !194, !range !13, !noundef !14
  %824 = zext nneg i8 %823 to i32
  %825 = getelementptr inbounds i8, ptr %32, i64 18232
  %826 = load i32, ptr %825, align 8, !tbaa !195
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.447, i32 noundef %824, i32 noundef %826)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %827

827:                                              ; preds = %821, %590
  %828 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.448)
  br i1 %828, label %829, label %954

829:                                              ; preds = %827
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.449)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %830 = getelementptr inbounds i8, ptr %32, i64 16080
  %831 = load ptr, ptr %830, align 8, !tbaa !196
  %.not436 = icmp eq ptr %831, null
  br i1 %.not436, label %835, label %832

832:                                              ; preds = %829
  %833 = getelementptr inbounds i8, ptr %831, i64 8
  %834 = load ptr, ptr %833, align 8, !tbaa !103
  br label %835

835:                                              ; preds = %829, %832
  %836 = phi ptr [ %834, %832 ], [ @.str.380, %829 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.450, ptr noundef %836)
  %837 = load ptr, ptr %830, align 8, !tbaa !196
  %.not437 = icmp eq ptr %837, null
  br i1 %.not437, label %843, label %838

838:                                              ; preds = %835
  %839 = getelementptr inbounds i8, ptr %837, i64 888
  %840 = load ptr, ptr %839, align 8, !tbaa !197
  %841 = getelementptr inbounds i8, ptr %840, i64 8
  %842 = load ptr, ptr %841, align 8, !tbaa !103
  br label %843

843:                                              ; preds = %835, %838
  %844 = phi ptr [ %842, %838 ], [ @.str.380, %835 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.451, ptr noundef %844)
  %845 = getelementptr inbounds i8, ptr %32, i64 16088
  %846 = load ptr, ptr %845, align 8, !tbaa !198
  %.not438 = icmp eq ptr %846, null
  br i1 %.not438, label %850, label %847

847:                                              ; preds = %843
  %848 = getelementptr inbounds i8, ptr %846, i64 8
  %849 = load ptr, ptr %848, align 8, !tbaa !103
  br label %850

850:                                              ; preds = %843, %847
  %851 = phi ptr [ %849, %847 ], [ @.str.380, %843 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.452, ptr noundef %851)
  %852 = getelementptr inbounds i8, ptr %32, i64 16096
  %853 = load ptr, ptr %852, align 8, !tbaa !199
  %.not439 = icmp eq ptr %853, null
  br i1 %.not439, label %857, label %854

854:                                              ; preds = %850
  %855 = getelementptr inbounds i8, ptr %853, i64 8
  %856 = load ptr, ptr %855, align 8, !tbaa !103
  br label %857

857:                                              ; preds = %850, %854
  %858 = phi ptr [ %856, %854 ], [ @.str.380, %850 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.453, ptr noundef %858)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.454)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %859 = getelementptr inbounds i8, ptr %32, i64 16168
  %860 = load i32, ptr %859, align 8, !tbaa !200
  %861 = getelementptr inbounds i8, ptr %32, i64 16216
  %862 = load i32, ptr %861, align 8, !tbaa !201
  %863 = getelementptr inbounds i8, ptr %32, i64 16176
  %864 = load float, ptr %863, align 8, !tbaa !202
  %865 = fpext float %864 to double
  %866 = getelementptr inbounds i8, ptr %32, i64 16181
  %867 = load i8, ptr %866, align 1, !tbaa !203, !range !13, !noundef !14
  %868 = zext nneg i8 %867 to i32
  %869 = getelementptr inbounds i8, ptr %32, i64 16208
  %870 = load i32, ptr %869, align 8, !tbaa !204
  %871 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %870)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.455, i32 noundef %860, i32 noundef %862, double noundef %865, i32 noundef %868, ptr noundef %871)
  %872 = load i32, ptr %859, align 8, !tbaa !200
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %872)
  %873 = getelementptr inbounds i8, ptr %32, i64 16200
  %874 = load ptr, ptr %873, align 8, !tbaa !205
  %.not440 = icmp eq ptr %874, null
  br i1 %.not440, label %878, label %875

875:                                              ; preds = %857
  %876 = getelementptr inbounds i8, ptr %874, i64 8
  %877 = load ptr, ptr %876, align 8, !tbaa !103
  br label %878

878:                                              ; preds = %857, %875
  %879 = phi ptr [ %877, %875 ], [ @.str.380, %857 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.456, ptr noundef %879)
  %880 = getelementptr inbounds i8, ptr %32, i64 18236
  %881 = load i8, ptr %880, align 4, !tbaa !194, !range !13, !noundef !14
  %882 = zext nneg i8 %881 to i32
  %883 = getelementptr inbounds i8, ptr %32, i64 18232
  %884 = load i32, ptr %883, align 8, !tbaa !195
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.457, i32 noundef %882, i32 noundef %884)
  %885 = getelementptr inbounds i8, ptr %32, i64 16152
  %886 = load i32, ptr %885, align 8, !tbaa !206
  %887 = getelementptr inbounds i8, ptr %32, i64 16160
  %888 = load float, ptr %887, align 8, !tbaa !207
  %889 = fpext float %888 to double
  %890 = getelementptr inbounds i8, ptr %32, i64 16156
  %891 = load i8, ptr %890, align 4, !tbaa !208, !range !13, !noundef !14
  %892 = zext nneg i8 %891 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.458, i32 noundef %886, double noundef %889, i32 noundef %892)
  %893 = getelementptr inbounds i8, ptr %32, i64 19392
  %894 = load i32, ptr %893, align 8, !tbaa !209
  %895 = getelementptr inbounds i8, ptr %32, i64 19400
  %896 = load float, ptr %895, align 8, !tbaa !210
  %897 = fpext float %896 to double
  %898 = getelementptr inbounds i8, ptr %32, i64 19404
  %899 = load float, ptr %898, align 4, !tbaa !211
  %900 = fpext float %899 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.459, i32 noundef %894, double noundef %897, double noundef %900)
  %901 = getelementptr inbounds i8, ptr %32, i64 19020
  %902 = load i8, ptr %901, align 4, !tbaa !212, !range !13, !noundef !14
  %903 = zext nneg i8 %902 to i32
  %904 = getelementptr inbounds i8, ptr %32, i64 19052
  %905 = load i32, ptr %904, align 4, !tbaa !213
  %906 = getelementptr inbounds i8, ptr %32, i64 19064
  %907 = getelementptr inbounds i8, ptr %32, i64 19048
  %908 = load i32, ptr %907, align 8, !tbaa !214
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.460, i32 noundef %903, i32 noundef %905, ptr noundef nonnull %906, i32 noundef %908)
  %909 = load i32, ptr %904, align 4, !tbaa !213
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %909)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.461)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %910 = getelementptr inbounds i8, ptr %32, i64 18600
  %911 = load ptr, ptr %910, align 8, !tbaa !102
  %.not441 = icmp eq ptr %911, null
  br i1 %.not441, label %915, label %912

912:                                              ; preds = %878
  %913 = getelementptr inbounds i8, ptr %911, i64 8
  %914 = load ptr, ptr %913, align 8, !tbaa !103
  br label %915

915:                                              ; preds = %878, %912
  %916 = phi ptr [ %914, %912 ], [ @.str.380, %878 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.462, ptr noundef %916)
  %917 = getelementptr inbounds i8, ptr %32, i64 18608
  %918 = load i32, ptr %917, align 8, !tbaa !215
  %919 = getelementptr inbounds i8, ptr %32, i64 18656
  %920 = load i32, ptr %919, align 8, !tbaa !216
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.463, i32 noundef %918, i32 noundef %920)
  %921 = load i32, ptr %917, align 8, !tbaa !215
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %921)
  %922 = getelementptr inbounds i8, ptr %32, i64 18652
  %923 = load i32, ptr %922, align 4, !tbaa !217
  %924 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %923)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.464, ptr noundef %924)
  %925 = getelementptr inbounds i8, ptr %32, i64 221
  %926 = load i8, ptr %925, align 1, !tbaa !218, !range !13, !noundef !14
  %927 = zext nneg i8 %926 to i32
  %928 = getelementptr inbounds i8, ptr %32, i64 222
  %929 = load i8, ptr %928, align 2, !tbaa !219, !range !13, !noundef !14
  %930 = zext nneg i8 %929 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.465, i32 noundef %927, i32 noundef %930)
  %931 = getelementptr inbounds i8, ptr %32, i64 18616
  %932 = load i32, ptr %931, align 8, !tbaa !220
  %933 = getelementptr inbounds i8, ptr %32, i64 18620
  %934 = load i32, ptr %933, align 4, !tbaa !221
  %935 = getelementptr inbounds i8, ptr %32, i64 18624
  %936 = load i32, ptr %935, align 8, !tbaa !222
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.466, i32 noundef %932, i32 noundef %934, i32 noundef %936)
  %937 = getelementptr inbounds i8, ptr %32, i64 18628
  %938 = load i32, ptr %937, align 4, !tbaa !223
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.467, i32 noundef %938)
  %939 = getelementptr inbounds i8, ptr %32, i64 18662
  %940 = load i8, ptr %939, align 2, !tbaa !224, !range !13, !noundef !14
  %941 = zext nneg i8 %940 to i32
  %942 = getelementptr inbounds i8, ptr %32, i64 18663
  %943 = load i8, ptr %942, align 1, !tbaa !225, !range !13, !noundef !14
  %944 = zext nneg i8 %943 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.468, i32 noundef %941, i32 noundef %944)
  %945 = getelementptr inbounds i8, ptr %32, i64 18612
  %946 = load i32, ptr %945, align 4, !tbaa !226
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.469, i32 noundef %946)
  %947 = getelementptr inbounds i8, ptr %32, i64 18960
  %948 = load ptr, ptr %947, align 8, !tbaa !227
  %.not442 = icmp eq ptr %948, null
  br i1 %.not442, label %952, label %949

949:                                              ; preds = %915
  %950 = getelementptr inbounds i8, ptr %948, i64 8
  %951 = load ptr, ptr %950, align 8, !tbaa !103
  br label %952

952:                                              ; preds = %915, %949
  %953 = phi ptr [ %951, %949 ], [ @.str.380, %915 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.470, ptr noundef %953)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %954

954:                                              ; preds = %952, %827
  %955 = getelementptr inbounds i8, ptr %32, i64 23734
  %956 = load i8, ptr %955, align 2, !tbaa !101, !range !13, !noundef !14
  %957 = trunc nuw i8 %956 to i1
  br i1 %957, label %962, label %958

958:                                              ; preds = %954
  %959 = getelementptr inbounds i8, ptr %32, i64 23735
  %960 = load i8, ptr %959, align 1, !tbaa !228, !range !13, !noundef !14
  %961 = trunc nuw i8 %960 to i1
  br i1 %961, label %962, label %.loopexit466

962:                                              ; preds = %958, %954
  %963 = load i32, ptr %373, align 8, !tbaa !124
  %964 = icmp sgt i32 %963, 0
  br i1 %964, label %.lr.ph544, label %.loopexit466

.lr.ph544:                                        ; preds = %962
  %965 = getelementptr inbounds i8, ptr %26, i64 8
  %966 = getelementptr inbounds i8, ptr %32, i64 23735
  br label %967

967:                                              ; preds = %.lr.ph544, %997
  %.0385542 = phi i32 [ 0, %.lr.ph544 ], [ %998, %997 ]
  %968 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %373, i32 noundef %.0385542)
  %969 = load ptr, ptr %968, align 8, !tbaa !5
  %970 = getelementptr inbounds i8, ptr %969, i64 183
  %971 = load i8, ptr %970, align 1, !tbaa !229, !range !13, !noundef !14
  %972 = trunc nuw i8 %971 to i1
  br i1 %972, label %973, label %997

973:                                              ; preds = %967
  %974 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %969)
  %975 = load i8, ptr %955, align 2, !tbaa !101, !range !13, !noundef !14
  %976 = trunc nuw i8 %975 to i1
  br i1 %976, label %977, label %982

977:                                              ; preds = %973
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #9
  %978 = load i32, ptr %66, align 4, !tbaa !50
  %979 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef nonnull %969, i32 noundef %978)
  %980 = extractvalue { <2 x float>, <2 x float> } %979, 0
  store <2 x float> %980, ptr %26, align 8
  %981 = extractvalue { <2 x float>, <2 x float> } %979, 1
  store <2 x float> %981, ptr %965, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %974, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %965, 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 %982

982:                                              ; preds = %977, %973
  %983 = load i8, ptr %966, align 1, !tbaa !228, !range !13, !noundef !14
  %984 = trunc nuw i8 %983 to i1
  br i1 %984, label %985, label %997

985:                                              ; preds = %982
  %986 = getelementptr inbounds i8, ptr %969, i64 20
  %987 = load i32, ptr %986, align 4, !tbaa !140
  %988 = and i32 %987, 16777216
  %.not443 = icmp eq i32 %988, 0
  br i1 %.not443, label %989, label %997

989:                                              ; preds = %985
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  %990 = getelementptr inbounds i8, ptr %969, i64 200
  %991 = load i16, ptr %990, align 8, !tbaa !230
  %992 = sext i16 %991 to i32
  %993 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %27, i64 noundef 32, ptr noundef nonnull @.str.314, i32 noundef %992)
  %994 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %995 = getelementptr inbounds i8, ptr %969, i64 32
  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 %994, float noundef %994)
  %996 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %995, ptr noundef nonnull align 4 dereferenceable(8) %29)
  store <2 x float> %996, ptr %28, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %974, ptr noundef nonnull align 4 dereferenceable(8) %995, ptr noundef nonnull align 4 dereferenceable(8) %28, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %974, ptr noundef nonnull align 4 dereferenceable(8) %995, i32 noundef -1, ptr noundef nonnull %27, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  br label %997

997:                                              ; preds = %982, %985, %989, %967
  %998 = add nuw nsw i32 %.0385542, 1
  %999 = load i32, ptr %373, align 8, !tbaa !124
  %1000 = icmp slt i32 %998, %999
  br i1 %1000, label %967, label %.loopexit466, !llvm.loop !231

.loopexit466:                                     ; preds = %997, %962, %958
  %1001 = getelementptr inbounds i8, ptr %32, i64 23736
  %1002 = load i8, ptr %1001, align 4, !tbaa !104, !range !13, !noundef !14
  %1003 = trunc nuw i8 %1002 to i1
  br i1 %1003, label %.preheader464, label %.loopexit465

.preheader464:                                    ; preds = %.loopexit466
  %1004 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %509)
  %1005 = icmp sgt i32 %1004, 0
  br i1 %1005, label %.lr.ph548, label %.loopexit465

.lr.ph548:                                        ; preds = %.preheader464
  %1006 = getelementptr inbounds i8, ptr %32, i64 15944
  %1007 = getelementptr inbounds i8, ptr %31, i64 8
  %1008 = getelementptr inbounds i8, ptr %30, i64 8
  br label %1009

1009:                                             ; preds = %.lr.ph548, %.loopexit
  %.0381547 = phi i32 [ 0, %.lr.ph548 ], [ %1045, %.loopexit ]
  %1010 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %509, i32 noundef %.0381547)
  %1011 = icmp eq ptr %1010, null
  br i1 %1011, label %.loopexit, label %1012

1012:                                             ; preds = %1009
  %1013 = getelementptr inbounds i8, ptr %1010, i64 104
  %1014 = load i32, ptr %1013, align 8, !tbaa !105
  %1015 = load i32, ptr %1006, align 8, !tbaa !115
  %1016 = add nsw i32 %1015, -1
  %1017 = icmp slt i32 %1014, %1016
  br i1 %1017, label %.loopexit, label %1018

1018:                                             ; preds = %1012
  %1019 = getelementptr inbounds i8, ptr %1010, i64 376
  %1020 = load ptr, ptr %1019, align 8, !tbaa !116
  %1021 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1020)
  %1022 = load i32, ptr %71, align 4, !tbaa !51
  %1023 = icmp sgt i32 %1022, 5
  br i1 %1023, label %.preheader, label %1041

.preheader:                                       ; preds = %1018
  %1024 = getelementptr inbounds i8, ptr %1010, i64 108
  %1025 = load i32, ptr %1024, align 4, !tbaa !119
  %1026 = icmp sgt i32 %1025, 0
  br i1 %1026, label %.lr.ph546, label %.loopexit

.lr.ph546:                                        ; preds = %.preheader
  %1027 = getelementptr inbounds i8, ptr %1010, i64 504
  br label %1028

1028:                                             ; preds = %.lr.ph546, %1028
  %.0378545 = phi i32 [ 0, %.lr.ph546 ], [ %1038, %1028 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #9
  %1029 = load i32, ptr %71, align 4, !tbaa !51
  %1030 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1010, i32 noundef %1029, i32 noundef %.0378545)
  %1031 = extractvalue { <2 x float>, <2 x float> } %1030, 0
  store <2 x float> %1031, ptr %30, align 8
  %1032 = extractvalue { <2 x float>, <2 x float> } %1030, 1
  store <2 x float> %1032, ptr %1008, align 8
  %1033 = load i16, ptr %1027, align 8, !tbaa !232
  %1034 = sext i16 %1033 to i32
  %1035 = icmp eq i32 %.0378545, %1034
  %1036 = select i1 %1035, i32 -8323073, i32 -8388353
  %1037 = select i1 %1035, float 3.000000e+00, float 1.000000e+00
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1021, ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %1008, i32 noundef %1036, float noundef 0.000000e+00, i32 noundef 0, float noundef %1037)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #9
  %1038 = add nuw nsw i32 %.0378545, 1
  %1039 = load i32, ptr %1024, align 4, !tbaa !119
  %1040 = icmp slt i32 %1038, %1039
  br i1 %1040, label %1028, label %.loopexit, !llvm.loop !233

1041:                                             ; preds = %1018
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #9
  %1042 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1010, i32 noundef %1022, i32 noundef -1)
  %1043 = extractvalue { <2 x float>, <2 x float> } %1042, 0
  store <2 x float> %1043, ptr %31, align 8
  %1044 = extractvalue { <2 x float>, <2 x float> } %1042, 1
  store <2 x float> %1044, ptr %1007, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1021, ptr noundef nonnull align 4 dereferenceable(8) %31, ptr noundef nonnull align 4 dereferenceable(8) %1007, 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 = %1028, %.preheader, %1041, %1009, %1012
  %1045 = add nuw nsw i32 %.0381547, 1
  %1046 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %509)
  %1047 = icmp slt i32 %1045, %1046
  br i1 %1047, label %1009, label %.loopexit465, !llvm.loop !234

.loopexit465:                                     ; preds = %.loopexit, %.preheader464, %.loopexit466
  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 %1048

1048:                                             ; preds = %.loopexit465, %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 @_ZN5ImGui19ShowStackToolWindowEPb(ptr noundef) local_unnamed_addr #8

declare void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv() local_unnamed_addr #7

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

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

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

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

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

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) local_unnamed_addr #7

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) local_unnamed_addr #7

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

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

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

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

declare void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef) local_unnamed_addr #7

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

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

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

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

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

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

declare void @_ZN5ImGui10EndListBoxEv() local_unnamed_addr #7

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

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

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 = { 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 #4 = { 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 #5 = { 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 #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { 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, !12, i64 8, !12, i64 12}
!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 194}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !6, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !18, i64 80, !19, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !19, i64 112, !19, i64 116, !12, i64 120, !12, i64 124, !12, i64 128, !18, i64 132, !18, i64 140, !18, i64 148, !18, i64 156, !18, i64 164, !18, i64 172, !11, i64 180, !11, i64 181, !11, i64 182, !11, i64 183, !11, i64 184, !11, i64 185, !11, i64 186, !11, i64 187, !11, i64 188, !11, i64 189, !11, i64 190, !11, i64 191, !11, i64 192, !7, i64 193, !20, i64 194, !20, i64 196, !20, i64 198, !20, i64 200, !20, i64 202, !12, i64 204, !7, i64 208, !7, i64 209, !7, i64 210, !11, i64 211, !12, i64 212, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !12, i64 220, !12, i64 221, !12, i64 222, !18, i64 224, !18, i64 232, !21, i64 240, !22, i64 256, !28, i64 488, !28, i64 504, !28, i64 520, !28, i64 536, !28, i64 552, !28, i64 568, !28, i64 584, !29, i64 600, !29, i64 604, !12, i64 608, !19, i64 612, !19, i64 616, !30, i64 624, !32, i64 640, !19, i64 656, !12, i64 660, !6, i64 664, !33, i64 672, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !6, i64 920, !7, i64 928, !7, i64 936, !12, i64 968, !12, i64 972, !12, i64 976, !11, i64 980}
!18 = !{!"_ZTS6ImVec2", !19, i64 0, !19, i64 4}
!19 = !{!"float", !7, i64 0}
!20 = !{!"short", !7, i64 0}
!21 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!22 = !{!"_ZTS19ImGuiWindowTempData", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !19, i64 56, !19, i64 60, !11, i64 64, !11, i64 65, !23, i64 68, !23, i64 72, !23, i64 76, !18, i64 80, !24, i64 88, !20, i64 92, !20, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !18, i64 100, !25, i64 108, !12, i64 136, !12, i64 140, !26, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !19, i64 188, !19, i64 192, !27, i64 200, !27, i64 216}
!23 = !{!"_ZTS6ImVec1", !19, i64 0}
!24 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!25 = !{!"_ZTS16ImGuiMenuColumns", !12, i64 0, !12, i64 4, !20, i64 8, !20, i64 10, !20, i64 12, !20, i64 14, !20, i64 16, !7, i64 18}
!26 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!28 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!29 = !{!"_ZTS8ImVec2ih", !20, i64 0, !20, i64 2}
!30 = !{!"_ZTS12ImGuiStorage", !31, i64 0}
!31 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !12, i64 0, !12, i64 4, !6, i64 8}
!32 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!33 = !{!"_ZTS10ImDrawList", !34, i64 0, !35, i64 16, !36, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !37, i64 88, !38, i64 104, !39, i64 120, !40, i64 136, !42, i64 168, !19, i64 192}
!34 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorIPvE", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!40 = !{!"_ZTS15ImDrawCmdHeader", !41, i64 0, !6, i64 16, !12, i64 24}
!41 = !{!"_ZTS6ImVec4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!42 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !43, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!44 = !{!45, !19, i64 216}
!45 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !6, i64 24, !6, i64 32, !19, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !19, i64 60, !19, i64 64, !6, i64 72, !6, i64 80, !19, i64 88, !11, i64 92, !6, i64 96, !18, i64 104, !11, i64 112, !11, i64 113, !11, i64 114, !11, i64 115, !11, i64 116, !11, i64 117, !11, i64 118, !11, i64 119, !19, i64 120, !11, i64 124, !11, i64 125, !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, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !11, i64 214, !19, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !12, i64 232, !12, i64 236, !18, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !18, i64 3584, !7, i64 3592, !19, i64 3600, !19, i64 3604, !11, i64 3608, !11, i64 3609, !11, i64 3610, !11, i64 3611, !12, i64 3612, !7, i64 3616, !11, i64 14048, !18, i64 14052, !7, i64 14060, !7, i64 14104, !7, i64 14144, !7, i64 14149, !7, i64 14154, !7, i64 14164, !7, i64 14174, !7, i64 14179, !7, i64 14184, !7, i64 14192, !7, i64 14212, !7, i64 14232, !19, i64 14252, !11, i64 14256, !11, i64 14257, !7, i64 14258, !11, i64 14259, !20, i64 14260, !35, i64 14264}
!46 = !{!45, !12, i64 220}
!47 = !{!45, !12, i64 224}
!48 = !{!45, !12, i64 228}
!49 = !{!45, !12, i64 236}
!50 = !{!10, !12, i64 8}
!51 = !{!10, !12, i64 12}
!52 = !{!7, !7, i64 0}
!53 = !{!54, !11, i64 23723}
!54 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !45, i64 8, !55, i64 14288, !55, i64 14304, !56, i64 14320, !6, i64 15392, !19, i64 15400, !19, i64 15404, !57, i64 15408, !58, i64 15936, !12, i64 15944, !12, i64 15948, !12, i64 15952, !11, i64 15956, !11, i64 15957, !11, i64 15958, !11, i64 15959, !11, i64 15960, !6, i64 15968, !26, i64 15976, !26, i64 15992, !26, i64 16008, !59, i64 16024, !30, i64 16040, !12, i64 16056, !18, i64 16060, !6, i64 16072, !6, i64 16080, !6, i64 16088, !6, i64 16096, !6, i64 16104, !18, i64 16112, !12, i64 16120, !19, i64 16124, !18, i64 16128, !18, i64 16136, !12, i64 16144, !12, i64 16148, !12, i64 16152, !11, i64 16156, !11, i64 16157, !19, i64 16160, !19, i64 16164, !12, i64 16168, !12, i64 16172, !19, i64 16176, !11, i64 16180, !11, i64 16181, !11, i64 16182, !11, i64 16183, !11, i64 16184, !11, i64 16185, !18, i64 16188, !6, i64 16200, !60, i64 16208, !12, i64 16212, !12, i64 16216, !11, i64 16220, !11, i64 16221, !6, i64 16224, !12, i64 16232, !19, i64 16236, !7, i64 16240, !61, i64 17920, !12, i64 18232, !11, i64 18236, !12, i64 18240, !12, i64 18244, !12, i64 18248, !12, i64 18252, !63, i64 18256, !64, i64 18276, !65, i64 18336, !66, i64 18448, !67, i64 18464, !68, i64 18480, !21, i64 18496, !69, i64 18512, !70, i64 18528, !71, i64 18544, !71, i64 18560, !12, i64 18576, !72, i64 18584, !6, i64 18600, !12, i64 18608, !12, i64 18612, !12, i64 18616, !12, i64 18620, !12, i64 18624, !12, i64 18628, !12, i64 18632, !12, i64 18636, !12, i64 18640, !12, i64 18644, !12, i64 18648, !60, i64 18652, !24, i64 18656, !11, i64 18660, !11, i64 18661, !11, i64 18662, !11, i64 18663, !11, i64 18664, !11, i64 18665, !11, i64 18666, !12, i64 18668, !28, i64 18672, !11, i64 18688, !11, i64 18689, !11, i64 18690, !12, i64 18692, !12, i64 18696, !12, i64 18700, !12, i64 18704, !12, i64 18708, !12, i64 18712, !28, i64 18716, !28, i64 18732, !12, i64 18748, !12, i64 18752, !12, i64 18756, !73, i64 18760, !73, i64 18808, !73, i64 18856, !73, i64 18904, !12, i64 18952, !12, i64 18956, !6, i64 18960, !6, i64 18968, !6, i64 18976, !19, i64 18984, !19, i64 18988, !11, i64 18992, !18, i64 18996, !18, i64 19004, !19, i64 19012, !12, i64 19016, !11, i64 19020, !11, i64 19021, !11, i64 19022, !12, i64 19024, !12, i64 19028, !12, i64 19032, !74, i64 19040, !28, i64 19104, !12, i64 19120, !12, i64 19124, !19, i64 19128, !12, i64 19132, !12, i64 19136, !12, i64 19140, !12, i64 19144, !75, i64 19152, !7, i64 19168, !12, i64 19184, !76, i64 19192, !6, i64 19208, !12, i64 19216, !77, i64 19224, !78, i64 19240, !27, i64 19280, !43, i64 19296, !6, i64 19312, !80, i64 19320, !82, i64 19360, !83, i64 19376, !12, i64 19392, !12, i64 19396, !19, i64 19400, !19, i64 19404, !18, i64 19408, !84, i64 19416, !88, i64 23144, !12, i64 23264, !12, i64 23268, !12, i64 23272, !12, i64 23276, !19, i64 23280, !19, i64 23284, !12, i64 23288, !41, i64 23292, !90, i64 23308, !19, i64 23356, !19, i64 23360, !11, i64 23364, !11, i64 23365, !19, i64 23368, !19, i64 23372, !19, i64 23376, !19, i64 23380, !20, i64 23384, !20, i64 23386, !85, i64 23392, !21, i64 23408, !91, i64 23424, !91, i64 23440, !7, i64 23456, !11, i64 23457, !19, i64 23460, !92, i64 23464, !93, i64 23480, !94, i64 23496, !95, i64 23512, !96, i64 23528, !12, i64 23544, !7, i64 23552, !11, i64 23608, !97, i64 23612, !6, i64 23616, !92, i64 23624, !6, i64 23640, !6, i64 23648, !19, i64 23656, !11, i64 23660, !12, i64 23664, !12, i64 23668, !12, i64 23672, !12, i64 23676, !92, i64 23680, !98, i64 23696, !7, i64 23720, !7, i64 23721, !7, i64 23722, !11, i64 23723, !7, i64 23724, !12, i64 23728, !10, i64 23732, !99, i64 23752, !7, i64 23792, !12, i64 24032, !12, i64 24036, !19, i64 24040, !12, i64 24044, !12, i64 24048, !12, i64 24052, !85, i64 24056}
!55 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!56 = !{!"_ZTS10ImGuiStyle", !19, i64 0, !19, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !18, i64 24, !18, i64 32, !12, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !18, i64 60, !19, i64 68, !19, i64 72, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !12, i64 148, !18, i64 152, !18, i64 160, !19, i64 168, !18, i64 172, !18, i64 180, !18, i64 188, !18, i64 196, !19, i64 204, !11, i64 208, !11, i64 209, !11, i64 210, !19, i64 212, !19, i64 216, !7, i64 220}
!57 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !19, i64 16, !19, i64 20, !19, i64 24, !41, i64 28, !12, i64 44, !39, i64 48, !7, i64 64, !19, i64 448, !7, i64 452, !6, i64 520}
!58 = !{!"double", !7, i64 0}
!59 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!60 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!61 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !62, i64 280, !62, i64 296}
!62 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!63 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !19, i64 4, !12, i64 8, !12, i64 12, !11, i64 16}
!64 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !28, i64 12, !28, i64 28, !28, i64 44}
!65 = !{!"_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, !11, i64 56, !28, i64 60, !6, i64 80, !6, i64 88, !19, i64 96, !18, i64 100}
!66 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !28, i64 16, !12, i64 32, !19, i64 36, !19, i64 40, !19, i64 44}
!74 = !{!"_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}
!75 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS6ImPoolI10ImGuiTableE", !79, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!79 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!80 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !81, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!81 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !35, i64 24, !85, i64 40, !85, i64 56, !11, i64 72, !12, i64 76, !19, i64 80, !86, i64 84, !19, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !12, i64 3720}
!85 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!86 = !{!"_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, !87, i64 32}
!87 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !20, i64 3582, !20, i64 3584, !12, i64 3588, !12, i64 3592}
!88 = !{!"_ZTS6ImFont", !27, i64 0, !19, i64 16, !19, i64 20, !35, i64 24, !89, 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}
!89 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!90 = !{!"_ZTS21ImGuiComboPreviewData", !28, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !19, i64 40, !12, i64 44}
!91 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !18, i64 4, !19, i64 12}
!92 = !{!"_ZTS15ImGuiTextBuffer", !85, i64 0}
!93 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!94 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !85, i64 0}
!95 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !85, i64 0}
!96 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!97 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!98 = !{!"_ZTS14ImGuiTextIndex", !69, i64 0, !12, i64 16}
!99 = !{!"_ZTS14ImGuiStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !100, i64 16, !11, i64 32, !19, i64 36}
!100 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!101 = !{!10, !11, i64 2}
!102 = !{!54, !6, i64 18600}
!103 = !{!17, !6, i64 8}
!104 = !{!10, !11, i64 4}
!105 = !{!106, !12, i64 104}
!106 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !107, i64 24, !108, i64 40, !109, 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, !12, i64 144, !12, i64 146, !12, i64 148, !7, i64 152, !12, i64 160, !12, i64 164, !19, 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, !28, i64 232, !28, i64 248, !28, i64 264, !28, i64 280, !28, i64 296, !28, i64 312, !28, i64 328, !28, i64 344, !28, i64 360, !6, i64 376, !6, i64 384, !92, i64 392, !6, i64 408, !110, i64 416, !111, i64 432, !112, i64 448, !113, i64 464, !114, i64 480, !20, i64 496, !20, i64 498, !20, i64 500, !20, i64 502, !20, i64 504, !20, i64 506, !20, i64 508, !20, i64 510, !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, !11, i64 546, !11, i64 547, !11, i64 548, !11, i64 549, !11, i64 550, !11, i64 551, !11, i64 552, !11, i64 553, !11, i64 554, !11, i64 555, !11, i64 556, !11, i64 557, !11, i64 558, !11, i64 559, !11, i64 560, !11, i64 561, !11, i64 562}
!107 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!108 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!109 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!110 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!111 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!112 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !20, i64 4, !20, i64 6, !12, i64 8}
!113 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!114 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!115 = !{!54, !12, i64 15944}
!116 = !{!106, !6, i64 376}
!117 = !{!106, !6, i64 384}
!118 = !{!106, !12, i64 0}
!119 = !{!106, !12, i64 108}
!120 = distinct !{!120, !121}
!121 = !{!"llvm.loop.mustprogress"}
!122 = distinct !{!122, !121}
!123 = distinct !{!123, !121}
!124 = !{!54, !12, i64 15976}
!125 = !{!26, !6, i64 8}
!126 = !{!26, !12, i64 0}
!127 = !{!17, !12, i64 608}
!128 = distinct !{!128, !121}
!129 = !{!54, !12, i64 18584}
!130 = distinct !{!130, !121}
!131 = !{!132, !12, i64 0}
!132 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!133 = distinct !{!133, !121}
!134 = distinct !{!134, !121}
!135 = distinct !{!135, !121}
!136 = !{!54, !12, i64 18544}
!137 = !{!138, !6, i64 8}
!138 = !{!"_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}
!139 = !{!138, !12, i64 0}
!140 = !{!17, !12, i64 20}
!141 = !{!138, !6, i64 16}
!142 = !{!17, !6, i64 872}
!143 = distinct !{!143, !121}
!144 = distinct !{!144, !121}
!145 = distinct !{!145, !121}
!146 = !{!54, !6, i64 88}
!147 = !{!148, !12, i64 88}
!148 = !{!"_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, !68, i64 88, !149, i64 104, !150, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!149 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!150 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!151 = !{!54, !6, i64 32}
!152 = !{!54, !19, i64 23460}
!153 = !{!54, !12, i64 23480}
!154 = !{!155, !6, i64 0}
!155 = !{!"_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}
!156 = distinct !{!156, !121}
!157 = distinct !{!157, !121}
!158 = distinct !{!158, !121}
!159 = !{!54, !12, i64 23464}
!160 = !{!161, !19, i64 4}
!161 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!162 = distinct !{!162, !121}
!163 = distinct !{!163, !121}
!164 = !{!45, !11, i64 3608}
!165 = !{!45, !11, i64 3609}
!166 = !{!45, !11, i64 3610}
!167 = !{!45, !11, i64 3611}
!168 = !{!45, !12, i64 14264}
!169 = distinct !{!169, !121}
!170 = !{!20, !20, i64 0}
!171 = distinct !{!171, !121}
!172 = !{!45, !19, i64 3584}
!173 = !{!45, !19, i64 3588}
!174 = !{!45, !19, i64 240}
!175 = !{!45, !19, i64 244}
!176 = !{!19, !19, i64 0}
!177 = !{!45, !19, i64 3600}
!178 = !{!45, !19, i64 14252}
!179 = !{!54, !6, i64 16104}
!180 = !{!54, !19, i64 16124}
!181 = !{!54, !19, i64 16136}
!182 = !{!54, !19, i64 16140}
!183 = !{!184, !12, i64 0}
!184 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!185 = !{!184, !11, i64 9}
!186 = !{!184, !11, i64 8}
!187 = distinct !{!187, !121}
!188 = distinct !{!188, !121}
!189 = !{!190, !20, i64 2}
!190 = !{!"_ZTS19ImGuiKeyRoutingData", !20, i64 0, !20, i64 2, !7, i64 4, !12, i64 8, !12, i64 12}
!191 = !{!190, !12, i64 8}
!192 = !{!190, !20, i64 0}
!193 = distinct !{!193, !121}
!194 = !{!54, !11, i64 18236}
!195 = !{!54, !12, i64 18232}
!196 = !{!54, !6, i64 16080}
!197 = !{!17, !6, i64 888}
!198 = !{!54, !6, i64 16088}
!199 = !{!54, !6, i64 16096}
!200 = !{!54, !12, i64 16168}
!201 = !{!54, !12, i64 16216}
!202 = !{!54, !19, i64 16176}
!203 = !{!54, !11, i64 16181}
!204 = !{!54, !60, i64 16208}
!205 = !{!54, !6, i64 16200}
!206 = !{!54, !12, i64 16152}
!207 = !{!54, !19, i64 16160}
!208 = !{!54, !11, i64 16156}
!209 = !{!54, !12, i64 19392}
!210 = !{!54, !19, i64 19400}
!211 = !{!54, !19, i64 19404}
!212 = !{!54, !11, i64 19020}
!213 = !{!54, !12, i64 19052}
!214 = !{!54, !12, i64 19048}
!215 = !{!54, !12, i64 18608}
!216 = !{!54, !24, i64 18656}
!217 = !{!54, !60, i64 18652}
!218 = !{!54, !11, i64 221}
!219 = !{!54, !11, i64 222}
!220 = !{!54, !12, i64 18616}
!221 = !{!54, !12, i64 18620}
!222 = !{!54, !12, i64 18624}
!223 = !{!54, !12, i64 18628}
!224 = !{!54, !11, i64 18662}
!225 = !{!54, !11, i64 18663}
!226 = !{!54, !12, i64 18612}
!227 = !{!54, !6, i64 18960}
!228 = !{!10, !11, i64 3}
!229 = !{!17, !11, i64 183}
!230 = !{!17, !20, i64 200}
!231 = distinct !{!231, !121}
!232 = !{!106, !20, i64 504}
!233 = distinct !{!233, !121}
!234 = distinct !{!234, !121}


; 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