; LLVM IR from Samson-Mano/EM_Propogation_simulation :: EM_Propogation_simulation/src/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.ImGuiStyle, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i8, ptr, %struct.ImVector.1, %struct.ImVector.1, i32, i32, %struct.ImVector.2, %struct.ImVector.2, %struct.ImVector.2, %struct.ImVector.3, %struct.ImGuiStorage, i32, %struct.ImVec2, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, ptr, i32, float, [140 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImVector.12, %struct.ImVector.12, i32, %struct.ImVector.13, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ImRect, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, ptr, ptr, ptr, float, float, i8, %struct.ImVec2, %struct.ImVec2, float, i32, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.14, [16 x i8], i32, %struct.ImVector.15, ptr, i32, %struct.ImVector.16, %struct.ImPool, %struct.ImVector.18, %struct.ImVector.19, ptr, %struct.ImPool.20, %struct.ImVector.22, %struct.ImVector.23, i32, i32, float, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, float, float, i8, i8, float, float, float, float, i16, i16, %struct.ImVector.24, %struct.ImVector.9, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i8, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.26, %struct.ImChunkStream, %struct.ImChunkStream.27, %struct.ImVector.28, i32, [7 x ptr], i8, i32, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i8, i8, i8, i8, i8, i32, %struct.ImGuiMetricsConfig, %struct.ImGuiStackTool, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.24 }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, float, float, float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, float, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, [652 x i32], [652 x i8], [16 x float], ptr, %struct.ImVec2, [5 x i8], float, float, i32, 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], i8, [5 x float], [5 x float], [5 x float], float, i8, i8, i8, i8, i16, %struct.ImVector }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [53 x %struct.ImVec4] }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, %struct.ImVector.0, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.4 }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.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.ImGuiInputTextDeactivatedState = type { i32, %struct.ImVector.24 }
%struct.ImFont = type <{ %struct.ImVector.18, float, float, %struct.ImVector, %struct.ImVector.25, ptr, ptr, ptr, i16, i16, i16, i16, float, float, i8, [3 x i8], float, float, float, i32, [2 x i8], [2 x i8] }>
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.24 }
%struct.ImChunkStream.27 = type { %struct.ImVector.24 }
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.24 }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.10, i32, [4 x i8] }>
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiStackTool = type { i32, i32, i32, %struct.ImVector.29, i8, float }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImGuiWindow = type <{ ptr, ptr, i32, i32, ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, i16, i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.9, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, float, float, [4 x i8], %struct.ImGuiStorage, %struct.ImVector.32, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], i32, i32, i32, i8, [3 x i8] }>
%struct.ImGuiWindowTempData = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, %struct.ImVec2, i32, i16, i16, i8, i8, i8, 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.0, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImVector.35 = type { i32, i32, ptr }
%struct.ImVector.36 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.19 }
%struct.ImGuiTable = type <{ i32, i32, ptr, ptr, %struct.ImSpan, %struct.ImSpan.37, %struct.ImSpan.38, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i16, i16, float, float, float, float, float, i32, i32, [2 x i32], i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, ptr, ptr, %struct.ImGuiTextBuffer, ptr, %struct.ImGuiTableInstanceData, %struct.ImVector.39, %struct.ImGuiTableColumnSortSpecs, [4 x i8], %struct.ImVector.40, %struct.ImGuiTableSortSpecs, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [5 x i8] }>
%struct.ImSpan = type { ptr, ptr }
%struct.ImSpan.37 = type { ptr, ptr }
%struct.ImSpan.38 = type { ptr, ptr }
%struct.ImGuiTableInstanceData = type { i32, float, float, float }
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.40 = type { i32, i32, ptr }
%struct.ImGuiTableSortSpecs = type <{ ptr, i32, i8, [3 x i8] }>
%struct.ImGuiViewportP = type { %struct.ImGuiViewport, [2 x i32], [2 x ptr], %struct.ImDrawData, %struct.ImDrawDataBuilder, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2 }
%struct.ImGuiViewport = type { i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, ptr }
%struct.ImDrawData = type { i8, i32, i32, i32, ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2 }
%struct.ImDrawDataBuilder = type { [2 x %struct.ImVector.45] }
%struct.ImVector.45 = type { i32, i32, ptr }
%struct.ImGuiPopupData = type <{ i32, [4 x i8], ptr, ptr, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, [4 x i8] }>
%struct.ImFontAtlas = type <{ i32, [4 x i8], ptr, i32, i32, i8, [7 x i8], ptr, i8, i8, [6 x i8], ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.8, %struct.ImVector.43, %struct.ImVector.44, [64 x %struct.ImVec4], ptr, i32, i32, i32, [4 x i8] }>
%struct.ImVector.43 = type { i32, i32, ptr }
%struct.ImVector.44 = type { i32, i32, ptr }
%struct.ImGuiSettingsHandler = type { ptr, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.ImGuiKeyRoutingData = type { i16, i16, i8, i32, i32 }

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

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #1 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui7TreePopEv() #6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef %0) #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 230
  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.324, ptr noundef %109, i32 noundef 0)
  br i1 %110, label %111, label %117

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

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

118:                                              ; preds = %111
  %119 = call noundef ptr @_ZN5ImGui10GetVersionEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.325, ptr noundef %119)
  %120 = load ptr, ptr %4, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.ImGuiIO, ptr %120, i32 0, i32 48
  %122 = load float, ptr %121, align 8, !tbaa !44
  %123 = fdiv float 1.000000e+03, %122
  %124 = fpext float %123 to double
  %125 = load ptr, ptr %4, align 8, !tbaa !5
  %126 = getelementptr inbounds %struct.ImGuiIO, ptr %125, i32 0, i32 48
  %127 = load float, ptr %126, align 8, !tbaa !44
  %128 = fpext float %127 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.326, double noundef %124, double noundef %128)
  %129 = load ptr, ptr %4, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.ImGuiIO, ptr %129, i32 0, i32 49
  %131 = load i32, ptr %130, align 4, !tbaa !47
  %132 = load ptr, ptr %4, align 8, !tbaa !5
  %133 = getelementptr inbounds %struct.ImGuiIO, ptr %132, i32 0, i32 50
  %134 = load i32, ptr %133, align 8, !tbaa !48
  %135 = load ptr, ptr %4, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.ImGuiIO, ptr %135, i32 0, i32 50
  %137 = load i32, ptr %136, align 8, !tbaa !48
  %138 = sdiv i32 %137, 3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.327, i32 noundef %131, i32 noundef %134, i32 noundef %138)
  %139 = load ptr, ptr %4, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.ImGuiIO, ptr %139, i32 0, i32 51
  %141 = load i32, ptr %140, align 4, !tbaa !49
  %142 = load ptr, ptr %4, align 8, !tbaa !5
  %143 = getelementptr inbounds %struct.ImGuiIO, ptr %142, i32 0, i32 53
  %144 = load i32, ptr %143, align 4, !tbaa !50
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.328, i32 noundef %141, i32 noundef %144)
  call void @_ZN5ImGui9SeparatorEv()
  call void @llvm.lifetime.start.p0(i64 64, ptr %7) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %7, ptr align 16 @__const._ZN5ImGui17ShowMetricsWindowEPb.wrt_rects_names, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 104, ptr %8) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %8, ptr align 16 @__const._ZN5ImGui17ShowMetricsWindowEPb.trt_rects_names, i64 104, i1 false)
  %145 = load ptr, ptr %5, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %145, i32 0, i32 8
  %147 = load i32, ptr %146, align 4, !tbaa !51
  %148 = icmp slt i32 %147, 0
  br i1 %148, label %149, label %152

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

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

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

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

162:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #9
  %163 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.347)
  %164 = zext i1 %163 to i8
  store i8 %164, ptr %9, align 1, !tbaa !53
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.348)
  %165 = load i8, ptr %9, align 1, !tbaa !53, !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.349, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 100, i32 noundef 0, ptr noundef null, ptr noundef null)
  %169 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !54
  %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 227
  %177 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.350, 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 227
  %181 = load i8, ptr %180, align 1, !tbaa !55, !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.351)
  %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.352, ptr noundef %186)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.353)
  %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.354, ptr noundef %189)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.355)
  %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.356, 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.357, ptr noundef %195)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %197 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %198 = fmul float %197, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %198)
  %199 = load ptr, ptr %5, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %199, i32 0, i32 8
  %201 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 0
  %202 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.358, 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 !104, !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 !104
  %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 !104, !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 86
  %219 = load ptr, ptr %218, align 8, !tbaa !105
  %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 86
  %224 = load ptr, ptr %223, align 8, !tbaa !105
  %225 = getelementptr inbounds %struct.ImGuiWindow, ptr %224, i32 0, i32 1
  %226 = load ptr, ptr %225, align 8, !tbaa !106
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.359, 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 !107
  br label %227

227:                                              ; preds = %265, %221
  %228 = load i32, ptr %10, align 4, !tbaa !107
  %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 86
  %234 = load ptr, ptr %233, align 8, !tbaa !105
  %235 = load i32, ptr %10, align 4, !tbaa !107
  %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 !108
  %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 !109
  %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 !110
  %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 !111
  %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 !107
  %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.360, 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 !107
  %267 = add nsw i32 %266, 1
  store i32 %267, ptr %10, align 4, !tbaa !107
  br label %227, !llvm.loop !112

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.361, ptr noundef %271)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %273 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %274 = fmul float %273, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %274)
  %275 = load ptr, ptr %5, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %275, i32 0, i32 9
  %277 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 0
  %278 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.362, 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 !114, !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 !114
  %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 !114, !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 86
  %295 = load ptr, ptr %294, align 8, !tbaa !105
  %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 !107
  br label %298

298:                                              ; preds = %486, %297
  %299 = load i32, ptr %12, align 4, !tbaa !107
  %300 = load ptr, ptr %3, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.ImGuiContext, ptr %300, i32 0, i32 162
  %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 162
  %308 = load i32, ptr %12, align 4, !tbaa !107
  %309 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %307, i32 noundef %308)
  store ptr %309, ptr %13, align 8, !tbaa !5
  %310 = load ptr, ptr %13, align 8, !tbaa !5
  %311 = icmp eq ptr %310, null
  br i1 %311, label %337, label %312

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

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

329:                                              ; preds = %321
  %330 = load ptr, ptr %13, align 8, !tbaa !5
  %331 = getelementptr inbounds %struct.ImGuiTable, ptr %330, i32 0, i32 54
  %332 = load ptr, ptr %331, align 8, !tbaa !127
  %333 = load ptr, ptr %3, align 8, !tbaa !5
  %334 = getelementptr inbounds %struct.ImGuiContext, ptr %333, i32 0, i32 86
  %335 = load ptr, ptr %334, align 8, !tbaa !105
  %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 !128
  %342 = load ptr, ptr %13, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.ImGuiTable, ptr %342, i32 0, i32 13
  %344 = load i32, ptr %343, align 4, !tbaa !129
  %345 = load ptr, ptr %13, align 8, !tbaa !5
  %346 = getelementptr inbounds %struct.ImGuiTable, ptr %345, i32 0, i32 53
  %347 = load ptr, ptr %346, align 8, !tbaa !126
  %348 = getelementptr inbounds %struct.ImGuiWindow, ptr %347, i32 0, i32 1
  %349 = load ptr, ptr %348, align 8, !tbaa !106
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.363, i32 noundef %341, i32 noundef %344, ptr noundef %349)
  %350 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %350, label %351, label %361

351:                                              ; preds = %338
  %352 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %353 = load ptr, ptr %13, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.ImGuiTable, ptr %353, i32 0, i32 44
  %355 = getelementptr inbounds %struct.ImRect, ptr %354, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %356 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %355, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %356, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %357 = load ptr, ptr %13, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.ImGuiTable, ptr %357, i32 0, i32 44
  %359 = getelementptr inbounds %struct.ImRect, ptr %358, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %360 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %359, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %360, ptr %16, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %352, ptr noundef nonnull align 4 dereferenceable(8) %14, ptr noundef nonnull align 4 dereferenceable(8) %16, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  br label %361

361:                                              ; preds = %351, %338
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 128, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  store i32 0, ptr %19, align 4, !tbaa !107
  br label %362

362:                                              ; preds = %479, %361
  %363 = load i32, ptr %19, align 4, !tbaa !107
  %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 !107
  %368 = icmp sge i32 %367, 6
  br i1 %368, label %369, label %434

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

372:                                              ; preds = %369
  %373 = load i32, ptr %19, align 4, !tbaa !107
  %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 !107
  br label %377

377:                                              ; preds = %430, %376
  %378 = load i32, ptr %20, align 4, !tbaa !107
  %379 = load ptr, ptr %13, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.ImGuiTable, ptr %379, i32 0, i32 13
  %381 = load i32, ptr %380, align 4, !tbaa !129
  %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 !107
  %387 = load i32, ptr %20, align 4, !tbaa !107
  %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 !108
  %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 !109
  %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 !110
  %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 !111
  %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 !107
  %415 = load i32, ptr %19, align 4, !tbaa !107
  %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.364, 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 !107
  %432 = add nsw i32 %431, 1
  store i32 %432, ptr %20, align 4, !tbaa !107
  br label %377, !llvm.loop !130

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 !107
  %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 !108
  %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 !109
  %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 !110
  %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 !111
  %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 !107
  %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.360, 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 !107
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr %19, align 4, !tbaa !107
  br label %362, !llvm.loop !131

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 %1758 [
    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 !107
  %488 = add nsw i32 %487, 1
  store i32 %488, ptr %12, align 4, !tbaa !107
  br label %298, !llvm.loop !132

489:                                              ; preds = %304
  br label %490

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

632:                                              ; preds = %618
  br label %633

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

700:                                              ; preds = %683
  br label %701

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

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

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

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

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

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

737:                                              ; preds = %723
  br label %738

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1169:                                             ; preds = %1159
  %1170 = load ptr, ptr %4, align 8, !tbaa !5
  %1171 = getelementptr inbounds %struct.ImGuiIO, ptr %1170, i32 0, i32 61
  %1172 = load float, ptr %1171, align 8, !tbaa !192
  %1173 = fpext float %1172 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.433, double noundef %1173)
  %1174 = load ptr, ptr %4, align 8, !tbaa !5
  %1175 = getelementptr inbounds %struct.ImGuiIO, ptr %1174, i32 0, i32 63
  %1176 = load i32, ptr %1175, align 8, !tbaa !193
  %1177 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %1176)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.434, ptr noundef %1177)
  %1178 = load ptr, ptr %4, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.ImGuiIO, ptr %1178, i32 0, i32 85
  %1180 = load float, ptr %1179, align 4, !tbaa !194
  %1181 = fpext float %1180 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.435, double noundef %1181)
  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.436)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1182 = load ptr, ptr %3, align 8, !tbaa !5
  %1183 = getelementptr inbounds %struct.ImGuiContext, ptr %1182, i32 0, i32 33
  %1184 = load ptr, ptr %1183, align 8, !tbaa !195
  %1185 = icmp ne ptr %1184, null
  br i1 %1185, label %1186, label %1192

1186:                                             ; preds = %1169
  %1187 = load ptr, ptr %3, align 8, !tbaa !5
  %1188 = getelementptr inbounds %struct.ImGuiContext, ptr %1187, i32 0, i32 33
  %1189 = load ptr, ptr %1188, align 8, !tbaa !195
  %1190 = getelementptr inbounds %struct.ImGuiWindow, ptr %1189, i32 0, i32 1
  %1191 = load ptr, ptr %1190, align 8, !tbaa !106
  br label %1193

1192:                                             ; preds = %1169
  br label %1193

1193:                                             ; preds = %1192, %1186
  %1194 = phi ptr [ %1191, %1186 ], [ @.str.382, %1192 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.437, ptr noundef %1194)
  %1195 = load ptr, ptr %3, align 8, !tbaa !5
  %1196 = getelementptr inbounds %struct.ImGuiContext, ptr %1195, i32 0, i32 36
  %1197 = load float, ptr %1196, align 4, !tbaa !196
  %1198 = fpext float %1197 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.438, double noundef %1198)
  %1199 = load ptr, ptr %3, align 8, !tbaa !5
  %1200 = getelementptr inbounds %struct.ImGuiContext, ptr %1199, i32 0, i32 38
  %1201 = getelementptr inbounds %struct.ImVec2, ptr %1200, i32 0, i32 0
  %1202 = load float, ptr %1201, align 8, !tbaa !197
  %1203 = fpext float %1202 to double
  %1204 = load ptr, ptr %3, align 8, !tbaa !5
  %1205 = getelementptr inbounds %struct.ImGuiContext, ptr %1204, i32 0, i32 38
  %1206 = getelementptr inbounds %struct.ImVec2, ptr %1205, i32 0, i32 1
  %1207 = load float, ptr %1206, align 4, !tbaa !198
  %1208 = fpext float %1207 to double
  %1209 = load ptr, ptr %3, align 8, !tbaa !5
  %1210 = getelementptr inbounds %struct.ImGuiContext, ptr %1209, i32 0, i32 38
  %1211 = getelementptr inbounds %struct.ImVec2, ptr %1210, i32 0, i32 0
  %1212 = load float, ptr %1211, align 8, !tbaa !197
  %1213 = load ptr, ptr %3, align 8, !tbaa !5
  %1214 = getelementptr inbounds %struct.ImGuiContext, ptr %1213, i32 0, i32 38
  %1215 = getelementptr inbounds %struct.ImVec2, ptr %1214, i32 0, i32 1
  %1216 = load float, ptr %1215, align 4, !tbaa !198
  %1217 = fcmp ogt float %1212, %1216
  br i1 %1217, label %1218, label %1219

1218:                                             ; preds = %1193
  br label %1231

1219:                                             ; preds = %1193
  %1220 = load ptr, ptr %3, align 8, !tbaa !5
  %1221 = getelementptr inbounds %struct.ImGuiContext, ptr %1220, i32 0, i32 38
  %1222 = getelementptr inbounds %struct.ImVec2, ptr %1221, i32 0, i32 0
  %1223 = load float, ptr %1222, align 8, !tbaa !197
  %1224 = load ptr, ptr %3, align 8, !tbaa !5
  %1225 = getelementptr inbounds %struct.ImGuiContext, ptr %1224, i32 0, i32 38
  %1226 = getelementptr inbounds %struct.ImVec2, ptr %1225, i32 0, i32 1
  %1227 = load float, ptr %1226, align 4, !tbaa !198
  %1228 = fcmp olt float %1223, %1227
  %1229 = zext i1 %1228 to i64
  %1230 = select i1 %1228, ptr @.str.440, ptr @.str.441
  br label %1231

1231:                                             ; preds = %1219, %1218
  %1232 = phi ptr [ @.str.307, %1218 ], [ %1230, %1219 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.439, double noundef %1203, double noundef %1208, ptr noundef %1232)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.442)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  %1233 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1234 = fmul float %1233, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef 0xB810000000000000, float noundef %1234)
  %1235 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef @.str.443, ptr noundef nonnull align 4 dereferenceable(8) %63)
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  br i1 %1235, label %1236, label %1280

1236:                                             ; preds = %1231
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  store i32 512, ptr %64, align 4, !tbaa !170
  br label %1237

1237:                                             ; preds = %1276, %1236
  %1238 = load i32, ptr %64, align 4, !tbaa !170
  %1239 = icmp slt i32 %1238, 652
  br i1 %1239, label %1241, label %1240

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

1241:                                             ; preds = %1237
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %1242 = load ptr, ptr %3, align 8, !tbaa !5
  %1243 = load i32, ptr %64, align 4, !tbaa !170
  %1244 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %1242, i32 noundef %1243)
  store ptr %1244, ptr %65, align 8, !tbaa !5
  %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 !199
  %1248 = icmp eq i32 %1247, -1
  br i1 %1248, label %1249, label %1250

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

1250:                                             ; preds = %1241
  %1251 = load i32, ptr %64, align 4, !tbaa !170
  %1252 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %1251)
  %1253 = load ptr, ptr %65, align 8, !tbaa !5
  %1254 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1253, i32 0, i32 0
  %1255 = load i32, ptr %1254, align 4, !tbaa !199
  %1256 = load ptr, ptr %65, align 8, !tbaa !5
  %1257 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1256, i32 0, i32 3
  %1258 = load i8, ptr %1257, align 1, !tbaa !201, !range !13, !noundef !14
  %1259 = trunc i8 %1258 to i1
  br i1 %1259, label %1260, label %1261

1260:                                             ; preds = %1250
  br label %1268

1261:                                             ; preds = %1250
  %1262 = load ptr, ptr %65, align 8, !tbaa !5
  %1263 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1262, i32 0, i32 2
  %1264 = load i8, ptr %1263, align 4, !tbaa !202, !range !13, !noundef !14
  %1265 = trunc i8 %1264 to i1
  %1266 = zext i1 %1265 to i64
  %1267 = select i1 %1265, ptr @.str.446, ptr @.str.16
  br label %1268

1268:                                             ; preds = %1261, %1260
  %1269 = phi ptr [ @.str.445, %1260 ], [ %1267, %1261 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.444, ptr noundef %1252, i32 noundef %1255, ptr noundef %1269)
  %1270 = load ptr, ptr %65, align 8, !tbaa !5
  %1271 = getelementptr inbounds %struct.ImGuiKeyOwnerData, ptr %1270, i32 0, i32 0
  %1272 = load i32, ptr %1271, align 4, !tbaa !199
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1272)
  store i32 0, ptr %6, align 4
  br label %1273

1273:                                             ; preds = %1268, %1249
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  %1274 = load i32, ptr %6, align 4
  switch i32 %1274, label %1758 [
    i32 0, label %1275
    i32 73, label %1276
  ]

1275:                                             ; preds = %1273
  br label %1276

1276:                                             ; preds = %1275, %1273
  %1277 = load i32, ptr %64, align 4, !tbaa !170
  %1278 = add nsw i32 %1277, 1
  store i32 %1278, ptr %64, align 4, !tbaa !170
  br label %1237, !llvm.loop !203

1279:                                             ; preds = %1240
  call void @_ZN5ImGui10EndListBoxEv()
  br label %1280

1280:                                             ; preds = %1279, %1231
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.447)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  %1281 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %1282 = fmul float %1281, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %66, float noundef 0xB810000000000000, float noundef %1282)
  %1283 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef @.str.448, ptr noundef nonnull align 4 dereferenceable(8) %66)
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  br i1 %1283, label %1284, label %1332

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

1285:                                             ; preds = %1328, %1284
  %1286 = load i32, ptr %67, align 4, !tbaa !170
  %1287 = icmp slt i32 %1286, 652
  br i1 %1287, label %1289, label %1288

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

1289:                                             ; preds = %1285
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #9
  %1290 = load ptr, ptr %3, align 8, !tbaa !5
  %1291 = getelementptr inbounds %struct.ImGuiContext, ptr %1290, i32 0, i32 66
  store ptr %1291, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %69) #9
  %1292 = load ptr, ptr %68, align 8, !tbaa !5
  %1293 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1292, i32 0, i32 0
  %1294 = load i32, ptr %67, align 4, !tbaa !170
  %1295 = sub nsw i32 %1294, 512
  %1296 = sext i32 %1295 to i64
  %1297 = getelementptr inbounds [140 x i16], ptr %1293, i64 0, i64 %1296
  %1298 = load i16, ptr %1297, align 2, !tbaa !182
  store i16 %1298, ptr %69, align 2, !tbaa !182
  br label %1299

1299:                                             ; preds = %1304, %1289
  %1300 = load i16, ptr %69, align 2, !tbaa !182
  %1301 = sext i16 %1300 to i32
  %1302 = icmp ne i32 %1301, -1
  br i1 %1302, label %1304, label %1303

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

1304:                                             ; preds = %1299
  call void @llvm.lifetime.start.p0(i64 64, ptr %70) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  %1305 = load ptr, ptr %68, align 8, !tbaa !5
  %1306 = getelementptr inbounds %struct.ImGuiKeyRoutingTable, ptr %1305, i32 0, i32 1
  %1307 = load i16, ptr %69, align 2, !tbaa !182
  %1308 = sext i16 %1307 to i32
  %1309 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1306, i32 noundef %1308)
  store ptr %1309, ptr %71, align 8, !tbaa !5
  %1310 = load i32, ptr %67, align 4, !tbaa !170
  %1311 = load ptr, ptr %71, align 8, !tbaa !5
  %1312 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1311, i32 0, i32 1
  %1313 = load i16, ptr %1312, align 2, !tbaa !204
  %1314 = zext i16 %1313 to i32
  %1315 = or i32 %1310, %1314
  %1316 = getelementptr inbounds [64 x i8], ptr %70, i64 0, i64 0
  call void @_ZN5ImGui15GetKeyChordNameEiPci(i32 noundef %1315, ptr noundef %1316, i32 noundef 64)
  %1317 = getelementptr inbounds [64 x i8], ptr %70, i64 0, i64 0
  %1318 = load ptr, ptr %71, align 8, !tbaa !5
  %1319 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1318, i32 0, i32 3
  %1320 = load i32, ptr %1319, align 4, !tbaa !206
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.449, ptr noundef %1317, i32 noundef %1320)
  %1321 = load ptr, ptr %71, align 8, !tbaa !5
  %1322 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1321, i32 0, i32 3
  %1323 = load i32, ptr %1322, align 4, !tbaa !206
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1323)
  %1324 = load ptr, ptr %71, align 8, !tbaa !5
  %1325 = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %1324, i32 0, i32 0
  %1326 = load i16, ptr %1325, align 4, !tbaa !207
  store i16 %1326, ptr %69, align 2, !tbaa !182
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %70) #9
  br label %1299, !llvm.loop !208

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

1328:                                             ; preds = %1327
  %1329 = load i32, ptr %67, align 4, !tbaa !170
  %1330 = add nsw i32 %1329, 1
  store i32 %1330, ptr %67, align 4, !tbaa !170
  br label %1285, !llvm.loop !209

1331:                                             ; preds = %1288
  call void @_ZN5ImGui10EndListBoxEv()
  br label %1332

1332:                                             ; preds = %1331, %1280
  %1333 = load ptr, ptr %3, align 8, !tbaa !5
  %1334 = getelementptr inbounds %struct.ImGuiContext, ptr %1333, i32 0, i32 68
  %1335 = load i8, ptr %1334, align 4, !tbaa !210, !range !13, !noundef !14
  %1336 = trunc i8 %1335 to i1
  %1337 = zext i1 %1336 to i32
  %1338 = load ptr, ptr %3, align 8, !tbaa !5
  %1339 = getelementptr inbounds %struct.ImGuiContext, ptr %1338, i32 0, i32 67
  %1340 = load i32, ptr %1339, align 8, !tbaa !211
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.450, i32 noundef %1337, i32 noundef %1340)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1341

1341:                                             ; preds = %1332, %951
  %1342 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.451)
  br i1 %1342, label %1343, label %1561

1343:                                             ; preds = %1341
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.452)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1344 = load ptr, ptr %3, align 8, !tbaa !5
  %1345 = getelementptr inbounds %struct.ImGuiContext, ptr %1344, i32 0, i32 30
  %1346 = load ptr, ptr %1345, align 8, !tbaa !212
  %1347 = icmp ne ptr %1346, null
  br i1 %1347, label %1348, label %1354

1348:                                             ; preds = %1343
  %1349 = load ptr, ptr %3, align 8, !tbaa !5
  %1350 = getelementptr inbounds %struct.ImGuiContext, ptr %1349, i32 0, i32 30
  %1351 = load ptr, ptr %1350, align 8, !tbaa !212
  %1352 = getelementptr inbounds %struct.ImGuiWindow, ptr %1351, i32 0, i32 1
  %1353 = load ptr, ptr %1352, align 8, !tbaa !106
  br label %1355

1354:                                             ; preds = %1343
  br label %1355

1355:                                             ; preds = %1354, %1348
  %1356 = phi ptr [ %1353, %1348 ], [ @.str.382, %1354 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.453, ptr noundef %1356)
  %1357 = load ptr, ptr %3, align 8, !tbaa !5
  %1358 = getelementptr inbounds %struct.ImGuiContext, ptr %1357, i32 0, i32 30
  %1359 = load ptr, ptr %1358, align 8, !tbaa !212
  %1360 = icmp ne ptr %1359, null
  br i1 %1360, label %1361, label %1369

1361:                                             ; preds = %1355
  %1362 = load ptr, ptr %3, align 8, !tbaa !5
  %1363 = getelementptr inbounds %struct.ImGuiContext, ptr %1362, i32 0, i32 30
  %1364 = load ptr, ptr %1363, align 8, !tbaa !212
  %1365 = getelementptr inbounds %struct.ImGuiWindow, ptr %1364, i32 0, i32 84
  %1366 = load ptr, ptr %1365, align 8, !tbaa !213
  %1367 = getelementptr inbounds %struct.ImGuiWindow, ptr %1366, i32 0, i32 1
  %1368 = load ptr, ptr %1367, align 8, !tbaa !106
  br label %1370

1369:                                             ; preds = %1355
  br label %1370

1370:                                             ; preds = %1369, %1361
  %1371 = phi ptr [ %1368, %1361 ], [ @.str.382, %1369 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.454, ptr noundef %1371)
  %1372 = load ptr, ptr %3, align 8, !tbaa !5
  %1373 = getelementptr inbounds %struct.ImGuiContext, ptr %1372, i32 0, i32 31
  %1374 = load ptr, ptr %1373, align 8, !tbaa !214
  %1375 = icmp ne ptr %1374, null
  br i1 %1375, label %1376, label %1382

1376:                                             ; preds = %1370
  %1377 = load ptr, ptr %3, align 8, !tbaa !5
  %1378 = getelementptr inbounds %struct.ImGuiContext, ptr %1377, i32 0, i32 31
  %1379 = load ptr, ptr %1378, align 8, !tbaa !214
  %1380 = getelementptr inbounds %struct.ImGuiWindow, ptr %1379, i32 0, i32 1
  %1381 = load ptr, ptr %1380, align 8, !tbaa !106
  br label %1383

1382:                                             ; preds = %1370
  br label %1383

1383:                                             ; preds = %1382, %1376
  %1384 = phi ptr [ %1381, %1376 ], [ @.str.382, %1382 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.455, ptr noundef %1384)
  %1385 = load ptr, ptr %3, align 8, !tbaa !5
  %1386 = getelementptr inbounds %struct.ImGuiContext, ptr %1385, i32 0, i32 32
  %1387 = load ptr, ptr %1386, align 8, !tbaa !215
  %1388 = icmp ne ptr %1387, null
  br i1 %1388, label %1389, label %1395

1389:                                             ; preds = %1383
  %1390 = load ptr, ptr %3, align 8, !tbaa !5
  %1391 = getelementptr inbounds %struct.ImGuiContext, ptr %1390, i32 0, i32 32
  %1392 = load ptr, ptr %1391, align 8, !tbaa !215
  %1393 = getelementptr inbounds %struct.ImGuiWindow, ptr %1392, i32 0, i32 1
  %1394 = load ptr, ptr %1393, align 8, !tbaa !106
  br label %1396

1395:                                             ; preds = %1383
  br label %1396

1396:                                             ; preds = %1395, %1389
  %1397 = phi ptr [ %1394, %1389 ], [ @.str.382, %1395 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.456, ptr noundef %1397)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.457)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1398 = load ptr, ptr %3, align 8, !tbaa !5
  %1399 = getelementptr inbounds %struct.ImGuiContext, ptr %1398, i32 0, i32 46
  %1400 = load i32, ptr %1399, align 8, !tbaa !216
  %1401 = load ptr, ptr %3, align 8, !tbaa !5
  %1402 = getelementptr inbounds %struct.ImGuiContext, ptr %1401, i32 0, i32 59
  %1403 = load i32, ptr %1402, align 8, !tbaa !217
  %1404 = load ptr, ptr %3, align 8, !tbaa !5
  %1405 = getelementptr inbounds %struct.ImGuiContext, ptr %1404, i32 0, i32 48
  %1406 = load float, ptr %1405, align 8, !tbaa !218
  %1407 = fpext float %1406 to double
  %1408 = load ptr, ptr %3, align 8, !tbaa !5
  %1409 = getelementptr inbounds %struct.ImGuiContext, ptr %1408, i32 0, i32 50
  %1410 = load i8, ptr %1409, align 1, !tbaa !219, !range !13, !noundef !14
  %1411 = trunc i8 %1410 to i1
  %1412 = zext i1 %1411 to i32
  %1413 = load ptr, ptr %3, align 8, !tbaa !5
  %1414 = getelementptr inbounds %struct.ImGuiContext, ptr %1413, i32 0, i32 57
  %1415 = load i32, ptr %1414, align 8, !tbaa !220
  %1416 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1415)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.458, i32 noundef %1400, i32 noundef %1403, double noundef %1407, i32 noundef %1412, ptr noundef %1416)
  %1417 = load ptr, ptr %3, align 8, !tbaa !5
  %1418 = getelementptr inbounds %struct.ImGuiContext, ptr %1417, i32 0, i32 46
  %1419 = load i32, ptr %1418, align 8, !tbaa !216
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1419)
  %1420 = load ptr, ptr %3, align 8, !tbaa !5
  %1421 = getelementptr inbounds %struct.ImGuiContext, ptr %1420, i32 0, i32 56
  %1422 = load ptr, ptr %1421, align 8, !tbaa !221
  %1423 = icmp ne ptr %1422, null
  br i1 %1423, label %1424, label %1430

1424:                                             ; preds = %1396
  %1425 = load ptr, ptr %3, align 8, !tbaa !5
  %1426 = getelementptr inbounds %struct.ImGuiContext, ptr %1425, i32 0, i32 56
  %1427 = load ptr, ptr %1426, align 8, !tbaa !221
  %1428 = getelementptr inbounds %struct.ImGuiWindow, ptr %1427, i32 0, i32 1
  %1429 = load ptr, ptr %1428, align 8, !tbaa !106
  br label %1431

1430:                                             ; preds = %1396
  br label %1431

1431:                                             ; preds = %1430, %1424
  %1432 = phi ptr [ %1429, %1424 ], [ @.str.382, %1430 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.459, ptr noundef %1432)
  %1433 = load ptr, ptr %3, align 8, !tbaa !5
  %1434 = getelementptr inbounds %struct.ImGuiContext, ptr %1433, i32 0, i32 68
  %1435 = load i8, ptr %1434, align 4, !tbaa !210, !range !13, !noundef !14
  %1436 = trunc i8 %1435 to i1
  %1437 = zext i1 %1436 to i32
  %1438 = load ptr, ptr %3, align 8, !tbaa !5
  %1439 = getelementptr inbounds %struct.ImGuiContext, ptr %1438, i32 0, i32 67
  %1440 = load i32, ptr %1439, align 8, !tbaa !211
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.460, i32 noundef %1437, i32 noundef %1440)
  %1441 = load ptr, ptr %3, align 8, !tbaa !5
  %1442 = getelementptr inbounds %struct.ImGuiContext, ptr %1441, i32 0, i32 41
  %1443 = load i32, ptr %1442, align 8, !tbaa !222
  %1444 = load ptr, ptr %3, align 8, !tbaa !5
  %1445 = getelementptr inbounds %struct.ImGuiContext, ptr %1444, i32 0, i32 44
  %1446 = load float, ptr %1445, align 8, !tbaa !223
  %1447 = fpext float %1446 to double
  %1448 = load ptr, ptr %3, align 8, !tbaa !5
  %1449 = getelementptr inbounds %struct.ImGuiContext, ptr %1448, i32 0, i32 42
  %1450 = load i8, ptr %1449, align 4, !tbaa !224, !range !13, !noundef !14
  %1451 = trunc i8 %1450 to i1
  %1452 = zext i1 %1451 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.461, i32 noundef %1443, double noundef %1447, i32 noundef %1452)
  %1453 = load ptr, ptr %3, align 8, !tbaa !5
  %1454 = getelementptr inbounds %struct.ImGuiContext, ptr %1453, i32 0, i32 169
  %1455 = load i32, ptr %1454, align 8, !tbaa !225
  %1456 = load ptr, ptr %3, align 8, !tbaa !5
  %1457 = getelementptr inbounds %struct.ImGuiContext, ptr %1456, i32 0, i32 171
  %1458 = load float, ptr %1457, align 8, !tbaa !226
  %1459 = fpext float %1458 to double
  %1460 = load ptr, ptr %3, align 8, !tbaa !5
  %1461 = getelementptr inbounds %struct.ImGuiContext, ptr %1460, i32 0, i32 172
  %1462 = load float, ptr %1461, align 4, !tbaa !227
  %1463 = fpext float %1462 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.462, i32 noundef %1455, double noundef %1459, double noundef %1463)
  %1464 = load ptr, ptr %3, align 8, !tbaa !5
  %1465 = getelementptr inbounds %struct.ImGuiContext, ptr %1464, i32 0, i32 139
  %1466 = load i8, ptr %1465, align 4, !tbaa !228, !range !13, !noundef !14
  %1467 = trunc i8 %1466 to i1
  %1468 = zext i1 %1467 to i32
  %1469 = load ptr, ptr %3, align 8, !tbaa !5
  %1470 = getelementptr inbounds %struct.ImGuiContext, ptr %1469, i32 0, i32 146
  %1471 = getelementptr inbounds %struct.ImGuiPayload, ptr %1470, i32 0, i32 2
  %1472 = load i32, ptr %1471, align 4, !tbaa !229
  %1473 = load ptr, ptr %3, align 8, !tbaa !5
  %1474 = getelementptr inbounds %struct.ImGuiContext, ptr %1473, i32 0, i32 146
  %1475 = getelementptr inbounds %struct.ImGuiPayload, ptr %1474, i32 0, i32 5
  %1476 = getelementptr inbounds [33 x i8], ptr %1475, i64 0, i64 0
  %1477 = load ptr, ptr %3, align 8, !tbaa !5
  %1478 = getelementptr inbounds %struct.ImGuiContext, ptr %1477, i32 0, i32 146
  %1479 = getelementptr inbounds %struct.ImGuiPayload, ptr %1478, i32 0, i32 1
  %1480 = load i32, ptr %1479, align 8, !tbaa !230
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.463, i32 noundef %1468, i32 noundef %1472, ptr noundef %1476, i32 noundef %1480)
  %1481 = load ptr, ptr %3, align 8, !tbaa !5
  %1482 = getelementptr inbounds %struct.ImGuiContext, ptr %1481, i32 0, i32 146
  %1483 = getelementptr inbounds %struct.ImGuiPayload, ptr %1482, i32 0, i32 2
  %1484 = load i32, ptr %1483, align 4, !tbaa !229
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1484)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.464)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1485 = load ptr, ptr %3, align 8, !tbaa !5
  %1486 = getelementptr inbounds %struct.ImGuiContext, ptr %1485, i32 0, i32 86
  %1487 = load ptr, ptr %1486, align 8, !tbaa !105
  %1488 = icmp ne ptr %1487, null
  br i1 %1488, label %1489, label %1495

1489:                                             ; preds = %1431
  %1490 = load ptr, ptr %3, align 8, !tbaa !5
  %1491 = getelementptr inbounds %struct.ImGuiContext, ptr %1490, i32 0, i32 86
  %1492 = load ptr, ptr %1491, align 8, !tbaa !105
  %1493 = getelementptr inbounds %struct.ImGuiWindow, ptr %1492, i32 0, i32 1
  %1494 = load ptr, ptr %1493, align 8, !tbaa !106
  br label %1496

1495:                                             ; preds = %1431
  br label %1496

1496:                                             ; preds = %1495, %1489
  %1497 = phi ptr [ %1494, %1489 ], [ @.str.382, %1495 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.465, ptr noundef %1497)
  %1498 = load ptr, ptr %3, align 8, !tbaa !5
  %1499 = getelementptr inbounds %struct.ImGuiContext, ptr %1498, i32 0, i32 87
  %1500 = load i32, ptr %1499, align 8, !tbaa !231
  %1501 = load ptr, ptr %3, align 8, !tbaa !5
  %1502 = getelementptr inbounds %struct.ImGuiContext, ptr %1501, i32 0, i32 99
  %1503 = load i32, ptr %1502, align 8, !tbaa !232
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.466, i32 noundef %1500, i32 noundef %1503)
  %1504 = load ptr, ptr %3, align 8, !tbaa !5
  %1505 = getelementptr inbounds %struct.ImGuiContext, ptr %1504, i32 0, i32 87
  %1506 = load i32, ptr %1505, align 8, !tbaa !231
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %1506)
  %1507 = load ptr, ptr %3, align 8, !tbaa !5
  %1508 = getelementptr inbounds %struct.ImGuiContext, ptr %1507, i32 0, i32 98
  %1509 = load i32, ptr %1508, align 4, !tbaa !233
  %1510 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1509)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.467, ptr noundef %1510)
  %1511 = load ptr, ptr %3, align 8, !tbaa !5
  %1512 = getelementptr inbounds %struct.ImGuiContext, ptr %1511, i32 0, i32 2
  %1513 = getelementptr inbounds %struct.ImGuiIO, ptr %1512, i32 0, i32 46
  %1514 = load i8, ptr %1513, align 1, !tbaa !234, !range !13, !noundef !14
  %1515 = trunc i8 %1514 to i1
  %1516 = zext i1 %1515 to i32
  %1517 = load ptr, ptr %3, align 8, !tbaa !5
  %1518 = getelementptr inbounds %struct.ImGuiContext, ptr %1517, i32 0, i32 2
  %1519 = getelementptr inbounds %struct.ImGuiIO, ptr %1518, i32 0, i32 47
  %1520 = load i8, ptr %1519, align 2, !tbaa !235, !range !13, !noundef !14
  %1521 = trunc i8 %1520 to i1
  %1522 = zext i1 %1521 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.468, i32 noundef %1516, i32 noundef %1522)
  %1523 = load ptr, ptr %3, align 8, !tbaa !5
  %1524 = getelementptr inbounds %struct.ImGuiContext, ptr %1523, i32 0, i32 89
  %1525 = load i32, ptr %1524, align 8, !tbaa !236
  %1526 = load ptr, ptr %3, align 8, !tbaa !5
  %1527 = getelementptr inbounds %struct.ImGuiContext, ptr %1526, i32 0, i32 90
  %1528 = load i32, ptr %1527, align 4, !tbaa !237
  %1529 = load ptr, ptr %3, align 8, !tbaa !5
  %1530 = getelementptr inbounds %struct.ImGuiContext, ptr %1529, i32 0, i32 91
  %1531 = load i32, ptr %1530, align 8, !tbaa !238
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.469, i32 noundef %1525, i32 noundef %1528, i32 noundef %1531)
  %1532 = load ptr, ptr %3, align 8, !tbaa !5
  %1533 = getelementptr inbounds %struct.ImGuiContext, ptr %1532, i32 0, i32 92
  %1534 = load i32, ptr %1533, align 4, !tbaa !239
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.470, i32 noundef %1534)
  %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 2, !tbaa !240, !range !13, !noundef !14
  %1538 = trunc i8 %1537 to i1
  %1539 = zext i1 %1538 to i32
  %1540 = load ptr, ptr %3, align 8, !tbaa !5
  %1541 = getelementptr inbounds %struct.ImGuiContext, ptr %1540, i32 0, i32 103
  %1542 = load i8, ptr %1541, align 1, !tbaa !241, !range !13, !noundef !14
  %1543 = trunc i8 %1542 to i1
  %1544 = zext i1 %1543 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.471, i32 noundef %1539, i32 noundef %1544)
  %1545 = load ptr, ptr %3, align 8, !tbaa !5
  %1546 = getelementptr inbounds %struct.ImGuiContext, ptr %1545, i32 0, i32 88
  %1547 = load i32, ptr %1546, align 4, !tbaa !242
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.472, i32 noundef %1547)
  %1548 = load ptr, ptr %3, align 8, !tbaa !5
  %1549 = getelementptr inbounds %struct.ImGuiContext, ptr %1548, i32 0, i32 129
  %1550 = load ptr, ptr %1549, align 8, !tbaa !243
  %1551 = icmp ne ptr %1550, null
  br i1 %1551, label %1552, label %1558

1552:                                             ; preds = %1496
  %1553 = load ptr, ptr %3, align 8, !tbaa !5
  %1554 = getelementptr inbounds %struct.ImGuiContext, ptr %1553, i32 0, i32 129
  %1555 = load ptr, ptr %1554, align 8, !tbaa !243
  %1556 = getelementptr inbounds %struct.ImGuiWindow, ptr %1555, i32 0, i32 1
  %1557 = load ptr, ptr %1556, align 8, !tbaa !106
  br label %1559

1558:                                             ; preds = %1496
  br label %1559

1559:                                             ; preds = %1558, %1552
  %1560 = phi ptr [ %1557, %1552 ], [ @.str.382, %1558 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.473, ptr noundef %1560)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %1561

1561:                                             ; preds = %1559, %1341
  %1562 = load ptr, ptr %5, align 8, !tbaa !5
  %1563 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1562, i32 0, i32 2
  %1564 = load i8, ptr %1563, align 2, !tbaa !104, !range !13, !noundef !14
  %1565 = trunc i8 %1564 to i1
  br i1 %1565, label %1571, label %1566

1566:                                             ; preds = %1561
  %1567 = load ptr, ptr %5, align 8, !tbaa !5
  %1568 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1567, i32 0, i32 3
  %1569 = load i8, ptr %1568, align 1, !tbaa !244, !range !13, !noundef !14
  %1570 = trunc i8 %1569 to i1
  br i1 %1570, label %1571, label %1650

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

1572:                                             ; preds = %1646, %1571
  %1573 = load i32, ptr %72, align 4, !tbaa !107
  %1574 = load ptr, ptr %3, align 8, !tbaa !5
  %1575 = getelementptr inbounds %struct.ImGuiContext, ptr %1574, i32 0, i32 22
  %1576 = getelementptr inbounds %struct.ImVector.2, ptr %1575, i32 0, i32 0
  %1577 = load i32, ptr %1576, align 8, !tbaa !133
  %1578 = icmp slt i32 %1573, %1577
  br i1 %1578, label %1580, label %1579

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

1580:                                             ; preds = %1572
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #9
  %1581 = load ptr, ptr %3, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.ImGuiContext, ptr %1581, i32 0, i32 22
  %1583 = load i32, ptr %72, align 4, !tbaa !107
  %1584 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1582, i32 noundef %1583)
  %1585 = load ptr, ptr %1584, align 8, !tbaa !5
  store ptr %1585, ptr %73, align 8, !tbaa !5
  %1586 = load ptr, ptr %73, align 8, !tbaa !5
  %1587 = getelementptr inbounds %struct.ImGuiWindow, ptr %1586, i32 0, i32 32
  %1588 = load i8, ptr %1587, align 1, !tbaa !245, !range !13, !noundef !14
  %1589 = trunc i8 %1588 to i1
  br i1 %1589, label %1591, label %1590

1590:                                             ; preds = %1580
  store i32 81, ptr %6, align 4
  br label %1643

1591:                                             ; preds = %1580
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #9
  %1592 = load ptr, ptr %73, align 8, !tbaa !5
  %1593 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1592)
  store ptr %1593, ptr %74, align 8, !tbaa !5
  %1594 = load ptr, ptr %5, align 8, !tbaa !5
  %1595 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1594, i32 0, i32 2
  %1596 = load i8, ptr %1595, align 2, !tbaa !104, !range !13, !noundef !14
  %1597 = trunc i8 %1596 to i1
  br i1 %1597, label %1598, label %1611

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

1611:                                             ; preds = %1598, %1591
  %1612 = load ptr, ptr %5, align 8, !tbaa !5
  %1613 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1612, i32 0, i32 3
  %1614 = load i8, ptr %1613, align 1, !tbaa !244, !range !13, !noundef !14
  %1615 = trunc i8 %1614 to i1
  br i1 %1615, label %1616, label %1642

1616:                                             ; preds = %1611
  %1617 = load ptr, ptr %73, align 8, !tbaa !5
  %1618 = getelementptr inbounds %struct.ImGuiWindow, ptr %1617, i32 0, i32 3
  %1619 = load i32, ptr %1618, align 4, !tbaa !150
  %1620 = and i32 %1619, 16777216
  %1621 = icmp ne i32 %1620, 0
  br i1 %1621, label %1642, label %1622

1622:                                             ; preds = %1616
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #9
  %1623 = getelementptr inbounds [32 x i8], ptr %76, i64 0, i64 0
  %1624 = load ptr, ptr %73, align 8, !tbaa !5
  %1625 = getelementptr inbounds %struct.ImGuiWindow, ptr %1624, i32 0, i32 46
  %1626 = load i16, ptr %1625, align 8, !tbaa !246
  %1627 = sext i16 %1626 to i32
  %1628 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %1623, i64 noundef 32, ptr noundef @.str.316, i32 noundef %1627)
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  %1629 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  store float %1629, ptr %77, align 4, !tbaa !188
  %1630 = load ptr, ptr %74, align 8, !tbaa !5
  %1631 = load ptr, ptr %73, align 8, !tbaa !5
  %1632 = getelementptr inbounds %struct.ImGuiWindow, ptr %1631, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #9
  %1633 = load ptr, ptr %73, align 8, !tbaa !5
  %1634 = getelementptr inbounds %struct.ImGuiWindow, ptr %1633, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #9
  %1635 = load float, ptr %77, align 4, !tbaa !188
  %1636 = load float, ptr %77, align 4, !tbaa !188
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %79, float noundef %1635, float noundef %1636)
  %1637 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1634, ptr noundef nonnull align 4 dereferenceable(8) %79)
  store <2 x float> %1637, ptr %78, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1630, ptr noundef nonnull align 4 dereferenceable(8) %1632, 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
  %1638 = load ptr, ptr %74, align 8, !tbaa !5
  %1639 = load ptr, ptr %73, align 8, !tbaa !5
  %1640 = getelementptr inbounds %struct.ImGuiWindow, ptr %1639, i32 0, i32 5
  %1641 = getelementptr inbounds [32 x i8], ptr %76, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1638, ptr noundef nonnull align 4 dereferenceable(8) %1640, i32 noundef -1, ptr noundef %1641, 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 %1642

1642:                                             ; preds = %1622, %1616, %1611
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #9
  store i32 0, ptr %6, align 4
  br label %1643

1643:                                             ; preds = %1642, %1590
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #9
  %1644 = load i32, ptr %6, align 4
  switch i32 %1644, label %1758 [
    i32 0, label %1645
    i32 81, label %1646
  ]

1645:                                             ; preds = %1643
  br label %1646

1646:                                             ; preds = %1645, %1643
  %1647 = load i32, ptr %72, align 4, !tbaa !107
  %1648 = add nsw i32 %1647, 1
  store i32 %1648, ptr %72, align 4, !tbaa !107
  br label %1572, !llvm.loop !247

1649:                                             ; preds = %1579
  br label %1650

1650:                                             ; preds = %1649, %1566
  %1651 = load ptr, ptr %5, align 8, !tbaa !5
  %1652 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1651, i32 0, i32 4
  %1653 = load i8, ptr %1652, align 4, !tbaa !114, !range !13, !noundef !14
  %1654 = trunc i8 %1653 to i1
  br i1 %1654, label %1655, label %1754

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

1656:                                             ; preds = %1750, %1655
  %1657 = load i32, ptr %80, align 4, !tbaa !107
  %1658 = load ptr, ptr %3, align 8, !tbaa !5
  %1659 = getelementptr inbounds %struct.ImGuiContext, ptr %1658, i32 0, i32 162
  %1660 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1659)
  %1661 = icmp slt i32 %1657, %1660
  br i1 %1661, label %1663, label %1662

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

1663:                                             ; preds = %1656
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #9
  %1664 = load ptr, ptr %3, align 8, !tbaa !5
  %1665 = getelementptr inbounds %struct.ImGuiContext, ptr %1664, i32 0, i32 162
  %1666 = load i32, ptr %80, align 4, !tbaa !107
  %1667 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1665, i32 noundef %1666)
  store ptr %1667, ptr %81, align 8, !tbaa !5
  %1668 = load ptr, ptr %81, align 8, !tbaa !5
  %1669 = icmp eq ptr %1668, null
  br i1 %1669, label %1679, label %1670

1670:                                             ; preds = %1663
  %1671 = load ptr, ptr %81, align 8, !tbaa !5
  %1672 = getelementptr inbounds %struct.ImGuiTable, ptr %1671, i32 0, i32 12
  %1673 = load i32, ptr %1672, align 8, !tbaa !115
  %1674 = load ptr, ptr %3, align 8, !tbaa !5
  %1675 = getelementptr inbounds %struct.ImGuiContext, ptr %1674, i32 0, i32 9
  %1676 = load i32, ptr %1675, align 8, !tbaa !125
  %1677 = sub nsw i32 %1676, 1
  %1678 = icmp slt i32 %1673, %1677
  br i1 %1678, label %1679, label %1680

1679:                                             ; preds = %1670, %1663
  store i32 84, ptr %6, align 4
  br label %1747

1680:                                             ; preds = %1670
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  %1681 = load ptr, ptr %81, align 8, !tbaa !5
  %1682 = getelementptr inbounds %struct.ImGuiTable, ptr %1681, i32 0, i32 53
  %1683 = load ptr, ptr %1682, align 8, !tbaa !126
  %1684 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1683)
  store ptr %1684, ptr %82, align 8, !tbaa !5
  %1685 = load ptr, ptr %5, align 8, !tbaa !5
  %1686 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1685, i32 0, i32 9
  %1687 = load i32, ptr %1686, align 4, !tbaa !52
  %1688 = icmp sge i32 %1687, 6
  br i1 %1688, label %1689, label %1733

1689:                                             ; preds = %1680
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  store i32 0, ptr %83, align 4, !tbaa !107
  br label %1690

1690:                                             ; preds = %1729, %1689
  %1691 = load i32, ptr %83, align 4, !tbaa !107
  %1692 = load ptr, ptr %81, align 8, !tbaa !5
  %1693 = getelementptr inbounds %struct.ImGuiTable, ptr %1692, i32 0, i32 13
  %1694 = load i32, ptr %1693, align 4, !tbaa !129
  %1695 = icmp slt i32 %1691, %1694
  br i1 %1695, label %1697, label %1696

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

1697:                                             ; preds = %1690
  call void @llvm.lifetime.start.p0(i64 16, ptr %84) #9
  %1698 = load ptr, ptr %81, align 8, !tbaa !5
  %1699 = load ptr, ptr %5, align 8, !tbaa !5
  %1700 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1699, i32 0, i32 9
  %1701 = load i32, ptr %1700, align 4, !tbaa !52
  %1702 = load i32, ptr %83, align 4, !tbaa !107
  %1703 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1698, i32 noundef %1701, i32 noundef %1702)
  %1704 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %84, i32 0, i32 0
  %1705 = extractvalue { <2 x float>, <2 x float> } %1703, 0
  store <2 x float> %1705, ptr %1704, align 4
  %1706 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %84, i32 0, i32 1
  %1707 = extractvalue { <2 x float>, <2 x float> } %1703, 1
  store <2 x float> %1707, ptr %1706, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  %1708 = load ptr, ptr %81, align 8, !tbaa !5
  %1709 = getelementptr inbounds %struct.ImGuiTable, ptr %1708, i32 0, i32 67
  %1710 = load i16, ptr %1709, align 8, !tbaa !248
  %1711 = sext i16 %1710 to i32
  %1712 = load i32, ptr %83, align 4, !tbaa !107
  %1713 = icmp eq i32 %1711, %1712
  %1714 = zext i1 %1713 to i64
  %1715 = select i1 %1713, i32 -8323073, i32 -8388353
  store i32 %1715, ptr %85, align 4, !tbaa !107
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  %1716 = load ptr, ptr %81, align 8, !tbaa !5
  %1717 = getelementptr inbounds %struct.ImGuiTable, ptr %1716, i32 0, i32 67
  %1718 = load i16, ptr %1717, align 8, !tbaa !248
  %1719 = sext i16 %1718 to i32
  %1720 = load i32, ptr %83, align 4, !tbaa !107
  %1721 = icmp eq i32 %1719, %1720
  %1722 = zext i1 %1721 to i64
  %1723 = select i1 %1721, float 3.000000e+00, float 1.000000e+00
  store float %1723, ptr %86, align 4, !tbaa !188
  %1724 = load ptr, ptr %82, align 8, !tbaa !5
  %1725 = getelementptr inbounds %struct.ImRect, ptr %84, i32 0, i32 0
  %1726 = getelementptr inbounds %struct.ImRect, ptr %84, i32 0, i32 1
  %1727 = load i32, ptr %85, align 4, !tbaa !107
  %1728 = load float, ptr %86, align 4, !tbaa !188
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1724, ptr noundef nonnull align 4 dereferenceable(8) %1725, ptr noundef nonnull align 4 dereferenceable(8) %1726, i32 noundef %1727, float noundef 0.000000e+00, i32 noundef 0, float noundef %1728)
  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 %1729

1729:                                             ; preds = %1697
  %1730 = load i32, ptr %83, align 4, !tbaa !107
  %1731 = add nsw i32 %1730, 1
  store i32 %1731, ptr %83, align 4, !tbaa !107
  br label %1690, !llvm.loop !249

1732:                                             ; preds = %1696
  br label %1746

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

1746:                                             ; preds = %1733, %1732
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  store i32 0, ptr %6, align 4
  br label %1747

1747:                                             ; preds = %1746, %1679
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  %1748 = load i32, ptr %6, align 4
  switch i32 %1748, label %1758 [
    i32 0, label %1749
    i32 84, label %1750
  ]

1749:                                             ; preds = %1747
  br label %1750

1750:                                             ; preds = %1749, %1747
  %1751 = load i32, ptr %80, align 4, !tbaa !107
  %1752 = add nsw i32 %1751, 1
  store i32 %1752, ptr %80, align 4, !tbaa !107
  br label %1656, !llvm.loop !250

1753:                                             ; preds = %1662
  br label %1754

1754:                                             ; preds = %1753, %1650
  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 %1755

1755:                                             ; preds = %1754, %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
  %1756 = load i32, ptr %6, align 4
  switch i32 %1756, label %1758 [
    i32 0, label %1757
    i32 1, label %1757
  ]

1757:                                             ; preds = %1755, %1755
  ret void

1758:                                             ; preds = %1755, %1747, %1643, %1273, %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() #6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) #6

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) #6

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

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

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

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

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

declare void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef) #6

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

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

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

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

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

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

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

declare void @_ZN5ImGui10EndListBoxEv() #6

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTS18ImGuiMetricsConfig", !11, i64 0, !11, i64 1, !11, i64 2, !11, i64 3, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !12, i64 8, !12, i64 12}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!10, !11, i64 1}
!16 = !{!17, !20, i64 194}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !6, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !18, i64 80, !19, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !19, i64 112, !19, i64 116, !12, i64 120, !12, i64 124, !12, i64 128, !18, i64 132, !18, i64 140, !18, i64 148, !18, i64 156, !18, i64 164, !18, i64 172, !11, i64 180, !11, i64 181, !11, i64 182, !11, i64 183, !11, i64 184, !11, i64 185, !11, i64 186, !11, i64 187, !11, i64 188, !11, i64 189, !11, i64 190, !11, i64 191, !11, i64 192, !7, i64 193, !20, i64 194, !20, i64 196, !20, i64 198, !20, i64 200, !20, i64 202, !12, i64 204, !7, i64 208, !7, i64 209, !7, i64 210, !11, i64 211, !12, i64 212, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !12, i64 220, !12, i64 221, !12, i64 222, !18, i64 224, !18, i64 232, !21, i64 240, !22, i64 256, !28, i64 488, !28, i64 504, !28, i64 520, !28, i64 536, !28, i64 552, !28, i64 568, !28, i64 584, !29, i64 600, !29, i64 604, !12, i64 608, !19, i64 612, !19, i64 616, !30, i64 624, !32, i64 640, !19, i64 656, !12, i64 660, !6, i64 664, !33, i64 672, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !6, i64 920, !7, i64 928, !7, i64 936, !12, i64 968, !12, i64 972, !12, i64 976, !11, i64 980}
!18 = !{!"_ZTS6ImVec2", !19, i64 0, !19, i64 4}
!19 = !{!"float", !7, i64 0}
!20 = !{!"short", !7, i64 0}
!21 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!22 = !{!"_ZTS19ImGuiWindowTempData", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !19, i64 56, !19, i64 60, !11, i64 64, !11, i64 65, !23, i64 68, !23, i64 72, !23, i64 76, !18, i64 80, !24, i64 88, !20, i64 92, !20, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !18, i64 100, !25, i64 108, !12, i64 136, !12, i64 140, !26, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !19, i64 188, !19, i64 192, !27, i64 200, !27, i64 216}
!23 = !{!"_ZTS6ImVec1", !19, i64 0}
!24 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!25 = !{!"_ZTS16ImGuiMenuColumns", !12, i64 0, !12, i64 4, !20, i64 8, !20, i64 10, !20, i64 12, !20, i64 14, !20, i64 16, !7, i64 18}
!26 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!28 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!29 = !{!"_ZTS8ImVec2ih", !20, i64 0, !20, i64 2}
!30 = !{!"_ZTS12ImGuiStorage", !31, i64 0}
!31 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !12, i64 0, !12, i64 4, !6, i64 8}
!32 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!33 = !{!"_ZTS10ImDrawList", !34, i64 0, !35, i64 16, !36, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !37, i64 88, !38, i64 104, !39, i64 120, !40, i64 136, !42, i64 168, !19, i64 192}
!34 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorIPvE", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!40 = !{!"_ZTS15ImDrawCmdHeader", !41, i64 0, !6, i64 16, !12, i64 24}
!41 = !{!"_ZTS6ImVec4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!42 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !43, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!44 = !{!45, !19, i64 216}
!45 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !6, i64 24, !6, i64 32, !19, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !19, i64 60, !19, i64 64, !6, i64 72, !6, i64 80, !19, i64 88, !11, i64 92, !6, i64 96, !18, i64 104, !11, i64 112, !11, i64 113, !11, i64 114, !11, i64 115, !11, i64 116, !11, i64 117, !11, i64 118, !11, i64 119, !19, i64 120, !11, i64 124, !11, i64 125, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !11, i64 214, !19, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !12, i64 232, !12, i64 236, !18, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !18, i64 3584, !7, i64 3592, !19, i64 3600, !19, i64 3604, !46, i64 3608, !11, i64 3612, !11, i64 3613, !11, i64 3614, !11, i64 3615, !12, i64 3616, !7, i64 3620, !11, i64 14052, !18, i64 14056, !7, i64 14064, !7, i64 14104, !7, i64 14144, !7, i64 14149, !7, i64 14154, !7, i64 14164, !7, i64 14174, !7, i64 14179, !7, i64 14184, !11, i64 14189, !7, i64 14192, !7, i64 14212, !7, i64 14232, !19, i64 14252, !11, i64 14256, !11, i64 14257, !7, i64 14258, !11, i64 14259, !20, i64 14260, !35, i64 14264}
!46 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!47 = !{!45, !12, i64 220}
!48 = !{!45, !12, i64 224}
!49 = !{!45, !12, i64 228}
!50 = !{!45, !12, i64 236}
!51 = !{!10, !12, i64 8}
!52 = !{!10, !12, i64 12}
!53 = !{!11, !11, i64 0}
!54 = !{!7, !7, i64 0}
!55 = !{!56, !11, i64 23755}
!56 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !45, i64 8, !57, i64 14288, !6, i64 15360, !19, i64 15368, !19, i64 15372, !58, i64 15376, !59, i64 15904, !12, i64 15912, !12, i64 15916, !12, i64 15920, !11, i64 15924, !11, i64 15925, !11, i64 15926, !11, i64 15927, !11, i64 15928, !6, i64 15936, !60, i64 15944, !60, i64 15960, !46, i64 15976, !12, i64 15980, !26, i64 15984, !26, i64 16000, !26, i64 16016, !61, i64 16032, !30, i64 16048, !12, i64 16064, !18, i64 16068, !6, i64 16080, !6, i64 16088, !6, i64 16096, !6, i64 16104, !6, i64 16112, !18, i64 16120, !12, i64 16128, !19, i64 16132, !18, i64 16136, !18, i64 16144, !12, i64 16152, !12, i64 16156, !12, i64 16160, !11, i64 16164, !11, i64 16165, !19, i64 16168, !19, i64 16172, !12, i64 16176, !12, i64 16180, !19, i64 16184, !11, i64 16188, !11, i64 16189, !11, i64 16190, !11, i64 16191, !11, i64 16192, !11, i64 16193, !18, i64 16196, !6, i64 16208, !62, i64 16216, !12, i64 16220, !12, i64 16224, !11, i64 16228, !11, i64 16229, !6, i64 16232, !12, i64 16240, !19, i64 16244, !7, i64 16248, !63, i64 17928, !12, i64 18240, !11, i64 18244, !12, i64 18248, !12, i64 18252, !12, i64 18256, !12, i64 18260, !65, i64 18264, !66, i64 18284, !67, i64 18344, !68, i64 18456, !69, i64 18472, !70, i64 18488, !21, i64 18504, !71, i64 18520, !72, i64 18536, !73, i64 18552, !73, i64 18568, !12, i64 18584, !74, i64 18592, !6, i64 18608, !12, i64 18616, !12, i64 18620, !12, i64 18624, !12, i64 18628, !12, i64 18632, !12, i64 18636, !12, i64 18640, !12, i64 18644, !12, i64 18648, !12, i64 18652, !12, i64 18656, !62, i64 18660, !24, i64 18664, !11, i64 18668, !11, i64 18669, !11, i64 18670, !11, i64 18671, !11, i64 18672, !11, i64 18673, !11, i64 18674, !12, i64 18676, !28, i64 18680, !11, i64 18696, !11, i64 18697, !11, i64 18698, !12, i64 18700, !12, i64 18704, !12, i64 18708, !12, i64 18712, !12, i64 18716, !12, i64 18720, !28, i64 18724, !28, i64 18740, !12, i64 18756, !12, i64 18760, !12, i64 18764, !75, i64 18768, !75, i64 18816, !75, i64 18864, !75, i64 18912, !12, i64 18960, !12, i64 18964, !6, i64 18968, !6, i64 18976, !6, i64 18984, !19, i64 18992, !19, i64 18996, !11, i64 19000, !18, i64 19004, !18, i64 19012, !19, i64 19020, !12, i64 19024, !11, i64 19028, !11, i64 19029, !11, i64 19030, !12, i64 19032, !12, i64 19036, !12, i64 19040, !76, i64 19048, !28, i64 19112, !12, i64 19128, !12, i64 19132, !19, i64 19136, !12, i64 19140, !12, i64 19144, !12, i64 19148, !12, i64 19152, !77, i64 19160, !7, i64 19176, !12, i64 19192, !78, i64 19200, !6, i64 19216, !12, i64 19224, !79, i64 19232, !80, i64 19248, !27, i64 19288, !43, i64 19304, !6, i64 19320, !82, i64 19328, !84, i64 19368, !85, i64 19384, !12, i64 19400, !12, i64 19404, !19, i64 19408, !19, i64 19412, !18, i64 19416, !86, i64 19424, !90, i64 23152, !91, i64 23176, !12, i64 23296, !12, i64 23300, !12, i64 23304, !12, i64 23308, !19, i64 23312, !19, i64 23316, !12, i64 23320, !41, i64 23324, !93, i64 23340, !19, i64 23388, !19, i64 23392, !11, i64 23396, !11, i64 23397, !19, i64 23400, !19, i64 23404, !19, i64 23408, !19, i64 23412, !20, i64 23416, !20, i64 23418, !87, i64 23424, !21, i64 23440, !94, i64 23456, !94, i64 23472, !7, i64 23488, !11, i64 23489, !19, i64 23492, !95, i64 23496, !96, i64 23512, !97, i64 23528, !98, i64 23544, !99, i64 23560, !12, i64 23576, !7, i64 23584, !11, i64 23640, !100, i64 23644, !6, i64 23648, !95, i64 23656, !6, i64 23672, !6, i64 23680, !19, i64 23688, !11, i64 23692, !12, i64 23696, !12, i64 23700, !12, i64 23704, !12, i64 23708, !95, i64 23712, !101, i64 23728, !7, i64 23752, !7, i64 23753, !7, i64 23754, !11, i64 23755, !7, i64 23756, !12, i64 23760, !10, i64 23764, !102, i64 23784, !7, i64 23824, !12, i64 24064, !12, i64 24068, !19, i64 24072, !12, i64 24076, !12, i64 24080, !12, i64 24084, !87, i64 24088}
!57 = !{!"_ZTS10ImGuiStyle", !19, i64 0, !19, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !18, i64 24, !18, i64 32, !12, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !18, i64 60, !19, i64 68, !19, i64 72, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !12, i64 148, !18, i64 152, !18, i64 160, !19, i64 168, !18, i64 172, !18, i64 180, !18, i64 188, !18, i64 196, !19, i64 204, !11, i64 208, !11, i64 209, !11, i64 210, !19, i64 212, !19, i64 216, !7, i64 220}
!58 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !19, i64 16, !19, i64 20, !19, i64 24, !41, i64 28, !12, i64 44, !39, i64 48, !7, i64 64, !19, i64 448, !7, i64 452, !6, i64 520}
!59 = !{!"double", !7, i64 0}
!60 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!62 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!63 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !64, i64 280, !64, i64 296}
!64 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!65 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !19, i64 4, !12, i64 8, !12, i64 12, !11, i64 16}
!66 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !28, i64 12, !28, i64 28, !28, i64 44}
!67 = !{!"_ZTS19ImGuiNextWindowData", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !11, i64 56, !28, i64 60, !6, i64 80, !6, i64 88, !19, i64 96, !18, i64 100}
!68 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_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}
!76 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !7, i64 24, !11, i64 57, !11, i64 58}
!77 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!80 = !{!"_ZTS6ImPoolI10ImGuiTableE", !81, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!81 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !83, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!83 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!86 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !35, i64 24, !87, i64 40, !87, i64 56, !11, i64 72, !12, i64 76, !19, i64 80, !88, i64 84, !19, i64 3712, !11, i64 3716, !11, i64 3717, !11, i64 3718, !12, i64 3720}
!87 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!88 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !12, i64 0, !12, i64 4, !12, i64 8, !7, i64 12, !12, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !19, i64 28, !89, i64 32}
!89 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !20, i64 3582, !20, i64 3584, !12, i64 3588, !12, i64 3592}
!90 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !87, i64 8}
!91 = !{!"_ZTS6ImFont", !27, i64 0, !19, i64 16, !19, i64 20, !35, i64 24, !92, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !20, i64 80, !20, i64 82, !20, i64 84, !20, i64 86, !19, i64 88, !19, i64 92, !11, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !12, i64 112, !7, i64 116}
!92 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!93 = !{!"_ZTS21ImGuiComboPreviewData", !28, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !19, i64 40, !12, i64 44}
!94 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !18, i64 4, !19, i64 12}
!95 = !{!"_ZTS15ImGuiTextBuffer", !87, i64 0}
!96 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!97 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !87, i64 0}
!98 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !87, i64 0}
!99 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!100 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!101 = !{!"_ZTS14ImGuiTextIndex", !71, i64 0, !12, i64 16}
!102 = !{!"_ZTS14ImGuiStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !103, i64 16, !11, i64 32, !19, i64 36}
!103 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!104 = !{!10, !11, i64 2}
!105 = !{!56, !6, i64 18608}
!106 = !{!17, !6, i64 8}
!107 = !{!12, !12, i64 0}
!108 = !{!28, !19, i64 0}
!109 = !{!28, !19, i64 4}
!110 = !{!28, !19, i64 8}
!111 = !{!28, !19, i64 12}
!112 = distinct !{!112, !113}
!113 = !{!"llvm.loop.mustprogress"}
!114 = !{!10, !11, i64 4}
!115 = !{!116, !12, i64 104}
!116 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !117, i64 24, !118, i64 40, !119, i64 56, !6, i64 72, !6, i64 80, !6, i64 88, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !20, i64 120, !20, i64 122, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !12, i64 144, !12, i64 146, !12, i64 148, !7, i64 152, !12, i64 160, !12, i64 164, !19, i64 168, !19, i64 172, !19, i64 176, !19, i64 180, !19, i64 184, !19, i64 188, !19, i64 192, !19, i64 196, !19, i64 200, !19, i64 204, !19, i64 208, !19, i64 212, !19, i64 216, !19, i64 220, !19, i64 224, !19, i64 228, !28, i64 232, !28, i64 248, !28, i64 264, !28, i64 280, !28, i64 296, !28, i64 312, !28, i64 328, !28, i64 344, !28, i64 360, !6, i64 376, !6, i64 384, !95, i64 392, !6, i64 408, !120, i64 416, !121, i64 432, !122, i64 448, !123, i64 464, !124, i64 480, !20, i64 496, !20, i64 498, !20, i64 500, !20, i64 502, !20, i64 504, !20, i64 506, !20, i64 508, !20, i64 510, !20, i64 512, !20, i64 514, !20, i64 516, !20, i64 518, !20, i64 520, !20, i64 522, !20, i64 524, !20, i64 526, !20, i64 528, !20, i64 530, !20, i64 532, !20, i64 534, !20, i64 536, !20, i64 538, !20, i64 540, !20, i64 542, !20, i64 544, !11, i64 546, !11, i64 547, !11, i64 548, !11, i64 549, !11, i64 550, !11, i64 551, !11, i64 552, !11, i64 553, !11, i64 554, !11, i64 555, !11, i64 556, !11, i64 557, !11, i64 558, !11, i64 559, !11, i64 560, !11, i64 561, !11, i64 562}
!117 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!118 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!119 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!120 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!121 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!122 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !20, i64 4, !20, i64 6, !12, i64 8}
!123 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!124 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!125 = !{!56, !12, i64 15912}
!126 = !{!116, !6, i64 376}
!127 = !{!116, !6, i64 384}
!128 = !{!116, !12, i64 0}
!129 = !{!116, !12, i64 108}
!130 = distinct !{!130, !113}
!131 = distinct !{!131, !113}
!132 = distinct !{!132, !113}
!133 = !{!56, !12, i64 15984}
!134 = !{!17, !12, i64 608}
!135 = distinct !{!135, !113}
!136 = !{!26, !6, i64 8}
!137 = !{!26, !12, i64 0}
!138 = !{!56, !12, i64 18592}
!139 = distinct !{!139, !113}
!140 = !{!141, !12, i64 0}
!141 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!142 = distinct !{!142, !113}
!143 = distinct !{!143, !113}
!144 = distinct !{!144, !113}
!145 = distinct !{!145, !113}
!146 = !{!56, !12, i64 18552}
!147 = !{!148, !6, i64 8}
!148 = !{!"_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}
!149 = !{!148, !12, i64 0}
!150 = !{!17, !12, i64 20}
!151 = !{!148, !6, i64 16}
!152 = !{!17, !6, i64 872}
!153 = distinct !{!153, !113}
!154 = distinct !{!154, !113}
!155 = distinct !{!155, !113}
!156 = !{!56, !6, i64 88}
!157 = !{!158, !12, i64 88}
!158 = !{!"_ZTS11ImFontAtlas", !12, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !11, i64 24, !6, i64 32, !11, i64 40, !11, i64 41, !6, i64 48, !6, i64 56, !12, i64 64, !12, i64 68, !18, i64 72, !18, i64 80, !70, i64 88, !159, i64 104, !160, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!159 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!160 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!161 = !{!56, !6, i64 32}
!162 = !{!56, !19, i64 23492}
!163 = !{!56, !12, i64 23512}
!164 = !{!165, !6, i64 0}
!165 = !{!"_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}
!166 = distinct !{!166, !113}
!167 = distinct !{!167, !113}
!168 = distinct !{!168, !113}
!169 = !{!56, !12, i64 23496}
!170 = !{!171, !171, i64 0}
!171 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!172 = !{!173, !19, i64 4}
!173 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!174 = distinct !{!174, !113}
!175 = distinct !{!175, !113}
!176 = distinct !{!176, !113}
!177 = !{!45, !11, i64 3612}
!178 = !{!45, !11, i64 3613}
!179 = !{!45, !11, i64 3614}
!180 = !{!45, !11, i64 3615}
!181 = !{!45, !12, i64 14264}
!182 = !{!20, !20, i64 0}
!183 = distinct !{!183, !113}
!184 = !{!45, !19, i64 3584}
!185 = !{!45, !19, i64 3588}
!186 = !{!45, !19, i64 240}
!187 = !{!45, !19, i64 244}
!188 = !{!19, !19, i64 0}
!189 = distinct !{!189, !113}
!190 = distinct !{!190, !113}
!191 = distinct !{!191, !113}
!192 = !{!45, !19, i64 3600}
!193 = !{!45, !46, i64 3608}
!194 = !{!45, !19, i64 14252}
!195 = !{!56, !6, i64 16112}
!196 = !{!56, !19, i64 16132}
!197 = !{!56, !19, i64 16144}
!198 = !{!56, !19, i64 16148}
!199 = !{!200, !12, i64 0}
!200 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!201 = !{!200, !11, i64 9}
!202 = !{!200, !11, i64 8}
!203 = distinct !{!203, !113}
!204 = !{!205, !20, i64 2}
!205 = !{!"_ZTS19ImGuiKeyRoutingData", !20, i64 0, !20, i64 2, !7, i64 4, !12, i64 8, !12, i64 12}
!206 = !{!205, !12, i64 8}
!207 = !{!205, !20, i64 0}
!208 = distinct !{!208, !113}
!209 = distinct !{!209, !113}
!210 = !{!56, !11, i64 18244}
!211 = !{!56, !12, i64 18240}
!212 = !{!56, !6, i64 16088}
!213 = !{!17, !6, i64 888}
!214 = !{!56, !6, i64 16096}
!215 = !{!56, !6, i64 16104}
!216 = !{!56, !12, i64 16176}
!217 = !{!56, !12, i64 16224}
!218 = !{!56, !19, i64 16184}
!219 = !{!56, !11, i64 16189}
!220 = !{!56, !62, i64 16216}
!221 = !{!56, !6, i64 16208}
!222 = !{!56, !12, i64 16160}
!223 = !{!56, !19, i64 16168}
!224 = !{!56, !11, i64 16164}
!225 = !{!56, !12, i64 19400}
!226 = !{!56, !19, i64 19408}
!227 = !{!56, !19, i64 19412}
!228 = !{!56, !11, i64 19028}
!229 = !{!56, !12, i64 19060}
!230 = !{!56, !12, i64 19056}
!231 = !{!56, !12, i64 18616}
!232 = !{!56, !24, i64 18664}
!233 = !{!56, !62, i64 18660}
!234 = !{!56, !11, i64 221}
!235 = !{!56, !11, i64 222}
!236 = !{!56, !12, i64 18624}
!237 = !{!56, !12, i64 18628}
!238 = !{!56, !12, i64 18632}
!239 = !{!56, !12, i64 18636}
!240 = !{!56, !11, i64 18670}
!241 = !{!56, !11, i64 18671}
!242 = !{!56, !12, i64 18620}
!243 = !{!56, !6, i64 18968}
!244 = !{!10, !11, i64 3}
!245 = !{!17, !11, i64 183}
!246 = !{!17, !20, i64 200}
!247 = distinct !{!247, !113}
!248 = !{!116, !20, i64 504}
!249 = distinct !{!249, !113}
!250 = distinct !{!250, !113}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #1 align 2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui7TreePopEv() local_unnamed_addr #6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef %0) local_unnamed_addr #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 23764
  %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 23765
  %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.324, ptr noundef %0, i32 noundef 0)
  br i1 %43, label %44, label %49

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

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

50:                                               ; preds = %44
  %51 = tail call noundef ptr @_ZN5ImGui10GetVersionEv()
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.325, 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.326, double noundef %55, double noundef %56)
  %57 = getelementptr inbounds i8, ptr %32, i64 228
  %58 = load i32, ptr %57, align 4, !tbaa !47
  %59 = getelementptr inbounds i8, ptr %32, i64 232
  %60 = load i32, ptr %59, align 8, !tbaa !48
  %61 = sdiv i32 %60, 3
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.327, 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 !49
  %64 = getelementptr inbounds i8, ptr %32, i64 244
  %65 = load i32, ptr %64, align 4, !tbaa !50
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.328, 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 23772
  %67 = load i32, ptr %66, align 4, !tbaa !51
  %68 = icmp slt i32 %67, 0
  br i1 %68, label %69, label %70

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

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

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

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

77:                                               ; preds = %75
  %78 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.347)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.348)
  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.349, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 100, i32 noundef 0, ptr noundef null, ptr noundef null)
  %81 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !53
  %.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 23755
  %86 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.350, ptr noundef nonnull %85)
  br i1 %86, label %87, label %91

87:                                               ; preds = %84
  %88 = load i8, ptr %85, align 1, !tbaa !54, !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.351)
  %92 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.352, 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.353)
  %93 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.354, 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.355)
  %94 = getelementptr inbounds i8, ptr %32, i64 23767
  %95 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.356, ptr noundef nonnull %94)
  %96 = getelementptr inbounds i8, ptr %32, i64 23766
  %97 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.357, 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.358, ptr noundef nonnull %66, ptr noundef nonnull %2, i32 noundef 8, i32 noundef 8)
  %101 = load i8, ptr %96, align 2, !tbaa !103, !range !13, !noundef !14
  %102 = zext i1 %100 to i8
  %103 = or i8 %101, %102
  %.not430 = icmp eq i8 %103, 0
  store i8 %103, ptr %96, align 2, !tbaa !103
  br i1 %.not430, label %254, label %104

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

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

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

263:                                              ; preds = %254
  %264 = getelementptr inbounds i8, ptr %32, i64 18608
  %265 = load ptr, ptr %264, align 8, !tbaa !104
  %.not433 = icmp eq ptr %265, null
  br i1 %.not433, label %.loopexit478, label %.preheader477

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

.lr.ph484:                                        ; preds = %.preheader477
  %269 = getelementptr inbounds i8, ptr %32, i64 15912
  %270 = getelementptr inbounds i8, ptr %16, i64 8
  %271 = getelementptr inbounds i8, ptr %10, i64 8
  br label %272

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

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

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

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

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

295:                                              ; preds = %288
  %296 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  %297 = getelementptr inbounds i8, ptr %273, i64 232
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %298 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %297, ptr noundef nonnull align 4 dereferenceable(8) %6)
  store <2 x float> %298, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %299 = getelementptr inbounds i8, ptr %273, i64 240
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %300 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %299, ptr noundef nonnull align 4 dereferenceable(8) %8)
  store <2 x float> %300, ptr %7, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %296, ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %7, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  br label %301

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

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

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

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

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

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

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

331:                                              ; preds = %311
  %332 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %13, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %333 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %10, ptr noundef nonnull align 4 dereferenceable(8) %13)
  store <2 x float> %333, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %334 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %271, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %334, ptr %14, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %332, ptr noundef nonnull align 4 dereferenceable(8) %12, ptr noundef nonnull align 4 dereferenceable(8) %14, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  br label %335

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

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

361:                                              ; preds = %339
  %362 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %363 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %16, ptr noundef nonnull align 4 dereferenceable(8) %19)
  store <2 x float> %363, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %21, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %364 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %270, ptr noundef nonnull align 4 dereferenceable(8) %21)
  store <2 x float> %364, ptr %20, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %362, ptr noundef nonnull align 4 dereferenceable(8) %18, ptr noundef nonnull align 4 dereferenceable(8) %20, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  br label %365

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

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

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

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

372:                                              ; preds = %.loopexit478, %75
  %373 = getelementptr inbounds i8, ptr %32, i64 15984
  %374 = load i32, ptr %373, align 8, !tbaa !126
  %375 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.367, ptr noundef nonnull @.str.368, i32 noundef %374)
  br i1 %375, label %376, label %404

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

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

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

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

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

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

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

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

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

._crit_edge491:                                   ; preds = %.lr.ph490, %404
  %.0386.lcssa = phi i32 [ 0, %404 ], [ %413, %.lr.ph490 ]
  %408 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.372, ptr noundef nonnull @.str.373, i32 noundef %.0386.lcssa)
  br i1 %408, label %417, label %445

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

417:                                              ; preds = %._crit_edge491
  %418 = getelementptr inbounds i8, ptr %32, i64 23769
  %419 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.374, ptr noundef nonnull %418)
  %420 = getelementptr inbounds i8, ptr %32, i64 23770
  %421 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.375, ptr noundef nonnull %420)
  %422 = load i32, ptr %405, align 8, !tbaa !131
  %423 = icmp sgt i32 %422, 0
  br i1 %423, label %.lr.ph499, label %._crit_edge500

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

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

._crit_edge495:                                   ; preds = %.lr.ph494, %.lr.ph499
  %429 = getelementptr inbounds i8, ptr %425, i64 136
  %430 = load i32, ptr %429, align 8, !tbaa !133
  %431 = icmp sgt i32 %430, 0
  br i1 %431, label %.lr.ph494.1, label %._crit_edge495.1

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

._crit_edge495.1:                                 ; preds = %.lr.ph494.1, %._crit_edge495
  %437 = add nuw nsw i32 %.0390497, 1
  %438 = load i32, ptr %405, align 8, !tbaa !131
  %439 = icmp slt i32 %437, %438
  br i1 %439, label %.lr.ph499, label %._crit_edge500, !llvm.loop !136

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

445:                                              ; preds = %._crit_edge500, %._crit_edge491
  %446 = load i32, ptr %405, align 8, !tbaa !131
  %447 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.377, ptr noundef nonnull @.str.378, i32 noundef %446)
  br i1 %447, label %448, label %458

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

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

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

458:                                              ; preds = %._crit_edge504, %445
  %459 = getelementptr inbounds i8, ptr %32, i64 18552
  %460 = load i32, ptr %459, align 8, !tbaa !138
  %461 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.379, ptr noundef nonnull @.str.380, i32 noundef %460)
  br i1 %461, label %.preheader474, label %496

.preheader474:                                    ; preds = %458
  %462 = load i32, ptr %459, align 8, !tbaa !138
  %463 = icmp sgt i32 %462, 0
  br i1 %463, label %.lr.ph506, label %._crit_edge507

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

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

468:                                              ; preds = %.lr.ph506
  %469 = getelementptr inbounds i8, ptr %466, i64 8
  %470 = load ptr, ptr %469, align 8, !tbaa !105
  %471 = getelementptr inbounds i8, ptr %466, i64 20
  %472 = load i32, ptr %471, align 4, !tbaa !142
  %.fr464 = freeze i32 %472
  %473 = and i32 %.fr464, 16777216
  %.not463 = icmp eq i32 %473, 0
  %spec.select = select i1 %.not463, ptr @.str.16, ptr @.str.383
  %474 = and i32 %.fr464, 268435456
  %.not465 = icmp eq i32 %474, 0
  %spec.select461 = select i1 %.not465, ptr @.str.16, ptr @.str.384
  br label %.thread459

.thread459:                                       ; preds = %468, %.lr.ph506
  %475 = phi ptr [ @.str.382, %.lr.ph506 ], [ %470, %468 ]
  %476 = phi ptr [ @.str.16, %.lr.ph506 ], [ %spec.select, %468 ]
  %477 = phi ptr [ @.str.16, %.lr.ph506 ], [ %spec.select461, %468 ]
  %478 = getelementptr inbounds i8, ptr %464, i64 16
  %479 = load ptr, ptr %478, align 8, !tbaa !143
  %.not450 = icmp eq ptr %479, null
  br i1 %.not450, label %483, label %480

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

483:                                              ; preds = %.thread459, %480
  %484 = phi ptr [ %482, %480 ], [ @.str.382, %.thread459 ]
  br i1 %.not449, label %491, label %485

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

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

491:                                              ; preds = %483, %485, %488
  %492 = phi ptr [ %490, %488 ], [ @.str.382, %485 ], [ @.str.382, %483 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.381, i32 noundef %467, ptr noundef %475, ptr noundef nonnull %476, ptr noundef nonnull %477, ptr noundef %484, ptr noundef %492)
  %493 = add nuw nsw i32 %.0406505, 1
  %494 = load i32, ptr %459, align 8, !tbaa !138
  %495 = icmp slt i32 %493, %494
  br i1 %495, label %.lr.ph506, label %._crit_edge507, !llvm.loop !145

496:                                              ; preds = %._crit_edge507, %458
  %497 = getelementptr inbounds i8, ptr %32, i64 19328
  %498 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %497)
  %499 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.385, ptr noundef nonnull @.str.386, i32 noundef %498)
  br i1 %499, label %.preheader473, label %508

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

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

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

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

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

508:                                              ; preds = %._crit_edge510, %496
  %509 = getelementptr inbounds i8, ptr %32, i64 19248
  %510 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %509)
  %511 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.388, ptr noundef nonnull @.str.389, i32 noundef %510)
  br i1 %511, label %.preheader472, label %520

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

550:                                              ; preds = %549, %548
  %551 = getelementptr inbounds i8, ptr %32, i64 23492
  %552 = load float, ptr %551, align 4, !tbaa !154
  %553 = fpext float %552 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.398, double noundef %553)
  %554 = getelementptr inbounds i8, ptr %32, i64 23512
  %555 = load i32, ptr %554, align 8, !tbaa !155
  %556 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.399, ptr noundef nonnull @.str.400, i32 noundef %555)
  br i1 %556, label %.preheader471, label %564

.preheader471:                                    ; preds = %550
  %557 = load i32, ptr %554, align 8, !tbaa !155
  %558 = icmp sgt i32 %557, 0
  br i1 %558, label %.lr.ph515, label %._crit_edge516

._crit_edge516:                                   ; preds = %.lr.ph515, %.preheader471
  call void @_ZN5ImGui7TreePopEv()
  br label %564

.lr.ph515:                                        ; preds = %.preheader471, %.lr.ph515
  %.0405514 = phi i32 [ %561, %.lr.ph515 ], [ 0, %.preheader471 ]
  %559 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %554, i32 noundef %.0405514)
  %560 = load ptr, ptr %559, align 8, !tbaa !156
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.401, ptr noundef %560)
  %561 = add nuw nsw i32 %.0405514, 1
  %562 = load i32, ptr %554, align 8, !tbaa !155
  %563 = icmp slt i32 %561, %562
  br i1 %563, label %.lr.ph515, label %._crit_edge516, !llvm.loop !158

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

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

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

.lr.ph520:                                        ; preds = %568, %.lr.ph520
  %.0404518 = phi ptr [ %570, %.lr.ph520 ], [ %569, %568 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0404518)
  %570 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %565, ptr noundef nonnull %.0404518)
  %.not435 = icmp eq ptr %570, null
  br i1 %.not435, label %._crit_edge521, label %.lr.ph520, !llvm.loop !159

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

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

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

.lr.ph525:                                        ; preds = %575, %.lr.ph525
  %.0403523 = phi ptr [ %577, %.lr.ph525 ], [ %576, %575 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0403523)
  %577 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %572, ptr noundef nonnull %.0403523)
  %.not436 = icmp eq ptr %577, null
  br i1 %.not436, label %._crit_edge526, label %.lr.ph525, !llvm.loop !160

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

619:                                              ; preds = %647
  %620 = getelementptr inbounds i8, ptr %32, i64 3620
  %621 = load i8, ptr %620, align 4, !tbaa !166, !range !13, !noundef !14
  %622 = trunc nuw i8 %621 to i1
  %623 = select i1 %622, ptr @.str.417, ptr @.str.16
  %624 = getelementptr inbounds i8, ptr %32, i64 3621
  %625 = load i8, ptr %624, align 1, !tbaa !167, !range !13, !noundef !14
  %626 = trunc nuw i8 %625 to i1
  %627 = select i1 %626, ptr @.str.418, ptr @.str.16
  %628 = getelementptr inbounds i8, ptr %32, i64 3622
  %629 = load i8, ptr %628, align 2, !tbaa !168, !range !13, !noundef !14
  %630 = trunc nuw i8 %629 to i1
  %631 = select i1 %630, ptr @.str.419, ptr @.str.16
  %632 = getelementptr inbounds i8, ptr %32, i64 3623
  %633 = load i8, ptr %632, align 1, !tbaa !169, !range !13, !noundef !14
  %634 = trunc nuw i8 %633 to i1
  %635 = select i1 %634, ptr @.str.420, ptr @.str.16
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.416, ptr noundef nonnull %623, ptr noundef nonnull %627, ptr noundef nonnull %631, ptr noundef nonnull %635)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.421)
  %636 = getelementptr inbounds i8, ptr %32, i64 14272
  %637 = load i32, ptr %636, align 8, !tbaa !170
  %638 = icmp sgt i32 %637, 0
  br i1 %638, label %.lr.ph532, label %._crit_edge533

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

749:                                              ; preds = %748, %746
  %750 = getelementptr inbounds i8, ptr %32, i64 3608
  %751 = load float, ptr %750, align 8, !tbaa !179
  %752 = fpext float %751 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.433, double noundef %752)
  %753 = getelementptr inbounds i8, ptr %32, i64 3616
  %754 = load i32, ptr %753, align 8, !tbaa !180
  %755 = call noundef ptr @_ZL18GetMouseSourceName16ImGuiMouseSource(i32 noundef %754)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.434, ptr noundef %755)
  %756 = getelementptr inbounds i8, ptr %32, i64 14260
  %757 = load float, ptr %756, align 4, !tbaa !181
  %758 = fpext float %757 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.435, double noundef %758)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.436)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %759 = getelementptr inbounds i8, ptr %32, i64 16112
  %760 = load ptr, ptr %759, align 8, !tbaa !182
  %.not437 = icmp eq ptr %760, null
  br i1 %.not437, label %764, label %761

761:                                              ; preds = %749
  %762 = getelementptr inbounds i8, ptr %760, i64 8
  %763 = load ptr, ptr %762, align 8, !tbaa !105
  br label %764

764:                                              ; preds = %749, %761
  %765 = phi ptr [ %763, %761 ], [ @.str.382, %749 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.437, ptr noundef %765)
  %766 = getelementptr inbounds i8, ptr %32, i64 16132
  %767 = load float, ptr %766, align 4, !tbaa !183
  %768 = fpext float %767 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.438, double noundef %768)
  %769 = getelementptr inbounds i8, ptr %32, i64 16144
  %770 = load float, ptr %769, align 8, !tbaa !184
  %771 = fpext float %770 to double
  %772 = getelementptr inbounds i8, ptr %32, i64 16148
  %773 = load float, ptr %772, align 4, !tbaa !185
  %774 = fpext float %773 to double
  %775 = fcmp ogt float %770, %773
  %776 = fcmp olt float %770, %773
  %777 = select i1 %776, ptr @.str.440, ptr @.str.441
  %778 = select i1 %775, ptr @.str.307, ptr %777
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.439, double noundef %771, double noundef %774, ptr noundef nonnull %778)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.442)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  %779 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %780 = fmul float %779, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0xB810000000000000, float noundef %780)
  %781 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef nonnull @.str.443, ptr noundef nonnull align 4 dereferenceable(8) %23)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  br i1 %781, label %.preheader470, label %802

782:                                              ; preds = %800
  call void @_ZN5ImGui10EndListBoxEv()
  br label %802

.preheader470:                                    ; preds = %764, %800
  %.0393537 = phi i32 [ %801, %800 ], [ 512, %764 ]
  %783 = call noundef ptr @_ZN5ImGui15GetKeyOwnerDataEP12ImGuiContext8ImGuiKey(ptr noundef %32, i32 noundef %.0393537)
  %784 = load i32, ptr %783, align 4, !tbaa !186
  %785 = icmp eq i32 %784, -1
  br i1 %785, label %800, label %786

786:                                              ; preds = %.preheader470
  %787 = call noundef ptr @_ZN5ImGui10GetKeyNameE8ImGuiKey(i32 noundef %.0393537)
  %788 = load i32, ptr %783, align 4, !tbaa !186
  %789 = getelementptr inbounds i8, ptr %783, i64 9
  %790 = load i8, ptr %789, align 1, !tbaa !188, !range !13, !noundef !14
  %791 = trunc nuw i8 %790 to i1
  br i1 %791, label %797, label %792

792:                                              ; preds = %786
  %793 = getelementptr inbounds i8, ptr %783, i64 8
  %794 = load i8, ptr %793, align 4, !tbaa !189, !range !13, !noundef !14
  %795 = trunc nuw i8 %794 to i1
  %796 = select i1 %795, ptr @.str.446, ptr @.str.16
  br label %797

797:                                              ; preds = %786, %792
  %798 = phi ptr [ %796, %792 ], [ @.str.445, %786 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.444, ptr noundef %787, i32 noundef %788, ptr noundef nonnull %798)
  %799 = load i32, ptr %783, align 4, !tbaa !186
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %799)
  br label %800

800:                                              ; preds = %.preheader470, %797
  %801 = add nuw nsw i32 %.0393537, 1
  %exitcond568.not = icmp eq i32 %801, 652
  br i1 %exitcond568.not, label %782, label %.preheader470, !llvm.loop !190

802:                                              ; preds = %782, %764
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.447)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  %803 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  %804 = fmul float %803, 6.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 0xB810000000000000, float noundef %804)
  %805 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef nonnull @.str.448, ptr noundef nonnull align 4 dereferenceable(8) %24)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  br i1 %805, label %.preheader469, label %824

.preheader469:                                    ; preds = %802
  %806 = getelementptr inbounds i8, ptr %32, i64 17928
  %807 = getelementptr inbounds i8, ptr %32, i64 18208
  br label %809

808:                                              ; preds = %._crit_edge542
  call void @_ZN5ImGui10EndListBoxEv()
  br label %824

809:                                              ; preds = %.preheader469, %._crit_edge542
  %indvars.iv569 = phi i64 [ 512, %.preheader469 ], [ %indvars.iv.next570, %._crit_edge542 ]
  %810 = add nsw i64 %indvars.iv569, -512
  %811 = getelementptr inbounds [140 x i16], ptr %806, i64 0, i64 %810
  %812 = load i16, ptr %811, align 2, !tbaa !172
  %.not446538 = icmp eq i16 %812, -1
  br i1 %.not446538, label %._crit_edge542, label %.lr.ph541.preheader

.lr.ph541.preheader:                              ; preds = %809
  %813 = trunc nuw nsw i64 %indvars.iv569 to i32
  br label %.lr.ph541

._crit_edge542:                                   ; preds = %.lr.ph541, %809
  %indvars.iv.next570 = add nuw nsw i64 %indvars.iv569, 1
  %exitcond572.not = icmp eq i64 %indvars.iv.next570, 652
  br i1 %exitcond572.not, label %808, label %809, !llvm.loop !191

.lr.ph541:                                        ; preds = %.lr.ph541.preheader, %.lr.ph541
  %.0389539 = phi i16 [ %823, %.lr.ph541 ], [ %812, %.lr.ph541.preheader ]
  %814 = sext i16 %.0389539 to i32
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %25) #9
  %815 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN8ImVectorI19ImGuiKeyRoutingDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %807, i32 noundef %814)
  %816 = getelementptr inbounds i8, ptr %815, i64 2
  %817 = load i16, ptr %816, align 2, !tbaa !192
  %818 = zext i16 %817 to i32
  %819 = or i32 %813, %818
  call void @_ZN5ImGui15GetKeyChordNameEiPci(i32 noundef %819, ptr noundef nonnull %25, i32 noundef 64)
  %820 = getelementptr inbounds i8, ptr %815, i64 8
  %821 = load i32, ptr %820, align 4, !tbaa !194
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.449, ptr noundef nonnull %25, i32 noundef %821)
  %822 = load i32, ptr %820, align 4, !tbaa !194
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %822)
  %823 = load i16, ptr %815, align 4, !tbaa !195
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %25) #9
  %.not446 = icmp eq i16 %823, -1
  br i1 %.not446, label %._crit_edge542, label %.lr.ph541, !llvm.loop !196

824:                                              ; preds = %808, %802
  %825 = getelementptr inbounds i8, ptr %32, i64 18244
  %826 = load i8, ptr %825, align 4, !tbaa !197, !range !13, !noundef !14
  %827 = zext nneg i8 %826 to i32
  %828 = getelementptr inbounds i8, ptr %32, i64 18240
  %829 = load i32, ptr %828, align 8, !tbaa !198
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.450, i32 noundef %827, i32 noundef %829)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %830

830:                                              ; preds = %824, %590
  %831 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.451)
  br i1 %831, label %832, label %957

832:                                              ; preds = %830
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.452)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %833 = getelementptr inbounds i8, ptr %32, i64 16088
  %834 = load ptr, ptr %833, align 8, !tbaa !199
  %.not438 = icmp eq ptr %834, null
  br i1 %.not438, label %838, label %835

835:                                              ; preds = %832
  %836 = getelementptr inbounds i8, ptr %834, i64 8
  %837 = load ptr, ptr %836, align 8, !tbaa !105
  br label %838

838:                                              ; preds = %832, %835
  %839 = phi ptr [ %837, %835 ], [ @.str.382, %832 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.453, ptr noundef %839)
  %840 = load ptr, ptr %833, align 8, !tbaa !199
  %.not439 = icmp eq ptr %840, null
  br i1 %.not439, label %846, label %841

841:                                              ; preds = %838
  %842 = getelementptr inbounds i8, ptr %840, i64 888
  %843 = load ptr, ptr %842, align 8, !tbaa !200
  %844 = getelementptr inbounds i8, ptr %843, i64 8
  %845 = load ptr, ptr %844, align 8, !tbaa !105
  br label %846

846:                                              ; preds = %838, %841
  %847 = phi ptr [ %845, %841 ], [ @.str.382, %838 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.454, ptr noundef %847)
  %848 = getelementptr inbounds i8, ptr %32, i64 16096
  %849 = load ptr, ptr %848, align 8, !tbaa !201
  %.not440 = icmp eq ptr %849, null
  br i1 %.not440, label %853, label %850

850:                                              ; preds = %846
  %851 = getelementptr inbounds i8, ptr %849, i64 8
  %852 = load ptr, ptr %851, align 8, !tbaa !105
  br label %853

853:                                              ; preds = %846, %850
  %854 = phi ptr [ %852, %850 ], [ @.str.382, %846 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.455, ptr noundef %854)
  %855 = getelementptr inbounds i8, ptr %32, i64 16104
  %856 = load ptr, ptr %855, align 8, !tbaa !202
  %.not441 = icmp eq ptr %856, null
  br i1 %.not441, label %860, label %857

857:                                              ; preds = %853
  %858 = getelementptr inbounds i8, ptr %856, i64 8
  %859 = load ptr, ptr %858, align 8, !tbaa !105
  br label %860

860:                                              ; preds = %853, %857
  %861 = phi ptr [ %859, %857 ], [ @.str.382, %853 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.456, ptr noundef %861)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.457)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %862 = getelementptr inbounds i8, ptr %32, i64 16176
  %863 = load i32, ptr %862, align 8, !tbaa !203
  %864 = getelementptr inbounds i8, ptr %32, i64 16224
  %865 = load i32, ptr %864, align 8, !tbaa !204
  %866 = getelementptr inbounds i8, ptr %32, i64 16184
  %867 = load float, ptr %866, align 8, !tbaa !205
  %868 = fpext float %867 to double
  %869 = getelementptr inbounds i8, ptr %32, i64 16189
  %870 = load i8, ptr %869, align 1, !tbaa !206, !range !13, !noundef !14
  %871 = zext nneg i8 %870 to i32
  %872 = getelementptr inbounds i8, ptr %32, i64 16216
  %873 = load i32, ptr %872, align 8, !tbaa !207
  %874 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %873)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.458, i32 noundef %863, i32 noundef %865, double noundef %868, i32 noundef %871, ptr noundef %874)
  %875 = load i32, ptr %862, align 8, !tbaa !203
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %875)
  %876 = getelementptr inbounds i8, ptr %32, i64 16208
  %877 = load ptr, ptr %876, align 8, !tbaa !208
  %.not442 = icmp eq ptr %877, null
  br i1 %.not442, label %881, label %878

878:                                              ; preds = %860
  %879 = getelementptr inbounds i8, ptr %877, i64 8
  %880 = load ptr, ptr %879, align 8, !tbaa !105
  br label %881

881:                                              ; preds = %860, %878
  %882 = phi ptr [ %880, %878 ], [ @.str.382, %860 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.459, ptr noundef %882)
  %883 = getelementptr inbounds i8, ptr %32, i64 18244
  %884 = load i8, ptr %883, align 4, !tbaa !197, !range !13, !noundef !14
  %885 = zext nneg i8 %884 to i32
  %886 = getelementptr inbounds i8, ptr %32, i64 18240
  %887 = load i32, ptr %886, align 8, !tbaa !198
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.460, i32 noundef %885, i32 noundef %887)
  %888 = getelementptr inbounds i8, ptr %32, i64 16160
  %889 = load i32, ptr %888, align 8, !tbaa !209
  %890 = getelementptr inbounds i8, ptr %32, i64 16168
  %891 = load float, ptr %890, align 8, !tbaa !210
  %892 = fpext float %891 to double
  %893 = getelementptr inbounds i8, ptr %32, i64 16164
  %894 = load i8, ptr %893, align 4, !tbaa !211, !range !13, !noundef !14
  %895 = zext nneg i8 %894 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.461, i32 noundef %889, double noundef %892, i32 noundef %895)
  %896 = getelementptr inbounds i8, ptr %32, i64 19400
  %897 = load i32, ptr %896, align 8, !tbaa !212
  %898 = getelementptr inbounds i8, ptr %32, i64 19408
  %899 = load float, ptr %898, align 8, !tbaa !213
  %900 = fpext float %899 to double
  %901 = getelementptr inbounds i8, ptr %32, i64 19412
  %902 = load float, ptr %901, align 4, !tbaa !214
  %903 = fpext float %902 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.462, i32 noundef %897, double noundef %900, double noundef %903)
  %904 = getelementptr inbounds i8, ptr %32, i64 19028
  %905 = load i8, ptr %904, align 4, !tbaa !215, !range !13, !noundef !14
  %906 = zext nneg i8 %905 to i32
  %907 = getelementptr inbounds i8, ptr %32, i64 19060
  %908 = load i32, ptr %907, align 4, !tbaa !216
  %909 = getelementptr inbounds i8, ptr %32, i64 19072
  %910 = getelementptr inbounds i8, ptr %32, i64 19056
  %911 = load i32, ptr %910, align 8, !tbaa !217
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.463, i32 noundef %906, i32 noundef %908, ptr noundef nonnull %909, i32 noundef %911)
  %912 = load i32, ptr %907, align 4, !tbaa !216
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %912)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.464)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %913 = getelementptr inbounds i8, ptr %32, i64 18608
  %914 = load ptr, ptr %913, align 8, !tbaa !104
  %.not443 = icmp eq ptr %914, null
  br i1 %.not443, label %918, label %915

915:                                              ; preds = %881
  %916 = getelementptr inbounds i8, ptr %914, i64 8
  %917 = load ptr, ptr %916, align 8, !tbaa !105
  br label %918

918:                                              ; preds = %881, %915
  %919 = phi ptr [ %917, %915 ], [ @.str.382, %881 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.465, ptr noundef %919)
  %920 = getelementptr inbounds i8, ptr %32, i64 18616
  %921 = load i32, ptr %920, align 8, !tbaa !218
  %922 = getelementptr inbounds i8, ptr %32, i64 18664
  %923 = load i32, ptr %922, align 8, !tbaa !219
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.466, i32 noundef %921, i32 noundef %923)
  %924 = load i32, ptr %920, align 8, !tbaa !218
  call void @_ZN5ImGui22DebugLocateItemOnHoverEj(i32 noundef %924)
  %925 = getelementptr inbounds i8, ptr %32, i64 18660
  %926 = load i32, ptr %925, align 4, !tbaa !220
  %927 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %926)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.467, ptr noundef %927)
  %928 = getelementptr inbounds i8, ptr %32, i64 221
  %929 = load i8, ptr %928, align 1, !tbaa !221, !range !13, !noundef !14
  %930 = zext nneg i8 %929 to i32
  %931 = getelementptr inbounds i8, ptr %32, i64 222
  %932 = load i8, ptr %931, align 2, !tbaa !222, !range !13, !noundef !14
  %933 = zext nneg i8 %932 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.468, i32 noundef %930, i32 noundef %933)
  %934 = getelementptr inbounds i8, ptr %32, i64 18624
  %935 = load i32, ptr %934, align 8, !tbaa !223
  %936 = getelementptr inbounds i8, ptr %32, i64 18628
  %937 = load i32, ptr %936, align 4, !tbaa !224
  %938 = getelementptr inbounds i8, ptr %32, i64 18632
  %939 = load i32, ptr %938, align 8, !tbaa !225
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.469, i32 noundef %935, i32 noundef %937, i32 noundef %939)
  %940 = getelementptr inbounds i8, ptr %32, i64 18636
  %941 = load i32, ptr %940, align 4, !tbaa !226
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.470, i32 noundef %941)
  %942 = getelementptr inbounds i8, ptr %32, i64 18670
  %943 = load i8, ptr %942, align 2, !tbaa !227, !range !13, !noundef !14
  %944 = zext nneg i8 %943 to i32
  %945 = getelementptr inbounds i8, ptr %32, i64 18671
  %946 = load i8, ptr %945, align 1, !tbaa !228, !range !13, !noundef !14
  %947 = zext nneg i8 %946 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.471, i32 noundef %944, i32 noundef %947)
  %948 = getelementptr inbounds i8, ptr %32, i64 18620
  %949 = load i32, ptr %948, align 4, !tbaa !229
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.472, i32 noundef %949)
  %950 = getelementptr inbounds i8, ptr %32, i64 18968
  %951 = load ptr, ptr %950, align 8, !tbaa !230
  %.not444 = icmp eq ptr %951, null
  br i1 %.not444, label %955, label %952

952:                                              ; preds = %918
  %953 = getelementptr inbounds i8, ptr %951, i64 8
  %954 = load ptr, ptr %953, align 8, !tbaa !105
  br label %955

955:                                              ; preds = %918, %952
  %956 = phi ptr [ %954, %952 ], [ @.str.382, %918 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.473, ptr noundef %956)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %957

957:                                              ; preds = %955, %830
  %958 = getelementptr inbounds i8, ptr %32, i64 23766
  %959 = load i8, ptr %958, align 2, !tbaa !103, !range !13, !noundef !14
  %960 = trunc nuw i8 %959 to i1
  br i1 %960, label %965, label %961

961:                                              ; preds = %957
  %962 = getelementptr inbounds i8, ptr %32, i64 23767
  %963 = load i8, ptr %962, align 1, !tbaa !231, !range !13, !noundef !14
  %964 = trunc nuw i8 %963 to i1
  br i1 %964, label %965, label %.loopexit468

965:                                              ; preds = %961, %957
  %966 = load i32, ptr %373, align 8, !tbaa !126
  %967 = icmp sgt i32 %966, 0
  br i1 %967, label %.lr.ph546, label %.loopexit468

.lr.ph546:                                        ; preds = %965
  %968 = getelementptr inbounds i8, ptr %26, i64 8
  %969 = getelementptr inbounds i8, ptr %32, i64 23767
  br label %970

970:                                              ; preds = %.lr.ph546, %1000
  %.0387544 = phi i32 [ 0, %.lr.ph546 ], [ %1001, %1000 ]
  %971 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %373, i32 noundef %.0387544)
  %972 = load ptr, ptr %971, align 8, !tbaa !5
  %973 = getelementptr inbounds i8, ptr %972, i64 183
  %974 = load i8, ptr %973, align 1, !tbaa !232, !range !13, !noundef !14
  %975 = trunc nuw i8 %974 to i1
  br i1 %975, label %976, label %1000

976:                                              ; preds = %970
  %977 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %972)
  %978 = load i8, ptr %958, align 2, !tbaa !103, !range !13, !noundef !14
  %979 = trunc nuw i8 %978 to i1
  br i1 %979, label %980, label %985

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

985:                                              ; preds = %980, %976
  %986 = load i8, ptr %969, align 1, !tbaa !231, !range !13, !noundef !14
  %987 = trunc nuw i8 %986 to i1
  br i1 %987, label %988, label %1000

988:                                              ; preds = %985
  %989 = getelementptr inbounds i8, ptr %972, i64 20
  %990 = load i32, ptr %989, align 4, !tbaa !142
  %991 = and i32 %990, 16777216
  %.not445 = icmp eq i32 %991, 0
  br i1 %.not445, label %992, label %1000

992:                                              ; preds = %988
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  %993 = getelementptr inbounds i8, ptr %972, i64 200
  %994 = load i16, ptr %993, align 8, !tbaa !233
  %995 = sext i16 %994 to i32
  %996 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %27, i64 noundef 32, ptr noundef nonnull @.str.316, i32 noundef %995)
  %997 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %998 = getelementptr inbounds i8, ptr %972, i64 32
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %29, float noundef %997, float noundef %997)
  %999 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %998, ptr noundef nonnull align 4 dereferenceable(8) %29)
  store <2 x float> %999, ptr %28, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %977, ptr noundef nonnull align 4 dereferenceable(8) %998, 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) %977, ptr noundef nonnull align 4 dereferenceable(8) %998, i32 noundef -1, ptr noundef nonnull %27, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  br label %1000

1000:                                             ; preds = %985, %988, %992, %970
  %1001 = add nuw nsw i32 %.0387544, 1
  %1002 = load i32, ptr %373, align 8, !tbaa !126
  %1003 = icmp slt i32 %1001, %1002
  br i1 %1003, label %970, label %.loopexit468, !llvm.loop !234

.loopexit468:                                     ; preds = %1000, %965, %961
  %1004 = getelementptr inbounds i8, ptr %32, i64 23768
  %1005 = load i8, ptr %1004, align 4, !tbaa !106, !range !13, !noundef !14
  %1006 = trunc nuw i8 %1005 to i1
  br i1 %1006, label %.preheader466, label %.loopexit467

.preheader466:                                    ; preds = %.loopexit468
  %1007 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %509)
  %1008 = icmp sgt i32 %1007, 0
  br i1 %1008, label %.lr.ph550, label %.loopexit467

.lr.ph550:                                        ; preds = %.preheader466
  %1009 = getelementptr inbounds i8, ptr %32, i64 15912
  %1010 = getelementptr inbounds i8, ptr %31, i64 8
  %1011 = getelementptr inbounds i8, ptr %30, i64 8
  br label %1012

1012:                                             ; preds = %.lr.ph550, %.loopexit
  %.0383549 = phi i32 [ 0, %.lr.ph550 ], [ %1048, %.loopexit ]
  %1013 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %509, i32 noundef %.0383549)
  %1014 = icmp eq ptr %1013, null
  br i1 %1014, label %.loopexit, label %1015

1015:                                             ; preds = %1012
  %1016 = getelementptr inbounds i8, ptr %1013, i64 104
  %1017 = load i32, ptr %1016, align 8, !tbaa !107
  %1018 = load i32, ptr %1009, align 8, !tbaa !117
  %1019 = add nsw i32 %1018, -1
  %1020 = icmp slt i32 %1017, %1019
  br i1 %1020, label %.loopexit, label %1021

1021:                                             ; preds = %1015
  %1022 = getelementptr inbounds i8, ptr %1013, i64 376
  %1023 = load ptr, ptr %1022, align 8, !tbaa !118
  %1024 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1023)
  %1025 = load i32, ptr %71, align 4, !tbaa !52
  %1026 = icmp sgt i32 %1025, 5
  br i1 %1026, label %.preheader, label %1044

.preheader:                                       ; preds = %1021
  %1027 = getelementptr inbounds i8, ptr %1013, i64 108
  %1028 = load i32, ptr %1027, align 4, !tbaa !121
  %1029 = icmp sgt i32 %1028, 0
  br i1 %1029, label %.lr.ph548, label %.loopexit

.lr.ph548:                                        ; preds = %.preheader
  %1030 = getelementptr inbounds i8, ptr %1013, i64 504
  br label %1031

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

1044:                                             ; preds = %1021
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #9
  %1045 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %1013, i32 noundef %1025, i32 noundef -1)
  %1046 = extractvalue { <2 x float>, <2 x float> } %1045, 0
  store <2 x float> %1046, ptr %31, align 8
  %1047 = extractvalue { <2 x float>, <2 x float> } %1045, 1
  store <2 x float> %1047, ptr %1010, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1024, ptr noundef nonnull align 4 dereferenceable(8) %31, ptr noundef nonnull align 4 dereferenceable(8) %1010, 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 = %1031, %.preheader, %1044, %1012, %1015
  %1048 = add nuw nsw i32 %.0383549, 1
  %1049 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %509)
  %1050 = icmp slt i32 %1048, %1049
  br i1 %1050, label %1012, label %.loopexit467, !llvm.loop !237

.loopexit467:                                     ; preds = %.loopexit, %.preheader466, %.loopexit468
  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 %1051

1051:                                             ; preds = %.loopexit467, %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 #6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) local_unnamed_addr #6

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) local_unnamed_addr #6

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

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

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

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

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

declare void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef) local_unnamed_addr #6

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

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

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

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

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

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

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

declare void @_ZN5ImGui10EndListBoxEv() local_unnamed_addr #6

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTS18ImGuiMetricsConfig", !11, i64 0, !11, i64 1, !11, i64 2, !11, i64 3, !11, i64 4, !11, i64 5, !11, i64 6, !11, i64 7, !12, i64 8, !12, i64 12}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!10, !11, i64 1}
!16 = !{!17, !20, i64 194}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !6, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !18, i64 80, !19, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !19, i64 112, !19, i64 116, !12, i64 120, !12, i64 124, !12, i64 128, !18, i64 132, !18, i64 140, !18, i64 148, !18, i64 156, !18, i64 164, !18, i64 172, !11, i64 180, !11, i64 181, !11, i64 182, !11, i64 183, !11, i64 184, !11, i64 185, !11, i64 186, !11, i64 187, !11, i64 188, !11, i64 189, !11, i64 190, !11, i64 191, !11, i64 192, !7, i64 193, !20, i64 194, !20, i64 196, !20, i64 198, !20, i64 200, !20, i64 202, !12, i64 204, !7, i64 208, !7, i64 209, !7, i64 210, !11, i64 211, !12, i64 212, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !12, i64 220, !12, i64 221, !12, i64 222, !18, i64 224, !18, i64 232, !21, i64 240, !22, i64 256, !28, i64 488, !28, i64 504, !28, i64 520, !28, i64 536, !28, i64 552, !28, i64 568, !28, i64 584, !29, i64 600, !29, i64 604, !12, i64 608, !19, i64 612, !19, i64 616, !30, i64 624, !32, i64 640, !19, i64 656, !12, i64 660, !6, i64 664, !33, i64 672, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !6, i64 920, !7, i64 928, !7, i64 936, !12, i64 968, !12, i64 972, !12, i64 976, !11, i64 980}
!18 = !{!"_ZTS6ImVec2", !19, i64 0, !19, i64 4}
!19 = !{!"float", !7, i64 0}
!20 = !{!"short", !7, i64 0}
!21 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!22 = !{!"_ZTS19ImGuiWindowTempData", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !19, i64 56, !19, i64 60, !11, i64 64, !11, i64 65, !23, i64 68, !23, i64 72, !23, i64 76, !18, i64 80, !24, i64 88, !20, i64 92, !20, i64 94, !11, i64 96, !11, i64 97, !11, i64 98, !11, i64 99, !18, i64 100, !25, i64 108, !12, i64 136, !12, i64 140, !26, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !19, i64 188, !19, i64 192, !27, i64 200, !27, i64 216}
!23 = !{!"_ZTS6ImVec1", !19, i64 0}
!24 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!25 = !{!"_ZTS16ImGuiMenuColumns", !12, i64 0, !12, i64 4, !20, i64 8, !20, i64 10, !20, i64 12, !20, i64 14, !20, i64 16, !7, i64 18}
!26 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!28 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!29 = !{!"_ZTS8ImVec2ih", !20, i64 0, !20, i64 2}
!30 = !{!"_ZTS12ImGuiStorage", !31, i64 0}
!31 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !12, i64 0, !12, i64 4, !6, i64 8}
!32 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!33 = !{!"_ZTS10ImDrawList", !34, i64 0, !35, i64 16, !36, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !37, i64 88, !38, i64 104, !39, i64 120, !40, i64 136, !42, i64 168, !19, i64 192}
!34 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorIPvE", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!40 = !{!"_ZTS15ImDrawCmdHeader", !41, i64 0, !6, i64 16, !12, i64 24}
!41 = !{!"_ZTS6ImVec4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!42 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !43, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!44 = !{!45, !19, i64 216}
!45 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !6, i64 24, !6, i64 32, !19, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !19, i64 60, !19, i64 64, !6, i64 72, !6, i64 80, !19, i64 88, !11, i64 92, !6, i64 96, !18, i64 104, !11, i64 112, !11, i64 113, !11, i64 114, !11, i64 115, !11, i64 116, !11, i64 117, !11, i64 118, !11, i64 119, !19, i64 120, !11, i64 124, !11, i64 125, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !11, i64 214, !19, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !12, i64 232, !12, i64 236, !18, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !18, i64 3584, !7, i64 3592, !19, i64 3600, !19, i64 3604, !46, i64 3608, !11, i64 3612, !11, i64 3613, !11, i64 3614, !11, i64 3615, !12, i64 3616, !7, i64 3620, !11, i64 14052, !18, i64 14056, !7, i64 14064, !7, i64 14104, !7, i64 14144, !7, i64 14149, !7, i64 14154, !7, i64 14164, !7, i64 14174, !7, i64 14179, !7, i64 14184, !11, i64 14189, !7, i64 14192, !7, i64 14212, !7, i64 14232, !19, i64 14252, !11, i64 14256, !11, i64 14257, !7, i64 14258, !11, i64 14259, !20, i64 14260, !35, i64 14264}
!46 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!47 = !{!45, !12, i64 220}
!48 = !{!45, !12, i64 224}
!49 = !{!45, !12, i64 228}
!50 = !{!45, !12, i64 236}
!51 = !{!10, !12, i64 8}
!52 = !{!10, !12, i64 12}
!53 = !{!7, !7, i64 0}
!54 = !{!55, !11, i64 23755}
!55 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !45, i64 8, !56, i64 14288, !6, i64 15360, !19, i64 15368, !19, i64 15372, !57, i64 15376, !58, i64 15904, !12, i64 15912, !12, i64 15916, !12, i64 15920, !11, i64 15924, !11, i64 15925, !11, i64 15926, !11, i64 15927, !11, i64 15928, !6, i64 15936, !59, i64 15944, !59, i64 15960, !46, i64 15976, !12, i64 15980, !26, i64 15984, !26, i64 16000, !26, i64 16016, !60, i64 16032, !30, i64 16048, !12, i64 16064, !18, i64 16068, !6, i64 16080, !6, i64 16088, !6, i64 16096, !6, i64 16104, !6, i64 16112, !18, i64 16120, !12, i64 16128, !19, i64 16132, !18, i64 16136, !18, i64 16144, !12, i64 16152, !12, i64 16156, !12, i64 16160, !11, i64 16164, !11, i64 16165, !19, i64 16168, !19, i64 16172, !12, i64 16176, !12, i64 16180, !19, i64 16184, !11, i64 16188, !11, i64 16189, !11, i64 16190, !11, i64 16191, !11, i64 16192, !11, i64 16193, !18, i64 16196, !6, i64 16208, !61, i64 16216, !12, i64 16220, !12, i64 16224, !11, i64 16228, !11, i64 16229, !6, i64 16232, !12, i64 16240, !19, i64 16244, !7, i64 16248, !62, i64 17928, !12, i64 18240, !11, i64 18244, !12, i64 18248, !12, i64 18252, !12, i64 18256, !12, i64 18260, !64, i64 18264, !65, i64 18284, !66, i64 18344, !67, i64 18456, !68, i64 18472, !69, i64 18488, !21, i64 18504, !70, i64 18520, !71, i64 18536, !72, i64 18552, !72, i64 18568, !12, i64 18584, !73, i64 18592, !6, i64 18608, !12, i64 18616, !12, i64 18620, !12, i64 18624, !12, i64 18628, !12, i64 18632, !12, i64 18636, !12, i64 18640, !12, i64 18644, !12, i64 18648, !12, i64 18652, !12, i64 18656, !61, i64 18660, !24, i64 18664, !11, i64 18668, !11, i64 18669, !11, i64 18670, !11, i64 18671, !11, i64 18672, !11, i64 18673, !11, i64 18674, !12, i64 18676, !28, i64 18680, !11, i64 18696, !11, i64 18697, !11, i64 18698, !12, i64 18700, !12, i64 18704, !12, i64 18708, !12, i64 18712, !12, i64 18716, !12, i64 18720, !28, i64 18724, !28, i64 18740, !12, i64 18756, !12, i64 18760, !12, i64 18764, !74, i64 18768, !74, i64 18816, !74, i64 18864, !74, i64 18912, !12, i64 18960, !12, i64 18964, !6, i64 18968, !6, i64 18976, !6, i64 18984, !19, i64 18992, !19, i64 18996, !11, i64 19000, !18, i64 19004, !18, i64 19012, !19, i64 19020, !12, i64 19024, !11, i64 19028, !11, i64 19029, !11, i64 19030, !12, i64 19032, !12, i64 19036, !12, i64 19040, !75, i64 19048, !28, i64 19112, !12, i64 19128, !12, i64 19132, !19, i64 19136, !12, i64 19140, !12, i64 19144, !12, i64 19148, !12, i64 19152, !76, i64 19160, !7, i64 19176, !12, i64 19192, !77, i64 19200, !6, i64 19216, !12, i64 19224, !78, i64 19232, !79, i64 19248, !27, i64 19288, !43, i64 19304, !6, i64 19320, !81, i64 19328, !83, i64 19368, !84, i64 19384, !12, i64 19400, !12, i64 19404, !19, i64 19408, !19, i64 19412, !18, i64 19416, !85, i64 19424, !89, i64 23152, !90, i64 23176, !12, i64 23296, !12, i64 23300, !12, i64 23304, !12, i64 23308, !19, i64 23312, !19, i64 23316, !12, i64 23320, !41, i64 23324, !92, i64 23340, !19, i64 23388, !19, i64 23392, !11, i64 23396, !11, i64 23397, !19, i64 23400, !19, i64 23404, !19, i64 23408, !19, i64 23412, !20, i64 23416, !20, i64 23418, !86, i64 23424, !21, i64 23440, !93, i64 23456, !93, i64 23472, !7, i64 23488, !11, i64 23489, !19, i64 23492, !94, i64 23496, !95, i64 23512, !96, i64 23528, !97, i64 23544, !98, i64 23560, !12, i64 23576, !7, i64 23584, !11, i64 23640, !99, i64 23644, !6, i64 23648, !94, i64 23656, !6, i64 23672, !6, i64 23680, !19, i64 23688, !11, i64 23692, !12, i64 23696, !12, i64 23700, !12, i64 23704, !12, i64 23708, !94, i64 23712, !100, i64 23728, !7, i64 23752, !7, i64 23753, !7, i64 23754, !11, i64 23755, !7, i64 23756, !12, i64 23760, !10, i64 23764, !101, i64 23784, !7, i64 23824, !12, i64 24064, !12, i64 24068, !19, i64 24072, !12, i64 24076, !12, i64 24080, !12, i64 24084, !86, i64 24088}
!56 = !{!"_ZTS10ImGuiStyle", !19, i64 0, !19, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !18, i64 24, !18, i64 32, !12, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !18, i64 60, !19, i64 68, !19, i64 72, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !12, i64 148, !18, i64 152, !18, i64 160, !19, i64 168, !18, i64 172, !18, i64 180, !18, i64 188, !18, i64 196, !19, i64 204, !11, i64 208, !11, i64 209, !11, i64 210, !19, i64 212, !19, i64 216, !7, i64 220}
!57 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !19, i64 16, !19, i64 20, !19, i64 24, !41, i64 28, !12, i64 44, !39, i64 48, !7, i64 64, !19, i64 448, !7, i64 452, !6, i64 520}
!58 = !{!"double", !7, i64 0}
!59 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!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 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !86, i64 8}
!90 = !{!"_ZTS6ImFont", !27, i64 0, !19, i64 16, !19, i64 20, !35, i64 24, !91, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !20, i64 80, !20, i64 82, !20, i64 84, !20, i64 86, !19, i64 88, !19, i64 92, !11, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !12, i64 112, !7, i64 116}
!91 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!92 = !{!"_ZTS21ImGuiComboPreviewData", !28, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !19, i64 40, !12, i64 44}
!93 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !18, i64 4, !19, i64 12}
!94 = !{!"_ZTS15ImGuiTextBuffer", !86, i64 0}
!95 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!96 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !86, i64 0}
!97 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !86, i64 0}
!98 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!99 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!100 = !{!"_ZTS14ImGuiTextIndex", !70, i64 0, !12, i64 16}
!101 = !{!"_ZTS14ImGuiStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !102, i64 16, !11, i64 32, !19, i64 36}
!102 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!103 = !{!10, !11, i64 2}
!104 = !{!55, !6, i64 18608}
!105 = !{!17, !6, i64 8}
!106 = !{!10, !11, i64 4}
!107 = !{!108, !12, i64 104}
!108 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !109, i64 24, !110, i64 40, !111, i64 56, !6, i64 72, !6, i64 80, !6, i64 88, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !20, i64 120, !20, i64 122, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !12, i64 144, !12, i64 146, !12, i64 148, !7, i64 152, !12, i64 160, !12, i64 164, !19, i64 168, !19, i64 172, !19, i64 176, !19, i64 180, !19, i64 184, !19, i64 188, !19, i64 192, !19, i64 196, !19, i64 200, !19, i64 204, !19, i64 208, !19, i64 212, !19, i64 216, !19, i64 220, !19, i64 224, !19, i64 228, !28, i64 232, !28, i64 248, !28, i64 264, !28, i64 280, !28, i64 296, !28, i64 312, !28, i64 328, !28, i64 344, !28, i64 360, !6, i64 376, !6, i64 384, !94, i64 392, !6, i64 408, !112, i64 416, !113, i64 432, !114, i64 448, !115, i64 464, !116, i64 480, !20, i64 496, !20, i64 498, !20, i64 500, !20, i64 502, !20, i64 504, !20, i64 506, !20, i64 508, !20, i64 510, !20, i64 512, !20, i64 514, !20, i64 516, !20, i64 518, !20, i64 520, !20, i64 522, !20, i64 524, !20, i64 526, !20, i64 528, !20, i64 530, !20, i64 532, !20, i64 534, !20, i64 536, !20, i64 538, !20, i64 540, !20, i64 542, !20, i64 544, !11, i64 546, !11, i64 547, !11, i64 548, !11, i64 549, !11, i64 550, !11, i64 551, !11, i64 552, !11, i64 553, !11, i64 554, !11, i64 555, !11, i64 556, !11, i64 557, !11, i64 558, !11, i64 559, !11, i64 560, !11, i64 561, !11, i64 562}
!109 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!110 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!111 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!112 = !{!"_ZTS22ImGuiTableInstanceData", !12, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!113 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!114 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !20, i64 4, !20, i64 6, !12, i64 8}
!115 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!116 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!117 = !{!55, !12, i64 15912}
!118 = !{!108, !6, i64 376}
!119 = !{!108, !6, i64 384}
!120 = !{!108, !12, i64 0}
!121 = !{!108, !12, i64 108}
!122 = distinct !{!122, !123}
!123 = !{!"llvm.loop.mustprogress"}
!124 = distinct !{!124, !123}
!125 = distinct !{!125, !123}
!126 = !{!55, !12, i64 15984}
!127 = !{!26, !6, i64 8}
!128 = !{!26, !12, i64 0}
!129 = !{!17, !12, i64 608}
!130 = distinct !{!130, !123}
!131 = !{!55, !12, i64 18592}
!132 = distinct !{!132, !123}
!133 = !{!134, !12, i64 0}
!134 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!135 = distinct !{!135, !123}
!136 = distinct !{!136, !123}
!137 = distinct !{!137, !123}
!138 = !{!55, !12, i64 18552}
!139 = !{!140, !6, i64 8}
!140 = !{!"_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}
!141 = !{!140, !12, i64 0}
!142 = !{!17, !12, i64 20}
!143 = !{!140, !6, i64 16}
!144 = !{!17, !6, i64 872}
!145 = distinct !{!145, !123}
!146 = distinct !{!146, !123}
!147 = distinct !{!147, !123}
!148 = !{!55, !6, i64 88}
!149 = !{!150, !12, i64 88}
!150 = !{!"_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, !151, i64 104, !152, i64 120, !7, i64 136, !6, i64 1160, !12, i64 1168, !12, i64 1172, !12, i64 1176}
!151 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!152 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!153 = !{!55, !6, i64 32}
!154 = !{!55, !19, i64 23492}
!155 = !{!55, !12, i64 23512}
!156 = !{!157, !6, i64 0}
!157 = !{!"_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}
!158 = distinct !{!158, !123}
!159 = distinct !{!159, !123}
!160 = distinct !{!160, !123}
!161 = !{!55, !12, i64 23496}
!162 = !{!163, !19, i64 4}
!163 = !{!"_ZTS12ImGuiKeyData", !11, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!164 = distinct !{!164, !123}
!165 = distinct !{!165, !123}
!166 = !{!45, !11, i64 3612}
!167 = !{!45, !11, i64 3613}
!168 = !{!45, !11, i64 3614}
!169 = !{!45, !11, i64 3615}
!170 = !{!45, !12, i64 14264}
!171 = distinct !{!171, !123}
!172 = !{!20, !20, i64 0}
!173 = distinct !{!173, !123}
!174 = !{!45, !19, i64 3584}
!175 = !{!45, !19, i64 3588}
!176 = !{!45, !19, i64 240}
!177 = !{!45, !19, i64 244}
!178 = !{!19, !19, i64 0}
!179 = !{!45, !19, i64 3600}
!180 = !{!45, !46, i64 3608}
!181 = !{!45, !19, i64 14252}
!182 = !{!55, !6, i64 16112}
!183 = !{!55, !19, i64 16132}
!184 = !{!55, !19, i64 16144}
!185 = !{!55, !19, i64 16148}
!186 = !{!187, !12, i64 0}
!187 = !{!"_ZTS17ImGuiKeyOwnerData", !12, i64 0, !12, i64 4, !11, i64 8, !11, i64 9}
!188 = !{!187, !11, i64 9}
!189 = !{!187, !11, i64 8}
!190 = distinct !{!190, !123}
!191 = distinct !{!191, !123}
!192 = !{!193, !20, i64 2}
!193 = !{!"_ZTS19ImGuiKeyRoutingData", !20, i64 0, !20, i64 2, !7, i64 4, !12, i64 8, !12, i64 12}
!194 = !{!193, !12, i64 8}
!195 = !{!193, !20, i64 0}
!196 = distinct !{!196, !123}
!197 = !{!55, !11, i64 18244}
!198 = !{!55, !12, i64 18240}
!199 = !{!55, !6, i64 16088}
!200 = !{!17, !6, i64 888}
!201 = !{!55, !6, i64 16096}
!202 = !{!55, !6, i64 16104}
!203 = !{!55, !12, i64 16176}
!204 = !{!55, !12, i64 16224}
!205 = !{!55, !19, i64 16184}
!206 = !{!55, !11, i64 16189}
!207 = !{!55, !61, i64 16216}
!208 = !{!55, !6, i64 16208}
!209 = !{!55, !12, i64 16160}
!210 = !{!55, !19, i64 16168}
!211 = !{!55, !11, i64 16164}
!212 = !{!55, !12, i64 19400}
!213 = !{!55, !19, i64 19408}
!214 = !{!55, !19, i64 19412}
!215 = !{!55, !11, i64 19028}
!216 = !{!55, !12, i64 19060}
!217 = !{!55, !12, i64 19056}
!218 = !{!55, !12, i64 18616}
!219 = !{!55, !24, i64 18664}
!220 = !{!55, !61, i64 18660}
!221 = !{!55, !11, i64 221}
!222 = !{!55, !11, i64 222}
!223 = !{!55, !12, i64 18624}
!224 = !{!55, !12, i64 18628}
!225 = !{!55, !12, i64 18632}
!226 = !{!55, !12, i64 18636}
!227 = !{!55, !11, i64 18670}
!228 = !{!55, !11, i64 18671}
!229 = !{!55, !12, i64 18620}
!230 = !{!55, !6, i64 18968}
!231 = !{!10, !11, i64 3}
!232 = !{!17, !11, i64 183}
!233 = !{!17, !20, i64 200}
!234 = distinct !{!234, !123}
!235 = !{!108, !20, i64 504}
!236 = distinct !{!236, !123}
!237 = distinct !{!237, !123}


; 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