; LLVM IR from l1mey112/yr11-physics-applied :: cimgui/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, 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, 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, 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, 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], %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, %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, 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, 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, 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, i64, i64, i64, i64, 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, [4 x i8], %struct.ImVector.39, %struct.ImGuiTableColumnSortSpecs, [4 x i8], %struct.ImVector.40, %struct.ImGuiTableSortSpecs, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [6 x i8] }>
%struct.ImSpan = type { ptr, ptr }
%struct.ImSpan.37 = type { ptr, ptr }
%struct.ImSpan.38 = type { ptr, ptr }
%struct.ImGuiTableInstanceData = type { 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.43] }
%struct.ImVector.43 = 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.44, %struct.ImVector.45, [64 x %struct.ImVec4], ptr, i32, i32, i32, [4 x i8] }>
%struct.ImVector.44 = type { i32, i32, ptr }
%struct.ImVector.45 = 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.17 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.323 = 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.341 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [100 x i8], align 16
@.str.344 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [9 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 [7 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.376 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.422 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.423 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.465 = 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: 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: 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 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

; 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 224
  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.319, 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 42
  %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.320, ptr noundef %119)
  %120 = load ptr, ptr %4, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.ImGuiIO, ptr %120, i32 0, i32 46
  %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 46
  %127 = load float, ptr %126, align 8, !tbaa !44
  %128 = fpext float %127 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.321, 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 47
  %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 48
  %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 48
  %137 = load i32, ptr %136, align 8, !tbaa !47
  %138 = sdiv i32 %137, 3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.322, 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 49
  %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 51
  %144 = load i32, ptr %143, align 4, !tbaa !49
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.323, 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 7
  %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 7
  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 8
  %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 8
  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.341)
  br i1 %161, label %162, label %491

162:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #9
  %163 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.342)
  %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.343)
  %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.344, 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 221
  %177 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.345, 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 221
  %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.346)
  %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.347, ptr noundef %186)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.348)
  %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.349, ptr noundef %189)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.350)
  %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.351, 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.352, 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 7
  %201 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 0
  %202 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.353, 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 0
  %226 = load ptr, ptr %225, align 8, !tbaa !104
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.354, 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.355, 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.356, 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 8
  %277 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 0
  %278 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.357, 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 161
  %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 161
  %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 13
  %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 !124
  %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 54
  %324 = load ptr, ptr %323, align 8, !tbaa !125
  %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 55
  %332 = load ptr, ptr %331, align 8, !tbaa !126
  %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 !127
  %342 = load ptr, ptr %13, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.ImGuiTable, ptr %342, i32 0, i32 14
  %344 = load i32, ptr %343, align 4, !tbaa !128
  %345 = load ptr, ptr %13, align 8, !tbaa !5
  %346 = getelementptr inbounds %struct.ImGuiTable, ptr %345, i32 0, i32 54
  %347 = load ptr, ptr %346, align 8, !tbaa !125
  %348 = getelementptr inbounds %struct.ImGuiWindow, ptr %347, i32 0, i32 0
  %349 = load ptr, ptr %348, align 8, !tbaa !104
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.358, 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 45
  %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 45
  %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 14
  %381 = load i32, ptr %380, align 4, !tbaa !128
  %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.359, 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 !129

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.355, 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 !130

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 !131

489:                                              ; preds = %304
  br label %490

490:                                              ; preds = %489, %292, %269
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  br label %491

491:                                              ; preds = %490, %160
  %492 = load ptr, ptr %3, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.ImGuiContext, ptr %492, i32 0, i32 20
  %494 = getelementptr inbounds %struct.ImVector.2, ptr %493, i32 0, i32 0
  %495 = load i32, ptr %494, align 8, !tbaa !132
  %496 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.360, ptr noundef @.str.361, i32 noundef %495)
  br i1 %496, label %497, label %553

497:                                              ; preds = %491
  %498 = load ptr, ptr %3, align 8, !tbaa !5
  %499 = getelementptr inbounds %struct.ImGuiContext, ptr %498, i32 0, i32 20
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %499, ptr noundef @.str.362)
  %500 = load ptr, ptr %3, align 8, !tbaa !5
  %501 = getelementptr inbounds %struct.ImGuiContext, ptr %500, i32 0, i32 21
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %501, ptr noundef @.str.363)
  %502 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.364)
  br i1 %502, label %503, label %552

503:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %504 = load ptr, ptr %3, align 8, !tbaa !5
  %505 = getelementptr inbounds %struct.ImGuiContext, ptr %504, i32 0, i32 22
  store ptr %505, ptr %33, align 8, !tbaa !5
  %506 = load ptr, ptr %33, align 8, !tbaa !5
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %506, 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 %507

507:                                              ; preds = %535, %503
  %508 = load i32, ptr %34, align 4, !tbaa !105
  %509 = load ptr, ptr %3, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.ImGuiContext, ptr %509, i32 0, i32 20
  %511 = getelementptr inbounds %struct.ImVector.2, ptr %510, i32 0, i32 0
  %512 = load i32, ptr %511, align 8, !tbaa !132
  %513 = icmp slt i32 %508, %512
  br i1 %513, label %515, label %514

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

515:                                              ; preds = %507
  %516 = load ptr, ptr %3, align 8, !tbaa !5
  %517 = getelementptr inbounds %struct.ImGuiContext, ptr %516, i32 0, i32 20
  %518 = load i32, ptr %34, align 4, !tbaa !105
  %519 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %517, i32 noundef %518)
  %520 = load ptr, ptr %519, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.ImGuiWindow, ptr %520, i32 0, i32 71
  %522 = load i32, ptr %521, align 8, !tbaa !133
  %523 = add nsw i32 %522, 1
  %524 = load ptr, ptr %3, align 8, !tbaa !5
  %525 = getelementptr inbounds %struct.ImGuiContext, ptr %524, i32 0, i32 11
  %526 = load i32, ptr %525, align 8, !tbaa !124
  %527 = icmp sge i32 %523, %526
  br i1 %527, label %528, label %534

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

534:                                              ; preds = %528, %515
  br label %535

535:                                              ; preds = %534
  %536 = load i32, ptr %34, align 4, !tbaa !105
  %537 = add nsw i32 %536, 1
  store i32 %537, ptr %34, align 4, !tbaa !105
  br label %507, !llvm.loop !134

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

552:                                              ; preds = %538, %497
  call void @_ZN5ImGui7TreePopEv()
  br label %553

553:                                              ; preds = %552, %491
  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 %554

554:                                              ; preds = %572, %553
  %555 = load i32, ptr %36, align 4, !tbaa !105
  %556 = load ptr, ptr %3, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.ImGuiContext, ptr %556, i32 0, i32 83
  %558 = getelementptr inbounds %struct.ImVector.13, ptr %557, i32 0, i32 0
  %559 = load i32, ptr %558, align 8, !tbaa !137
  %560 = icmp slt i32 %555, %559
  br i1 %560, label %562, label %561

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

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

572:                                              ; preds = %562
  %573 = load i32, ptr %36, align 4, !tbaa !105
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr %36, align 4, !tbaa !105
  br label %554, !llvm.loop !138

575:                                              ; preds = %561
  %576 = load i32, ptr %35, align 4, !tbaa !105
  %577 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.365, ptr noundef @.str.366, i32 noundef %576)
  br i1 %577, label %578, label %638

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

585:                                              ; preds = %634, %578
  %586 = load i32, ptr %37, align 4, !tbaa !105
  %587 = load ptr, ptr %3, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.ImGuiContext, ptr %587, i32 0, i32 83
  %589 = getelementptr inbounds %struct.ImVector.13, ptr %588, i32 0, i32 0
  %590 = load i32, ptr %589, align 8, !tbaa !137
  %591 = icmp slt i32 %586, %590
  br i1 %591, label %593, label %592

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

593:                                              ; preds = %585
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #9
  %594 = load ptr, ptr %3, align 8, !tbaa !5
  %595 = getelementptr inbounds %struct.ImGuiContext, ptr %594, i32 0, i32 83
  %596 = load i32, ptr %37, align 4, !tbaa !105
  %597 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %595, i32 noundef %596)
  %598 = load ptr, ptr %597, align 8, !tbaa !5
  store ptr %598, 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 %599

599:                                              ; preds = %630, %593
  %600 = load i32, ptr %39, align 4, !tbaa !105
  %601 = icmp slt i32 %600, 2
  br i1 %601, label %603, label %602

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

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

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

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

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

626:                                              ; preds = %616
  %627 = load i32, ptr %40, align 4, !tbaa !105
  %628 = add nsw i32 %627, 1
  store i32 %628, ptr %40, align 4, !tbaa !105
  br label %604, !llvm.loop !141

629:                                              ; preds = %615
  br label %630

630:                                              ; preds = %629
  %631 = load i32, ptr %39, align 4, !tbaa !105
  %632 = add nsw i32 %631, 1
  store i32 %632, ptr %39, align 4, !tbaa !105
  br label %599, !llvm.loop !142

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

634:                                              ; preds = %633
  %635 = load i32, ptr %37, align 4, !tbaa !105
  %636 = add nsw i32 %635, 1
  store i32 %636, ptr %37, align 4, !tbaa !105
  br label %585, !llvm.loop !143

637:                                              ; preds = %592
  call void @_ZN5ImGui7TreePopEv()
  br label %638

638:                                              ; preds = %637, %575
  %639 = load ptr, ptr %3, align 8, !tbaa !5
  %640 = getelementptr inbounds %struct.ImGuiContext, ptr %639, i32 0, i32 83
  %641 = getelementptr inbounds %struct.ImVector.13, ptr %640, i32 0, i32 0
  %642 = load i32, ptr %641, align 8, !tbaa !137
  %643 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.370, ptr noundef @.str.371, i32 noundef %642)
  br i1 %643, label %644, label %665

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

647:                                              ; preds = %661, %644
  %648 = load i32, ptr %41, align 4, !tbaa !105
  %649 = load ptr, ptr %3, align 8, !tbaa !5
  %650 = getelementptr inbounds %struct.ImGuiContext, ptr %649, i32 0, i32 83
  %651 = getelementptr inbounds %struct.ImVector.13, ptr %650, i32 0, i32 0
  %652 = load i32, ptr %651, align 8, !tbaa !137
  %653 = icmp slt i32 %648, %652
  br i1 %653, label %655, label %654

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

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

661:                                              ; preds = %655
  %662 = load i32, ptr %41, align 4, !tbaa !105
  %663 = add nsw i32 %662, 1
  store i32 %663, ptr %41, align 4, !tbaa !105
  br label %647, !llvm.loop !144

664:                                              ; preds = %654
  call void @_ZN5ImGui7TreePopEv()
  br label %665

665:                                              ; preds = %664, %638
  %666 = load ptr, ptr %3, align 8, !tbaa !5
  %667 = getelementptr inbounds %struct.ImGuiContext, ptr %666, i32 0, i32 80
  %668 = getelementptr inbounds %struct.ImVector.12, ptr %667, i32 0, i32 0
  %669 = load i32, ptr %668, align 8, !tbaa !145
  %670 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.372, ptr noundef @.str.373, i32 noundef %669)
  br i1 %670, label %671, label %757

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

672:                                              ; preds = %753, %671
  %673 = load i32, ptr %42, align 4, !tbaa !105
  %674 = load ptr, ptr %3, align 8, !tbaa !5
  %675 = getelementptr inbounds %struct.ImGuiContext, ptr %674, i32 0, i32 80
  %676 = getelementptr inbounds %struct.ImVector.12, ptr %675, i32 0, i32 0
  %677 = load i32, ptr %676, align 8, !tbaa !145
  %678 = icmp slt i32 %673, %677
  br i1 %678, label %680, label %679

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

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

693:                                              ; preds = %680
  %694 = load ptr, ptr %44, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.ImGuiWindow, ptr %694, i32 0, i32 0
  %696 = load ptr, ptr %695, align 8, !tbaa !104
  br label %698

697:                                              ; preds = %680
  br label %698

698:                                              ; preds = %697, %693
  %699 = phi ptr [ %696, %693 ], [ @.str.375, %697 ]
  %700 = load ptr, ptr %44, align 8, !tbaa !5
  %701 = icmp ne ptr %700, null
  br i1 %701, label %702, label %708

702:                                              ; preds = %698
  %703 = load ptr, ptr %44, align 8, !tbaa !5
  %704 = getelementptr inbounds %struct.ImGuiWindow, ptr %703, i32 0, i32 2
  %705 = load i32, ptr %704, align 4, !tbaa !149
  %706 = and i32 %705, 16777216
  %707 = icmp ne i32 %706, 0
  br label %708

708:                                              ; preds = %702, %698
  %709 = phi i1 [ false, %698 ], [ %707, %702 ]
  %710 = zext i1 %709 to i64
  %711 = select i1 %709, ptr @.str.376, ptr @.str.17
  %712 = load ptr, ptr %44, align 8, !tbaa !5
  %713 = icmp ne ptr %712, null
  br i1 %713, label %714, label %720

714:                                              ; preds = %708
  %715 = load ptr, ptr %44, align 8, !tbaa !5
  %716 = getelementptr inbounds %struct.ImGuiWindow, ptr %715, i32 0, i32 2
  %717 = load i32, ptr %716, align 4, !tbaa !149
  %718 = and i32 %717, 268435456
  %719 = icmp ne i32 %718, 0
  br label %720

720:                                              ; preds = %714, %708
  %721 = phi i1 [ false, %708 ], [ %719, %714 ]
  %722 = zext i1 %721 to i64
  %723 = select i1 %721, ptr @.str.377, ptr @.str.17
  %724 = load ptr, ptr %43, align 8, !tbaa !5
  %725 = getelementptr inbounds %struct.ImGuiPopupData, ptr %724, i32 0, i32 3
  %726 = load ptr, ptr %725, align 8, !tbaa !150
  %727 = icmp ne ptr %726, null
  br i1 %727, label %728, label %734

728:                                              ; preds = %720
  %729 = load ptr, ptr %43, align 8, !tbaa !5
  %730 = getelementptr inbounds %struct.ImGuiPopupData, ptr %729, i32 0, i32 3
  %731 = load ptr, ptr %730, align 8, !tbaa !150
  %732 = getelementptr inbounds %struct.ImGuiWindow, ptr %731, i32 0, i32 0
  %733 = load ptr, ptr %732, align 8, !tbaa !104
  br label %735

734:                                              ; preds = %720
  br label %735

735:                                              ; preds = %734, %728
  %736 = phi ptr [ %733, %728 ], [ @.str.375, %734 ]
  %737 = load ptr, ptr %44, align 8, !tbaa !5
  %738 = icmp ne ptr %737, null
  br i1 %738, label %739, label %750

739:                                              ; preds = %735
  %740 = load ptr, ptr %44, align 8, !tbaa !5
  %741 = getelementptr inbounds %struct.ImGuiWindow, ptr %740, i32 0, i32 81
  %742 = load ptr, ptr %741, align 8, !tbaa !151
  %743 = icmp ne ptr %742, null
  br i1 %743, label %744, label %750

744:                                              ; preds = %739
  %745 = load ptr, ptr %44, align 8, !tbaa !5
  %746 = getelementptr inbounds %struct.ImGuiWindow, ptr %745, i32 0, i32 81
  %747 = load ptr, ptr %746, align 8, !tbaa !151
  %748 = getelementptr inbounds %struct.ImGuiWindow, ptr %747, i32 0, i32 0
  %749 = load ptr, ptr %748, align 8, !tbaa !104
  br label %751

750:                                              ; preds = %739, %735
  br label %751

751:                                              ; preds = %750, %744
  %752 = phi ptr [ %749, %744 ], [ @.str.375, %750 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.374, i32 noundef %690, ptr noundef %699, ptr noundef %711, ptr noundef %723, ptr noundef %736, ptr noundef %752)
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  br label %753

753:                                              ; preds = %751
  %754 = load i32, ptr %42, align 4, !tbaa !105
  %755 = add nsw i32 %754, 1
  store i32 %755, ptr %42, align 4, !tbaa !105
  br label %672, !llvm.loop !152

756:                                              ; preds = %679
  call void @_ZN5ImGui7TreePopEv()
  br label %757

757:                                              ; preds = %756, %665
  %758 = load ptr, ptr %3, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.ImGuiContext, ptr %758, i32 0, i32 165
  %760 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %759)
  %761 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.378, ptr noundef @.str.379, i32 noundef %760)
  br i1 %761, label %762, label %785

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

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

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

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

777:                                              ; preds = %770
  %778 = load ptr, ptr %46, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef %778)
  %779 = load ptr, ptr %46, align 8, !tbaa !5
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef %779, ptr noundef @.str.380)
  call void @_ZN5ImGui5PopIDEv()
  br label %780

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

781:                                              ; preds = %780
  %782 = load i32, ptr %45, align 4, !tbaa !105
  %783 = add nsw i32 %782, 1
  store i32 %783, ptr %45, align 4, !tbaa !105
  br label %763, !llvm.loop !153

784:                                              ; preds = %769
  call void @_ZN5ImGui7TreePopEv()
  br label %785

785:                                              ; preds = %784, %757
  %786 = load ptr, ptr %3, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.ImGuiContext, ptr %786, i32 0, i32 161
  %788 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %787)
  %789 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.381, ptr noundef @.str.382, i32 noundef %788)
  br i1 %789, label %790, label %812

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

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

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

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

805:                                              ; preds = %798
  %806 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef %806)
  br label %807

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

808:                                              ; preds = %807
  %809 = load i32, ptr %47, align 4, !tbaa !105
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr %47, align 4, !tbaa !105
  br label %791, !llvm.loop !154

811:                                              ; preds = %797
  call void @_ZN5ImGui7TreePopEv()
  br label %812

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

822:                                              ; preds = %812
  %823 = load ptr, ptr %49, align 8, !tbaa !5
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef %823)
  call void @_ZN5ImGui7TreePopEv()
  br label %824

824:                                              ; preds = %822, %812
  %825 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.385)
  br i1 %825, label %826, label %829

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

829:                                              ; preds = %826, %824
  %830 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.386)
  br i1 %830, label %831, label %948

831:                                              ; preds = %829
  %832 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.387)
  br i1 %832, label %833, label %834

833:                                              ; preds = %831
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %834

834:                                              ; preds = %833, %831
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %835 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.388)
  br i1 %835, label %836, label %838

836:                                              ; preds = %834
  %837 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %838

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

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

845:                                              ; preds = %840, %838
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %846 = load ptr, ptr %3, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.ImGuiContext, ptr %846, i32 0, i32 2
  %848 = getelementptr inbounds %struct.ImGuiIO, ptr %847, i32 0, i32 5
  %849 = load ptr, ptr %848, align 8, !tbaa !160
  %850 = icmp ne ptr %849, null
  br i1 %850, label %851, label %856

851:                                              ; preds = %845
  %852 = load ptr, ptr %3, align 8, !tbaa !5
  %853 = getelementptr inbounds %struct.ImGuiContext, ptr %852, i32 0, i32 2
  %854 = getelementptr inbounds %struct.ImGuiIO, ptr %853, i32 0, i32 5
  %855 = load ptr, ptr %854, align 8, !tbaa !160
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.390, ptr noundef %855)
  br label %857

856:                                              ; preds = %845
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef @.str.242, ptr noundef null)
  br label %857

857:                                              ; preds = %856, %851
  %858 = load ptr, ptr %3, align 8, !tbaa !5
  %859 = getelementptr inbounds %struct.ImGuiContext, ptr %858, i32 0, i32 198
  %860 = load float, ptr %859, align 4, !tbaa !161
  %861 = fpext float %860 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.391, double noundef %861)
  %862 = load ptr, ptr %3, align 8, !tbaa !5
  %863 = getelementptr inbounds %struct.ImGuiContext, ptr %862, i32 0, i32 200
  %864 = getelementptr inbounds %struct.ImVector.26, ptr %863, i32 0, i32 0
  %865 = load i32, ptr %864, align 8, !tbaa !162
  %866 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.392, ptr noundef @.str.393, i32 noundef %865)
  br i1 %866, label %867, label %887

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

868:                                              ; preds = %883, %867
  %869 = load i32, ptr %50, align 4, !tbaa !105
  %870 = load ptr, ptr %3, align 8, !tbaa !5
  %871 = getelementptr inbounds %struct.ImGuiContext, ptr %870, i32 0, i32 200
  %872 = getelementptr inbounds %struct.ImVector.26, ptr %871, i32 0, i32 0
  %873 = load i32, ptr %872, align 8, !tbaa !162
  %874 = icmp slt i32 %869, %873
  br i1 %874, label %876, label %875

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

876:                                              ; preds = %868
  %877 = load ptr, ptr %3, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.ImGuiContext, ptr %877, i32 0, i32 200
  %879 = load i32, ptr %50, align 4, !tbaa !105
  %880 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %878, i32 noundef %879)
  %881 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %880, i32 0, i32 0
  %882 = load ptr, ptr %881, align 8, !tbaa !163
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.394, ptr noundef %882)
  br label %883

883:                                              ; preds = %876
  %884 = load i32, ptr %50, align 4, !tbaa !105
  %885 = add nsw i32 %884, 1
  store i32 %885, ptr %50, align 4, !tbaa !105
  br label %868, !llvm.loop !165

886:                                              ; preds = %875
  call void @_ZN5ImGui7TreePopEv()
  br label %887

887:                                              ; preds = %886, %857
  %888 = load ptr, ptr %3, align 8, !tbaa !5
  %889 = getelementptr inbounds %struct.ImGuiContext, ptr %888, i32 0, i32 201
  %890 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %889)
  %891 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.395, ptr noundef @.str.396, i32 noundef %890)
  br i1 %891, label %892, label %908

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

896:                                              ; preds = %902, %892
  %897 = load ptr, ptr %51, align 8, !tbaa !5
  %898 = icmp ne ptr %897, null
  br i1 %898, label %900, label %899

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

900:                                              ; preds = %896
  %901 = load ptr, ptr %51, align 8, !tbaa !5
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef %901)
  br label %902

902:                                              ; preds = %900
  %903 = load ptr, ptr %3, align 8, !tbaa !5
  %904 = getelementptr inbounds %struct.ImGuiContext, ptr %903, i32 0, i32 201
  %905 = load ptr, ptr %51, align 8, !tbaa !5
  %906 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %904, ptr noundef %905)
  store ptr %906, ptr %51, align 8, !tbaa !5
  br label %896, !llvm.loop !166

907:                                              ; preds = %899
  call void @_ZN5ImGui7TreePopEv()
  br label %908

908:                                              ; preds = %907, %887
  %909 = load ptr, ptr %3, align 8, !tbaa !5
  %910 = getelementptr inbounds %struct.ImGuiContext, ptr %909, i32 0, i32 202
  %911 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %910)
  %912 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.397, ptr noundef @.str.398, i32 noundef %911)
  br i1 %912, label %913, label %929

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

917:                                              ; preds = %923, %913
  %918 = load ptr, ptr %52, align 8, !tbaa !5
  %919 = icmp ne ptr %918, null
  br i1 %919, label %921, label %920

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

921:                                              ; preds = %917
  %922 = load ptr, ptr %52, align 8, !tbaa !5
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef %922)
  br label %923

923:                                              ; preds = %921
  %924 = load ptr, ptr %3, align 8, !tbaa !5
  %925 = getelementptr inbounds %struct.ImGuiContext, ptr %924, i32 0, i32 202
  %926 = load ptr, ptr %52, align 8, !tbaa !5
  %927 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %925, ptr noundef %926)
  store ptr %927, ptr %52, align 8, !tbaa !5
  br label %917, !llvm.loop !167

928:                                              ; preds = %920
  call void @_ZN5ImGui7TreePopEv()
  br label %929

929:                                              ; preds = %928, %908
  %930 = load ptr, ptr %3, align 8, !tbaa !5
  %931 = getelementptr inbounds %struct.ImGuiContext, ptr %930, i32 0, i32 199
  %932 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %931)
  %933 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.399, ptr noundef @.str.400, i32 noundef %932)
  br i1 %933, label %934, label %947

934:                                              ; preds = %929
  %935 = load ptr, ptr %3, align 8, !tbaa !5
  %936 = getelementptr inbounds %struct.ImGuiContext, ptr %935, i32 0, i32 199
  %937 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %936)
  %938 = load ptr, ptr %3, align 8, !tbaa !5
  %939 = getelementptr inbounds %struct.ImGuiContext, ptr %938, i32 0, i32 199
  %940 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %939, i32 0, i32 0
  %941 = getelementptr inbounds %struct.ImVector.24, ptr %940, i32 0, i32 0
  %942 = load i32, ptr %941, align 8, !tbaa !168
  %943 = sext i32 %942 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %944 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %945 = fmul float %944, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %53, float noundef 0xB810000000000000, float noundef %945)
  %946 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.401, ptr noundef %937, i64 noundef %943, 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 %947

947:                                              ; preds = %934, %929
  call void @_ZN5ImGui7TreePopEv()
  br label %948

948:                                              ; preds = %947, %829
  %949 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.402)
  br i1 %949, label %950, label %1333

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

951:                                              ; preds = %975, %950
  %952 = load i32, ptr %54, align 4, !tbaa !169
  %953 = icmp slt i32 %952, 652
  br i1 %953, label %955, label %954

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

955:                                              ; preds = %951
  %956 = load i32, ptr %54, align 4, !tbaa !169
  %957 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %956)
  br i1 %957, label %961, label %958

958:                                              ; preds = %955
  %959 = load i32, ptr %54, align 4, !tbaa !169
  %960 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %959)
  br i1 %960, label %962, label %961

961:                                              ; preds = %958, %955
  br label %975

962:                                              ; preds = %958
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %963 = load i32, ptr %54, align 4, !tbaa !169
  %964 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %963)
  %965 = zext i1 %964 to i64
  %966 = select i1 %964, ptr @.str.390, ptr @.str.405
  %967 = load i32, ptr %54, align 4, !tbaa !169
  %968 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %967)
  %969 = load i32, ptr %54, align 4, !tbaa !169
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %966, ptr noundef %968, i32 noundef %969)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %970 = load i32, ptr %54, align 4, !tbaa !169
  %971 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %970)
  %972 = getelementptr inbounds %struct.ImGuiKeyData, ptr %971, i32 0, i32 1
  %973 = load float, ptr %972, align 4, !tbaa !171
  %974 = fpext float %973 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.406, double noundef %974)
  br label %975

975:                                              ; preds = %962, %961
  %976 = load i32, ptr %54, align 4, !tbaa !169
  %977 = add nsw i32 %976, 1
  store i32 %977, ptr %54, align 4, !tbaa !169
  br label %951, !llvm.loop !173

978:                                              ; preds = %954
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.407)
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  store i32 0, ptr %55, align 4, !tbaa !169
  br label %979

979:                                              ; preds = %998, %978
  %980 = load i32, ptr %55, align 4, !tbaa !169
  %981 = icmp slt i32 %980, 652
  br i1 %981, label %983, label %982

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

983:                                              ; preds = %979
  %984 = load i32, ptr %55, align 4, !tbaa !169
  %985 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %984)
  br i1 %985, label %989, label %986

986:                                              ; preds = %983
  %987 = load i32, ptr %55, align 4, !tbaa !169
  %988 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %987, i1 noundef zeroext true)
  br i1 %988, label %990, label %989

989:                                              ; preds = %986, %983
  br label %998

990:                                              ; preds = %986
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %991 = load i32, ptr %55, align 4, !tbaa !169
  %992 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %991)
  %993 = zext i1 %992 to i64
  %994 = select i1 %992, ptr @.str.390, ptr @.str.405
  %995 = load i32, ptr %55, align 4, !tbaa !169
  %996 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %995)
  %997 = load i32, ptr %55, align 4, !tbaa !169
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %994, ptr noundef %996, i32 noundef %997)
  br label %998

998:                                              ; preds = %990, %989
  %999 = load i32, ptr %55, align 4, !tbaa !169
  %1000 = add nsw i32 %999, 1
  store i32 %1000, ptr %55, align 4, !tbaa !169
  br label %979, !llvm.loop !174

1001:                                             ; preds = %982
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.408)
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  store i32 0, ptr %56, align 4, !tbaa !169
  br label %1002

1002:                                             ; preds = %1021, %1001
  %1003 = load i32, ptr %56, align 4, !tbaa !169
  %1004 = icmp slt i32 %1003, 652
  br i1 %1004, label %1006, label %1005

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

1006:                                             ; preds = %1002
  %1007 = load i32, ptr %56, align 4, !tbaa !169
  %1008 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %1007)
  br i1 %1008, label %1012, label %1009

1009:                                             ; preds = %1006
  %1010 = load i32, ptr %56, align 4, !tbaa !169
  %1011 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %1010)
  br i1 %1011, label %1013, label %1012

1012:                                             ; preds = %1009, %1006
  br label %1021

1013:                                             ; preds = %1009
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %1014 = load i32, ptr %56, align 4, !tbaa !169
  %1015 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %1014)
  %1016 = zext i1 %1015 to i64
  %1017 = select i1 %1015, ptr @.str.390, ptr @.str.405
  %1018 = load i32, ptr %56, align 4, !tbaa !169
  %1019 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1018)
  %1020 = load i32, ptr %56, align 4, !tbaa !169
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1017, ptr noundef %1019, i32 noundef %1020)
  br label %1021

1021:                                             ; preds = %1013, %1012
  %1022 = load i32, ptr %56, align 4, !tbaa !169
  %1023 = add nsw i32 %1022, 1
  store i32 %1023, ptr %56, align 4, !tbaa !169
  br label %1002, !llvm.loop !175

1024:                                             ; preds = %1005
  %1025 = load ptr, ptr %4, align 8, !tbaa !5
  %1026 = getelementptr inbounds %struct.ImGuiIO, ptr %1025, i32 0, i32 60
  %1027 = load i8, ptr %1026, align 4, !tbaa !176, !range !13, !noundef !14
  %1028 = trunc i8 %1027 to i1
  %1029 = zext i1 %1028 to i64
  %1030 = select i1 %1028, ptr @.str.410, ptr @.str.17
  %1031 = load ptr, ptr %4, align 8, !tbaa !5
  %1032 = getelementptr inbounds %struct.ImGuiIO, ptr %1031, i32 0, i32 61
  %1033 = load i8, ptr %1032, align 1, !tbaa !177, !range !13, !noundef !14
  %1034 = trunc i8 %1033 to i1
  %1035 = zext i1 %1034 to i64
  %1036 = select i1 %1034, ptr @.str.411, ptr @.str.17
  %1037 = load ptr, ptr %4, align 8, !tbaa !5
  %1038 = getelementptr inbounds %struct.ImGuiIO, ptr %1037, i32 0, i32 62
  %1039 = load i8, ptr %1038, align 2, !tbaa !178, !range !13, !noundef !14
  %1040 = trunc i8 %1039 to i1
  %1041 = zext i1 %1040 to i64
  %1042 = select i1 %1040, ptr @.str.412, ptr @.str.17
  %1043 = load ptr, ptr %4, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.ImGuiIO, ptr %1043, i32 0, i32 63
  %1045 = load i8, ptr %1044, align 1, !tbaa !179, !range !13, !noundef !14
  %1046 = trunc i8 %1045 to i1
  %1047 = zext i1 %1046 to i64
  %1048 = select i1 %1046, ptr @.str.413, ptr @.str.17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.409, ptr noundef %1030, ptr noundef %1036, ptr noundef %1042, ptr noundef %1048)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.414)
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  store i32 0, ptr %57, align 4, !tbaa !105
  br label %1049

1049:                                             ; preds = %1079, %1024
  %1050 = load i32, ptr %57, align 4, !tbaa !105
  %1051 = load ptr, ptr %4, align 8, !tbaa !5
  %1052 = getelementptr inbounds %struct.ImGuiIO, ptr %1051, i32 0, i32 86
  %1053 = getelementptr inbounds %struct.ImVector, ptr %1052, i32 0, i32 0
  %1054 = load i32, ptr %1053, align 8, !tbaa !180
  %1055 = icmp slt i32 %1050, %1054
  br i1 %1055, label %1057, label %1056

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

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

1066:                                             ; preds = %1057
  %1067 = load i16, ptr %58, align 2, !tbaa !181
  %1068 = zext i16 %1067 to i32
  %1069 = icmp sle i32 %1068, 255
  br i1 %1069, label %1070, label %1073

1070:                                             ; preds = %1066
  %1071 = load i16, ptr %58, align 2, !tbaa !181
  %1072 = trunc i16 %1071 to i8
  br label %1074

1073:                                             ; preds = %1066, %1057
  br label %1074

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

1079:                                             ; preds = %1074
  %1080 = load i32, ptr %57, align 4, !tbaa !105
  %1081 = add nsw i32 %1080, 1
  store i32 %1081, ptr %57, align 4, !tbaa !105
  br label %1049, !llvm.loop !182

1082:                                             ; preds = %1056
  %1083 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %1083)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.416)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1084 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %1084, label %1085, label %1096

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

1096:                                             ; preds = %1082
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.418)
  br label %1097

1097:                                             ; preds = %1096, %1085
  %1098 = load ptr, ptr %4, align 8, !tbaa !5
  %1099 = getelementptr inbounds %struct.ImGuiIO, ptr %1098, i32 0, i32 52
  %1100 = getelementptr inbounds %struct.ImVec2, ptr %1099, i32 0, i32 0
  %1101 = load float, ptr %1100, align 8, !tbaa !185
  %1102 = fpext float %1101 to double
  %1103 = load ptr, ptr %4, align 8, !tbaa !5
  %1104 = getelementptr inbounds %struct.ImGuiIO, ptr %1103, i32 0, i32 52
  %1105 = getelementptr inbounds %struct.ImVec2, ptr %1104, i32 0, i32 1
  %1106 = load float, ptr %1105, align 4, !tbaa !186
  %1107 = fpext float %1106 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.419, double noundef %1102, double noundef %1107)
  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.420)
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  store i32 0, ptr %60, align 4, !tbaa !105
  br label %1108

1108:                                             ; preds = %1126, %1097
  %1109 = load i32, ptr %60, align 4, !tbaa !105
  %1110 = load i32, ptr %59, align 4, !tbaa !105
  %1111 = icmp slt i32 %1109, %1110
  br i1 %1111, label %1113, label %1112

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

1113:                                             ; preds = %1108
  %1114 = load i32, ptr %60, align 4, !tbaa !105
  %1115 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef %1114)
  br i1 %1115, label %1116, label %1125

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

1125:                                             ; preds = %1116, %1113
  br label %1126

1126:                                             ; preds = %1125
  %1127 = load i32, ptr %60, align 4, !tbaa !105
  %1128 = add nsw i32 %1127, 1
  store i32 %1128, ptr %60, align 4, !tbaa !105
  br label %1108, !llvm.loop !188

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

1130:                                             ; preds = %1148, %1129
  %1131 = load i32, ptr %61, align 4, !tbaa !105
  %1132 = load i32, ptr %59, align 4, !tbaa !105
  %1133 = icmp slt i32 %1131, %1132
  br i1 %1133, label %1135, label %1134

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

1135:                                             ; preds = %1130
  %1136 = load i32, ptr %61, align 4, !tbaa !105
  %1137 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef %1136, i1 noundef zeroext false)
  br i1 %1137, label %1138, label %1147

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

1147:                                             ; preds = %1138, %1135
  br label %1148

1148:                                             ; preds = %1147
  %1149 = load i32, ptr %61, align 4, !tbaa !105
  %1150 = add nsw i32 %1149, 1
  store i32 %1150, ptr %61, align 4, !tbaa !105
  br label %1130, !llvm.loop !189

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

1152:                                             ; preds = %1163, %1151
  %1153 = load i32, ptr %62, align 4, !tbaa !105
  %1154 = load i32, ptr %59, align 4, !tbaa !105
  %1155 = icmp slt i32 %1153, %1154
  br i1 %1155, label %1157, label %1156

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

1157:                                             ; preds = %1152
  %1158 = load i32, ptr %62, align 4, !tbaa !105
  %1159 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef %1158)
  br i1 %1159, label %1160, label %1162

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

1162:                                             ; preds = %1160, %1157
  br label %1163

1163:                                             ; preds = %1162
  %1164 = load i32, ptr %62, align 4, !tbaa !105
  %1165 = add nsw i32 %1164, 1
  store i32 %1165, ptr %62, align 4, !tbaa !105
  br label %1152, !llvm.loop !190

1166:                                             ; preds = %1156
  %1167 = load ptr, ptr %4, align 8, !tbaa !5
  %1168 = getelementptr inbounds %struct.ImGuiIO, ptr %1167, i32 0, i32 58
  %1169 = load float, ptr %1168, align 4, !tbaa !191
  %1170 = fpext float %1169 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.426, double noundef %1170)
  %1171 = load ptr, ptr %4, align 8, !tbaa !5
  %1172 = getelementptr inbounds %struct.ImGuiIO, ptr %1171, i32 0, i32 80
  %1173 = load float, ptr %1172, align 4, !tbaa !192
  %1174 = fpext float %1173 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.427, double noundef %1174)
  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.428)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1175 = load ptr, ptr %3, align 8, !tbaa !5
  %1176 = getelementptr inbounds %struct.ImGuiContext, ptr %1175, i32 0, i32 31
  %1177 = load ptr, ptr %1176, align 8, !tbaa !193
  %1178 = icmp ne ptr %1177, null
  br i1 %1178, label %1179, label %1185

1179:                                             ; preds = %1166
  %1180 = load ptr, ptr %3, align 8, !tbaa !5
  %1181 = getelementptr inbounds %struct.ImGuiContext, ptr %1180, i32 0, i32 31
  %1182 = load ptr, ptr %1181, align 8, !tbaa !193
  %1183 = getelementptr inbounds %struct.ImGuiWindow, ptr %1182, i32 0, i32 0
  %1184 = load ptr, ptr %1183, align 8, !tbaa !104
  br label %1186

1185:                                             ; preds = %1166
  br label %1186

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

1211:                                             ; preds = %1186
  br label %1224

1212:                                             ; preds = %1186
  %1213 = load ptr, ptr %3, align 8, !tbaa !5
  %1214 = getelementptr inbounds %struct.ImGuiContext, ptr %1213, i32 0, i32 36
  %1215 = getelementptr inbounds %struct.ImVec2, ptr %1214, i32 0, i32 0
  %1216 = load float, ptr %1215, align 8, !tbaa !195
  %1217 = load ptr, ptr %3, align 8, !tbaa !5
  %1218 = getelementptr inbounds %struct.ImGuiContext, ptr %1217, i32 0, i32 36
  %1219 = getelementptr inbounds %struct.ImVec2, ptr %1218, i32 0, i32 1
  %1220 = load float, ptr %1219, align 4, !tbaa !196
  %1221 = fcmp olt float %1216, %1220
  %1222 = zext i1 %1221 to i64
  %1223 = select i1 %1221, ptr @.str.432, ptr @.str.433
  br label %1224

1224:                                             ; preds = %1212, %1211
  %1225 = phi ptr [ @.str.303, %1211 ], [ %1223, %1212 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.431, double noundef %1196, double noundef %1201, ptr noundef %1225)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.434)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  %1226 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1227 = fmul float %1226, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef 0xB810000000000000, float noundef %1227)
  %1228 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef @.str.435, ptr noundef nonnull align 4 dereferenceable(8) %63)
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  br i1 %1228, label %1229, label %1272

1229:                                             ; preds = %1224
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  store i32 512, ptr %64, align 4, !tbaa !169
  br label %1230

1230:                                             ; preds = %1268, %1229
  %1231 = load i32, ptr %64, align 4, !tbaa !169
  %1232 = icmp slt i32 %1231, 652
  br i1 %1232, label %1234, label %1233

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

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

1241:                                             ; preds = %1234
  store i32 73, ptr %6, align 4
  br label %1265

1242:                                             ; preds = %1234
  %1243 = load i32, ptr %64, align 4, !tbaa !169
  %1244 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1243)
  %1245 = load ptr, ptr %65, align 8, !tbaa !5
  %1246 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1245, i32 0, i32 0
  %1247 = load i32, ptr %1246, align 4, !tbaa !197
  %1248 = load ptr, ptr %65, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1248, i32 0, i32 3
  %1250 = load i8, ptr %1249, align 1, !tbaa !199, !range !13, !noundef !14
  %1251 = trunc i8 %1250 to i1
  br i1 %1251, label %1252, label %1253

1252:                                             ; preds = %1242
  br label %1260

1253:                                             ; preds = %1242
  %1254 = load ptr, ptr %65, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1254, i32 0, i32 2
  %1256 = load i8, ptr %1255, align 4, !tbaa !200, !range !13, !noundef !14
  %1257 = trunc i8 %1256 to i1
  %1258 = zext i1 %1257 to i64
  %1259 = select i1 %1257, ptr @.str.438, ptr @.str.17
  br label %1260

1260:                                             ; preds = %1253, %1252
  %1261 = phi ptr [ @.str.437, %1252 ], [ %1259, %1253 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.436, ptr noundef %1244, i32 noundef %1247, ptr noundef %1261)
  %1262 = load ptr, ptr %65, align 8, !tbaa !5
  %1263 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1262, i32 0, i32 0
  %1264 = load i32, ptr %1263, align 4, !tbaa !197
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1264)
  store i32 0, ptr %6, align 4
  br label %1265

1265:                                             ; preds = %1260, %1241
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  %1266 = load i32, ptr %6, align 4
  switch i32 %1266, label %1753 [
    i32 0, label %1267
    i32 73, label %1268
  ]

1267:                                             ; preds = %1265
  br label %1268

1268:                                             ; preds = %1267, %1265
  %1269 = load i32, ptr %64, align 4, !tbaa !169
  %1270 = add nsw i32 %1269, 1
  store i32 %1270, ptr %64, align 4, !tbaa !169
  br label %1230, !llvm.loop !201

1271:                                             ; preds = %1233
  call void @_ZN5ImGui10EndListBoxEv()
  br label %1272

1272:                                             ; preds = %1271, %1224
  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 %66) #9
  %1273 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1274 = fmul float %1273, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %66, float noundef 0xB810000000000000, float noundef %1274)
  %1275 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef @.str.440, ptr noundef nonnull align 4 dereferenceable(8) %66)
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  br i1 %1275, label %1276, label %1324

1276:                                             ; preds = %1272
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  store i32 512, ptr %67, align 4, !tbaa !169
  br label %1277

1277:                                             ; preds = %1320, %1276
  %1278 = load i32, ptr %67, align 4, !tbaa !169
  %1279 = icmp slt i32 %1278, 652
  br i1 %1279, label %1281, label %1280

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

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

1291:                                             ; preds = %1296, %1281
  %1292 = load i16, ptr %69, align 2, !tbaa !181
  %1293 = sext i16 %1292 to i32
  %1294 = icmp ne i32 %1293, -1
  br i1 %1294, label %1296, label %1295

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

1296:                                             ; preds = %1291
  call void @llvm.lifetime.start.p0(i64 64, ptr %70) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  %1297 = load ptr, ptr %68, align 8, !tbaa !5
  %1298 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1297, i32 0, i32 1
  %1299 = load i16, ptr %69, align 2, !tbaa !181
  %1300 = sext i16 %1299 to i32
  %1301 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1298, i32 noundef %1300)
  store ptr %1301, ptr %71, align 8, !tbaa !5
  %1302 = load i32, ptr %67, align 4, !tbaa !169
  %1303 = load ptr, ptr %71, align 8, !tbaa !5
  %1304 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1303, i32 0, i32 1
  %1305 = load i16, ptr %1304, align 2, !tbaa !202
  %1306 = zext i16 %1305 to i32
  %1307 = or i32 %1302, %1306
  %1308 = getelementptr inbounds [64 x i8], ptr %70, i64 0, i64 0
  call void @_ZN5ImGui15GetKeyChordNameEiPci(i32 noundef %1307, ptr noundef %1308, i32 noundef 64)
  %1309 = getelementptr inbounds [64 x i8], ptr %70, i64 0, i64 0
  %1310 = load ptr, ptr %71, align 8, !tbaa !5
  %1311 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1310, i32 0, i32 3
  %1312 = load i32, ptr %1311, align 4, !tbaa !204
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.441, ptr noundef %1309, i32 noundef %1312)
  %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 !204
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1315)
  %1316 = load ptr, ptr %71, align 8, !tbaa !5
  %1317 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1316, i32 0, i32 0
  %1318 = load i16, ptr %1317, align 4, !tbaa !205
  store i16 %1318, ptr %69, align 2, !tbaa !181
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %70) #9
  br label %1291, !llvm.loop !206

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

1320:                                             ; preds = %1319
  %1321 = load i32, ptr %67, align 4, !tbaa !169
  %1322 = add nsw i32 %1321, 1
  store i32 %1322, ptr %67, align 4, !tbaa !169
  br label %1277, !llvm.loop !207

1323:                                             ; preds = %1280
  call void @_ZN5ImGui10EndListBoxEv()
  br label %1324

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

1333:                                             ; preds = %1324, %948
  %1334 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.443)
  br i1 %1334, label %1335, label %1556

1335:                                             ; preds = %1333
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.444)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1336 = load ptr, ptr %3, align 8, !tbaa !5
  %1337 = getelementptr inbounds %struct.ImGuiContext, ptr %1336, i32 0, i32 28
  %1338 = load ptr, ptr %1337, align 8, !tbaa !210
  %1339 = icmp ne ptr %1338, null
  br i1 %1339, label %1340, label %1346

1340:                                             ; preds = %1335
  %1341 = load ptr, ptr %3, align 8, !tbaa !5
  %1342 = getelementptr inbounds %struct.ImGuiContext, ptr %1341, i32 0, i32 28
  %1343 = load ptr, ptr %1342, align 8, !tbaa !210
  %1344 = getelementptr inbounds %struct.ImGuiWindow, ptr %1343, i32 0, i32 0
  %1345 = load ptr, ptr %1344, align 8, !tbaa !104
  br label %1347

1346:                                             ; preds = %1335
  br label %1347

1347:                                             ; preds = %1346, %1340
  %1348 = phi ptr [ %1345, %1340 ], [ @.str.375, %1346 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.445, ptr noundef %1348)
  %1349 = load ptr, ptr %3, align 8, !tbaa !5
  %1350 = getelementptr inbounds %struct.ImGuiContext, ptr %1349, i32 0, i32 28
  %1351 = load ptr, ptr %1350, align 8, !tbaa !210
  %1352 = icmp ne ptr %1351, null
  br i1 %1352, label %1353, label %1361

1353:                                             ; preds = %1347
  %1354 = load ptr, ptr %3, align 8, !tbaa !5
  %1355 = getelementptr inbounds %struct.ImGuiContext, ptr %1354, i32 0, i32 28
  %1356 = load ptr, ptr %1355, align 8, !tbaa !210
  %1357 = getelementptr inbounds %struct.ImGuiWindow, ptr %1356, i32 0, i32 83
  %1358 = load ptr, ptr %1357, align 8, !tbaa !211
  %1359 = getelementptr inbounds %struct.ImGuiWindow, ptr %1358, i32 0, i32 0
  %1360 = load ptr, ptr %1359, align 8, !tbaa !104
  br label %1362

1361:                                             ; preds = %1347
  br label %1362

1362:                                             ; preds = %1361, %1353
  %1363 = phi ptr [ %1360, %1353 ], [ @.str.375, %1361 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.446, ptr noundef %1363)
  %1364 = load ptr, ptr %3, align 8, !tbaa !5
  %1365 = getelementptr inbounds %struct.ImGuiContext, ptr %1364, i32 0, i32 29
  %1366 = load ptr, ptr %1365, align 8, !tbaa !212
  %1367 = icmp ne ptr %1366, null
  br i1 %1367, label %1368, label %1374

1368:                                             ; preds = %1362
  %1369 = load ptr, ptr %3, align 8, !tbaa !5
  %1370 = getelementptr inbounds %struct.ImGuiContext, ptr %1369, i32 0, i32 29
  %1371 = load ptr, ptr %1370, align 8, !tbaa !212
  %1372 = getelementptr inbounds %struct.ImGuiWindow, ptr %1371, i32 0, i32 0
  %1373 = load ptr, ptr %1372, align 8, !tbaa !104
  br label %1375

1374:                                             ; preds = %1362
  br label %1375

1375:                                             ; preds = %1374, %1368
  %1376 = phi ptr [ %1373, %1368 ], [ @.str.375, %1374 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.447, ptr noundef %1376)
  %1377 = load ptr, ptr %3, align 8, !tbaa !5
  %1378 = getelementptr inbounds %struct.ImGuiContext, ptr %1377, i32 0, i32 30
  %1379 = load ptr, ptr %1378, align 8, !tbaa !213
  %1380 = icmp ne ptr %1379, null
  br i1 %1380, label %1381, label %1387

1381:                                             ; preds = %1375
  %1382 = load ptr, ptr %3, align 8, !tbaa !5
  %1383 = getelementptr inbounds %struct.ImGuiContext, ptr %1382, i32 0, i32 30
  %1384 = load ptr, ptr %1383, align 8, !tbaa !213
  %1385 = getelementptr inbounds %struct.ImGuiWindow, ptr %1384, i32 0, i32 0
  %1386 = load ptr, ptr %1385, align 8, !tbaa !104
  br label %1388

1387:                                             ; preds = %1375
  br label %1388

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

1416:                                             ; preds = %1388
  %1417 = load ptr, ptr %3, align 8, !tbaa !5
  %1418 = getelementptr inbounds %struct.ImGuiContext, ptr %1417, i32 0, i32 54
  %1419 = load ptr, ptr %1418, align 8, !tbaa !219
  %1420 = getelementptr inbounds %struct.ImGuiWindow, ptr %1419, i32 0, i32 0
  %1421 = load ptr, ptr %1420, align 8, !tbaa !104
  br label %1423

1422:                                             ; preds = %1388
  br label %1423

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

1481:                                             ; preds = %1423
  %1482 = load ptr, ptr %3, align 8, !tbaa !5
  %1483 = getelementptr inbounds %struct.ImGuiContext, ptr %1482, i32 0, i32 84
  %1484 = load ptr, ptr %1483, align 8, !tbaa !103
  %1485 = getelementptr inbounds %struct.ImGuiWindow, ptr %1484, i32 0, i32 0
  %1486 = load ptr, ptr %1485, align 8, !tbaa !104
  br label %1488

1487:                                             ; preds = %1423
  br label %1488

1488:                                             ; preds = %1487, %1481
  %1489 = phi ptr [ %1486, %1481 ], [ @.str.375, %1487 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.457, ptr noundef %1489)
  %1490 = load ptr, ptr %3, align 8, !tbaa !5
  %1491 = getelementptr inbounds %struct.ImGuiContext, ptr %1490, i32 0, i32 85
  %1492 = load i32, ptr %1491, align 8, !tbaa !229
  %1493 = load ptr, ptr %3, align 8, !tbaa !5
  %1494 = getelementptr inbounds %struct.ImGuiContext, ptr %1493, i32 0, i32 98
  %1495 = load i32, ptr %1494, align 4, !tbaa !230
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.458, i32 noundef %1492, i32 noundef %1495)
  %1496 = load ptr, ptr %3, align 8, !tbaa !5
  %1497 = getelementptr inbounds %struct.ImGuiContext, ptr %1496, i32 0, i32 85
  %1498 = load i32, ptr %1497, align 8, !tbaa !229
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1498)
  %1499 = load ptr, ptr %3, align 8, !tbaa !5
  %1500 = getelementptr inbounds %struct.ImGuiContext, ptr %1499, i32 0, i32 97
  %1501 = load i32, ptr %1500, align 8, !tbaa !231
  %1502 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1501)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.459, ptr noundef %1502)
  %1503 = load ptr, ptr %3, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.ImGuiContext, ptr %1503, i32 0, i32 2
  %1505 = getelementptr inbounds %struct.ImGuiIO, ptr %1504, i32 0, i32 44
  %1506 = load i8, ptr %1505, align 1, !tbaa !232, !range !13, !noundef !14
  %1507 = trunc i8 %1506 to i1
  %1508 = zext i1 %1507 to i32
  %1509 = load ptr, ptr %3, align 8, !tbaa !5
  %1510 = getelementptr inbounds %struct.ImGuiContext, ptr %1509, i32 0, i32 2
  %1511 = getelementptr inbounds %struct.ImGuiIO, ptr %1510, i32 0, i32 45
  %1512 = load i8, ptr %1511, align 2, !tbaa !233, !range !13, !noundef !14
  %1513 = trunc i8 %1512 to i1
  %1514 = zext i1 %1513 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.460, i32 noundef %1508, i32 noundef %1514)
  %1515 = load ptr, ptr %3, align 8, !tbaa !5
  %1516 = getelementptr inbounds %struct.ImGuiContext, ptr %1515, i32 0, i32 87
  %1517 = load i32, ptr %1516, align 8, !tbaa !234
  %1518 = load ptr, ptr %3, align 8, !tbaa !5
  %1519 = getelementptr inbounds %struct.ImGuiContext, ptr %1518, i32 0, i32 88
  %1520 = load i32, ptr %1519, align 4, !tbaa !235
  %1521 = load ptr, ptr %3, align 8, !tbaa !5
  %1522 = getelementptr inbounds %struct.ImGuiContext, ptr %1521, i32 0, i32 89
  %1523 = load i32, ptr %1522, align 8, !tbaa !236
  %1524 = load ptr, ptr %3, align 8, !tbaa !5
  %1525 = getelementptr inbounds %struct.ImGuiContext, ptr %1524, i32 0, i32 90
  %1526 = load i32, ptr %1525, align 4, !tbaa !237
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.461, i32 noundef %1517, 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 91
  %1529 = load i32, ptr %1528, align 8, !tbaa !238
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.462, i32 noundef %1529)
  %1530 = load ptr, ptr %3, align 8, !tbaa !5
  %1531 = getelementptr inbounds %struct.ImGuiContext, ptr %1530, i32 0, i32 101
  %1532 = load i8, ptr %1531, align 2, !tbaa !239, !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 102
  %1537 = load i8, ptr %1536, align 1, !tbaa !240, !range !13, !noundef !14
  %1538 = trunc i8 %1537 to i1
  %1539 = zext i1 %1538 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.463, 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 !241
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.464, i32 noundef %1542)
  %1543 = load ptr, ptr %3, align 8, !tbaa !5
  %1544 = getelementptr inbounds %struct.ImGuiContext, ptr %1543, i32 0, i32 128
  %1545 = load ptr, ptr %1544, align 8, !tbaa !242
  %1546 = icmp ne ptr %1545, null
  br i1 %1546, label %1547, label %1553

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

1553:                                             ; preds = %1488
  br label %1554

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

1556:                                             ; preds = %1554, %1333
  %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 !243, !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 !132
  %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 31
  %1583 = load i8, ptr %1582, align 1, !tbaa !244, !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 7
  %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 !243, !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 2
  %1614 = load i32, ptr %1613, align 4, !tbaa !149
  %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 45
  %1621 = load i16, ptr %1620, align 8, !tbaa !245
  %1622 = sext i16 %1621 to i32
  %1623 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %1618, i64 noundef 32, ptr noundef @.str.312, 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 !187
  %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 4
  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 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #9
  %1630 = load float, ptr %77, align 4, !tbaa !187
  %1631 = load float, ptr %77, align 4, !tbaa !187
  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 4
  %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 !246

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 161
  %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 161
  %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 13
  %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 !124
  %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 54
  %1678 = load ptr, ptr %1677, align 8, !tbaa !125
  %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 8
  %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 14
  %1689 = load i32, ptr %1688, align 4, !tbaa !128
  %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 8
  %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 69
  %1705 = load i8, ptr %1704, align 4, !tbaa !247
  %1706 = sext i8 %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 69
  %1713 = load i8, ptr %1712, align 4, !tbaa !247
  %1714 = sext i8 %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 !187
  %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 !187
  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 !248

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 8
  %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 !249

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, %1265, %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

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

; 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, !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 186}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !12, i64 8, !12, i64 12, !6, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !19, i64 80, !19, i64 84, !19, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !18, i64 124, !18, i64 132, !18, i64 140, !18, i64 148, !18, i64 156, !18, i64 164, !11, i64 172, !11, i64 173, !11, i64 174, !11, i64 175, !11, i64 176, !11, i64 177, !11, i64 178, !11, i64 179, !11, i64 180, !11, i64 181, !11, i64 182, !11, i64 183, !11, i64 184, !7, i64 185, !20, i64 186, !20, i64 188, !20, i64 190, !20, i64 192, !20, i64 194, !12, i64 196, !7, i64 200, !7, i64 201, !7, i64 202, !11, i64 203, !12, i64 204, !7, i64 208, !7, i64 209, !7, i64 210, !7, i64 211, !12, i64 212, !12, i64 213, !12, i64 214, !18, i64 216, !18, i64 224, !21, i64 232, !22, i64 248, !28, i64 480, !28, i64 496, !28, i64 512, !28, i64 528, !28, i64 544, !28, i64 560, !28, i64 576, !29, i64 592, !29, i64 596, !12, i64 600, !19, i64 604, !19, i64 608, !30, i64 616, !32, i64 632, !19, i64 648, !12, i64 652, !6, i64 656, !33, i64 664, !6, i64 864, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !7, i64 920, !7, i64 928, !12, i64 960, !12, i64 964, !12, i64 968, !11, i64 972}
!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, !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, !18, i64 3572, !7, i64 3580, !19, i64 3588, !19, i64 3592, !11, i64 3596, !11, i64 3597, !11, i64 3598, !11, i64 3599, !12, i64 3600, !7, i64 3604, !11, i64 14036, !18, i64 14040, !7, i64 14048, !7, i64 14088, !7, i64 14128, !7, i64 14133, !7, i64 14138, !7, i64 14148, !7, i64 14158, !7, i64 14163, !7, i64 14168, !7, i64 14176, !7, i64 14196, !7, i64 14216, !19, i64 14236, !11, i64 14240, !11, i64 14241, !7, i64 14242, !11, i64 14243, !20, i64 14244, !35, i64 14248}
!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 23673}
!55 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !45, i64 8, !56, i64 14272, !56, i64 14288, !57, i64 14304, !6, i64 15352, !19, i64 15360, !19, i64 15364, !58, i64 15368, !59, i64 15896, !12, i64 15904, !12, i64 15908, !12, i64 15912, !11, i64 15916, !11, i64 15917, !11, i64 15918, !11, i64 15919, !11, i64 15920, !6, i64 15928, !26, i64 15936, !26, i64 15952, !26, i64 15968, !60, i64 15984, !30, i64 16000, !12, i64 16016, !18, i64 16020, !6, i64 16032, !6, i64 16040, !6, i64 16048, !6, i64 16056, !6, i64 16064, !18, i64 16072, !12, i64 16080, !19, i64 16084, !18, i64 16088, !18, i64 16096, !12, i64 16104, !12, i64 16108, !12, i64 16112, !11, i64 16116, !11, i64 16117, !19, i64 16120, !19, i64 16124, !12, i64 16128, !12, i64 16132, !19, i64 16136, !11, i64 16140, !11, i64 16141, !11, i64 16142, !11, i64 16143, !11, i64 16144, !11, i64 16145, !18, i64 16148, !6, i64 16160, !61, i64 16168, !12, i64 16172, !12, i64 16176, !11, i64 16180, !11, i64 16181, !6, i64 16184, !12, i64 16192, !19, i64 16196, !7, i64 16200, !62, i64 17880, !12, i64 18192, !11, i64 18196, !12, i64 18200, !12, i64 18204, !12, i64 18208, !12, i64 18212, !64, i64 18216, !65, i64 18236, !66, i64 18296, !67, i64 18408, !68, i64 18424, !69, i64 18440, !21, i64 18456, !70, i64 18472, !71, i64 18488, !72, i64 18504, !72, i64 18520, !12, i64 18536, !73, i64 18544, !6, i64 18560, !12, i64 18568, !12, i64 18572, !12, i64 18576, !12, i64 18580, !12, i64 18584, !12, i64 18588, !12, i64 18592, !12, i64 18596, !12, i64 18600, !12, i64 18604, !12, i64 18608, !12, i64 18612, !61, i64 18616, !24, i64 18620, !11, i64 18624, !11, i64 18625, !11, i64 18626, !11, i64 18627, !11, i64 18628, !11, i64 18629, !11, i64 18630, !12, i64 18632, !28, i64 18636, !11, i64 18652, !11, i64 18653, !11, i64 18654, !12, i64 18656, !12, i64 18660, !12, i64 18664, !12, i64 18668, !12, i64 18672, !12, i64 18676, !28, i64 18680, !28, i64 18696, !12, i64 18712, !12, i64 18716, !12, i64 18720, !74, i64 18728, !74, i64 18776, !74, i64 18824, !74, i64 18872, !12, i64 18920, !12, i64 18924, !6, i64 18928, !6, i64 18936, !6, i64 18944, !19, i64 18952, !19, i64 18956, !11, i64 18960, !18, i64 18964, !18, i64 18972, !19, i64 18980, !12, i64 18984, !11, i64 18988, !11, i64 18989, !11, i64 18990, !12, i64 18992, !12, i64 18996, !12, i64 19000, !75, i64 19008, !28, i64 19072, !12, i64 19088, !12, i64 19092, !19, i64 19096, !12, i64 19100, !12, i64 19104, !12, i64 19108, !12, i64 19112, !76, i64 19120, !7, i64 19136, !12, i64 19152, !77, i64 19160, !6, i64 19176, !12, i64 19184, !78, i64 19192, !79, i64 19208, !27, i64 19248, !43, i64 19264, !6, i64 19280, !81, i64 19288, !83, i64 19328, !84, i64 19344, !12, i64 19360, !12, i64 19364, !19, i64 19368, !19, i64 19372, !18, i64 19376, !85, i64 19384, !89, i64 23112, !12, i64 23224, !12, i64 23228, !19, i64 23232, !19, i64 23236, !12, i64 23240, !41, i64 23244, !91, i64 23260, !19, i64 23308, !19, i64 23312, !11, i64 23316, !11, i64 23317, !19, i64 23320, !19, i64 23324, !19, i64 23328, !19, i64 23332, !20, i64 23336, !20, i64 23338, !86, i64 23344, !21, i64 23360, !92, i64 23376, !92, i64 23392, !7, i64 23408, !11, i64 23409, !19, i64 23412, !93, i64 23416, !94, i64 23432, !95, i64 23448, !96, i64 23464, !97, i64 23480, !12, i64 23496, !7, i64 23504, !11, i64 23560, !98, i64 23564, !6, i64 23568, !93, i64 23576, !6, i64 23592, !6, i64 23600, !19, i64 23608, !11, i64 23612, !12, i64 23616, !12, i64 23620, !12, i64 23624, !12, i64 23628, !93, i64 23632, !99, i64 23648, !7, i64 23672, !11, i64 23673, !7, i64 23674, !12, i64 23676, !10, i64 23680, !100, i64 23696, !7, i64 23736, !12, i64 23976, !12, i64 23980, !19, i64 23984, !12, i64 23988, !12, i64 23992, !12, i64 23996, !86, i64 24000}
!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, !18, i64 168, !18, i64 176, !19, i64 184, !11, i64 188, !11, i64 189, !11, i64 190, !19, i64 192, !19, i64 196, !7, i64 200}
!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, !11, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !12, i64 104, !7, i64 108}
!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 18560}
!104 = !{!17, !6, i64 0}
!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 112}
!114 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !115, i64 24, !116, i64 40, !117, i64 56, !118, i64 72, !118, i64 80, !118, i64 88, !118, i64 96, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !12, i64 124, !20, i64 128, !20, i64 130, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !19, i64 148, !12, i64 152, !12, i64 154, !12, i64 156, !7, i64 160, !12, i64 168, !12, i64 172, !19, i64 176, !19, i64 180, !19, i64 184, !19, i64 188, !19, i64 192, !19, i64 196, !19, i64 200, !19, i64 204, !19, i64 208, !19, i64 212, !19, i64 216, !19, i64 220, !19, i64 224, !19, i64 228, !19, i64 232, !19, i64 236, !28, i64 240, !28, i64 256, !28, i64 272, !28, i64 288, !28, i64 304, !28, i64 320, !28, i64 336, !28, i64 352, !28, i64 368, !6, i64 384, !6, i64 392, !93, i64 400, !6, i64 416, !119, i64 424, !120, i64 440, !121, i64 456, !122, i64 472, !123, i64 488, !7, i64 504, !7, i64 505, !7, i64 506, !7, i64 507, !7, i64 508, !7, i64 509, !7, i64 510, !7, i64 511, !7, i64 512, !7, i64 513, !7, i64 514, !7, i64 515, !7, i64 516, !7, i64 517, !7, i64 518, !7, i64 519, !7, i64 520, !7, i64 521, !7, i64 522, !7, i64 523, !7, i64 524, !7, i64 525, !7, i64 526, !7, i64 527, !7, i64 528, !11, i64 529, !11, i64 530, !11, i64 531, !11, i64 532, !11, i64 533, !11, i64 534, !11, i64 535, !11, i64 536, !11, i64 537, !11, i64 538, !11, i64 539, !11, i64 540, !11, i64 541, !11, i64 542, !11, i64 543, !11, i64 544, !11, i64 545}
!115 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!116 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!117 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!118 = !{!"long long", !7, i64 0}
!119 = !{!"_ZTS22ImGuiTableInstanceData", !19, i64 0, !19, i64 4, !19, i64 8}
!120 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!121 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !20, i64 4, !20, i64 6, !12, i64 8}
!122 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!123 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!124 = !{!55, !12, i64 15904}
!125 = !{!114, !6, i64 384}
!126 = !{!114, !6, i64 392}
!127 = !{!114, !12, i64 0}
!128 = !{!114, !12, i64 116}
!129 = distinct !{!129, !111}
!130 = distinct !{!130, !111}
!131 = distinct !{!131, !111}
!132 = !{!55, !12, i64 15936}
!133 = !{!17, !12, i64 600}
!134 = distinct !{!134, !111}
!135 = !{!26, !6, i64 8}
!136 = !{!26, !12, i64 0}
!137 = !{!55, !12, i64 18544}
!138 = distinct !{!138, !111}
!139 = !{!140, !12, i64 0}
!140 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!141 = distinct !{!141, !111}
!142 = distinct !{!142, !111}
!143 = distinct !{!143, !111}
!144 = distinct !{!144, !111}
!145 = !{!55, !12, i64 18504}
!146 = !{!147, !6, i64 8}
!147 = !{!"_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}
!148 = !{!147, !12, i64 0}
!149 = !{!17, !12, i64 12}
!150 = !{!147, !6, i64 16}
!151 = !{!17, !6, i64 864}
!152 = distinct !{!152, !111}
!153 = distinct !{!153, !111}
!154 = distinct !{!154, !111}
!155 = !{!55, !6, i64 88}
!156 = !{!157, !12, i64 88}
!157 = !{!"_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, !158, i64 104, !159, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!158 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!159 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!160 = !{!55, !6, i64 32}
!161 = !{!55, !19, i64 23412}
!162 = !{!55, !12, i64 23432}
!163 = !{!164, !6, i64 0}
!164 = !{!"_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}
!165 = distinct !{!165, !111}
!166 = distinct !{!166, !111}
!167 = distinct !{!167, !111}
!168 = !{!55, !12, i64 23416}
!169 = !{!170, !170, i64 0}
!170 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!171 = !{!172, !19, i64 4}
!172 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!173 = distinct !{!173, !111}
!174 = distinct !{!174, !111}
!175 = distinct !{!175, !111}
!176 = !{!45, !11, i64 3596}
!177 = !{!45, !11, i64 3597}
!178 = !{!45, !11, i64 3598}
!179 = !{!45, !11, i64 3599}
!180 = !{!45, !12, i64 14248}
!181 = !{!20, !20, i64 0}
!182 = distinct !{!182, !111}
!183 = !{!45, !19, i64 3572}
!184 = !{!45, !19, i64 3576}
!185 = !{!45, !19, i64 240}
!186 = !{!45, !19, i64 244}
!187 = !{!19, !19, i64 0}
!188 = distinct !{!188, !111}
!189 = distinct !{!189, !111}
!190 = distinct !{!190, !111}
!191 = !{!45, !19, i64 3588}
!192 = !{!45, !19, i64 14236}
!193 = !{!55, !6, i64 16064}
!194 = !{!55, !19, i64 16084}
!195 = !{!55, !19, i64 16096}
!196 = !{!55, !19, i64 16100}
!197 = !{!198, !12, i64 0}
!198 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!199 = !{!198, !11, i64 9}
!200 = !{!198, !11, i64 8}
!201 = distinct !{!201, !111}
!202 = !{!203, !20, i64 2}
!203 = !{!"_ZTS19ImGuiKeyRoutingData", !20, i64 0, !20, i64 2, !7, i64 4, !12, i64 8, !12, i64 12}
!204 = !{!203, !12, i64 8}
!205 = !{!203, !20, i64 0}
!206 = distinct !{!206, !111}
!207 = distinct !{!207, !111}
!208 = !{!55, !11, i64 18196}
!209 = !{!55, !12, i64 18192}
!210 = !{!55, !6, i64 16040}
!211 = !{!17, !6, i64 880}
!212 = !{!55, !6, i64 16048}
!213 = !{!55, !6, i64 16056}
!214 = !{!55, !12, i64 16128}
!215 = !{!55, !12, i64 16176}
!216 = !{!55, !19, i64 16136}
!217 = !{!55, !11, i64 16141}
!218 = !{!55, !61, i64 16168}
!219 = !{!55, !6, i64 16160}
!220 = !{!55, !12, i64 16112}
!221 = !{!55, !19, i64 16120}
!222 = !{!55, !11, i64 16116}
!223 = !{!55, !12, i64 19360}
!224 = !{!55, !19, i64 19368}
!225 = !{!55, !19, i64 19372}
!226 = !{!55, !11, i64 18988}
!227 = !{!55, !12, i64 19020}
!228 = !{!55, !12, i64 19016}
!229 = !{!55, !12, i64 18568}
!230 = !{!55, !24, i64 18620}
!231 = !{!55, !61, i64 18616}
!232 = !{!55, !11, i64 221}
!233 = !{!55, !11, i64 222}
!234 = !{!55, !12, i64 18576}
!235 = !{!55, !12, i64 18580}
!236 = !{!55, !12, i64 18584}
!237 = !{!55, !12, i64 18588}
!238 = !{!55, !12, i64 18592}
!239 = !{!55, !11, i64 18626}
!240 = !{!55, !11, i64 18627}
!241 = !{!55, !12, i64 18572}
!242 = !{!55, !6, i64 18928}
!243 = !{!10, !11, i64 3}
!244 = !{!17, !11, i64 175}
!245 = !{!17, !20, i64 192}
!246 = distinct !{!246, !111}
!247 = !{!114, !7, i64 508}
!248 = distinct !{!248, !111}
!249 = distinct !{!249, !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.17 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.323 = 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.341 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [100 x i8], align 16
@.str.344 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [9 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 [7 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.376 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.422 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.423 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.465 = 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: 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: 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 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

; 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 23680
  %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 23681
  %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.319, 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 186
  %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 %1035

50:                                               ; preds = %44
  %51 = tail call noundef ptr @_ZN5ImGui10GetVersionEv()
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.320, 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.321, 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.322, 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.323, 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 23688
  %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 23692
  %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.341)
  br i1 %76, label %77, label %368

77:                                               ; preds = %75
  %78 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.342)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.343)
  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.344, 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 23673
  %86 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.345, 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.346)
  %92 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.347, 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.348)
  %93 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.349, 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.350)
  %94 = getelementptr inbounds i8, ptr %32, i64 23683
  %95 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.351, ptr noundef nonnull %94)
  %96 = getelementptr inbounds i8, ptr %32, i64 23682
  %97 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.352, 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.353, 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 %253, label %104

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

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

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

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

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

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

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

274:                                              ; preds = %271
  %275 = getelementptr inbounds i8, ptr %272, i64 112
  %276 = load i32, ptr %275, align 8, !tbaa !105
  %277 = load i32, ptr %268, align 8, !tbaa !116
  %278 = add nsw i32 %277, -1
  %279 = icmp slt i32 %276, %278
  br i1 %279, label %364, label %280

280:                                              ; preds = %274
  %281 = getelementptr inbounds i8, ptr %272, i64 384
  %282 = load ptr, ptr %281, align 8, !tbaa !117
  %283 = load ptr, ptr %263, align 8, !tbaa !102
  %.not451 = icmp eq ptr %282, %283
  br i1 %.not451, label %287, label %284

284:                                              ; preds = %280
  %285 = getelementptr inbounds i8, ptr %272, i64 392
  %286 = load ptr, ptr %285, align 8, !tbaa !118
  %.not452 = icmp eq ptr %286, %283
  br i1 %.not452, label %287, label %364

287:                                              ; preds = %284, %280
  %288 = load i32, ptr %272, align 8, !tbaa !119
  %289 = getelementptr inbounds i8, ptr %272, i64 116
  %290 = load i32, ptr %289, align 4, !tbaa !120
  %291 = load ptr, ptr %282, align 8, !tbaa !103
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.358, i32 noundef %288, i32 noundef %290, ptr noundef %291)
  %292 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %292, label %293, label %299

293:                                              ; preds = %287
  %294 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  %295 = getelementptr inbounds i8, ptr %272, i64 240
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %296 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %295, ptr noundef nonnull align 4 dereferenceable(8) %6)
  store <2 x float> %296, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %297 = getelementptr inbounds i8, ptr %272, i64 248
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %298 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %297, ptr noundef nonnull align 4 dereferenceable(8) %8)
  store <2 x float> %298, ptr %7, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %294, 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 %299

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

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

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

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

305:                                              ; preds = %303, %303
  %306 = load i32, ptr %289, align 4, !tbaa !120
  %307 = icmp sgt i32 %306, 0
  br i1 %307, label %.lr.ph, label %.loopexit474

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

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

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

333:                                              ; preds = %329, %309
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #9
  %334 = add nuw nsw i32 %.0382478, 1
  %335 = load i32, ptr %289, align 4, !tbaa !120
  %336 = icmp slt i32 %334, %335
  br i1 %336, label %309, label %.loopexit474, !llvm.loop !121

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

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

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

.loopexit474:                                     ; preds = %333, %305, %303, %363
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 13
  br i1 %exitcond.not, label %300, label %301, !llvm.loop !123

364:                                              ; preds = %271, %274, %284, %300
  %365 = add nuw nsw i32 %.0379481, 1
  %366 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %265)
  %367 = icmp slt i32 %365, %366
  br i1 %367, label %271, label %.loopexit476, !llvm.loop !124

.loopexit476:                                     ; preds = %364, %.preheader475, %262, %253
  call void @_ZN5ImGui7TreePopEv()
  br label %368

368:                                              ; preds = %.loopexit476, %75
  %369 = getelementptr inbounds i8, ptr %32, i64 15936
  %370 = load i32, ptr %369, align 8, !tbaa !125
  %371 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.360, ptr noundef nonnull @.str.361, i32 noundef %370)
  br i1 %371, label %372, label %400

372:                                              ; preds = %368
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %369, ptr noundef nonnull @.str.362)
  %373 = getelementptr inbounds i8, ptr %32, i64 15952
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %373, ptr noundef nonnull @.str.363)
  %374 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.364)
  br i1 %374, label %375, label %399

375:                                              ; preds = %372
  %376 = getelementptr inbounds i8, ptr %32, i64 15968
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %376, i32 noundef 0)
  %377 = load i32, ptr %369, align 8, !tbaa !125
  %378 = icmp sgt i32 %377, 0
  br i1 %378, label %.lr.ph484, label %._crit_edge

.lr.ph484:                                        ; preds = %375
  %379 = getelementptr inbounds i8, ptr %32, i64 15904
  br label %386

._crit_edge:                                      ; preds = %395, %375
  %380 = getelementptr inbounds i8, ptr %32, i64 15976
  %381 = load ptr, ptr %380, align 8, !tbaa !126
  %382 = load i32, ptr %376, align 8, !tbaa !127
  %383 = sext i32 %382 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %381, i64 noundef %383, i64 noundef 8, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %384 = load ptr, ptr %380, align 8, !tbaa !126
  %385 = load i32, ptr %376, align 8, !tbaa !127
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %384, i32 noundef %385, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %399

386:                                              ; preds = %.lr.ph484, %395
  %.0383483 = phi i32 [ 0, %.lr.ph484 ], [ %396, %395 ]
  %387 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %369, i32 noundef %.0383483)
  %388 = load ptr, ptr %387, align 8, !tbaa !5
  %389 = getelementptr inbounds i8, ptr %388, i64 600
  %390 = load i32, ptr %389, align 8, !tbaa !128
  %391 = add nsw i32 %390, 1
  %392 = load i32, ptr %379, align 8, !tbaa !116
  %.not450 = icmp slt i32 %391, %392
  br i1 %.not450, label %395, label %393

393:                                              ; preds = %386
  %394 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %369, i32 noundef %.0383483)
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %376, ptr noundef nonnull align 8 dereferenceable(8) %394)
  br label %395

395:                                              ; preds = %386, %393
  %396 = add nuw nsw i32 %.0383483, 1
  %397 = load i32, ptr %369, align 8, !tbaa !125
  %398 = icmp slt i32 %396, %397
  br i1 %398, label %386, label %._crit_edge, !llvm.loop !129

399:                                              ; preds = %._crit_edge, %372
  call void @_ZN5ImGui7TreePopEv()
  br label %400

400:                                              ; preds = %399, %368
  %401 = getelementptr inbounds i8, ptr %32, i64 18544
  %402 = load i32, ptr %401, align 8, !tbaa !130
  %403 = icmp sgt i32 %402, 0
  br i1 %403, label %.lr.ph488, label %._crit_edge489

._crit_edge489:                                   ; preds = %.lr.ph488, %400
  %.0384.lcssa = phi i32 [ 0, %400 ], [ %409, %.lr.ph488 ]
  %404 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.365, ptr noundef nonnull @.str.366, i32 noundef %.0384.lcssa)
  br i1 %404, label %413, label %441

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

413:                                              ; preds = %._crit_edge489
  %414 = getelementptr inbounds i8, ptr %32, i64 23685
  %415 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.367, ptr noundef nonnull %414)
  %416 = getelementptr inbounds i8, ptr %32, i64 23686
  %417 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.368, ptr noundef nonnull %416)
  %418 = load i32, ptr %401, align 8, !tbaa !130
  %419 = icmp sgt i32 %418, 0
  br i1 %419, label %.lr.ph497, label %._crit_edge498

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

.lr.ph497:                                        ; preds = %413, %._crit_edge493.1
  %.0388495 = phi i32 [ %433, %._crit_edge493.1 ], [ 0, %413 ]
  %420 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %401, i32 noundef %.0388495)
  %421 = load ptr, ptr %420, align 8, !tbaa !5
  %422 = getelementptr inbounds i8, ptr %421, i64 120
  %423 = load i32, ptr %422, align 8, !tbaa !132
  %424 = icmp sgt i32 %423, 0
  br i1 %424, label %.lr.ph492, label %._crit_edge493

._crit_edge493:                                   ; preds = %.lr.ph492, %.lr.ph497
  %425 = getelementptr inbounds i8, ptr %421, i64 136
  %426 = load i32, ptr %425, align 8, !tbaa !132
  %427 = icmp sgt i32 %426, 0
  br i1 %427, label %.lr.ph492.1, label %._crit_edge493.1

.lr.ph492.1:                                      ; preds = %._crit_edge493, %.lr.ph492.1
  %.0395491.1 = phi i32 [ %430, %.lr.ph492.1 ], [ 0, %._crit_edge493 ]
  %428 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %425, i32 noundef %.0395491.1)
  %429 = load ptr, ptr %428, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %429, ptr noundef nonnull @.str.369)
  %430 = add nuw nsw i32 %.0395491.1, 1
  %431 = load i32, ptr %425, align 8, !tbaa !132
  %432 = icmp slt i32 %430, %431
  br i1 %432, label %.lr.ph492.1, label %._crit_edge493.1, !llvm.loop !134

._crit_edge493.1:                                 ; preds = %.lr.ph492.1, %._crit_edge493
  %433 = add nuw nsw i32 %.0388495, 1
  %434 = load i32, ptr %401, align 8, !tbaa !130
  %435 = icmp slt i32 %433, %434
  br i1 %435, label %.lr.ph497, label %._crit_edge498, !llvm.loop !135

.lr.ph492:                                        ; preds = %.lr.ph497, %.lr.ph492
  %.0395491 = phi i32 [ %438, %.lr.ph492 ], [ 0, %.lr.ph497 ]
  %436 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %422, i32 noundef %.0395491)
  %437 = load ptr, ptr %436, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %437, ptr noundef nonnull @.str.369)
  %438 = add nuw nsw i32 %.0395491, 1
  %439 = load i32, ptr %422, align 8, !tbaa !132
  %440 = icmp slt i32 %438, %439
  br i1 %440, label %.lr.ph492, label %._crit_edge493, !llvm.loop !134

441:                                              ; preds = %._crit_edge498, %._crit_edge489
  %442 = load i32, ptr %401, align 8, !tbaa !130
  %443 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.370, ptr noundef nonnull @.str.371, i32 noundef %442)
  br i1 %443, label %444, label %454

444:                                              ; preds = %441
  %445 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %445)
  call void @_ZL25RenderViewportsThumbnailsv()
  %446 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %446)
  %447 = load i32, ptr %401, align 8, !tbaa !130
  %448 = icmp sgt i32 %447, 0
  br i1 %448, label %.lr.ph501, label %._crit_edge502

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

.lr.ph501:                                        ; preds = %444, %.lr.ph501
  %.0396499 = phi i32 [ %451, %.lr.ph501 ], [ 0, %444 ]
  %449 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %401, i32 noundef %.0396499)
  %450 = load ptr, ptr %449, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %450)
  %451 = add nuw nsw i32 %.0396499, 1
  %452 = load i32, ptr %401, align 8, !tbaa !130
  %453 = icmp slt i32 %451, %452
  br i1 %453, label %.lr.ph501, label %._crit_edge502, !llvm.loop !136

454:                                              ; preds = %._crit_edge502, %441
  %455 = getelementptr inbounds i8, ptr %32, i64 18504
  %456 = load i32, ptr %455, align 8, !tbaa !137
  %457 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.372, ptr noundef nonnull @.str.373, i32 noundef %456)
  br i1 %457, label %.preheader472, label %489

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

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

.lr.ph504:                                        ; preds = %.preheader472, %484
  %.0404503 = phi i32 [ %486, %484 ], [ 0, %.preheader472 ]
  %460 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %455, i32 noundef %.0404503)
  %461 = getelementptr inbounds i8, ptr %460, i64 8
  %462 = load ptr, ptr %461, align 8, !tbaa !138
  %463 = load i32, ptr %460, align 8, !tbaa !140
  %.not447 = icmp eq ptr %462, null
  br i1 %.not447, label %.thread457, label %464

464:                                              ; preds = %.lr.ph504
  %465 = load ptr, ptr %462, align 8, !tbaa !103
  %466 = getelementptr inbounds i8, ptr %462, i64 12
  %467 = load i32, ptr %466, align 4, !tbaa !141
  %.fr462 = freeze i32 %467
  %468 = and i32 %.fr462, 16777216
  %.not461 = icmp eq i32 %468, 0
  %spec.select = select i1 %.not461, ptr @.str.17, ptr @.str.376
  %469 = and i32 %.fr462, 268435456
  %.not463 = icmp eq i32 %469, 0
  %spec.select459 = select i1 %.not463, ptr @.str.17, ptr @.str.377
  br label %.thread457

.thread457:                                       ; preds = %464, %.lr.ph504
  %470 = phi ptr [ @.str.375, %.lr.ph504 ], [ %465, %464 ]
  %471 = phi ptr [ @.str.17, %.lr.ph504 ], [ %spec.select, %464 ]
  %472 = phi ptr [ @.str.17, %.lr.ph504 ], [ %spec.select459, %464 ]
  %473 = getelementptr inbounds i8, ptr %460, i64 16
  %474 = load ptr, ptr %473, align 8, !tbaa !142
  %.not448 = icmp eq ptr %474, null
  br i1 %.not448, label %477, label %475

475:                                              ; preds = %.thread457
  %476 = load ptr, ptr %474, align 8, !tbaa !103
  br label %477

477:                                              ; preds = %.thread457, %475
  %478 = phi ptr [ %476, %475 ], [ @.str.375, %.thread457 ]
  br i1 %.not447, label %484, label %479

479:                                              ; preds = %477
  %480 = getelementptr inbounds i8, ptr %462, i64 864
  %481 = load ptr, ptr %480, align 8, !tbaa !143
  %.not449 = icmp eq ptr %481, null
  br i1 %.not449, label %484, label %482

482:                                              ; preds = %479
  %483 = load ptr, ptr %481, align 8, !tbaa !103
  br label %484

484:                                              ; preds = %477, %479, %482
  %485 = phi ptr [ %483, %482 ], [ @.str.375, %479 ], [ @.str.375, %477 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.374, i32 noundef %463, ptr noundef %470, ptr noundef nonnull %471, ptr noundef nonnull %472, ptr noundef %478, ptr noundef %485)
  %486 = add nuw nsw i32 %.0404503, 1
  %487 = load i32, ptr %455, align 8, !tbaa !137
  %488 = icmp slt i32 %486, %487
  br i1 %488, label %.lr.ph504, label %._crit_edge505, !llvm.loop !144

489:                                              ; preds = %._crit_edge505, %454
  %490 = getelementptr inbounds i8, ptr %32, i64 19288
  %491 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %490)
  %492 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.379, i32 noundef %491)
  br i1 %492, label %.preheader471, label %501

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

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

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

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

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

501:                                              ; preds = %._crit_edge508, %489
  %502 = getelementptr inbounds i8, ptr %32, i64 19208
  %503 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %502)
  %504 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.381, ptr noundef nonnull @.str.382, i32 noundef %503)
  br i1 %504, label %.preheader470, label %513

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

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

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

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

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

513:                                              ; preds = %._crit_edge511, %501
  %514 = getelementptr inbounds i8, ptr %32, i64 88
  %515 = load ptr, ptr %514, align 8, !tbaa !147
  %516 = getelementptr inbounds i8, ptr %515, i64 88
  %517 = load i32, ptr %516, align 8, !tbaa !148
  %518 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.383, ptr noundef nonnull @.str.384, i32 noundef %517)
  br i1 %518, label %519, label %520

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

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

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

524:                                              ; preds = %522, %520
  %525 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.386)
  br i1 %525, label %526, label %583

526:                                              ; preds = %524
  %527 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.387)
  br i1 %527, label %528, label %529

528:                                              ; preds = %526
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %529

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

531:                                              ; preds = %529
  %532 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %533

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

535:                                              ; preds = %533
  %536 = getelementptr inbounds i8, ptr %32, i64 32
  %537 = load ptr, ptr %536, align 8, !tbaa !152
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %537)
  br label %538

538:                                              ; preds = %535, %533
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %539 = getelementptr inbounds i8, ptr %32, i64 32
  %540 = load ptr, ptr %539, align 8, !tbaa !152
  %.not432 = icmp eq ptr %540, null
  br i1 %.not432, label %542, label %541

541:                                              ; preds = %538
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.390, ptr noundef nonnull %540)
  br label %543

542:                                              ; preds = %538
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef nonnull @.str.242, ptr noundef null)
  br label %543

543:                                              ; preds = %542, %541
  %544 = getelementptr inbounds i8, ptr %32, i64 23412
  %545 = load float, ptr %544, align 4, !tbaa !153
  %546 = fpext float %545 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.391, double noundef %546)
  %547 = getelementptr inbounds i8, ptr %32, i64 23432
  %548 = load i32, ptr %547, align 8, !tbaa !154
  %549 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.392, ptr noundef nonnull @.str.393, i32 noundef %548)
  br i1 %549, label %.preheader469, label %557

.preheader469:                                    ; preds = %543
  %550 = load i32, ptr %547, align 8, !tbaa !154
  %551 = icmp sgt i32 %550, 0
  br i1 %551, label %.lr.ph513, label %._crit_edge514

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

.lr.ph513:                                        ; preds = %.preheader469, %.lr.ph513
  %.0403512 = phi i32 [ %554, %.lr.ph513 ], [ 0, %.preheader469 ]
  %552 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %547, i32 noundef %.0403512)
  %553 = load ptr, ptr %552, align 8, !tbaa !155
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.394, ptr noundef %553)
  %554 = add nuw nsw i32 %.0403512, 1
  %555 = load i32, ptr %547, align 8, !tbaa !154
  %556 = icmp slt i32 %554, %555
  br i1 %556, label %.lr.ph513, label %._crit_edge514, !llvm.loop !157

557:                                              ; preds = %._crit_edge514, %543
  %558 = getelementptr inbounds i8, ptr %32, i64 23448
  %559 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %558)
  %560 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.395, ptr noundef nonnull @.str.396, i32 noundef %559)
  br i1 %560, label %561, label %564

561:                                              ; preds = %557
  %562 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %558)
  %.not433515 = icmp eq ptr %562, null
  br i1 %.not433515, label %._crit_edge519, label %.lr.ph518

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

.lr.ph518:                                        ; preds = %561, %.lr.ph518
  %.0402516 = phi ptr [ %563, %.lr.ph518 ], [ %562, %561 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0402516)
  %563 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %558, ptr noundef nonnull %.0402516)
  %.not433 = icmp eq ptr %563, null
  br i1 %.not433, label %._crit_edge519, label %.lr.ph518, !llvm.loop !158

564:                                              ; preds = %._crit_edge519, %557
  %565 = getelementptr inbounds i8, ptr %32, i64 23464
  %566 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %565)
  %567 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.397, ptr noundef nonnull @.str.398, i32 noundef %566)
  br i1 %567, label %568, label %571

568:                                              ; preds = %564
  %569 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %565)
  %.not434520 = icmp eq ptr %569, null
  br i1 %.not434520, label %._crit_edge524, label %.lr.ph523

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

.lr.ph523:                                        ; preds = %568, %.lr.ph523
  %.0401521 = phi ptr [ %570, %.lr.ph523 ], [ %569, %568 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0401521)
  %570 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %565, ptr noundef nonnull %.0401521)
  %.not434 = icmp eq ptr %570, null
  br i1 %.not434, label %._crit_edge524, label %.lr.ph523, !llvm.loop !159

571:                                              ; preds = %._crit_edge524, %564
  %572 = getelementptr inbounds i8, ptr %32, i64 23416
  %573 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %572)
  %574 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.399, ptr noundef nonnull @.str.400, i32 noundef %573)
  br i1 %574, label %575, label %582

575:                                              ; preds = %571
  %576 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %572)
  %577 = load i32, ptr %572, align 8, !tbaa !160
  %578 = sext i32 %577 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #9
  %579 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %580 = fmul float %579, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %22, float noundef 0xB810000000000000, float noundef %580)
  %581 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.401, ptr noundef %576, i64 noundef %578, 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 %582

582:                                              ; preds = %575, %571
  call void @_ZN5ImGui7TreePopEv()
  br label %583

583:                                              ; preds = %582, %524
  %584 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.402)
  br i1 %584, label %585, label %819

585:                                              ; preds = %583
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.403)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404)
  br label %587

586:                                              ; preds = %599
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.407)
  br label %602

587:                                              ; preds = %585, %599
  %.0400525 = phi i32 [ 0, %585 ], [ %600, %599 ]
  %588 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0400525)
  br i1 %588, label %599, label %589

589:                                              ; preds = %587
  %590 = call noundef zeroext i1 @_ZN5ImGui9IsKeyDownE8ImGuiKey(i32 noundef %.0400525)
  br i1 %590, label %591, label %599

591:                                              ; preds = %589
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %592 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0400525)
  %593 = select i1 %592, ptr @.str.390, ptr @.str.405
  %594 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0400525)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %593, ptr noundef %594, i32 noundef %.0400525)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %595 = call noundef ptr @_ZN5ImGui10GetKeyDataE8ImGuiKey(i32 noundef %.0400525)
  %596 = getelementptr inbounds i8, ptr %595, i64 4
  %597 = load float, ptr %596, align 4, !tbaa !161
  %598 = fpext float %597 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.406, double noundef %598)
  br label %599

599:                                              ; preds = %587, %589, %591
  %600 = add nuw nsw i32 %.0400525, 1
  %exitcond554.not = icmp eq i32 %600, 652
  br i1 %exitcond554.not, label %586, label %587, !llvm.loop !163

601:                                              ; preds = %610
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.408)
  br label %632

602:                                              ; preds = %586, %610
  %.0399526 = phi i32 [ 0, %586 ], [ %611, %610 ]
  %603 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0399526)
  br i1 %603, label %610, label %604

604:                                              ; preds = %602
  %605 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %.0399526, i1 noundef zeroext true)
  br i1 %605, label %606, label %610

606:                                              ; preds = %604
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %607 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0399526)
  %608 = select i1 %607, ptr @.str.390, ptr @.str.405
  %609 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0399526)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %608, ptr noundef %609, i32 noundef %.0399526)
  br label %610

610:                                              ; preds = %602, %604, %606
  %611 = add nuw nsw i32 %.0399526, 1
  %exitcond555.not = icmp eq i32 %611, 652
  br i1 %exitcond555.not, label %601, label %602, !llvm.loop !164

612:                                              ; preds = %640
  %613 = getelementptr inbounds i8, ptr %32, i64 3604
  %614 = load i8, ptr %613, align 4, !tbaa !165, !range !13, !noundef !14
  %615 = trunc nuw i8 %614 to i1
  %616 = select i1 %615, ptr @.str.410, ptr @.str.17
  %617 = getelementptr inbounds i8, ptr %32, i64 3605
  %618 = load i8, ptr %617, align 1, !tbaa !166, !range !13, !noundef !14
  %619 = trunc nuw i8 %618 to i1
  %620 = select i1 %619, ptr @.str.411, ptr @.str.17
  %621 = getelementptr inbounds i8, ptr %32, i64 3606
  %622 = load i8, ptr %621, align 2, !tbaa !167, !range !13, !noundef !14
  %623 = trunc nuw i8 %622 to i1
  %624 = select i1 %623, ptr @.str.412, ptr @.str.17
  %625 = getelementptr inbounds i8, ptr %32, i64 3607
  %626 = load i8, ptr %625, align 1, !tbaa !168, !range !13, !noundef !14
  %627 = trunc nuw i8 %626 to i1
  %628 = select i1 %627, ptr @.str.413, ptr @.str.17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.409, ptr noundef nonnull %616, ptr noundef nonnull %620, ptr noundef nonnull %624, ptr noundef nonnull %628)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.414)
  %629 = getelementptr inbounds i8, ptr %32, i64 14256
  %630 = load i32, ptr %629, align 8, !tbaa !169
  %631 = icmp sgt i32 %630, 0
  br i1 %631, label %.lr.ph530, label %._crit_edge531

632:                                              ; preds = %601, %640
  %.0398527 = phi i32 [ 0, %601 ], [ %641, %640 ]
  %633 = call noundef zeroext i1 @_ZZN5ImGui17ShowMetricsWindowEPbEN5funcs18IsLegacyNativeDupeE8ImGuiKey(i32 noundef %.0398527)
  br i1 %633, label %640, label %634

634:                                              ; preds = %632
  %635 = call noundef zeroext i1 @_ZN5ImGui13IsKeyReleasedE8ImGuiKey(i32 noundef %.0398527)
  br i1 %635, label %636, label %640

636:                                              ; preds = %634
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %637 = call noundef zeroext i1 @_ZN5ImGui10IsNamedKeyE8ImGuiKey(i32 noundef %.0398527)
  %638 = select i1 %637, ptr @.str.390, ptr @.str.405
  %639 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0398527)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull %638, ptr noundef %639, i32 noundef %.0398527)
  br label %640

640:                                              ; preds = %632, %634, %636
  %641 = add nuw nsw i32 %.0398527, 1
  %exitcond556.not = icmp eq i32 %641, 652
  br i1 %exitcond556.not, label %612, label %632, !llvm.loop !170

._crit_edge531:                                   ; preds = %.lr.ph530, %612
  %642 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @_ZN5ImGui26DebugRenderKeyboardPreviewEP10ImDrawList(ptr noundef %642)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.416)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %643 = call noundef zeroext i1 @_ZN5ImGui15IsMousePosValidEPK6ImVec2(ptr noundef null)
  br i1 %643, label %653, label %660

.lr.ph530:                                        ; preds = %612, %.lr.ph530
  %.0397528 = phi i32 [ %650, %.lr.ph530 ], [ 0, %612 ]
  %644 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %629, i32 noundef %.0397528)
  %645 = load i16, ptr %644, align 2, !tbaa !171
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %646 = zext i16 %645 to i32
  %647 = add i16 %645, -33
  %or.cond4 = icmp ult i16 %647, 223
  %sext = shl i32 %646, 24
  %648 = ashr exact i32 %sext, 24
  %649 = select i1 %or.cond4, i32 %648, i32 63
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.415, i32 noundef %649, i32 noundef %646)
  %650 = add nuw nsw i32 %.0397528, 1
  %651 = load i32, ptr %629, align 8, !tbaa !169
  %652 = icmp slt i32 %650, %651
  br i1 %652, label %.lr.ph530, label %._crit_edge531, !llvm.loop !172

653:                                              ; preds = %._crit_edge531
  %654 = getelementptr inbounds i8, ptr %32, i64 3580
  %655 = load float, ptr %654, align 4, !tbaa !173
  %656 = fpext float %655 to double
  %657 = getelementptr inbounds i8, ptr %32, i64 3584
  %658 = load float, ptr %657, align 4, !tbaa !174
  %659 = fpext float %658 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.417, double noundef %656, double noundef %659)
  br label %661

660:                                              ; preds = %._crit_edge531
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.418)
  br label %661

661:                                              ; preds = %660, %653
  %662 = getelementptr inbounds i8, ptr %32, i64 248
  %663 = load float, ptr %662, align 8, !tbaa !175
  %664 = fpext float %663 to double
  %665 = getelementptr inbounds i8, ptr %32, i64 252
  %666 = load float, ptr %665, align 4, !tbaa !176
  %667 = fpext float %666 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.419, double noundef %664, double noundef %667)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.420)
  %668 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 0)
  br i1 %668, label %669, label %673

669:                                              ; preds = %661
  %670 = getelementptr inbounds i8, ptr %32, i64 14184
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %671 = load float, ptr %670, align 4, !tbaa !177
  %672 = fpext float %671 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.421, i32 noundef 0, double noundef %672)
  br label %673

673:                                              ; preds = %661, %669
  %674 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 1)
  br i1 %674, label %675, label %679

675:                                              ; preds = %673
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %676 = getelementptr inbounds i8, ptr %32, i64 14188
  %677 = load float, ptr %676, align 4, !tbaa !177
  %678 = fpext float %677 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.421, i32 noundef 1, double noundef %678)
  br label %679

679:                                              ; preds = %675, %673
  %680 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 2)
  br i1 %680, label %681, label %685

681:                                              ; preds = %679
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %682 = getelementptr inbounds i8, ptr %32, i64 14192
  %683 = load float, ptr %682, align 4, !tbaa !177
  %684 = fpext float %683 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.421, i32 noundef 2, double noundef %684)
  br label %685

685:                                              ; preds = %681, %679
  %686 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 3)
  br i1 %686, label %687, label %691

687:                                              ; preds = %685
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %688 = getelementptr inbounds i8, ptr %32, i64 14196
  %689 = load float, ptr %688, align 4, !tbaa !177
  %690 = fpext float %689 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.421, i32 noundef 3, double noundef %690)
  br label %691

691:                                              ; preds = %687, %685
  %692 = call noundef zeroext i1 @_ZN5ImGui11IsMouseDownEi(i32 noundef 4)
  br i1 %692, label %693, label %697

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

697:                                              ; preds = %693, %691
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.422)
  %698 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
  br i1 %698, label %699, label %703

699:                                              ; preds = %697
  %700 = getelementptr inbounds i8, ptr %32, i64 14146
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %701 = load i16, ptr %700, align 2, !tbaa !171
  %702 = zext i16 %701 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.423, i32 noundef 0, i32 noundef %702)
  br label %703

703:                                              ; preds = %697, %699
  %704 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 1, i1 noundef zeroext false)
  br i1 %704, label %705, label %709

705:                                              ; preds = %703
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %706 = getelementptr inbounds i8, ptr %32, i64 14148
  %707 = load i16, ptr %706, align 2, !tbaa !171
  %708 = zext i16 %707 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.423, i32 noundef 1, i32 noundef %708)
  br label %709

709:                                              ; preds = %705, %703
  %710 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 2, i1 noundef zeroext false)
  br i1 %710, label %711, label %715

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

715:                                              ; preds = %711, %709
  %716 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 3, i1 noundef zeroext false)
  br i1 %716, label %717, label %721

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

721:                                              ; preds = %717, %715
  %722 = call noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 4, i1 noundef zeroext false)
  br i1 %722, label %723, label %727

723:                                              ; preds = %721
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %724 = getelementptr inbounds i8, ptr %32, i64 14154
  %725 = load i16, ptr %724, align 2, !tbaa !171
  %726 = zext i16 %725 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.423, i32 noundef 4, i32 noundef %726)
  br label %727

727:                                              ; preds = %723, %721
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.424)
  %728 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 0)
  br i1 %728, label %729, label %730

729:                                              ; preds = %727
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.425, i32 noundef 0)
  br label %730

730:                                              ; preds = %727, %729
  %731 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 1)
  br i1 %731, label %732, label %733

732:                                              ; preds = %730
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.425, i32 noundef 1)
  br label %733

733:                                              ; preds = %732, %730
  %734 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 2)
  br i1 %734, label %735, label %736

735:                                              ; preds = %733
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.425, i32 noundef 2)
  br label %736

736:                                              ; preds = %735, %733
  %737 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 3)
  br i1 %737, label %738, label %739

738:                                              ; preds = %736
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.425, i32 noundef 3)
  br label %739

739:                                              ; preds = %738, %736
  %740 = call noundef zeroext i1 @_ZN5ImGui15IsMouseReleasedEi(i32 noundef 4)
  br i1 %740, label %741, label %742

741:                                              ; preds = %739
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.425, i32 noundef 4)
  br label %742

742:                                              ; preds = %741, %739
  %743 = getelementptr inbounds i8, ptr %32, i64 3596
  %744 = load float, ptr %743, align 4, !tbaa !178
  %745 = fpext float %744 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.426, double noundef %745)
  %746 = getelementptr inbounds i8, ptr %32, i64 14244
  %747 = load float, ptr %746, align 4, !tbaa !179
  %748 = fpext float %747 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.427, double noundef %748)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.428)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %749 = getelementptr inbounds i8, ptr %32, i64 16064
  %750 = load ptr, ptr %749, align 8, !tbaa !180
  %.not435 = icmp eq ptr %750, null
  br i1 %.not435, label %753, label %751

751:                                              ; preds = %742
  %752 = load ptr, ptr %750, align 8, !tbaa !103
  br label %753

753:                                              ; preds = %742, %751
  %754 = phi ptr [ %752, %751 ], [ @.str.375, %742 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.429, ptr noundef %754)
  %755 = getelementptr inbounds i8, ptr %32, i64 16084
  %756 = load float, ptr %755, align 4, !tbaa !181
  %757 = fpext float %756 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.430, double noundef %757)
  %758 = getelementptr inbounds i8, ptr %32, i64 16096
  %759 = load float, ptr %758, align 8, !tbaa !182
  %760 = fpext float %759 to double
  %761 = getelementptr inbounds i8, ptr %32, i64 16100
  %762 = load float, ptr %761, align 4, !tbaa !183
  %763 = fpext float %762 to double
  %764 = fcmp ogt float %759, %762
  %765 = fcmp olt float %759, %762
  %766 = select i1 %765, ptr @.str.432, ptr @.str.433
  %767 = select i1 %764, ptr @.str.303, ptr %766
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.431, double noundef %760, double noundef %763, ptr noundef nonnull %767)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.434)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  %768 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %769 = fmul float %768, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0xB810000000000000, float noundef %769)
  %770 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef nonnull @.str.435, ptr noundef nonnull align 4 dereferenceable(8) %23)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  br i1 %770, label %.preheader468, label %791

771:                                              ; preds = %789
  call void @_ZN5ImGui10EndListBoxEv()
  br label %791

.preheader468:                                    ; preds = %753, %789
  %.0391535 = phi i32 [ %790, %789 ], [ 512, %753 ]
  %772 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataE8ImGuiKey(i32 noundef %.0391535)
  %773 = load i32, ptr %772, align 4, !tbaa !184
  %774 = icmp eq i32 %773, -1
  br i1 %774, label %789, label %775

775:                                              ; preds = %.preheader468
  %776 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0391535)
  %777 = load i32, ptr %772, align 4, !tbaa !184
  %778 = getelementptr inbounds i8, ptr %772, i64 9
  %779 = load i8, ptr %778, align 1, !tbaa !186, !range !13, !noundef !14
  %780 = trunc nuw i8 %779 to i1
  br i1 %780, label %786, label %781

781:                                              ; preds = %775
  %782 = getelementptr inbounds i8, ptr %772, i64 8
  %783 = load i8, ptr %782, align 4, !tbaa !187, !range !13, !noundef !14
  %784 = trunc nuw i8 %783 to i1
  %785 = select i1 %784, ptr @.str.438, ptr @.str.17
  br label %786

786:                                              ; preds = %775, %781
  %787 = phi ptr [ %785, %781 ], [ @.str.437, %775 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.436, ptr noundef %776, i32 noundef %777, ptr noundef nonnull %787)
  %788 = load i32, ptr %772, align 4, !tbaa !184
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %788)
  br label %789

789:                                              ; preds = %.preheader468, %786
  %790 = add nuw nsw i32 %.0391535, 1
  %exitcond566.not = icmp eq i32 %790, 652
  br i1 %exitcond566.not, label %771, label %.preheader468, !llvm.loop !188

791:                                              ; preds = %771, %753
  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 %24) #9
  %792 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %793 = fmul float %792, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 0xB810000000000000, float noundef %793)
  %794 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef nonnull @.str.440, ptr noundef nonnull align 4 dereferenceable(8) %24)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  br i1 %794, label %.preheader467, label %813

.preheader467:                                    ; preds = %791
  %795 = getelementptr inbounds i8, ptr %32, i64 17880
  %796 = getelementptr inbounds i8, ptr %32, i64 18160
  br label %798

797:                                              ; preds = %._crit_edge540
  call void @_ZN5ImGui10EndListBoxEv()
  br label %813

798:                                              ; preds = %.preheader467, %._crit_edge540
  %indvars.iv567 = phi i64 [ 512, %.preheader467 ], [ %indvars.iv.next568, %._crit_edge540 ]
  %799 = add nsw i64 %indvars.iv567, -512
  %800 = getelementptr inbounds [140 x i16], ptr %795, i64 0, i64 %799
  %801 = load i16, ptr %800, align 2, !tbaa !171
  %.not444536 = icmp eq i16 %801, -1
  br i1 %.not444536, label %._crit_edge540, label %.lr.ph539.preheader

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

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

.lr.ph539:                                        ; preds = %.lr.ph539.preheader, %.lr.ph539
  %.0387537 = phi i16 [ %812, %.lr.ph539 ], [ %801, %.lr.ph539.preheader ]
  %803 = sext i16 %.0387537 to i32
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %25) #9
  %804 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %796, i32 noundef %803)
  %805 = getelementptr inbounds i8, ptr %804, i64 2
  %806 = load i16, ptr %805, align 2, !tbaa !190
  %807 = zext i16 %806 to i32
  %808 = or i32 %802, %807
  call void @_ZN5ImGui15GetKeyChordNameEiPci(i32 noundef %808, ptr noundef nonnull %25, i32 noundef 64)
  %809 = getelementptr inbounds i8, ptr %804, i64 8
  %810 = load i32, ptr %809, align 4, !tbaa !192
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.441, ptr noundef nonnull %25, i32 noundef %810)
  %811 = load i32, ptr %809, align 4, !tbaa !192
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %811)
  %812 = load i16, ptr %804, align 4, !tbaa !193
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %25) #9
  %.not444 = icmp eq i16 %812, -1
  br i1 %.not444, label %._crit_edge540, label %.lr.ph539, !llvm.loop !194

813:                                              ; preds = %797, %791
  %814 = getelementptr inbounds i8, ptr %32, i64 18196
  %815 = load i8, ptr %814, align 4, !tbaa !195, !range !13, !noundef !14
  %816 = zext nneg i8 %815 to i32
  %817 = getelementptr inbounds i8, ptr %32, i64 18192
  %818 = load i32, ptr %817, align 8, !tbaa !196
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.442, i32 noundef %816, i32 noundef %818)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %819

819:                                              ; preds = %813, %583
  %820 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.443)
  br i1 %820, label %821, label %941

821:                                              ; preds = %819
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.444)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %822 = getelementptr inbounds i8, ptr %32, i64 16040
  %823 = load ptr, ptr %822, align 8, !tbaa !197
  %.not436 = icmp eq ptr %823, null
  br i1 %.not436, label %826, label %824

824:                                              ; preds = %821
  %825 = load ptr, ptr %823, align 8, !tbaa !103
  br label %826

826:                                              ; preds = %821, %824
  %827 = phi ptr [ %825, %824 ], [ @.str.375, %821 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.445, ptr noundef %827)
  %828 = load ptr, ptr %822, align 8, !tbaa !197
  %.not437 = icmp eq ptr %828, null
  br i1 %.not437, label %833, label %829

829:                                              ; preds = %826
  %830 = getelementptr inbounds i8, ptr %828, i64 880
  %831 = load ptr, ptr %830, align 8, !tbaa !198
  %832 = load ptr, ptr %831, align 8, !tbaa !103
  br label %833

833:                                              ; preds = %826, %829
  %834 = phi ptr [ %832, %829 ], [ @.str.375, %826 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.446, ptr noundef %834)
  %835 = getelementptr inbounds i8, ptr %32, i64 16048
  %836 = load ptr, ptr %835, align 8, !tbaa !199
  %.not438 = icmp eq ptr %836, null
  br i1 %.not438, label %839, label %837

837:                                              ; preds = %833
  %838 = load ptr, ptr %836, align 8, !tbaa !103
  br label %839

839:                                              ; preds = %833, %837
  %840 = phi ptr [ %838, %837 ], [ @.str.375, %833 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.447, ptr noundef %840)
  %841 = getelementptr inbounds i8, ptr %32, i64 16056
  %842 = load ptr, ptr %841, align 8, !tbaa !200
  %.not439 = icmp eq ptr %842, null
  br i1 %.not439, label %845, label %843

843:                                              ; preds = %839
  %844 = load ptr, ptr %842, align 8, !tbaa !103
  br label %845

845:                                              ; preds = %839, %843
  %846 = phi ptr [ %844, %843 ], [ @.str.375, %839 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.448, ptr noundef %846)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.449)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %847 = getelementptr inbounds i8, ptr %32, i64 16128
  %848 = load i32, ptr %847, align 8, !tbaa !201
  %849 = getelementptr inbounds i8, ptr %32, i64 16176
  %850 = load i32, ptr %849, align 8, !tbaa !202
  %851 = getelementptr inbounds i8, ptr %32, i64 16136
  %852 = load float, ptr %851, align 8, !tbaa !203
  %853 = fpext float %852 to double
  %854 = getelementptr inbounds i8, ptr %32, i64 16141
  %855 = load i8, ptr %854, align 1, !tbaa !204, !range !13, !noundef !14
  %856 = zext nneg i8 %855 to i32
  %857 = getelementptr inbounds i8, ptr %32, i64 16168
  %858 = load i32, ptr %857, align 8, !tbaa !205
  %859 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %858)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.450, i32 noundef %848, i32 noundef %850, double noundef %853, i32 noundef %856, ptr noundef %859)
  %860 = load i32, ptr %847, align 8, !tbaa !201
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %860)
  %861 = getelementptr inbounds i8, ptr %32, i64 16160
  %862 = load ptr, ptr %861, align 8, !tbaa !206
  %.not440 = icmp eq ptr %862, null
  br i1 %.not440, label %865, label %863

863:                                              ; preds = %845
  %864 = load ptr, ptr %862, align 8, !tbaa !103
  br label %865

865:                                              ; preds = %845, %863
  %866 = phi ptr [ %864, %863 ], [ @.str.375, %845 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.451, ptr noundef %866)
  %867 = getelementptr inbounds i8, ptr %32, i64 18196
  %868 = load i8, ptr %867, align 4, !tbaa !195, !range !13, !noundef !14
  %869 = zext nneg i8 %868 to i32
  %870 = getelementptr inbounds i8, ptr %32, i64 18192
  %871 = load i32, ptr %870, align 8, !tbaa !196
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.452, i32 noundef %869, i32 noundef %871)
  %872 = getelementptr inbounds i8, ptr %32, i64 16112
  %873 = load i32, ptr %872, align 8, !tbaa !207
  %874 = getelementptr inbounds i8, ptr %32, i64 16120
  %875 = load float, ptr %874, align 8, !tbaa !208
  %876 = fpext float %875 to double
  %877 = getelementptr inbounds i8, ptr %32, i64 16116
  %878 = load i8, ptr %877, align 4, !tbaa !209, !range !13, !noundef !14
  %879 = zext nneg i8 %878 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.453, i32 noundef %873, double noundef %876, i32 noundef %879)
  %880 = getelementptr inbounds i8, ptr %32, i64 19360
  %881 = load i32, ptr %880, align 8, !tbaa !210
  %882 = getelementptr inbounds i8, ptr %32, i64 19368
  %883 = load float, ptr %882, align 8, !tbaa !211
  %884 = fpext float %883 to double
  %885 = getelementptr inbounds i8, ptr %32, i64 19372
  %886 = load float, ptr %885, align 4, !tbaa !212
  %887 = fpext float %886 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.454, i32 noundef %881, double noundef %884, double noundef %887)
  %888 = getelementptr inbounds i8, ptr %32, i64 18988
  %889 = load i8, ptr %888, align 4, !tbaa !213, !range !13, !noundef !14
  %890 = zext nneg i8 %889 to i32
  %891 = getelementptr inbounds i8, ptr %32, i64 19020
  %892 = load i32, ptr %891, align 4, !tbaa !214
  %893 = getelementptr inbounds i8, ptr %32, i64 19032
  %894 = getelementptr inbounds i8, ptr %32, i64 19016
  %895 = load i32, ptr %894, align 8, !tbaa !215
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.455, i32 noundef %890, i32 noundef %892, ptr noundef nonnull %893, i32 noundef %895)
  %896 = load i32, ptr %891, align 4, !tbaa !214
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %896)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.456)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %897 = getelementptr inbounds i8, ptr %32, i64 18560
  %898 = load ptr, ptr %897, align 8, !tbaa !102
  %.not441 = icmp eq ptr %898, null
  br i1 %.not441, label %901, label %899

899:                                              ; preds = %865
  %900 = load ptr, ptr %898, align 8, !tbaa !103
  br label %901

901:                                              ; preds = %865, %899
  %902 = phi ptr [ %900, %899 ], [ @.str.375, %865 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.457, ptr noundef %902)
  %903 = getelementptr inbounds i8, ptr %32, i64 18568
  %904 = load i32, ptr %903, align 8, !tbaa !216
  %905 = getelementptr inbounds i8, ptr %32, i64 18620
  %906 = load i32, ptr %905, align 4, !tbaa !217
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.458, i32 noundef %904, i32 noundef %906)
  %907 = load i32, ptr %903, align 8, !tbaa !216
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %907)
  %908 = getelementptr inbounds i8, ptr %32, i64 18616
  %909 = load i32, ptr %908, align 8, !tbaa !218
  %910 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %909)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.459, ptr noundef %910)
  %911 = getelementptr inbounds i8, ptr %32, i64 221
  %912 = load i8, ptr %911, align 1, !tbaa !219, !range !13, !noundef !14
  %913 = zext nneg i8 %912 to i32
  %914 = getelementptr inbounds i8, ptr %32, i64 222
  %915 = load i8, ptr %914, align 2, !tbaa !220, !range !13, !noundef !14
  %916 = zext nneg i8 %915 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.460, i32 noundef %913, i32 noundef %916)
  %917 = getelementptr inbounds i8, ptr %32, i64 18576
  %918 = load i32, ptr %917, align 8, !tbaa !221
  %919 = getelementptr inbounds i8, ptr %32, i64 18580
  %920 = load i32, ptr %919, align 4, !tbaa !222
  %921 = getelementptr inbounds i8, ptr %32, i64 18584
  %922 = load i32, ptr %921, align 8, !tbaa !223
  %923 = getelementptr inbounds i8, ptr %32, i64 18588
  %924 = load i32, ptr %923, align 4, !tbaa !224
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.461, i32 noundef %918, i32 noundef %920, i32 noundef %922, i32 noundef %924)
  %925 = getelementptr inbounds i8, ptr %32, i64 18592
  %926 = load i32, ptr %925, align 8, !tbaa !225
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.462, i32 noundef %926)
  %927 = getelementptr inbounds i8, ptr %32, i64 18626
  %928 = load i8, ptr %927, align 2, !tbaa !226, !range !13, !noundef !14
  %929 = zext nneg i8 %928 to i32
  %930 = getelementptr inbounds i8, ptr %32, i64 18627
  %931 = load i8, ptr %930, align 1, !tbaa !227, !range !13, !noundef !14
  %932 = zext nneg i8 %931 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.463, i32 noundef %929, i32 noundef %932)
  %933 = getelementptr inbounds i8, ptr %32, i64 18572
  %934 = load i32, ptr %933, align 4, !tbaa !228
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.464, i32 noundef %934)
  %935 = getelementptr inbounds i8, ptr %32, i64 18928
  %936 = load ptr, ptr %935, align 8, !tbaa !229
  %.not442 = icmp eq ptr %936, null
  br i1 %.not442, label %939, label %937

937:                                              ; preds = %901
  %938 = load ptr, ptr %936, align 8, !tbaa !103
  br label %939

939:                                              ; preds = %901, %937
  %940 = phi ptr [ %938, %937 ], [ @.str.375, %901 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.465, ptr noundef %940)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %941

941:                                              ; preds = %939, %819
  %942 = getelementptr inbounds i8, ptr %32, i64 23682
  %943 = load i8, ptr %942, align 2, !tbaa !101, !range !13, !noundef !14
  %944 = trunc nuw i8 %943 to i1
  br i1 %944, label %949, label %945

945:                                              ; preds = %941
  %946 = getelementptr inbounds i8, ptr %32, i64 23683
  %947 = load i8, ptr %946, align 1, !tbaa !230, !range !13, !noundef !14
  %948 = trunc nuw i8 %947 to i1
  br i1 %948, label %949, label %.loopexit466

949:                                              ; preds = %945, %941
  %950 = load i32, ptr %369, align 8, !tbaa !125
  %951 = icmp sgt i32 %950, 0
  br i1 %951, label %.lr.ph544, label %.loopexit466

.lr.ph544:                                        ; preds = %949
  %952 = getelementptr inbounds i8, ptr %26, i64 8
  %953 = getelementptr inbounds i8, ptr %32, i64 23683
  br label %954

954:                                              ; preds = %.lr.ph544, %984
  %.0385542 = phi i32 [ 0, %.lr.ph544 ], [ %985, %984 ]
  %955 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %369, i32 noundef %.0385542)
  %956 = load ptr, ptr %955, align 8, !tbaa !5
  %957 = getelementptr inbounds i8, ptr %956, i64 175
  %958 = load i8, ptr %957, align 1, !tbaa !231, !range !13, !noundef !14
  %959 = trunc nuw i8 %958 to i1
  br i1 %959, label %960, label %984

960:                                              ; preds = %954
  %961 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %956)
  %962 = load i8, ptr %942, align 2, !tbaa !101, !range !13, !noundef !14
  %963 = trunc nuw i8 %962 to i1
  br i1 %963, label %964, label %969

964:                                              ; preds = %960
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #9
  %965 = load i32, ptr %66, align 4, !tbaa !50
  %966 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef nonnull %956, i32 noundef %965)
  %967 = extractvalue { <2 x float>, <2 x float> } %966, 0
  store <2 x float> %967, ptr %26, align 8
  %968 = extractvalue { <2 x float>, <2 x float> } %966, 1
  store <2 x float> %968, ptr %952, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %961, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %952, 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 %969

969:                                              ; preds = %964, %960
  %970 = load i8, ptr %953, align 1, !tbaa !230, !range !13, !noundef !14
  %971 = trunc nuw i8 %970 to i1
  br i1 %971, label %972, label %984

972:                                              ; preds = %969
  %973 = getelementptr inbounds i8, ptr %956, i64 12
  %974 = load i32, ptr %973, align 4, !tbaa !141
  %975 = and i32 %974, 16777216
  %.not443 = icmp eq i32 %975, 0
  br i1 %.not443, label %976, label %984

976:                                              ; preds = %972
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  %977 = getelementptr inbounds i8, ptr %956, i64 192
  %978 = load i16, ptr %977, align 8, !tbaa !232
  %979 = sext i16 %978 to i32
  %980 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %27, i64 noundef 32, ptr noundef nonnull @.str.312, i32 noundef %979)
  %981 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %982 = getelementptr inbounds i8, ptr %956, i64 24
  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 %981, float noundef %981)
  %983 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %982, ptr noundef nonnull align 4 dereferenceable(8) %29)
  store <2 x float> %983, ptr %28, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %961, ptr noundef nonnull align 4 dereferenceable(8) %982, 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) %961, ptr noundef nonnull align 4 dereferenceable(8) %982, i32 noundef -1, ptr noundef nonnull %27, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  br label %984

984:                                              ; preds = %969, %972, %976, %954
  %985 = add nuw nsw i32 %.0385542, 1
  %986 = load i32, ptr %369, align 8, !tbaa !125
  %987 = icmp slt i32 %985, %986
  br i1 %987, label %954, label %.loopexit466, !llvm.loop !233

.loopexit466:                                     ; preds = %984, %949, %945
  %988 = getelementptr inbounds i8, ptr %32, i64 23684
  %989 = load i8, ptr %988, align 4, !tbaa !104, !range !13, !noundef !14
  %990 = trunc nuw i8 %989 to i1
  br i1 %990, label %.preheader464, label %.loopexit465

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

.lr.ph548:                                        ; preds = %.preheader464
  %993 = getelementptr inbounds i8, ptr %32, i64 15904
  %994 = getelementptr inbounds i8, ptr %31, i64 8
  %995 = getelementptr inbounds i8, ptr %30, i64 8
  br label %996

996:                                              ; preds = %.lr.ph548, %.loopexit
  %.0381547 = phi i32 [ 0, %.lr.ph548 ], [ %1032, %.loopexit ]
  %997 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %502, i32 noundef %.0381547)
  %998 = icmp eq ptr %997, null
  br i1 %998, label %.loopexit, label %999

999:                                              ; preds = %996
  %1000 = getelementptr inbounds i8, ptr %997, i64 112
  %1001 = load i32, ptr %1000, align 8, !tbaa !105
  %1002 = load i32, ptr %993, align 8, !tbaa !116
  %1003 = add nsw i32 %1002, -1
  %1004 = icmp slt i32 %1001, %1003
  br i1 %1004, label %.loopexit, label %1005

1005:                                             ; preds = %999
  %1006 = getelementptr inbounds i8, ptr %997, i64 384
  %1007 = load ptr, ptr %1006, align 8, !tbaa !117
  %1008 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1007)
  %1009 = load i32, ptr %71, align 4, !tbaa !51
  %1010 = icmp sgt i32 %1009, 5
  br i1 %1010, label %.preheader, label %1028

.preheader:                                       ; preds = %1005
  %1011 = getelementptr inbounds i8, ptr %997, i64 116
  %1012 = load i32, ptr %1011, align 4, !tbaa !120
  %1013 = icmp sgt i32 %1012, 0
  br i1 %1013, label %.lr.ph546, label %.loopexit

.lr.ph546:                                        ; preds = %.preheader
  %1014 = getelementptr inbounds i8, ptr %997, i64 508
  br label %1015

1015:                                             ; preds = %.lr.ph546, %1015
  %.0378545 = phi i32 [ 0, %.lr.ph546 ], [ %1025, %1015 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #9
  %1016 = load i32, ptr %71, align 4, !tbaa !51
  %1017 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %997, i32 noundef %1016, i32 noundef %.0378545)
  %1018 = extractvalue { <2 x float>, <2 x float> } %1017, 0
  store <2 x float> %1018, ptr %30, align 8
  %1019 = extractvalue { <2 x float>, <2 x float> } %1017, 1
  store <2 x float> %1019, ptr %995, align 8
  %1020 = load i8, ptr %1014, align 4, !tbaa !234
  %1021 = sext i8 %1020 to i32
  %1022 = icmp eq i32 %.0378545, %1021
  %1023 = select i1 %1022, i32 -8323073, i32 -8388353
  %1024 = select i1 %1022, float 3.000000e+00, float 1.000000e+00
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1008, ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %995, i32 noundef %1023, float noundef 0.000000e+00, i32 noundef 0, float noundef %1024)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #9
  %1025 = add nuw nsw i32 %.0378545, 1
  %1026 = load i32, ptr %1011, align 4, !tbaa !120
  %1027 = icmp slt i32 %1025, %1026
  br i1 %1027, label %1015, label %.loopexit, !llvm.loop !235

1028:                                             ; preds = %1005
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #9
  %1029 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %997, i32 noundef %1009, i32 noundef -1)
  %1030 = extractvalue { <2 x float>, <2 x float> } %1029, 0
  store <2 x float> %1030, ptr %31, align 8
  %1031 = extractvalue { <2 x float>, <2 x float> } %1029, 1
  store <2 x float> %1031, ptr %994, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1008, ptr noundef nonnull align 4 dereferenceable(8) %31, ptr noundef nonnull align 4 dereferenceable(8) %994, 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 = %1015, %.preheader, %1028, %996, %999
  %1032 = add nuw nsw i32 %.0381547, 1
  %1033 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %502)
  %1034 = icmp slt i32 %1032, %1033
  br i1 %1034, label %996, label %.loopexit465, !llvm.loop !236

.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 %1035

1035:                                             ; 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

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

; 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, !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 186}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !12, i64 8, !12, i64 12, !6, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !19, i64 80, !19, i64 84, !19, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !18, i64 124, !18, i64 132, !18, i64 140, !18, i64 148, !18, i64 156, !18, i64 164, !11, i64 172, !11, i64 173, !11, i64 174, !11, i64 175, !11, i64 176, !11, i64 177, !11, i64 178, !11, i64 179, !11, i64 180, !11, i64 181, !11, i64 182, !11, i64 183, !11, i64 184, !7, i64 185, !20, i64 186, !20, i64 188, !20, i64 190, !20, i64 192, !20, i64 194, !12, i64 196, !7, i64 200, !7, i64 201, !7, i64 202, !11, i64 203, !12, i64 204, !7, i64 208, !7, i64 209, !7, i64 210, !7, i64 211, !12, i64 212, !12, i64 213, !12, i64 214, !18, i64 216, !18, i64 224, !21, i64 232, !22, i64 248, !28, i64 480, !28, i64 496, !28, i64 512, !28, i64 528, !28, i64 544, !28, i64 560, !28, i64 576, !29, i64 592, !29, i64 596, !12, i64 600, !19, i64 604, !19, i64 608, !30, i64 616, !32, i64 632, !19, i64 648, !12, i64 652, !6, i64 656, !33, i64 664, !6, i64 864, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !7, i64 920, !7, i64 928, !12, i64 960, !12, i64 964, !12, i64 968, !11, i64 972}
!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, !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, !18, i64 3572, !7, i64 3580, !19, i64 3588, !19, i64 3592, !11, i64 3596, !11, i64 3597, !11, i64 3598, !11, i64 3599, !12, i64 3600, !7, i64 3604, !11, i64 14036, !18, i64 14040, !7, i64 14048, !7, i64 14088, !7, i64 14128, !7, i64 14133, !7, i64 14138, !7, i64 14148, !7, i64 14158, !7, i64 14163, !7, i64 14168, !7, i64 14176, !7, i64 14196, !7, i64 14216, !19, i64 14236, !11, i64 14240, !11, i64 14241, !7, i64 14242, !11, i64 14243, !20, i64 14244, !35, i64 14248}
!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 23673}
!54 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !45, i64 8, !55, i64 14272, !55, i64 14288, !56, i64 14304, !6, i64 15352, !19, i64 15360, !19, i64 15364, !57, i64 15368, !58, i64 15896, !12, i64 15904, !12, i64 15908, !12, i64 15912, !11, i64 15916, !11, i64 15917, !11, i64 15918, !11, i64 15919, !11, i64 15920, !6, i64 15928, !26, i64 15936, !26, i64 15952, !26, i64 15968, !59, i64 15984, !30, i64 16000, !12, i64 16016, !18, i64 16020, !6, i64 16032, !6, i64 16040, !6, i64 16048, !6, i64 16056, !6, i64 16064, !18, i64 16072, !12, i64 16080, !19, i64 16084, !18, i64 16088, !18, i64 16096, !12, i64 16104, !12, i64 16108, !12, i64 16112, !11, i64 16116, !11, i64 16117, !19, i64 16120, !19, i64 16124, !12, i64 16128, !12, i64 16132, !19, i64 16136, !11, i64 16140, !11, i64 16141, !11, i64 16142, !11, i64 16143, !11, i64 16144, !11, i64 16145, !18, i64 16148, !6, i64 16160, !60, i64 16168, !12, i64 16172, !12, i64 16176, !11, i64 16180, !11, i64 16181, !6, i64 16184, !12, i64 16192, !19, i64 16196, !7, i64 16200, !61, i64 17880, !12, i64 18192, !11, i64 18196, !12, i64 18200, !12, i64 18204, !12, i64 18208, !12, i64 18212, !63, i64 18216, !64, i64 18236, !65, i64 18296, !66, i64 18408, !67, i64 18424, !68, i64 18440, !21, i64 18456, !69, i64 18472, !70, i64 18488, !71, i64 18504, !71, i64 18520, !12, i64 18536, !72, i64 18544, !6, i64 18560, !12, i64 18568, !12, i64 18572, !12, i64 18576, !12, i64 18580, !12, i64 18584, !12, i64 18588, !12, i64 18592, !12, i64 18596, !12, i64 18600, !12, i64 18604, !12, i64 18608, !12, i64 18612, !60, i64 18616, !24, i64 18620, !11, i64 18624, !11, i64 18625, !11, i64 18626, !11, i64 18627, !11, i64 18628, !11, i64 18629, !11, i64 18630, !12, i64 18632, !28, i64 18636, !11, i64 18652, !11, i64 18653, !11, i64 18654, !12, i64 18656, !12, i64 18660, !12, i64 18664, !12, i64 18668, !12, i64 18672, !12, i64 18676, !28, i64 18680, !28, i64 18696, !12, i64 18712, !12, i64 18716, !12, i64 18720, !73, i64 18728, !73, i64 18776, !73, i64 18824, !73, i64 18872, !12, i64 18920, !12, i64 18924, !6, i64 18928, !6, i64 18936, !6, i64 18944, !19, i64 18952, !19, i64 18956, !11, i64 18960, !18, i64 18964, !18, i64 18972, !19, i64 18980, !12, i64 18984, !11, i64 18988, !11, i64 18989, !11, i64 18990, !12, i64 18992, !12, i64 18996, !12, i64 19000, !74, i64 19008, !28, i64 19072, !12, i64 19088, !12, i64 19092, !19, i64 19096, !12, i64 19100, !12, i64 19104, !12, i64 19108, !12, i64 19112, !75, i64 19120, !7, i64 19136, !12, i64 19152, !76, i64 19160, !6, i64 19176, !12, i64 19184, !77, i64 19192, !78, i64 19208, !27, i64 19248, !43, i64 19264, !6, i64 19280, !80, i64 19288, !82, i64 19328, !83, i64 19344, !12, i64 19360, !12, i64 19364, !19, i64 19368, !19, i64 19372, !18, i64 19376, !84, i64 19384, !88, i64 23112, !12, i64 23224, !12, i64 23228, !19, i64 23232, !19, i64 23236, !12, i64 23240, !41, i64 23244, !90, i64 23260, !19, i64 23308, !19, i64 23312, !11, i64 23316, !11, i64 23317, !19, i64 23320, !19, i64 23324, !19, i64 23328, !19, i64 23332, !20, i64 23336, !20, i64 23338, !85, i64 23344, !21, i64 23360, !91, i64 23376, !91, i64 23392, !7, i64 23408, !11, i64 23409, !19, i64 23412, !92, i64 23416, !93, i64 23432, !94, i64 23448, !95, i64 23464, !96, i64 23480, !12, i64 23496, !7, i64 23504, !11, i64 23560, !97, i64 23564, !6, i64 23568, !92, i64 23576, !6, i64 23592, !6, i64 23600, !19, i64 23608, !11, i64 23612, !12, i64 23616, !12, i64 23620, !12, i64 23624, !12, i64 23628, !92, i64 23632, !98, i64 23648, !7, i64 23672, !11, i64 23673, !7, i64 23674, !12, i64 23676, !10, i64 23680, !99, i64 23696, !7, i64 23736, !12, i64 23976, !12, i64 23980, !19, i64 23984, !12, i64 23988, !12, i64 23992, !12, i64 23996, !85, i64 24000}
!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, !18, i64 168, !18, i64 176, !19, i64 184, !11, i64 188, !11, i64 189, !11, i64 190, !19, i64 192, !19, i64 196, !7, i64 200}
!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, !11, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !12, i64 104, !7, i64 108}
!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 18560}
!103 = !{!17, !6, i64 0}
!104 = !{!10, !11, i64 4}
!105 = !{!106, !12, i64 112}
!106 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !107, i64 24, !108, i64 40, !109, i64 56, !110, i64 72, !110, i64 80, !110, i64 88, !110, i64 96, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !12, i64 124, !20, i64 128, !20, i64 130, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !19, i64 148, !12, i64 152, !12, i64 154, !12, i64 156, !7, i64 160, !12, i64 168, !12, i64 172, !19, i64 176, !19, i64 180, !19, i64 184, !19, i64 188, !19, i64 192, !19, i64 196, !19, i64 200, !19, i64 204, !19, i64 208, !19, i64 212, !19, i64 216, !19, i64 220, !19, i64 224, !19, i64 228, !19, i64 232, !19, i64 236, !28, i64 240, !28, i64 256, !28, i64 272, !28, i64 288, !28, i64 304, !28, i64 320, !28, i64 336, !28, i64 352, !28, i64 368, !6, i64 384, !6, i64 392, !92, i64 400, !6, i64 416, !111, i64 424, !112, i64 440, !113, i64 456, !114, i64 472, !115, i64 488, !7, i64 504, !7, i64 505, !7, i64 506, !7, i64 507, !7, i64 508, !7, i64 509, !7, i64 510, !7, i64 511, !7, i64 512, !7, i64 513, !7, i64 514, !7, i64 515, !7, i64 516, !7, i64 517, !7, i64 518, !7, i64 519, !7, i64 520, !7, i64 521, !7, i64 522, !7, i64 523, !7, i64 524, !7, i64 525, !7, i64 526, !7, i64 527, !7, i64 528, !11, i64 529, !11, i64 530, !11, i64 531, !11, i64 532, !11, i64 533, !11, i64 534, !11, i64 535, !11, i64 536, !11, i64 537, !11, i64 538, !11, i64 539, !11, i64 540, !11, i64 541, !11, i64 542, !11, i64 543, !11, i64 544, !11, i64 545}
!107 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!108 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!109 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!110 = !{!"long long", !7, i64 0}
!111 = !{!"_ZTS22ImGuiTableInstanceData", !19, i64 0, !19, i64 4, !19, i64 8}
!112 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!113 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !20, i64 4, !20, i64 6, !12, i64 8}
!114 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!115 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!116 = !{!54, !12, i64 15904}
!117 = !{!106, !6, i64 384}
!118 = !{!106, !6, i64 392}
!119 = !{!106, !12, i64 0}
!120 = !{!106, !12, i64 116}
!121 = distinct !{!121, !122}
!122 = !{!"llvm.loop.mustprogress"}
!123 = distinct !{!123, !122}
!124 = distinct !{!124, !122}
!125 = !{!54, !12, i64 15936}
!126 = !{!26, !6, i64 8}
!127 = !{!26, !12, i64 0}
!128 = !{!17, !12, i64 600}
!129 = distinct !{!129, !122}
!130 = !{!54, !12, i64 18544}
!131 = distinct !{!131, !122}
!132 = !{!133, !12, i64 0}
!133 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!134 = distinct !{!134, !122}
!135 = distinct !{!135, !122}
!136 = distinct !{!136, !122}
!137 = !{!54, !12, i64 18504}
!138 = !{!139, !6, i64 8}
!139 = !{!"_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}
!140 = !{!139, !12, i64 0}
!141 = !{!17, !12, i64 12}
!142 = !{!139, !6, i64 16}
!143 = !{!17, !6, i64 864}
!144 = distinct !{!144, !122}
!145 = distinct !{!145, !122}
!146 = distinct !{!146, !122}
!147 = !{!54, !6, i64 88}
!148 = !{!149, !12, i64 88}
!149 = !{!"_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, !150, i64 104, !151, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!150 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!151 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!152 = !{!54, !6, i64 32}
!153 = !{!54, !19, i64 23412}
!154 = !{!54, !12, i64 23432}
!155 = !{!156, !6, i64 0}
!156 = !{!"_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}
!157 = distinct !{!157, !122}
!158 = distinct !{!158, !122}
!159 = distinct !{!159, !122}
!160 = !{!54, !12, i64 23416}
!161 = !{!162, !19, i64 4}
!162 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!163 = distinct !{!163, !122}
!164 = distinct !{!164, !122}
!165 = !{!45, !11, i64 3596}
!166 = !{!45, !11, i64 3597}
!167 = !{!45, !11, i64 3598}
!168 = !{!45, !11, i64 3599}
!169 = !{!45, !12, i64 14248}
!170 = distinct !{!170, !122}
!171 = !{!20, !20, i64 0}
!172 = distinct !{!172, !122}
!173 = !{!45, !19, i64 3572}
!174 = !{!45, !19, i64 3576}
!175 = !{!45, !19, i64 240}
!176 = !{!45, !19, i64 244}
!177 = !{!19, !19, i64 0}
!178 = !{!45, !19, i64 3588}
!179 = !{!45, !19, i64 14236}
!180 = !{!54, !6, i64 16064}
!181 = !{!54, !19, i64 16084}
!182 = !{!54, !19, i64 16096}
!183 = !{!54, !19, i64 16100}
!184 = !{!185, !12, i64 0}
!185 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!186 = !{!185, !11, i64 9}
!187 = !{!185, !11, i64 8}
!188 = distinct !{!188, !122}
!189 = distinct !{!189, !122}
!190 = !{!191, !20, i64 2}
!191 = !{!"_ZTS19ImGuiKeyRoutingData", !20, i64 0, !20, i64 2, !7, i64 4, !12, i64 8, !12, i64 12}
!192 = !{!191, !12, i64 8}
!193 = !{!191, !20, i64 0}
!194 = distinct !{!194, !122}
!195 = !{!54, !11, i64 18196}
!196 = !{!54, !12, i64 18192}
!197 = !{!54, !6, i64 16040}
!198 = !{!17, !6, i64 880}
!199 = !{!54, !6, i64 16048}
!200 = !{!54, !6, i64 16056}
!201 = !{!54, !12, i64 16128}
!202 = !{!54, !12, i64 16176}
!203 = !{!54, !19, i64 16136}
!204 = !{!54, !11, i64 16141}
!205 = !{!54, !60, i64 16168}
!206 = !{!54, !6, i64 16160}
!207 = !{!54, !12, i64 16112}
!208 = !{!54, !19, i64 16120}
!209 = !{!54, !11, i64 16116}
!210 = !{!54, !12, i64 19360}
!211 = !{!54, !19, i64 19368}
!212 = !{!54, !19, i64 19372}
!213 = !{!54, !11, i64 18988}
!214 = !{!54, !12, i64 19020}
!215 = !{!54, !12, i64 19016}
!216 = !{!54, !12, i64 18568}
!217 = !{!54, !24, i64 18620}
!218 = !{!54, !60, i64 18616}
!219 = !{!54, !11, i64 221}
!220 = !{!54, !11, i64 222}
!221 = !{!54, !12, i64 18576}
!222 = !{!54, !12, i64 18580}
!223 = !{!54, !12, i64 18584}
!224 = !{!54, !12, i64 18588}
!225 = !{!54, !12, i64 18592}
!226 = !{!54, !11, i64 18626}
!227 = !{!54, !11, i64 18627}
!228 = !{!54, !12, i64 18572}
!229 = !{!54, !6, i64 18928}
!230 = !{!10, !11, i64 3}
!231 = !{!17, !11, i64 175}
!232 = !{!17, !20, i64 192}
!233 = distinct !{!233, !122}
!234 = !{!106, !7, i64 508}
!235 = distinct !{!235, !122}
!236 = distinct !{!236, !122}


; 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