; LLVM IR from PepcyCh/bisemutum-engine :: bisemutum/thirdparty/ImGuizmo/example/imgui.ll (ZN5ImGui17ShowMetricsWindowEPb)

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

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

@GImGui = external dso_local global ptr, align 8
@.str.15 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.306 = 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.324 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [100 x i8], align 16
@.str.327 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.333 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.334 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.376 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.407 = 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 uwtable
declare hidden <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #3

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

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

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

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

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

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

; 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #6 align 2

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

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

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

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

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

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

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

declare void @_ZN5ImGui7TreePopEv() #5

; 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 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #6 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 uwtable
declare dso_local void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef) #7

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

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

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

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

; 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 ptr, align 8
  %58 = alloca ptr, align 8
  %59 = alloca %struct.ImRect, align 4
  %60 = alloca [32 x i8], align 16
  %61 = alloca float, align 4
  %62 = alloca %struct.ImVec2, align 4
  %63 = alloca %struct.ImVec2, align 4
  %64 = alloca i32, align 4
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca %struct.ImRect, align 4
  %69 = alloca i32, align 4
  %70 = alloca float, align 4
  %71 = 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
  %72 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %72, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #9
  %73 = load ptr, ptr %3, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.ImGuiContext, ptr %73, i32 0, i32 2
  store ptr %74, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #9
  %75 = load ptr, ptr %3, align 8, !tbaa !5
  %76 = getelementptr inbounds %struct.ImGuiContext, ptr %75, i32 0, i32 214
  store ptr %76, ptr %5, align 8, !tbaa !5
  %77 = load ptr, ptr %5, align 8, !tbaa !5
  %78 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %77, i32 0, i32 0
  %79 = load i8, ptr %78, align 4, !tbaa !9, !range !13, !noundef !14
  %80 = trunc i8 %79 to i1
  br i1 %80, label %81, label %84

81:                                               ; preds = %1
  %82 = load ptr, ptr %5, align 8, !tbaa !5
  %83 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %82, i32 0, i32 0
  call void @_ZN5ImGui18ShowDebugLogWindowEPb(ptr noundef %83)
  br label %84

84:                                               ; preds = %81, %1
  %85 = load ptr, ptr %5, align 8, !tbaa !5
  %86 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %85, i32 0, i32 1
  %87 = load i8, ptr %86, align 1, !tbaa !15, !range !13, !noundef !14
  %88 = trunc i8 %87 to i1
  br i1 %88, label %89, label %92

89:                                               ; preds = %84
  %90 = load ptr, ptr %5, align 8, !tbaa !5
  %91 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %90, i32 0, i32 1
  call void @_ZN5ImGui19ShowStackToolWindowEPb(ptr noundef %91)
  br label %92

92:                                               ; preds = %89, %84
  %93 = load ptr, ptr %2, align 8, !tbaa !5
  %94 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.302, ptr noundef %93, i32 noundef 0)
  br i1 %94, label %95, label %101

95:                                               ; preds = %92
  %96 = call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %97 = getelementptr inbounds %struct.ImGuiWindow, ptr %96, i32 0, i32 36
  %98 = load i16, ptr %97, align 2, !tbaa !16
  %99 = sext i16 %98 to i32
  %100 = icmp sgt i32 %99, 1
  br i1 %100, label %101, label %102

101:                                              ; preds = %95, %92
  call void @_ZN5ImGui3EndEv()
  store i32 1, ptr %6, align 4
  br label %1352

102:                                              ; preds = %95
  %103 = call noundef ptr @_ZN5ImGui10GetVersionEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.303, ptr noundef %103)
  %104 = load ptr, ptr %4, align 8, !tbaa !5
  %105 = getelementptr inbounds %struct.ImGuiIO, ptr %104, i32 0, i32 46
  %106 = load float, ptr %105, align 8, !tbaa !44
  %107 = fdiv float 1.000000e+03, %106
  %108 = fpext float %107 to double
  %109 = load ptr, ptr %4, align 8, !tbaa !5
  %110 = getelementptr inbounds %struct.ImGuiIO, ptr %109, i32 0, i32 46
  %111 = load float, ptr %110, align 8, !tbaa !44
  %112 = fpext float %111 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.304, double noundef %108, double noundef %112)
  %113 = load ptr, ptr %4, align 8, !tbaa !5
  %114 = getelementptr inbounds %struct.ImGuiIO, ptr %113, i32 0, i32 47
  %115 = load i32, ptr %114, align 4, !tbaa !46
  %116 = load ptr, ptr %4, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.ImGuiIO, ptr %116, i32 0, i32 48
  %118 = load i32, ptr %117, align 8, !tbaa !47
  %119 = load ptr, ptr %4, align 8, !tbaa !5
  %120 = getelementptr inbounds %struct.ImGuiIO, ptr %119, i32 0, i32 48
  %121 = load i32, ptr %120, align 8, !tbaa !47
  %122 = sdiv i32 %121, 3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.305, i32 noundef %115, i32 noundef %118, i32 noundef %122)
  %123 = load ptr, ptr %4, align 8, !tbaa !5
  %124 = getelementptr inbounds %struct.ImGuiIO, ptr %123, i32 0, i32 49
  %125 = load i32, ptr %124, align 4, !tbaa !48
  %126 = load ptr, ptr %4, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.ImGuiIO, ptr %126, i32 0, i32 51
  %128 = load i32, ptr %127, align 4, !tbaa !49
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.306, i32 noundef %125, i32 noundef %128)
  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)
  %129 = load ptr, ptr %5, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %129, i32 0, i32 7
  %131 = load i32, ptr %130, align 4, !tbaa !50
  %132 = icmp slt i32 %131, 0
  br i1 %132, label %133, label %136

133:                                              ; preds = %102
  %134 = load ptr, ptr %5, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %134, i32 0, i32 7
  store i32 4, ptr %135, align 4, !tbaa !50
  br label %136

136:                                              ; preds = %133, %102
  %137 = load ptr, ptr %5, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %137, i32 0, i32 8
  %139 = load i32, ptr %138, align 4, !tbaa !51
  %140 = icmp slt i32 %139, 0
  br i1 %140, label %141, label %144

141:                                              ; preds = %136
  %142 = load ptr, ptr %5, align 8, !tbaa !5
  %143 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %142, i32 0, i32 8
  store i32 2, ptr %143, align 4, !tbaa !51
  br label %144

144:                                              ; preds = %141, %136
  %145 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.324)
  br i1 %145, label %146, label %475

146:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #9
  %147 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.325)
  %148 = zext i1 %147 to i8
  store i8 %148, ptr %9, align 1, !tbaa !52
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.326)
  %149 = load i8, ptr %9, align 1, !tbaa !52, !range !13, !noundef !14
  %150 = trunc i8 %149 to i1
  br i1 %150, label %151, label %158

151:                                              ; preds = %146
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef 0xB810000000000000)
  %152 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.327, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, i64 noundef 100, i32 noundef 0, ptr noundef null, ptr noundef null)
  %153 = load i8, ptr @_ZZN5ImGui17ShowMetricsWindowEPbE3buf, align 16, !tbaa !53
  %154 = sext i8 %153 to i32
  %155 = icmp ne i32 %154, 0
  br i1 %155, label %156, label %157

156:                                              ; preds = %151
  call void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbE3buf)
  br label %157

157:                                              ; preds = %156, %151
  call void @_ZN5ImGui7TreePopEv()
  br label %158

158:                                              ; preds = %157, %146
  %159 = load ptr, ptr %3, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.ImGuiContext, ptr %159, i32 0, i32 211
  %161 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.328, ptr noundef %160)
  br i1 %161, label %162, label %168

162:                                              ; preds = %158
  %163 = load ptr, ptr %3, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.ImGuiContext, ptr %163, i32 0, i32 211
  %165 = load i8, ptr %164, align 8, !tbaa !54, !range !13, !noundef !14
  %166 = trunc i8 %165 to i1
  br i1 %166, label %167, label %168

167:                                              ; preds = %162
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %168

168:                                              ; preds = %167, %162, %158
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.329)
  %169 = load ptr, ptr %5, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %169, i32 0, i32 0
  %171 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.330, ptr noundef %170)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.331)
  %172 = load ptr, ptr %5, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %172, i32 0, i32 1
  %174 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.332, ptr noundef %173)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.333)
  %175 = load ptr, ptr %5, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %175, i32 0, i32 3
  %177 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.334, ptr noundef %176)
  %178 = load ptr, ptr %5, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %178, i32 0, i32 2
  %180 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.335, ptr noundef %179)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %181 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %182 = fmul float %181, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %182)
  %183 = load ptr, ptr %5, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %183, i32 0, i32 7
  %185 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 0
  %186 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.336, ptr noundef %184, ptr noundef %185, i32 noundef 8, i32 noundef 8)
  %187 = zext i1 %186 to i32
  %188 = load ptr, ptr %5, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %188, i32 0, i32 2
  %190 = load i8, ptr %189, align 2, !tbaa !100, !range !13, !noundef !14
  %191 = trunc i8 %190 to i1
  %192 = zext i1 %191 to i32
  %193 = or i32 %192, %187
  %194 = icmp ne i32 %193, 0
  %195 = zext i1 %194 to i8
  store i8 %195, ptr %189, align 2, !tbaa !100
  %196 = load ptr, ptr %5, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %196, i32 0, i32 2
  %198 = load i8, ptr %197, align 2, !tbaa !100, !range !13, !noundef !14
  %199 = trunc i8 %198 to i1
  br i1 %199, label %200, label %253

200:                                              ; preds = %168
  %201 = load ptr, ptr %3, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.ImGuiContext, ptr %201, i32 0, i32 79
  %203 = load ptr, ptr %202, align 8, !tbaa !101
  %204 = icmp ne ptr %203, null
  br i1 %204, label %205, label %253

205:                                              ; preds = %200
  %206 = load ptr, ptr %3, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.ImGuiContext, ptr %206, i32 0, i32 79
  %208 = load ptr, ptr %207, align 8, !tbaa !101
  %209 = getelementptr inbounds %struct.ImGuiWindow, ptr %208, i32 0, i32 0
  %210 = load ptr, ptr %209, align 8, !tbaa !102
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.337, ptr noundef %210)
  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 !103
  br label %211

211:                                              ; preds = %249, %205
  %212 = load i32, ptr %10, align 4, !tbaa !103
  %213 = icmp slt i32 %212, 8
  br i1 %213, label %215, label %214

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

215:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #9
  %216 = load ptr, ptr %3, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.ImGuiContext, ptr %216, i32 0, i32 79
  %218 = load ptr, ptr %217, align 8, !tbaa !101
  %219 = load i32, ptr %10, align 4, !tbaa !103
  %220 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %218, i32 noundef %219)
  %221 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %11, i32 0, i32 0
  %222 = extractvalue { <2 x float>, <2 x float> } %220, 0
  store <2 x float> %222, ptr %221, align 4
  %223 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %11, i32 0, i32 1
  %224 = extractvalue { <2 x float>, <2 x float> } %220, 1
  store <2 x float> %224, ptr %223, align 4
  %225 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 0
  %226 = getelementptr inbounds %struct.ImVec2, ptr %225, i32 0, i32 0
  %227 = load float, ptr %226, align 4, !tbaa !104
  %228 = fpext float %227 to double
  %229 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 0
  %230 = getelementptr inbounds %struct.ImVec2, ptr %229, i32 0, i32 1
  %231 = load float, ptr %230, align 4, !tbaa !105
  %232 = fpext float %231 to double
  %233 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 1
  %234 = getelementptr inbounds %struct.ImVec2, ptr %233, i32 0, i32 0
  %235 = load float, ptr %234, align 4, !tbaa !106
  %236 = fpext float %235 to double
  %237 = getelementptr inbounds %struct.ImRect, ptr %11, i32 0, i32 1
  %238 = getelementptr inbounds %struct.ImVec2, ptr %237, i32 0, i32 1
  %239 = load float, ptr %238, align 4, !tbaa !107
  %240 = fpext float %239 to double
  %241 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %242 = fpext float %241 to double
  %243 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %244 = fpext float %243 to double
  %245 = load i32, ptr %10, align 4, !tbaa !103
  %246 = sext i32 %245 to i64
  %247 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 %246
  %248 = load ptr, ptr %247, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.338, double noundef %228, double noundef %232, double noundef %236, double noundef %240, double noundef %242, double noundef %244, ptr noundef %248)
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #9
  br label %249

249:                                              ; preds = %215
  %250 = load i32, ptr %10, align 4, !tbaa !103
  %251 = add nsw i32 %250, 1
  store i32 %251, ptr %10, align 4, !tbaa !103
  br label %211, !llvm.loop !108

252:                                              ; preds = %214
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %253

253:                                              ; preds = %252, %200, %168
  %254 = load ptr, ptr %5, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %254, i32 0, i32 4
  %256 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.339, ptr noundef %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 = load ptr, ptr %5, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %259, i32 0, i32 8
  %261 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 0
  %262 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.340, ptr noundef %260, ptr noundef %261, i32 noundef 13, i32 noundef 13)
  %263 = zext i1 %262 to i32
  %264 = load ptr, ptr %5, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %264, i32 0, i32 4
  %266 = load i8, ptr %265, align 4, !tbaa !110, !range !13, !noundef !14
  %267 = trunc i8 %266 to i1
  %268 = zext i1 %267 to i32
  %269 = or i32 %268, %263
  %270 = icmp ne i32 %269, 0
  %271 = zext i1 %270 to i8
  store i8 %271, ptr %265, align 4, !tbaa !110
  %272 = load ptr, ptr %5, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %272, i32 0, i32 4
  %274 = load i8, ptr %273, align 4, !tbaa !110, !range !13, !noundef !14
  %275 = trunc i8 %274 to i1
  br i1 %275, label %276, label %474

276:                                              ; preds = %253
  %277 = load ptr, ptr %3, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.ImGuiContext, ptr %277, i32 0, i32 79
  %279 = load ptr, ptr %278, align 8, !tbaa !101
  %280 = icmp ne ptr %279, null
  br i1 %280, label %281, label %474

281:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  store i32 0, ptr %12, align 4, !tbaa !103
  br label %282

282:                                              ; preds = %470, %281
  %283 = load i32, ptr %12, align 4, !tbaa !103
  %284 = load ptr, ptr %3, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.ImGuiContext, ptr %284, i32 0, i32 154
  %286 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %285)
  %287 = icmp slt i32 %283, %286
  br i1 %287, label %289, label %288

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

289:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %290 = load ptr, ptr %3, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.ImGuiContext, ptr %290, i32 0, i32 154
  %292 = load i32, ptr %12, align 4, !tbaa !103
  %293 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %291, i32 noundef %292)
  store ptr %293, ptr %13, align 8, !tbaa !5
  %294 = load ptr, ptr %13, align 8, !tbaa !5
  %295 = icmp eq ptr %294, null
  br i1 %295, label %321, label %296

296:                                              ; preds = %289
  %297 = load ptr, ptr %13, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.ImGuiTable, ptr %297, i32 0, i32 13
  %299 = load i32, ptr %298, align 8, !tbaa !111
  %300 = load ptr, ptr %3, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.ImGuiContext, ptr %300, i32 0, i32 11
  %302 = load i32, ptr %301, align 8, !tbaa !122
  %303 = sub nsw i32 %302, 1
  %304 = icmp slt i32 %299, %303
  br i1 %304, label %321, label %305

305:                                              ; preds = %296
  %306 = load ptr, ptr %13, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.ImGuiTable, ptr %306, i32 0, i32 54
  %308 = load ptr, ptr %307, align 8, !tbaa !123
  %309 = load ptr, ptr %3, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.ImGuiContext, ptr %309, i32 0, i32 79
  %311 = load ptr, ptr %310, align 8, !tbaa !101
  %312 = icmp ne ptr %308, %311
  br i1 %312, label %313, label %322

313:                                              ; preds = %305
  %314 = load ptr, ptr %13, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.ImGuiTable, ptr %314, i32 0, i32 55
  %316 = load ptr, ptr %315, align 8, !tbaa !124
  %317 = load ptr, ptr %3, align 8, !tbaa !5
  %318 = getelementptr inbounds %struct.ImGuiContext, ptr %317, i32 0, i32 79
  %319 = load ptr, ptr %318, align 8, !tbaa !101
  %320 = icmp ne ptr %316, %319
  br i1 %320, label %321, label %322

321:                                              ; preds = %313, %296, %289
  store i32 7, ptr %6, align 4
  br label %467

322:                                              ; preds = %313, %305
  %323 = load ptr, ptr %13, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.ImGuiTable, ptr %323, i32 0, i32 0
  %325 = load i32, ptr %324, align 8, !tbaa !125
  %326 = load ptr, ptr %13, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.ImGuiTable, ptr %326, i32 0, i32 14
  %328 = load i32, ptr %327, align 4, !tbaa !126
  %329 = load ptr, ptr %13, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.ImGuiTable, ptr %329, i32 0, i32 54
  %331 = load ptr, ptr %330, align 8, !tbaa !123
  %332 = getelementptr inbounds %struct.ImGuiWindow, ptr %331, i32 0, i32 0
  %333 = load ptr, ptr %332, align 8, !tbaa !102
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.341, i32 noundef %325, i32 noundef %328, ptr noundef %333)
  %334 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %334, label %335, label %345

335:                                              ; preds = %322
  %336 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %337 = load ptr, ptr %13, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.ImGuiTable, ptr %337, i32 0, i32 45
  %339 = getelementptr inbounds %struct.ImRect, ptr %338, 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)
  %340 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %339, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %340, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %341 = load ptr, ptr %13, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.ImGuiTable, ptr %341, i32 0, i32 45
  %343 = getelementptr inbounds %struct.ImRect, ptr %342, 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)
  %344 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %343, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %344, ptr %16, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %336, 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 %345

345:                                              ; preds = %335, %322
  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 !103
  br label %346

346:                                              ; preds = %463, %345
  %347 = load i32, ptr %19, align 4, !tbaa !103
  %348 = icmp slt i32 %347, 13
  br i1 %348, label %350, label %349

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

350:                                              ; preds = %346
  %351 = load i32, ptr %19, align 4, !tbaa !103
  %352 = icmp sge i32 %351, 6
  br i1 %352, label %353, label %418

353:                                              ; preds = %350
  %354 = load i32, ptr %19, align 4, !tbaa !103
  %355 = icmp ne i32 %354, 6
  br i1 %355, label %356, label %360

356:                                              ; preds = %353
  %357 = load i32, ptr %19, align 4, !tbaa !103
  %358 = icmp ne i32 %357, 8
  br i1 %358, label %359, label %360

359:                                              ; preds = %356
  br label %463

360:                                              ; preds = %356, %353
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store i32 0, ptr %20, align 4, !tbaa !103
  br label %361

361:                                              ; preds = %414, %360
  %362 = load i32, ptr %20, align 4, !tbaa !103
  %363 = load ptr, ptr %13, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.ImGuiTable, ptr %363, i32 0, i32 14
  %365 = load i32, ptr %364, align 4, !tbaa !126
  %366 = icmp slt i32 %362, %365
  br i1 %366, label %368, label %367

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

368:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #9
  %369 = load ptr, ptr %13, align 8, !tbaa !5
  %370 = load i32, ptr %19, align 4, !tbaa !103
  %371 = load i32, ptr %20, align 4, !tbaa !103
  %372 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %369, i32 noundef %370, i32 noundef %371)
  %373 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %21, i32 0, i32 0
  %374 = extractvalue { <2 x float>, <2 x float> } %372, 0
  store <2 x float> %374, ptr %373, align 4
  %375 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %21, i32 0, i32 1
  %376 = extractvalue { <2 x float>, <2 x float> } %372, 1
  store <2 x float> %376, ptr %375, align 4
  %377 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %378 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  %379 = getelementptr inbounds %struct.ImVec2, ptr %378, i32 0, i32 0
  %380 = load float, ptr %379, align 4, !tbaa !104
  %381 = fpext float %380 to double
  %382 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  %383 = getelementptr inbounds %struct.ImVec2, ptr %382, i32 0, i32 1
  %384 = load float, ptr %383, align 4, !tbaa !105
  %385 = fpext float %384 to double
  %386 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  %387 = getelementptr inbounds %struct.ImVec2, ptr %386, i32 0, i32 0
  %388 = load float, ptr %387, align 4, !tbaa !106
  %389 = fpext float %388 to double
  %390 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  %391 = getelementptr inbounds %struct.ImVec2, ptr %390, i32 0, i32 1
  %392 = load float, ptr %391, align 4, !tbaa !107
  %393 = fpext float %392 to double
  %394 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %21)
  %395 = fpext float %394 to double
  %396 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %21)
  %397 = fpext float %396 to double
  %398 = load i32, ptr %20, align 4, !tbaa !103
  %399 = load i32, ptr %19, align 4, !tbaa !103
  %400 = sext i32 %399 to i64
  %401 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 %400
  %402 = load ptr, ptr %401, align 8, !tbaa !5
  %403 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %377, i64 noundef 128, ptr noundef @.str.342, double noundef %381, double noundef %385, double noundef %389, double noundef %393, double noundef %395, double noundef %397, i32 noundef %398, ptr noundef %402)
  %404 = 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)
  %405 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %404, 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
  %406 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %406, label %407, label %413

407:                                              ; preds = %368
  %408 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %409 = 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)
  %410 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %409, ptr noundef nonnull align 4 dereferenceable(8) %24)
  store <2 x float> %410, ptr %23, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %411 = 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)
  %412 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %411, ptr noundef nonnull align 4 dereferenceable(8) %26)
  store <2 x float> %412, ptr %25, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %408, 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 %413

413:                                              ; preds = %407, %368
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #9
  br label %414

414:                                              ; preds = %413
  %415 = load i32, ptr %20, align 4, !tbaa !103
  %416 = add nsw i32 %415, 1
  store i32 %416, ptr %20, align 4, !tbaa !103
  br label %361, !llvm.loop !127

417:                                              ; preds = %367
  br label %462

418:                                              ; preds = %350
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #9
  %419 = load ptr, ptr %13, align 8, !tbaa !5
  %420 = load i32, ptr %19, align 4, !tbaa !103
  %421 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %419, i32 noundef %420, i32 noundef -1)
  %422 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 0
  %423 = extractvalue { <2 x float>, <2 x float> } %421, 0
  store <2 x float> %423, ptr %422, align 4
  %424 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 1
  %425 = extractvalue { <2 x float>, <2 x float> } %421, 1
  store <2 x float> %425, ptr %424, align 4
  %426 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %427 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %428 = getelementptr inbounds %struct.ImVec2, ptr %427, i32 0, i32 0
  %429 = load float, ptr %428, align 4, !tbaa !104
  %430 = fpext float %429 to double
  %431 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %432 = getelementptr inbounds %struct.ImVec2, ptr %431, i32 0, i32 1
  %433 = load float, ptr %432, align 4, !tbaa !105
  %434 = fpext float %433 to double
  %435 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %436 = getelementptr inbounds %struct.ImVec2, ptr %435, i32 0, i32 0
  %437 = load float, ptr %436, align 4, !tbaa !106
  %438 = fpext float %437 to double
  %439 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %440 = getelementptr inbounds %struct.ImVec2, ptr %439, i32 0, i32 1
  %441 = load float, ptr %440, align 4, !tbaa !107
  %442 = fpext float %441 to double
  %443 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %444 = fpext float %443 to double
  %445 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %446 = fpext float %445 to double
  %447 = load i32, ptr %19, align 4, !tbaa !103
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 %448
  %450 = load ptr, ptr %449, align 8, !tbaa !5
  %451 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %426, i64 noundef 128, ptr noundef @.str.338, double noundef %430, double noundef %434, double noundef %438, double noundef %442, double noundef %444, double noundef %446, ptr noundef %450)
  %452 = 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)
  %453 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %452, 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
  %454 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %454, label %455, label %461

455:                                              ; preds = %418
  %456 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %457 = 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)
  %458 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %457, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %458, ptr %29, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %459 = 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)
  %460 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %459, ptr noundef nonnull align 4 dereferenceable(8) %32)
  store <2 x float> %460, ptr %31, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %456, 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 %461

461:                                              ; preds = %455, %418
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #9
  br label %462

462:                                              ; preds = %461, %417
  br label %463

463:                                              ; preds = %462, %359
  %464 = load i32, ptr %19, align 4, !tbaa !103
  %465 = add nsw i32 %464, 1
  store i32 %465, ptr %19, align 4, !tbaa !103
  br label %346, !llvm.loop !128

466:                                              ; preds = %349
  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 %467

467:                                              ; preds = %466, %321
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  %468 = load i32, ptr %6, align 4
  switch i32 %468, label %1355 [
    i32 0, label %469
    i32 7, label %470
  ]

469:                                              ; preds = %467
  br label %470

470:                                              ; preds = %469, %467
  %471 = load i32, ptr %12, align 4, !tbaa !103
  %472 = add nsw i32 %471, 1
  store i32 %472, ptr %12, align 4, !tbaa !103
  br label %282, !llvm.loop !129

473:                                              ; preds = %288
  br label %474

474:                                              ; preds = %473, %276, %253
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  br label %475

475:                                              ; preds = %474, %144
  %476 = load ptr, ptr %3, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.ImGuiContext, ptr %476, i32 0, i32 20
  %478 = getelementptr inbounds %struct.ImVector.1, ptr %477, i32 0, i32 0
  %479 = load i32, ptr %478, align 8, !tbaa !130
  %480 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.343, ptr noundef @.str.344, i32 noundef %479)
  br i1 %480, label %481, label %537

481:                                              ; preds = %475
  %482 = load ptr, ptr %3, align 8, !tbaa !5
  %483 = getelementptr inbounds %struct.ImGuiContext, ptr %482, i32 0, i32 20
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %483, ptr noundef @.str.345)
  %484 = load ptr, ptr %3, align 8, !tbaa !5
  %485 = getelementptr inbounds %struct.ImGuiContext, ptr %484, i32 0, i32 21
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %485, ptr noundef @.str.346)
  %486 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.347)
  br i1 %486, label %487, label %536

487:                                              ; preds = %481
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %488 = load ptr, ptr %3, align 8, !tbaa !5
  %489 = getelementptr inbounds %struct.ImGuiContext, ptr %488, i32 0, i32 22
  store ptr %489, ptr %33, align 8, !tbaa !5
  %490 = load ptr, ptr %33, align 8, !tbaa !5
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %490, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  store i32 0, ptr %34, align 4, !tbaa !103
  br label %491

491:                                              ; preds = %519, %487
  %492 = load i32, ptr %34, align 4, !tbaa !103
  %493 = load ptr, ptr %3, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.ImGuiContext, ptr %493, i32 0, i32 20
  %495 = getelementptr inbounds %struct.ImVector.1, ptr %494, i32 0, i32 0
  %496 = load i32, ptr %495, align 8, !tbaa !130
  %497 = icmp slt i32 %492, %496
  br i1 %497, label %499, label %498

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

499:                                              ; preds = %491
  %500 = load ptr, ptr %3, align 8, !tbaa !5
  %501 = getelementptr inbounds %struct.ImGuiContext, ptr %500, i32 0, i32 20
  %502 = load i32, ptr %34, align 4, !tbaa !103
  %503 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %501, i32 noundef %502)
  %504 = load ptr, ptr %503, align 8, !tbaa !5
  %505 = getelementptr inbounds %struct.ImGuiWindow, ptr %504, i32 0, i32 65
  %506 = load i32, ptr %505, align 8, !tbaa !131
  %507 = add nsw i32 %506, 1
  %508 = load ptr, ptr %3, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct.ImGuiContext, ptr %508, i32 0, i32 11
  %510 = load i32, ptr %509, align 8, !tbaa !122
  %511 = icmp sge i32 %507, %510
  br i1 %511, label %512, label %518

512:                                              ; preds = %499
  %513 = load ptr, ptr %33, align 8, !tbaa !5
  %514 = load ptr, ptr %3, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.ImGuiContext, ptr %514, i32 0, i32 20
  %516 = load i32, ptr %34, align 4, !tbaa !103
  %517 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %515, i32 noundef %516)
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %513, ptr noundef nonnull align 8 dereferenceable(8) %517)
  br label %518

518:                                              ; preds = %512, %499
  br label %519

519:                                              ; preds = %518
  %520 = load i32, ptr %34, align 4, !tbaa !103
  %521 = add nsw i32 %520, 1
  store i32 %521, ptr %34, align 4, !tbaa !103
  br label %491, !llvm.loop !132

522:                                              ; preds = %498
  %523 = load ptr, ptr %33, align 8, !tbaa !5
  %524 = getelementptr inbounds %struct.ImVector.1, ptr %523, i32 0, i32 2
  %525 = load ptr, ptr %524, align 8, !tbaa !133
  %526 = load ptr, ptr %33, align 8, !tbaa !5
  %527 = getelementptr inbounds %struct.ImVector.1, ptr %526, i32 0, i32 0
  %528 = load i32, ptr %527, align 8, !tbaa !134
  %529 = sext i32 %528 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %525, i64 noundef %529, i64 noundef 8, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %530 = load ptr, ptr %33, align 8, !tbaa !5
  %531 = getelementptr inbounds %struct.ImVector.1, ptr %530, i32 0, i32 2
  %532 = load ptr, ptr %531, align 8, !tbaa !133
  %533 = load ptr, ptr %33, align 8, !tbaa !5
  %534 = getelementptr inbounds %struct.ImVector.1, ptr %533, i32 0, i32 0
  %535 = load i32, ptr %534, align 8, !tbaa !134
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %532, i32 noundef %535, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  br label %536

536:                                              ; preds = %522, %481
  call void @_ZN5ImGui7TreePopEv()
  br label %537

537:                                              ; preds = %536, %475
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  store i32 0, ptr %35, align 4, !tbaa !103
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  store i32 0, ptr %36, align 4, !tbaa !103
  br label %538

538:                                              ; preds = %556, %537
  %539 = load i32, ptr %36, align 4, !tbaa !103
  %540 = load ptr, ptr %3, align 8, !tbaa !5
  %541 = getelementptr inbounds %struct.ImGuiContext, ptr %540, i32 0, i32 78
  %542 = getelementptr inbounds %struct.ImVector.11, ptr %541, i32 0, i32 0
  %543 = load i32, ptr %542, align 8, !tbaa !135
  %544 = icmp slt i32 %539, %543
  br i1 %544, label %546, label %545

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

546:                                              ; preds = %538
  %547 = load ptr, ptr %3, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.ImGuiContext, ptr %547, i32 0, i32 78
  %549 = load i32, ptr %36, align 4, !tbaa !103
  %550 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %548, i32 noundef %549)
  %551 = load ptr, ptr %550, align 8, !tbaa !5
  %552 = getelementptr inbounds %struct.ImGuiViewportP, ptr %551, i32 0, i32 4
  %553 = call noundef i32 @_ZNK17ImDrawDataBuilder16GetDrawListCountEv(ptr noundef nonnull align 8 dereferenceable(32) %552)
  %554 = load i32, ptr %35, align 4, !tbaa !103
  %555 = add nsw i32 %554, %553
  store i32 %555, ptr %35, align 4, !tbaa !103
  br label %556

556:                                              ; preds = %546
  %557 = load i32, ptr %36, align 4, !tbaa !103
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr %36, align 4, !tbaa !103
  br label %538, !llvm.loop !136

559:                                              ; preds = %545
  %560 = load i32, ptr %35, align 4, !tbaa !103
  %561 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.348, ptr noundef @.str.349, i32 noundef %560)
  br i1 %561, label %562, label %622

562:                                              ; preds = %559
  %563 = load ptr, ptr %5, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %563, i32 0, i32 5
  %565 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.350, ptr noundef %564)
  %566 = load ptr, ptr %5, align 8, !tbaa !5
  %567 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %566, i32 0, i32 6
  %568 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.351, ptr noundef %567)
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  store i32 0, ptr %37, align 4, !tbaa !103
  br label %569

569:                                              ; preds = %618, %562
  %570 = load i32, ptr %37, align 4, !tbaa !103
  %571 = load ptr, ptr %3, align 8, !tbaa !5
  %572 = getelementptr inbounds %struct.ImGuiContext, ptr %571, i32 0, i32 78
  %573 = getelementptr inbounds %struct.ImVector.11, ptr %572, i32 0, i32 0
  %574 = load i32, ptr %573, align 8, !tbaa !135
  %575 = icmp slt i32 %570, %574
  br i1 %575, label %577, label %576

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

577:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #9
  %578 = load ptr, ptr %3, align 8, !tbaa !5
  %579 = getelementptr inbounds %struct.ImGuiContext, ptr %578, i32 0, i32 78
  %580 = load i32, ptr %37, align 4, !tbaa !103
  %581 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %579, i32 noundef %580)
  %582 = load ptr, ptr %581, align 8, !tbaa !5
  store ptr %582, 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 !103
  br label %583

583:                                              ; preds = %614, %577
  %584 = load i32, ptr %39, align 4, !tbaa !103
  %585 = icmp slt i32 %584, 2
  br i1 %585, label %587, label %586

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

587:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  store i32 0, ptr %40, align 4, !tbaa !103
  br label %588

588:                                              ; preds = %610, %587
  %589 = load i32, ptr %40, align 4, !tbaa !103
  %590 = load ptr, ptr %38, align 8, !tbaa !5
  %591 = getelementptr inbounds %struct.ImGuiViewportP, ptr %590, i32 0, i32 4
  %592 = getelementptr inbounds %struct.ImDrawDataBuilder, ptr %591, i32 0, i32 0
  %593 = load i32, ptr %39, align 4, !tbaa !103
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds [2 x %struct.ImVector.42], ptr %592, i64 0, i64 %594
  %596 = getelementptr inbounds %struct.ImVector.42, ptr %595, i32 0, i32 0
  %597 = load i32, ptr %596, align 8, !tbaa !137
  %598 = icmp slt i32 %589, %597
  br i1 %598, label %600, label %599

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

600:                                              ; preds = %588
  %601 = load ptr, ptr %38, align 8, !tbaa !5
  %602 = getelementptr inbounds %struct.ImGuiViewportP, ptr %601, i32 0, i32 4
  %603 = getelementptr inbounds %struct.ImDrawDataBuilder, ptr %602, i32 0, i32 0
  %604 = load i32, ptr %39, align 4, !tbaa !103
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds [2 x %struct.ImVector.42], ptr %603, i64 0, i64 %605
  %607 = load i32, ptr %40, align 4, !tbaa !103
  %608 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %606, i32 noundef %607)
  %609 = load ptr, ptr %608, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %609, ptr noundef @.str.352)
  br label %610

610:                                              ; preds = %600
  %611 = load i32, ptr %40, align 4, !tbaa !103
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr %40, align 4, !tbaa !103
  br label %588, !llvm.loop !139

613:                                              ; preds = %599
  br label %614

614:                                              ; preds = %613
  %615 = load i32, ptr %39, align 4, !tbaa !103
  %616 = add nsw i32 %615, 1
  store i32 %616, ptr %39, align 4, !tbaa !103
  br label %583, !llvm.loop !140

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

618:                                              ; preds = %617
  %619 = load i32, ptr %37, align 4, !tbaa !103
  %620 = add nsw i32 %619, 1
  store i32 %620, ptr %37, align 4, !tbaa !103
  br label %569, !llvm.loop !141

621:                                              ; preds = %576
  call void @_ZN5ImGui7TreePopEv()
  br label %622

622:                                              ; preds = %621, %559
  %623 = load ptr, ptr %3, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.ImGuiContext, ptr %623, i32 0, i32 78
  %625 = getelementptr inbounds %struct.ImVector.11, ptr %624, i32 0, i32 0
  %626 = load i32, ptr %625, align 8, !tbaa !135
  %627 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.353, ptr noundef @.str.354, i32 noundef %626)
  br i1 %627, label %628, label %649

628:                                              ; preds = %622
  %629 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %629)
  call void @_ZL25RenderViewportsThumbnailsv()
  %630 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %630)
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  store i32 0, ptr %41, align 4, !tbaa !103
  br label %631

631:                                              ; preds = %645, %628
  %632 = load i32, ptr %41, align 4, !tbaa !103
  %633 = load ptr, ptr %3, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.ImGuiContext, ptr %633, i32 0, i32 78
  %635 = getelementptr inbounds %struct.ImVector.11, ptr %634, i32 0, i32 0
  %636 = load i32, ptr %635, align 8, !tbaa !135
  %637 = icmp slt i32 %632, %636
  br i1 %637, label %639, label %638

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

639:                                              ; preds = %631
  %640 = load ptr, ptr %3, align 8, !tbaa !5
  %641 = getelementptr inbounds %struct.ImGuiContext, ptr %640, i32 0, i32 78
  %642 = load i32, ptr %41, align 4, !tbaa !103
  %643 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %641, i32 noundef %642)
  %644 = load ptr, ptr %643, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %644)
  br label %645

645:                                              ; preds = %639
  %646 = load i32, ptr %41, align 4, !tbaa !103
  %647 = add nsw i32 %646, 1
  store i32 %647, ptr %41, align 4, !tbaa !103
  br label %631, !llvm.loop !142

648:                                              ; preds = %638
  call void @_ZN5ImGui7TreePopEv()
  br label %649

649:                                              ; preds = %648, %622
  %650 = load ptr, ptr %3, align 8, !tbaa !5
  %651 = getelementptr inbounds %struct.ImGuiContext, ptr %650, i32 0, i32 75
  %652 = getelementptr inbounds %struct.ImVector.10, ptr %651, i32 0, i32 0
  %653 = load i32, ptr %652, align 8, !tbaa !143
  %654 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.355, ptr noundef @.str.356, i32 noundef %653)
  br i1 %654, label %655, label %741

655:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  store i32 0, ptr %42, align 4, !tbaa !103
  br label %656

656:                                              ; preds = %737, %655
  %657 = load i32, ptr %42, align 4, !tbaa !103
  %658 = load ptr, ptr %3, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.ImGuiContext, ptr %658, i32 0, i32 75
  %660 = getelementptr inbounds %struct.ImVector.10, ptr %659, i32 0, i32 0
  %661 = load i32, ptr %660, align 8, !tbaa !143
  %662 = icmp slt i32 %657, %661
  br i1 %662, label %664, label %663

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

664:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  %665 = load ptr, ptr %3, align 8, !tbaa !5
  %666 = getelementptr inbounds %struct.ImGuiContext, ptr %665, i32 0, i32 75
  %667 = load i32, ptr %42, align 4, !tbaa !103
  %668 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %666, i32 noundef %667)
  store ptr %668, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  %669 = load ptr, ptr %43, align 8, !tbaa !5
  %670 = getelementptr inbounds %struct.ImGuiPopupData, ptr %669, i32 0, i32 2
  %671 = load ptr, ptr %670, align 8, !tbaa !144
  store ptr %671, ptr %44, align 8, !tbaa !5
  %672 = load ptr, ptr %43, align 8, !tbaa !5
  %673 = getelementptr inbounds %struct.ImGuiPopupData, ptr %672, i32 0, i32 0
  %674 = load i32, ptr %673, align 8, !tbaa !146
  %675 = load ptr, ptr %44, align 8, !tbaa !5
  %676 = icmp ne ptr %675, null
  br i1 %676, label %677, label %681

677:                                              ; preds = %664
  %678 = load ptr, ptr %44, align 8, !tbaa !5
  %679 = getelementptr inbounds %struct.ImGuiWindow, ptr %678, i32 0, i32 0
  %680 = load ptr, ptr %679, align 8, !tbaa !102
  br label %682

681:                                              ; preds = %664
  br label %682

682:                                              ; preds = %681, %677
  %683 = phi ptr [ %680, %677 ], [ @.str.358, %681 ]
  %684 = load ptr, ptr %44, align 8, !tbaa !5
  %685 = icmp ne ptr %684, null
  br i1 %685, label %686, label %692

686:                                              ; preds = %682
  %687 = load ptr, ptr %44, align 8, !tbaa !5
  %688 = getelementptr inbounds %struct.ImGuiWindow, ptr %687, i32 0, i32 2
  %689 = load i32, ptr %688, align 4, !tbaa !147
  %690 = and i32 %689, 16777216
  %691 = icmp ne i32 %690, 0
  br label %692

692:                                              ; preds = %686, %682
  %693 = phi i1 [ false, %682 ], [ %691, %686 ]
  %694 = zext i1 %693 to i64
  %695 = select i1 %693, ptr @.str.359, ptr @.str.15
  %696 = load ptr, ptr %44, align 8, !tbaa !5
  %697 = icmp ne ptr %696, null
  br i1 %697, label %698, label %704

698:                                              ; preds = %692
  %699 = load ptr, ptr %44, align 8, !tbaa !5
  %700 = getelementptr inbounds %struct.ImGuiWindow, ptr %699, i32 0, i32 2
  %701 = load i32, ptr %700, align 4, !tbaa !147
  %702 = and i32 %701, 268435456
  %703 = icmp ne i32 %702, 0
  br label %704

704:                                              ; preds = %698, %692
  %705 = phi i1 [ false, %692 ], [ %703, %698 ]
  %706 = zext i1 %705 to i64
  %707 = select i1 %705, ptr @.str.360, ptr @.str.15
  %708 = load ptr, ptr %43, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct.ImGuiPopupData, ptr %708, i32 0, i32 3
  %710 = load ptr, ptr %709, align 8, !tbaa !148
  %711 = icmp ne ptr %710, null
  br i1 %711, label %712, label %718

712:                                              ; preds = %704
  %713 = load ptr, ptr %43, align 8, !tbaa !5
  %714 = getelementptr inbounds %struct.ImGuiPopupData, ptr %713, i32 0, i32 3
  %715 = load ptr, ptr %714, align 8, !tbaa !148
  %716 = getelementptr inbounds %struct.ImGuiWindow, ptr %715, i32 0, i32 0
  %717 = load ptr, ptr %716, align 8, !tbaa !102
  br label %719

718:                                              ; preds = %704
  br label %719

719:                                              ; preds = %718, %712
  %720 = phi ptr [ %717, %712 ], [ @.str.358, %718 ]
  %721 = load ptr, ptr %44, align 8, !tbaa !5
  %722 = icmp ne ptr %721, null
  br i1 %722, label %723, label %734

723:                                              ; preds = %719
  %724 = load ptr, ptr %44, align 8, !tbaa !5
  %725 = getelementptr inbounds %struct.ImGuiWindow, ptr %724, i32 0, i32 75
  %726 = load ptr, ptr %725, align 8, !tbaa !149
  %727 = icmp ne ptr %726, null
  br i1 %727, label %728, label %734

728:                                              ; preds = %723
  %729 = load ptr, ptr %44, align 8, !tbaa !5
  %730 = getelementptr inbounds %struct.ImGuiWindow, ptr %729, i32 0, i32 75
  %731 = load ptr, ptr %730, align 8, !tbaa !149
  %732 = getelementptr inbounds %struct.ImGuiWindow, ptr %731, i32 0, i32 0
  %733 = load ptr, ptr %732, align 8, !tbaa !102
  br label %735

734:                                              ; preds = %723, %719
  br label %735

735:                                              ; preds = %734, %728
  %736 = phi ptr [ %733, %728 ], [ @.str.358, %734 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.357, i32 noundef %674, ptr noundef %683, ptr noundef %695, ptr noundef %707, ptr noundef %720, ptr noundef %736)
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  br label %737

737:                                              ; preds = %735
  %738 = load i32, ptr %42, align 4, !tbaa !103
  %739 = add nsw i32 %738, 1
  store i32 %739, ptr %42, align 4, !tbaa !103
  br label %656, !llvm.loop !150

740:                                              ; preds = %663
  call void @_ZN5ImGui7TreePopEv()
  br label %741

741:                                              ; preds = %740, %649
  %742 = load ptr, ptr %3, align 8, !tbaa !5
  %743 = getelementptr inbounds %struct.ImGuiContext, ptr %742, i32 0, i32 158
  %744 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %743)
  %745 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.361, ptr noundef @.str.362, i32 noundef %744)
  br i1 %745, label %746, label %769

746:                                              ; preds = %741
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  store i32 0, ptr %45, align 4, !tbaa !103
  br label %747

747:                                              ; preds = %765, %746
  %748 = load i32, ptr %45, align 4, !tbaa !103
  %749 = load ptr, ptr %3, align 8, !tbaa !5
  %750 = getelementptr inbounds %struct.ImGuiContext, ptr %749, i32 0, i32 158
  %751 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %750)
  %752 = icmp slt i32 %748, %751
  br i1 %752, label %754, label %753

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

754:                                              ; preds = %747
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #9
  %755 = load ptr, ptr %3, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.ImGuiContext, ptr %755, i32 0, i32 158
  %757 = load i32, ptr %45, align 4, !tbaa !103
  %758 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %756, i32 noundef %757)
  store ptr %758, ptr %46, align 8, !tbaa !5
  %759 = load ptr, ptr %46, align 8, !tbaa !5
  %760 = icmp ne ptr %759, null
  br i1 %760, label %761, label %764

761:                                              ; preds = %754
  %762 = load ptr, ptr %46, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef %762)
  %763 = load ptr, ptr %46, align 8, !tbaa !5
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef %763, ptr noundef @.str.363)
  call void @_ZN5ImGui5PopIDEv()
  br label %764

764:                                              ; preds = %761, %754
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  br label %765

765:                                              ; preds = %764
  %766 = load i32, ptr %45, align 4, !tbaa !103
  %767 = add nsw i32 %766, 1
  store i32 %767, ptr %45, align 4, !tbaa !103
  br label %747, !llvm.loop !151

768:                                              ; preds = %753
  call void @_ZN5ImGui7TreePopEv()
  br label %769

769:                                              ; preds = %768, %741
  %770 = load ptr, ptr %3, align 8, !tbaa !5
  %771 = getelementptr inbounds %struct.ImGuiContext, ptr %770, i32 0, i32 154
  %772 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %771)
  %773 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.364, ptr noundef @.str.365, i32 noundef %772)
  br i1 %773, label %774, label %796

774:                                              ; preds = %769
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  store i32 0, ptr %47, align 4, !tbaa !103
  br label %775

775:                                              ; preds = %792, %774
  %776 = load i32, ptr %47, align 4, !tbaa !103
  %777 = load ptr, ptr %3, align 8, !tbaa !5
  %778 = getelementptr inbounds %struct.ImGuiContext, ptr %777, i32 0, i32 154
  %779 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %778)
  %780 = icmp slt i32 %776, %779
  br i1 %780, label %782, label %781

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

782:                                              ; preds = %775
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  %783 = load ptr, ptr %3, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.ImGuiContext, ptr %783, i32 0, i32 154
  %785 = load i32, ptr %47, align 4, !tbaa !103
  %786 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %784, i32 noundef %785)
  store ptr %786, ptr %48, align 8, !tbaa !5
  %787 = load ptr, ptr %48, align 8, !tbaa !5
  %788 = icmp ne ptr %787, null
  br i1 %788, label %789, label %791

789:                                              ; preds = %782
  %790 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef %790)
  br label %791

791:                                              ; preds = %789, %782
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  br label %792

792:                                              ; preds = %791
  %793 = load i32, ptr %47, align 4, !tbaa !103
  %794 = add nsw i32 %793, 1
  store i32 %794, ptr %47, align 4, !tbaa !103
  br label %775, !llvm.loop !152

795:                                              ; preds = %781
  call void @_ZN5ImGui7TreePopEv()
  br label %796

796:                                              ; preds = %795, %769
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %797 = load ptr, ptr %3, align 8, !tbaa !5
  %798 = getelementptr inbounds %struct.ImGuiContext, ptr %797, i32 0, i32 2
  %799 = getelementptr inbounds %struct.ImGuiIO, ptr %798, i32 0, i32 15
  %800 = load ptr, ptr %799, align 8, !tbaa !153
  store ptr %800, ptr %49, align 8, !tbaa !5
  %801 = load ptr, ptr %49, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.ImFontAtlas, ptr %801, i32 0, i32 15
  %803 = getelementptr inbounds %struct.ImVector.6, ptr %802, i32 0, i32 0
  %804 = load i32, ptr %803, align 8, !tbaa !154
  %805 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.366, ptr noundef @.str.367, i32 noundef %804)
  br i1 %805, label %806, label %808

806:                                              ; preds = %796
  %807 = load ptr, ptr %49, align 8, !tbaa !5
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef %807)
  call void @_ZN5ImGui7TreePopEv()
  br label %808

808:                                              ; preds = %806, %796
  %809 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.368)
  br i1 %809, label %810, label %813

810:                                              ; preds = %808
  %811 = load ptr, ptr %3, align 8, !tbaa !5
  %812 = getelementptr inbounds %struct.ImGuiContext, ptr %811, i32 0, i32 166
  call void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef %812)
  call void @_ZN5ImGui7TreePopEv()
  br label %813

813:                                              ; preds = %810, %808
  %814 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.369)
  br i1 %814, label %815, label %932

815:                                              ; preds = %813
  %816 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.370)
  br i1 %816, label %817, label %818

817:                                              ; preds = %815
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %818

818:                                              ; preds = %817, %815
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %819 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.371)
  br i1 %819, label %820, label %822

820:                                              ; preds = %818
  %821 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %822

822:                                              ; preds = %820, %818
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %823 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.372)
  br i1 %823, label %824, label %829

824:                                              ; preds = %822
  %825 = load ptr, ptr %3, align 8, !tbaa !5
  %826 = getelementptr inbounds %struct.ImGuiContext, ptr %825, i32 0, i32 2
  %827 = getelementptr inbounds %struct.ImGuiIO, ptr %826, i32 0, i32 5
  %828 = load ptr, ptr %827, align 8, !tbaa !158
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %828)
  br label %829

829:                                              ; preds = %824, %822
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %830 = load ptr, ptr %3, align 8, !tbaa !5
  %831 = getelementptr inbounds %struct.ImGuiContext, ptr %830, i32 0, i32 2
  %832 = getelementptr inbounds %struct.ImGuiIO, ptr %831, i32 0, i32 5
  %833 = load ptr, ptr %832, align 8, !tbaa !158
  %834 = icmp ne ptr %833, null
  br i1 %834, label %835, label %840

835:                                              ; preds = %829
  %836 = load ptr, ptr %3, align 8, !tbaa !5
  %837 = getelementptr inbounds %struct.ImGuiContext, ptr %836, i32 0, i32 2
  %838 = getelementptr inbounds %struct.ImGuiIO, ptr %837, i32 0, i32 5
  %839 = load ptr, ptr %838, align 8, !tbaa !158
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.373, ptr noundef %839)
  br label %841

840:                                              ; preds = %829
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef @.str.237, ptr noundef null)
  br label %841

841:                                              ; preds = %840, %835
  %842 = load ptr, ptr %3, align 8, !tbaa !5
  %843 = getelementptr inbounds %struct.ImGuiContext, ptr %842, i32 0, i32 191
  %844 = load float, ptr %843, align 4, !tbaa !159
  %845 = fpext float %844 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.374, double noundef %845)
  %846 = load ptr, ptr %3, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.ImGuiContext, ptr %846, i32 0, i32 193
  %848 = getelementptr inbounds %struct.ImVector.24, ptr %847, i32 0, i32 0
  %849 = load i32, ptr %848, align 8, !tbaa !160
  %850 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.375, ptr noundef @.str.376, i32 noundef %849)
  br i1 %850, label %851, label %871

851:                                              ; preds = %841
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  store i32 0, ptr %50, align 4, !tbaa !103
  br label %852

852:                                              ; preds = %867, %851
  %853 = load i32, ptr %50, align 4, !tbaa !103
  %854 = load ptr, ptr %3, align 8, !tbaa !5
  %855 = getelementptr inbounds %struct.ImGuiContext, ptr %854, i32 0, i32 193
  %856 = getelementptr inbounds %struct.ImVector.24, ptr %855, i32 0, i32 0
  %857 = load i32, ptr %856, align 8, !tbaa !160
  %858 = icmp slt i32 %853, %857
  br i1 %858, label %860, label %859

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

860:                                              ; preds = %852
  %861 = load ptr, ptr %3, align 8, !tbaa !5
  %862 = getelementptr inbounds %struct.ImGuiContext, ptr %861, i32 0, i32 193
  %863 = load i32, ptr %50, align 4, !tbaa !103
  %864 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %862, i32 noundef %863)
  %865 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %864, i32 0, i32 0
  %866 = load ptr, ptr %865, align 8, !tbaa !161
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.377, ptr noundef %866)
  br label %867

867:                                              ; preds = %860
  %868 = load i32, ptr %50, align 4, !tbaa !103
  %869 = add nsw i32 %868, 1
  store i32 %869, ptr %50, align 4, !tbaa !103
  br label %852, !llvm.loop !163

870:                                              ; preds = %859
  call void @_ZN5ImGui7TreePopEv()
  br label %871

871:                                              ; preds = %870, %841
  %872 = load ptr, ptr %3, align 8, !tbaa !5
  %873 = getelementptr inbounds %struct.ImGuiContext, ptr %872, i32 0, i32 194
  %874 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %873)
  %875 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.378, ptr noundef @.str.379, i32 noundef %874)
  br i1 %875, label %876, label %892

876:                                              ; preds = %871
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  %877 = load ptr, ptr %3, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.ImGuiContext, ptr %877, i32 0, i32 194
  %879 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %878)
  store ptr %879, ptr %51, align 8, !tbaa !5
  br label %880

880:                                              ; preds = %886, %876
  %881 = load ptr, ptr %51, align 8, !tbaa !5
  %882 = icmp ne ptr %881, null
  br i1 %882, label %884, label %883

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

884:                                              ; preds = %880
  %885 = load ptr, ptr %51, align 8, !tbaa !5
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef %885)
  br label %886

886:                                              ; preds = %884
  %887 = load ptr, ptr %3, align 8, !tbaa !5
  %888 = getelementptr inbounds %struct.ImGuiContext, ptr %887, i32 0, i32 194
  %889 = load ptr, ptr %51, align 8, !tbaa !5
  %890 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %888, ptr noundef %889)
  store ptr %890, ptr %51, align 8, !tbaa !5
  br label %880, !llvm.loop !164

891:                                              ; preds = %883
  call void @_ZN5ImGui7TreePopEv()
  br label %892

892:                                              ; preds = %891, %871
  %893 = load ptr, ptr %3, align 8, !tbaa !5
  %894 = getelementptr inbounds %struct.ImGuiContext, ptr %893, i32 0, i32 195
  %895 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %894)
  %896 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.380, ptr noundef @.str.381, i32 noundef %895)
  br i1 %896, label %897, label %913

897:                                              ; preds = %892
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  %898 = load ptr, ptr %3, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.ImGuiContext, ptr %898, i32 0, i32 195
  %900 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %899)
  store ptr %900, ptr %52, align 8, !tbaa !5
  br label %901

901:                                              ; preds = %907, %897
  %902 = load ptr, ptr %52, align 8, !tbaa !5
  %903 = icmp ne ptr %902, null
  br i1 %903, label %905, label %904

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

905:                                              ; preds = %901
  %906 = load ptr, ptr %52, align 8, !tbaa !5
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef %906)
  br label %907

907:                                              ; preds = %905
  %908 = load ptr, ptr %3, align 8, !tbaa !5
  %909 = getelementptr inbounds %struct.ImGuiContext, ptr %908, i32 0, i32 195
  %910 = load ptr, ptr %52, align 8, !tbaa !5
  %911 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %909, ptr noundef %910)
  store ptr %911, ptr %52, align 8, !tbaa !5
  br label %901, !llvm.loop !165

912:                                              ; preds = %904
  call void @_ZN5ImGui7TreePopEv()
  br label %913

913:                                              ; preds = %912, %892
  %914 = load ptr, ptr %3, align 8, !tbaa !5
  %915 = getelementptr inbounds %struct.ImGuiContext, ptr %914, i32 0, i32 192
  %916 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %915)
  %917 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.382, ptr noundef @.str.383, i32 noundef %916)
  br i1 %917, label %918, label %931

918:                                              ; preds = %913
  %919 = load ptr, ptr %3, align 8, !tbaa !5
  %920 = getelementptr inbounds %struct.ImGuiContext, ptr %919, i32 0, i32 192
  %921 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %920)
  %922 = load ptr, ptr %3, align 8, !tbaa !5
  %923 = getelementptr inbounds %struct.ImGuiContext, ptr %922, i32 0, i32 192
  %924 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %923, i32 0, i32 0
  %925 = getelementptr inbounds %struct.ImVector.22, ptr %924, i32 0, i32 0
  %926 = load i32, ptr %925, align 8, !tbaa !166
  %927 = sext i32 %926 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %928 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %929 = fmul float %928, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %53, float noundef 0xB810000000000000, float noundef %929)
  %930 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.384, ptr noundef %921, i64 noundef %927, 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 %931

931:                                              ; preds = %918, %913
  call void @_ZN5ImGui7TreePopEv()
  br label %932

932:                                              ; preds = %931, %813
  %933 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.385)
  br i1 %933, label %934, label %1158

934:                                              ; preds = %932
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.386)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %935 = load ptr, ptr %3, align 8, !tbaa !5
  %936 = getelementptr inbounds %struct.ImGuiContext, ptr %935, i32 0, i32 28
  %937 = load ptr, ptr %936, align 8, !tbaa !167
  %938 = icmp ne ptr %937, null
  br i1 %938, label %939, label %945

939:                                              ; preds = %934
  %940 = load ptr, ptr %3, align 8, !tbaa !5
  %941 = getelementptr inbounds %struct.ImGuiContext, ptr %940, i32 0, i32 28
  %942 = load ptr, ptr %941, align 8, !tbaa !167
  %943 = getelementptr inbounds %struct.ImGuiWindow, ptr %942, i32 0, i32 0
  %944 = load ptr, ptr %943, align 8, !tbaa !102
  br label %946

945:                                              ; preds = %934
  br label %946

946:                                              ; preds = %945, %939
  %947 = phi ptr [ %944, %939 ], [ @.str.358, %945 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.387, ptr noundef %947)
  %948 = load ptr, ptr %3, align 8, !tbaa !5
  %949 = getelementptr inbounds %struct.ImGuiContext, ptr %948, i32 0, i32 28
  %950 = load ptr, ptr %949, align 8, !tbaa !167
  %951 = icmp ne ptr %950, null
  br i1 %951, label %952, label %960

952:                                              ; preds = %946
  %953 = load ptr, ptr %3, align 8, !tbaa !5
  %954 = getelementptr inbounds %struct.ImGuiContext, ptr %953, i32 0, i32 28
  %955 = load ptr, ptr %954, align 8, !tbaa !167
  %956 = getelementptr inbounds %struct.ImGuiWindow, ptr %955, i32 0, i32 77
  %957 = load ptr, ptr %956, align 8, !tbaa !168
  %958 = getelementptr inbounds %struct.ImGuiWindow, ptr %957, i32 0, i32 0
  %959 = load ptr, ptr %958, align 8, !tbaa !102
  br label %961

960:                                              ; preds = %946
  br label %961

961:                                              ; preds = %960, %952
  %962 = phi ptr [ %959, %952 ], [ @.str.358, %960 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.388, ptr noundef %962)
  %963 = load ptr, ptr %3, align 8, !tbaa !5
  %964 = getelementptr inbounds %struct.ImGuiContext, ptr %963, i32 0, i32 29
  %965 = load ptr, ptr %964, align 8, !tbaa !169
  %966 = icmp ne ptr %965, null
  br i1 %966, label %967, label %973

967:                                              ; preds = %961
  %968 = load ptr, ptr %3, align 8, !tbaa !5
  %969 = getelementptr inbounds %struct.ImGuiContext, ptr %968, i32 0, i32 29
  %970 = load ptr, ptr %969, align 8, !tbaa !169
  %971 = getelementptr inbounds %struct.ImGuiWindow, ptr %970, i32 0, i32 0
  %972 = load ptr, ptr %971, align 8, !tbaa !102
  br label %974

973:                                              ; preds = %961
  br label %974

974:                                              ; preds = %973, %967
  %975 = phi ptr [ %972, %967 ], [ @.str.358, %973 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.389, ptr noundef %975)
  %976 = load ptr, ptr %3, align 8, !tbaa !5
  %977 = getelementptr inbounds %struct.ImGuiContext, ptr %976, i32 0, i32 30
  %978 = load ptr, ptr %977, align 8, !tbaa !170
  %979 = icmp ne ptr %978, null
  br i1 %979, label %980, label %986

980:                                              ; preds = %974
  %981 = load ptr, ptr %3, align 8, !tbaa !5
  %982 = getelementptr inbounds %struct.ImGuiContext, ptr %981, i32 0, i32 30
  %983 = load ptr, ptr %982, align 8, !tbaa !170
  %984 = getelementptr inbounds %struct.ImGuiWindow, ptr %983, i32 0, i32 0
  %985 = load ptr, ptr %984, align 8, !tbaa !102
  br label %987

986:                                              ; preds = %974
  br label %987

987:                                              ; preds = %986, %980
  %988 = phi ptr [ %985, %980 ], [ @.str.358, %986 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.390, ptr noundef %988)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.391)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %989 = load ptr, ptr %3, align 8, !tbaa !5
  %990 = getelementptr inbounds %struct.ImGuiContext, ptr %989, i32 0, i32 43
  %991 = load i32, ptr %990, align 4, !tbaa !171
  %992 = load ptr, ptr %3, align 8, !tbaa !5
  %993 = getelementptr inbounds %struct.ImGuiContext, ptr %992, i32 0, i32 56
  %994 = load i32, ptr %993, align 8, !tbaa !172
  %995 = load ptr, ptr %3, align 8, !tbaa !5
  %996 = getelementptr inbounds %struct.ImGuiContext, ptr %995, i32 0, i32 45
  %997 = load float, ptr %996, align 4, !tbaa !173
  %998 = fpext float %997 to double
  %999 = load ptr, ptr %3, align 8, !tbaa !5
  %1000 = getelementptr inbounds %struct.ImGuiContext, ptr %999, i32 0, i32 47
  %1001 = load i8, ptr %1000, align 1, !tbaa !174, !range !13, !noundef !14
  %1002 = trunc i8 %1001 to i1
  %1003 = zext i1 %1002 to i32
  %1004 = load ptr, ptr %3, align 8, !tbaa !5
  %1005 = getelementptr inbounds %struct.ImGuiContext, ptr %1004, i32 0, i32 54
  %1006 = load i32, ptr %1005, align 8, !tbaa !175
  %1007 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1006)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.392, i32 noundef %991, i32 noundef %994, double noundef %998, i32 noundef %1003, ptr noundef %1007)
  %1008 = load ptr, ptr %3, align 8, !tbaa !5
  %1009 = getelementptr inbounds %struct.ImGuiContext, ptr %1008, i32 0, i32 53
  %1010 = load ptr, ptr %1009, align 8, !tbaa !176
  %1011 = icmp ne ptr %1010, null
  br i1 %1011, label %1012, label %1018

1012:                                             ; preds = %987
  %1013 = load ptr, ptr %3, align 8, !tbaa !5
  %1014 = getelementptr inbounds %struct.ImGuiContext, ptr %1013, i32 0, i32 53
  %1015 = load ptr, ptr %1014, align 8, !tbaa !176
  %1016 = getelementptr inbounds %struct.ImGuiWindow, ptr %1015, i32 0, i32 0
  %1017 = load ptr, ptr %1016, align 8, !tbaa !102
  br label %1019

1018:                                             ; preds = %987
  br label %1019

1019:                                             ; preds = %1018, %1012
  %1020 = phi ptr [ %1017, %1012 ], [ @.str.358, %1018 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.393, ptr noundef %1020)
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  store i32 0, ptr %54, align 4, !tbaa !103
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  store i32 512, ptr %55, align 4, !tbaa !103
  br label %1021

1021:                                             ; preds = %1034, %1019
  %1022 = load i32, ptr %55, align 4, !tbaa !103
  %1023 = icmp slt i32 %1022, 652
  br i1 %1023, label %1025, label %1024

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

1025:                                             ; preds = %1021
  %1026 = load ptr, ptr %3, align 8, !tbaa !5
  %1027 = getelementptr inbounds %struct.ImGuiContext, ptr %1026, i32 0, i32 63
  %1028 = load i32, ptr %55, align 4, !tbaa !103
  %1029 = call noundef zeroext i1 @_ZNK10ImBitArrayILi140ELin512EEixEi(ptr noundef nonnull align 4 dereferenceable(20) %1027, i32 noundef %1028)
  %1030 = zext i1 %1029 to i64
  %1031 = select i1 %1029, i32 1, i32 0
  %1032 = load i32, ptr %54, align 4, !tbaa !103
  %1033 = add nsw i32 %1032, %1031
  store i32 %1033, ptr %54, align 4, !tbaa !103
  br label %1034

1034:                                             ; preds = %1025
  %1035 = load i32, ptr %55, align 4, !tbaa !103
  %1036 = add nsw i32 %1035, 1
  store i32 %1036, ptr %55, align 4, !tbaa !103
  br label %1021, !llvm.loop !177

1037:                                             ; preds = %1024
  %1038 = load ptr, ptr %3, align 8, !tbaa !5
  %1039 = getelementptr inbounds %struct.ImGuiContext, ptr %1038, i32 0, i32 62
  %1040 = load i32, ptr %1039, align 8, !tbaa !178
  %1041 = load i32, ptr %54, align 4, !tbaa !103
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.394, i32 noundef %1040, i32 noundef %1041)
  %1042 = load ptr, ptr %3, align 8, !tbaa !5
  %1043 = getelementptr inbounds %struct.ImGuiContext, ptr %1042, i32 0, i32 36
  %1044 = load i32, ptr %1043, align 4, !tbaa !179
  %1045 = load ptr, ptr %3, align 8, !tbaa !5
  %1046 = getelementptr inbounds %struct.ImGuiContext, ptr %1045, i32 0, i32 41
  %1047 = load float, ptr %1046, align 4, !tbaa !180
  %1048 = fpext float %1047 to double
  %1049 = load ptr, ptr %3, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.ImGuiContext, ptr %1049, i32 0, i32 37
  %1051 = load i8, ptr %1050, align 8, !tbaa !181, !range !13, !noundef !14
  %1052 = trunc i8 %1051 to i1
  %1053 = zext i1 %1052 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.395, i32 noundef %1044, double noundef %1048, i32 noundef %1053)
  %1054 = load ptr, ptr %3, align 8, !tbaa !5
  %1055 = getelementptr inbounds %struct.ImGuiContext, ptr %1054, i32 0, i32 161
  %1056 = load i32, ptr %1055, align 8, !tbaa !182
  %1057 = load ptr, ptr %3, align 8, !tbaa !5
  %1058 = getelementptr inbounds %struct.ImGuiContext, ptr %1057, i32 0, i32 163
  %1059 = load float, ptr %1058, align 8, !tbaa !183
  %1060 = fpext float %1059 to double
  %1061 = load ptr, ptr %3, align 8, !tbaa !5
  %1062 = getelementptr inbounds %struct.ImGuiContext, ptr %1061, i32 0, i32 164
  %1063 = load float, ptr %1062, align 4, !tbaa !184
  %1064 = fpext float %1063 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.396, i32 noundef %1056, double noundef %1060, double noundef %1064)
  %1065 = load ptr, ptr %3, align 8, !tbaa !5
  %1066 = getelementptr inbounds %struct.ImGuiContext, ptr %1065, i32 0, i32 131
  %1067 = load i8, ptr %1066, align 4, !tbaa !185, !range !13, !noundef !14
  %1068 = trunc i8 %1067 to i1
  %1069 = zext i1 %1068 to i32
  %1070 = load ptr, ptr %3, align 8, !tbaa !5
  %1071 = getelementptr inbounds %struct.ImGuiContext, ptr %1070, i32 0, i32 138
  %1072 = getelementptr inbounds %struct.ImGuiPayload, ptr %1071, i32 0, i32 2
  %1073 = load i32, ptr %1072, align 4, !tbaa !186
  %1074 = load ptr, ptr %3, align 8, !tbaa !5
  %1075 = getelementptr inbounds %struct.ImGuiContext, ptr %1074, i32 0, i32 138
  %1076 = getelementptr inbounds %struct.ImGuiPayload, ptr %1075, i32 0, i32 5
  %1077 = getelementptr inbounds [33 x i8], ptr %1076, i64 0, i64 0
  %1078 = load ptr, ptr %3, align 8, !tbaa !5
  %1079 = getelementptr inbounds %struct.ImGuiContext, ptr %1078, i32 0, i32 138
  %1080 = getelementptr inbounds %struct.ImGuiPayload, ptr %1079, i32 0, i32 1
  %1081 = load i32, ptr %1080, align 8, !tbaa !187
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.397, i32 noundef %1069, i32 noundef %1073, ptr noundef %1077, i32 noundef %1081)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.398)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1082 = load ptr, ptr %3, align 8, !tbaa !5
  %1083 = getelementptr inbounds %struct.ImGuiContext, ptr %1082, i32 0, i32 79
  %1084 = load ptr, ptr %1083, align 8, !tbaa !101
  %1085 = icmp ne ptr %1084, null
  br i1 %1085, label %1086, label %1092

1086:                                             ; preds = %1037
  %1087 = load ptr, ptr %3, align 8, !tbaa !5
  %1088 = getelementptr inbounds %struct.ImGuiContext, ptr %1087, i32 0, i32 79
  %1089 = load ptr, ptr %1088, align 8, !tbaa !101
  %1090 = getelementptr inbounds %struct.ImGuiWindow, ptr %1089, i32 0, i32 0
  %1091 = load ptr, ptr %1090, align 8, !tbaa !102
  br label %1093

1092:                                             ; preds = %1037
  br label %1093

1093:                                             ; preds = %1092, %1086
  %1094 = phi ptr [ %1091, %1086 ], [ @.str.358, %1092 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.399, ptr noundef %1094)
  %1095 = load ptr, ptr %3, align 8, !tbaa !5
  %1096 = getelementptr inbounds %struct.ImGuiContext, ptr %1095, i32 0, i32 80
  %1097 = load i32, ptr %1096, align 8, !tbaa !188
  %1098 = load ptr, ptr %3, align 8, !tbaa !5
  %1099 = getelementptr inbounds %struct.ImGuiContext, ptr %1098, i32 0, i32 93
  %1100 = load i32, ptr %1099, align 4, !tbaa !189
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.400, i32 noundef %1097, i32 noundef %1100)
  %1101 = load ptr, ptr %3, align 8, !tbaa !5
  %1102 = getelementptr inbounds %struct.ImGuiContext, ptr %1101, i32 0, i32 92
  %1103 = load i32, ptr %1102, align 8, !tbaa !190
  %1104 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1103)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.401, ptr noundef %1104)
  %1105 = load ptr, ptr %3, align 8, !tbaa !5
  %1106 = getelementptr inbounds %struct.ImGuiContext, ptr %1105, i32 0, i32 2
  %1107 = getelementptr inbounds %struct.ImGuiIO, ptr %1106, i32 0, i32 44
  %1108 = load i8, ptr %1107, align 1, !tbaa !191, !range !13, !noundef !14
  %1109 = trunc i8 %1108 to i1
  %1110 = zext i1 %1109 to i32
  %1111 = load ptr, ptr %3, align 8, !tbaa !5
  %1112 = getelementptr inbounds %struct.ImGuiContext, ptr %1111, i32 0, i32 2
  %1113 = getelementptr inbounds %struct.ImGuiIO, ptr %1112, i32 0, i32 45
  %1114 = load i8, ptr %1113, align 2, !tbaa !192, !range !13, !noundef !14
  %1115 = trunc i8 %1114 to i1
  %1116 = zext i1 %1115 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.402, i32 noundef %1110, i32 noundef %1116)
  %1117 = load ptr, ptr %3, align 8, !tbaa !5
  %1118 = getelementptr inbounds %struct.ImGuiContext, ptr %1117, i32 0, i32 82
  %1119 = load i32, ptr %1118, align 8, !tbaa !193
  %1120 = load ptr, ptr %3, align 8, !tbaa !5
  %1121 = getelementptr inbounds %struct.ImGuiContext, ptr %1120, i32 0, i32 83
  %1122 = load i32, ptr %1121, align 4, !tbaa !194
  %1123 = load ptr, ptr %3, align 8, !tbaa !5
  %1124 = getelementptr inbounds %struct.ImGuiContext, ptr %1123, i32 0, i32 84
  %1125 = load i32, ptr %1124, align 8, !tbaa !195
  %1126 = load ptr, ptr %3, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.ImGuiContext, ptr %1126, i32 0, i32 85
  %1128 = load i32, ptr %1127, align 4, !tbaa !196
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.403, i32 noundef %1119, i32 noundef %1122, i32 noundef %1125, i32 noundef %1128)
  %1129 = load ptr, ptr %3, align 8, !tbaa !5
  %1130 = getelementptr inbounds %struct.ImGuiContext, ptr %1129, i32 0, i32 86
  %1131 = load i32, ptr %1130, align 8, !tbaa !197
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.404, i32 noundef %1131)
  %1132 = load ptr, ptr %3, align 8, !tbaa !5
  %1133 = getelementptr inbounds %struct.ImGuiContext, ptr %1132, i32 0, i32 96
  %1134 = load i8, ptr %1133, align 2, !tbaa !198, !range !13, !noundef !14
  %1135 = trunc i8 %1134 to i1
  %1136 = zext i1 %1135 to i32
  %1137 = load ptr, ptr %3, align 8, !tbaa !5
  %1138 = getelementptr inbounds %struct.ImGuiContext, ptr %1137, i32 0, i32 97
  %1139 = load i8, ptr %1138, align 1, !tbaa !199, !range !13, !noundef !14
  %1140 = trunc i8 %1139 to i1
  %1141 = zext i1 %1140 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.405, i32 noundef %1136, i32 noundef %1141)
  %1142 = load ptr, ptr %3, align 8, !tbaa !5
  %1143 = getelementptr inbounds %struct.ImGuiContext, ptr %1142, i32 0, i32 81
  %1144 = load i32, ptr %1143, align 4, !tbaa !200
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.406, i32 noundef %1144)
  %1145 = load ptr, ptr %3, align 8, !tbaa !5
  %1146 = getelementptr inbounds %struct.ImGuiContext, ptr %1145, i32 0, i32 121
  %1147 = load ptr, ptr %1146, align 8, !tbaa !201
  %1148 = icmp ne ptr %1147, null
  br i1 %1148, label %1149, label %1155

1149:                                             ; preds = %1093
  %1150 = load ptr, ptr %3, align 8, !tbaa !5
  %1151 = getelementptr inbounds %struct.ImGuiContext, ptr %1150, i32 0, i32 121
  %1152 = load ptr, ptr %1151, align 8, !tbaa !201
  %1153 = getelementptr inbounds %struct.ImGuiWindow, ptr %1152, i32 0, i32 0
  %1154 = load ptr, ptr %1153, align 8, !tbaa !102
  br label %1156

1155:                                             ; preds = %1093
  br label %1156

1156:                                             ; preds = %1155, %1149
  %1157 = phi ptr [ %1154, %1149 ], [ @.str.358, %1155 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.407, ptr noundef %1157)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %1158

1158:                                             ; preds = %1156, %932
  %1159 = load ptr, ptr %5, align 8, !tbaa !5
  %1160 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1159, i32 0, i32 2
  %1161 = load i8, ptr %1160, align 2, !tbaa !100, !range !13, !noundef !14
  %1162 = trunc i8 %1161 to i1
  br i1 %1162, label %1168, label %1163

1163:                                             ; preds = %1158
  %1164 = load ptr, ptr %5, align 8, !tbaa !5
  %1165 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1164, i32 0, i32 3
  %1166 = load i8, ptr %1165, align 1, !tbaa !202, !range !13, !noundef !14
  %1167 = trunc i8 %1166 to i1
  br i1 %1167, label %1168, label %1247

1168:                                             ; preds = %1163, %1158
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  store i32 0, ptr %56, align 4, !tbaa !103
  br label %1169

1169:                                             ; preds = %1243, %1168
  %1170 = load i32, ptr %56, align 4, !tbaa !103
  %1171 = load ptr, ptr %3, align 8, !tbaa !5
  %1172 = getelementptr inbounds %struct.ImGuiContext, ptr %1171, i32 0, i32 20
  %1173 = getelementptr inbounds %struct.ImVector.1, ptr %1172, i32 0, i32 0
  %1174 = load i32, ptr %1173, align 8, !tbaa !130
  %1175 = icmp slt i32 %1170, %1174
  br i1 %1175, label %1177, label %1176

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

1177:                                             ; preds = %1169
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #9
  %1178 = load ptr, ptr %3, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.ImGuiContext, ptr %1178, i32 0, i32 20
  %1180 = load i32, ptr %56, align 4, !tbaa !103
  %1181 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1179, i32 noundef %1180)
  %1182 = load ptr, ptr %1181, align 8, !tbaa !5
  store ptr %1182, ptr %57, align 8, !tbaa !5
  %1183 = load ptr, ptr %57, align 8, !tbaa !5
  %1184 = getelementptr inbounds %struct.ImGuiWindow, ptr %1183, i32 0, i32 25
  %1185 = load i8, ptr %1184, align 1, !tbaa !203, !range !13, !noundef !14
  %1186 = trunc i8 %1185 to i1
  br i1 %1186, label %1188, label %1187

1187:                                             ; preds = %1177
  store i32 55, ptr %6, align 4
  br label %1240

1188:                                             ; preds = %1177
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #9
  %1189 = load ptr, ptr %57, align 8, !tbaa !5
  %1190 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1189)
  store ptr %1190, ptr %58, align 8, !tbaa !5
  %1191 = load ptr, ptr %5, align 8, !tbaa !5
  %1192 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1191, i32 0, i32 2
  %1193 = load i8, ptr %1192, align 2, !tbaa !100, !range !13, !noundef !14
  %1194 = trunc i8 %1193 to i1
  br i1 %1194, label %1195, label %1208

1195:                                             ; preds = %1188
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #9
  %1196 = load ptr, ptr %57, align 8, !tbaa !5
  %1197 = load ptr, ptr %5, align 8, !tbaa !5
  %1198 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1197, i32 0, i32 7
  %1199 = load i32, ptr %1198, align 4, !tbaa !50
  %1200 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %1196, i32 noundef %1199)
  %1201 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %59, i32 0, i32 0
  %1202 = extractvalue { <2 x float>, <2 x float> } %1200, 0
  store <2 x float> %1202, ptr %1201, align 4
  %1203 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %59, i32 0, i32 1
  %1204 = extractvalue { <2 x float>, <2 x float> } %1200, 1
  store <2 x float> %1204, ptr %1203, align 4
  %1205 = load ptr, ptr %58, align 8, !tbaa !5
  %1206 = getelementptr inbounds %struct.ImRect, ptr %59, i32 0, i32 0
  %1207 = getelementptr inbounds %struct.ImRect, ptr %59, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1205, ptr noundef nonnull align 4 dereferenceable(8) %1206, ptr noundef nonnull align 4 dereferenceable(8) %1207, 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 %59) #9
  br label %1208

1208:                                             ; preds = %1195, %1188
  %1209 = load ptr, ptr %5, align 8, !tbaa !5
  %1210 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1209, i32 0, i32 3
  %1211 = load i8, ptr %1210, align 1, !tbaa !202, !range !13, !noundef !14
  %1212 = trunc i8 %1211 to i1
  br i1 %1212, label %1213, label %1239

1213:                                             ; preds = %1208
  %1214 = load ptr, ptr %57, align 8, !tbaa !5
  %1215 = getelementptr inbounds %struct.ImGuiWindow, ptr %1214, i32 0, i32 2
  %1216 = load i32, ptr %1215, align 4, !tbaa !147
  %1217 = and i32 %1216, 16777216
  %1218 = icmp ne i32 %1217, 0
  br i1 %1218, label %1239, label %1219

1219:                                             ; preds = %1213
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #9
  %1220 = getelementptr inbounds [32 x i8], ptr %60, i64 0, i64 0
  %1221 = load ptr, ptr %57, align 8, !tbaa !5
  %1222 = getelementptr inbounds %struct.ImGuiWindow, ptr %1221, i32 0, i32 38
  %1223 = load i16, ptr %1222, align 2, !tbaa !204
  %1224 = sext i16 %1223 to i32
  %1225 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %1220, i64 noundef 32, ptr noundef @.str.295, i32 noundef %1224)
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %1226 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  store float %1226, ptr %61, align 4, !tbaa !205
  %1227 = load ptr, ptr %58, align 8, !tbaa !5
  %1228 = load ptr, ptr %57, align 8, !tbaa !5
  %1229 = getelementptr inbounds %struct.ImGuiWindow, ptr %1228, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #9
  %1230 = load ptr, ptr %57, align 8, !tbaa !5
  %1231 = getelementptr inbounds %struct.ImGuiWindow, ptr %1230, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  %1232 = load float, ptr %61, align 4, !tbaa !205
  %1233 = load float, ptr %61, align 4, !tbaa !205
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef %1232, float noundef %1233)
  %1234 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1231, ptr noundef nonnull align 4 dereferenceable(8) %63)
  store <2 x float> %1234, ptr %62, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1227, ptr noundef nonnull align 4 dereferenceable(8) %1229, ptr noundef nonnull align 4 dereferenceable(8) %62, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  %1235 = load ptr, ptr %58, align 8, !tbaa !5
  %1236 = load ptr, ptr %57, align 8, !tbaa !5
  %1237 = getelementptr inbounds %struct.ImGuiWindow, ptr %1236, i32 0, i32 4
  %1238 = getelementptr inbounds [32 x i8], ptr %60, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1235, ptr noundef nonnull align 4 dereferenceable(8) %1237, i32 noundef -1, ptr noundef %1238, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #9
  br label %1239

1239:                                             ; preds = %1219, %1213, %1208
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  store i32 0, ptr %6, align 4
  br label %1240

1240:                                             ; preds = %1239, %1187
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  %1241 = load i32, ptr %6, align 4
  switch i32 %1241, label %1355 [
    i32 0, label %1242
    i32 55, label %1243
  ]

1242:                                             ; preds = %1240
  br label %1243

1243:                                             ; preds = %1242, %1240
  %1244 = load i32, ptr %56, align 4, !tbaa !103
  %1245 = add nsw i32 %1244, 1
  store i32 %1245, ptr %56, align 4, !tbaa !103
  br label %1169, !llvm.loop !206

1246:                                             ; preds = %1176
  br label %1247

1247:                                             ; preds = %1246, %1163
  %1248 = load ptr, ptr %5, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1248, i32 0, i32 4
  %1250 = load i8, ptr %1249, align 4, !tbaa !110, !range !13, !noundef !14
  %1251 = trunc i8 %1250 to i1
  br i1 %1251, label %1252, label %1351

1252:                                             ; preds = %1247
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  store i32 0, ptr %64, align 4, !tbaa !103
  br label %1253

1253:                                             ; preds = %1347, %1252
  %1254 = load i32, ptr %64, align 4, !tbaa !103
  %1255 = load ptr, ptr %3, align 8, !tbaa !5
  %1256 = getelementptr inbounds %struct.ImGuiContext, ptr %1255, i32 0, i32 154
  %1257 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1256)
  %1258 = icmp slt i32 %1254, %1257
  br i1 %1258, label %1260, label %1259

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

1260:                                             ; preds = %1253
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %1261 = load ptr, ptr %3, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.ImGuiContext, ptr %1261, i32 0, i32 154
  %1263 = load i32, ptr %64, align 4, !tbaa !103
  %1264 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1262, i32 noundef %1263)
  store ptr %1264, ptr %65, align 8, !tbaa !5
  %1265 = load ptr, ptr %65, align 8, !tbaa !5
  %1266 = icmp eq ptr %1265, null
  br i1 %1266, label %1276, label %1267

1267:                                             ; preds = %1260
  %1268 = load ptr, ptr %65, align 8, !tbaa !5
  %1269 = getelementptr inbounds %struct.ImGuiTable, ptr %1268, i32 0, i32 13
  %1270 = load i32, ptr %1269, align 8, !tbaa !111
  %1271 = load ptr, ptr %3, align 8, !tbaa !5
  %1272 = getelementptr inbounds %struct.ImGuiContext, ptr %1271, i32 0, i32 11
  %1273 = load i32, ptr %1272, align 8, !tbaa !122
  %1274 = sub nsw i32 %1273, 1
  %1275 = icmp slt i32 %1270, %1274
  br i1 %1275, label %1276, label %1277

1276:                                             ; preds = %1267, %1260
  store i32 58, ptr %6, align 4
  br label %1344

1277:                                             ; preds = %1267
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  %1278 = load ptr, ptr %65, align 8, !tbaa !5
  %1279 = getelementptr inbounds %struct.ImGuiTable, ptr %1278, i32 0, i32 54
  %1280 = load ptr, ptr %1279, align 8, !tbaa !123
  %1281 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1280)
  store ptr %1281, ptr %66, align 8, !tbaa !5
  %1282 = load ptr, ptr %5, align 8, !tbaa !5
  %1283 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1282, i32 0, i32 8
  %1284 = load i32, ptr %1283, align 4, !tbaa !51
  %1285 = icmp sge i32 %1284, 6
  br i1 %1285, label %1286, label %1330

1286:                                             ; preds = %1277
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  store i32 0, ptr %67, align 4, !tbaa !103
  br label %1287

1287:                                             ; preds = %1326, %1286
  %1288 = load i32, ptr %67, align 4, !tbaa !103
  %1289 = load ptr, ptr %65, align 8, !tbaa !5
  %1290 = getelementptr inbounds %struct.ImGuiTable, ptr %1289, i32 0, i32 14
  %1291 = load i32, ptr %1290, align 4, !tbaa !126
  %1292 = icmp slt i32 %1288, %1291
  br i1 %1292, label %1294, label %1293

1293:                                             ; preds = %1287
  store i32 59, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %1329

1294:                                             ; preds = %1287
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #9
  %1295 = load ptr, ptr %65, align 8, !tbaa !5
  %1296 = load ptr, ptr %5, align 8, !tbaa !5
  %1297 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1296, i32 0, i32 8
  %1298 = load i32, ptr %1297, align 4, !tbaa !51
  %1299 = load i32, ptr %67, align 4, !tbaa !103
  %1300 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1295, i32 noundef %1298, i32 noundef %1299)
  %1301 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %68, i32 0, i32 0
  %1302 = extractvalue { <2 x float>, <2 x float> } %1300, 0
  store <2 x float> %1302, ptr %1301, align 4
  %1303 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %68, i32 0, i32 1
  %1304 = extractvalue { <2 x float>, <2 x float> } %1300, 1
  store <2 x float> %1304, ptr %1303, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %1305 = load ptr, ptr %65, align 8, !tbaa !5
  %1306 = getelementptr inbounds %struct.ImGuiTable, ptr %1305, i32 0, i32 67
  %1307 = load i8, ptr %1306, align 4, !tbaa !207
  %1308 = sext i8 %1307 to i32
  %1309 = load i32, ptr %67, align 4, !tbaa !103
  %1310 = icmp eq i32 %1308, %1309
  %1311 = zext i1 %1310 to i64
  %1312 = select i1 %1310, i32 -8323073, i32 -8388353
  store i32 %1312, ptr %69, align 4, !tbaa !103
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #9
  %1313 = load ptr, ptr %65, align 8, !tbaa !5
  %1314 = getelementptr inbounds %struct.ImGuiTable, ptr %1313, i32 0, i32 67
  %1315 = load i8, ptr %1314, align 4, !tbaa !207
  %1316 = sext i8 %1315 to i32
  %1317 = load i32, ptr %67, align 4, !tbaa !103
  %1318 = icmp eq i32 %1316, %1317
  %1319 = zext i1 %1318 to i64
  %1320 = select i1 %1318, float 3.000000e+00, float 1.000000e+00
  store float %1320, ptr %70, align 4, !tbaa !205
  %1321 = load ptr, ptr %66, align 8, !tbaa !5
  %1322 = getelementptr inbounds %struct.ImRect, ptr %68, i32 0, i32 0
  %1323 = getelementptr inbounds %struct.ImRect, ptr %68, i32 0, i32 1
  %1324 = load i32, ptr %69, align 4, !tbaa !103
  %1325 = load float, ptr %70, align 4, !tbaa !205
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1321, ptr noundef nonnull align 4 dereferenceable(8) %1322, ptr noundef nonnull align 4 dereferenceable(8) %1323, i32 noundef %1324, float noundef 0.000000e+00, i32 noundef 0, float noundef %1325)
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #9
  br label %1326

1326:                                             ; preds = %1294
  %1327 = load i32, ptr %67, align 4, !tbaa !103
  %1328 = add nsw i32 %1327, 1
  store i32 %1328, ptr %67, align 4, !tbaa !103
  br label %1287, !llvm.loop !208

1329:                                             ; preds = %1293
  br label %1343

1330:                                             ; preds = %1277
  call void @llvm.lifetime.start.p0(i64 16, ptr %71) #9
  %1331 = load ptr, ptr %65, align 8, !tbaa !5
  %1332 = load ptr, ptr %5, align 8, !tbaa !5
  %1333 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1332, i32 0, i32 8
  %1334 = load i32, ptr %1333, align 4, !tbaa !51
  %1335 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1331, i32 noundef %1334, i32 noundef -1)
  %1336 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %71, i32 0, i32 0
  %1337 = extractvalue { <2 x float>, <2 x float> } %1335, 0
  store <2 x float> %1337, ptr %1336, align 4
  %1338 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %71, i32 0, i32 1
  %1339 = extractvalue { <2 x float>, <2 x float> } %1335, 1
  store <2 x float> %1339, ptr %1338, align 4
  %1340 = load ptr, ptr %66, align 8, !tbaa !5
  %1341 = getelementptr inbounds %struct.ImRect, ptr %71, i32 0, i32 0
  %1342 = getelementptr inbounds %struct.ImRect, ptr %71, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1340, ptr noundef nonnull align 4 dereferenceable(8) %1341, ptr noundef nonnull align 4 dereferenceable(8) %1342, 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 %71) #9
  br label %1343

1343:                                             ; preds = %1330, %1329
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  store i32 0, ptr %6, align 4
  br label %1344

1344:                                             ; preds = %1343, %1276
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  %1345 = load i32, ptr %6, align 4
  switch i32 %1345, label %1355 [
    i32 0, label %1346
    i32 58, label %1347
  ]

1346:                                             ; preds = %1344
  br label %1347

1347:                                             ; preds = %1346, %1344
  %1348 = load i32, ptr %64, align 4, !tbaa !103
  %1349 = add nsw i32 %1348, 1
  store i32 %1349, ptr %64, align 4, !tbaa !103
  br label %1253, !llvm.loop !209

1350:                                             ; preds = %1259
  br label %1351

1351:                                             ; preds = %1350, %1247
  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 %1352

1352:                                             ; preds = %1351, %101
  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
  %1353 = load i32, ptr %6, align 4
  switch i32 %1353, label %1355 [
    i32 0, label %1354
    i32 1, label %1354
  ]

1354:                                             ; preds = %1352, %1352
  ret void

1355:                                             ; preds = %1352, %1344, %1240, %467
  unreachable
}

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

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

declare void @_ZN5ImGui9SeparatorEv() #5

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

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

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

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

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

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

; 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 uwtable
declare dso_local noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) #7 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)) #5

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

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

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) #5

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK10ImBitArrayILi140ELin512EEixEi(ptr noundef nonnull align 4 dereferenceable(20), i32 noundef) #1 align 2

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

declare void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, 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 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 #4 = { 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 #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress 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 #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, !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 162}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !12, i64 8, !12, i64 12, !6, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !19, i64 80, !19, i64 84, !12, i64 88, !12, i64 92, !12, i64 96, !18, i64 100, !18, i64 108, !18, i64 116, !18, i64 124, !18, i64 132, !18, i64 140, !11, i64 148, !11, i64 149, !11, i64 150, !11, i64 151, !11, i64 152, !11, i64 153, !11, i64 154, !11, i64 155, !11, i64 156, !11, i64 157, !11, i64 158, !11, i64 159, !11, i64 160, !7, i64 161, !20, i64 162, !20, i64 164, !20, i64 166, !20, i64 168, !12, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !11, i64 179, !12, i64 180, !7, i64 184, !7, i64 185, !7, i64 186, !7, i64 187, !12, i64 188, !12, i64 189, !12, i64 190, !18, i64 192, !18, i64 200, !21, i64 208, !22, i64 224, !28, i64 464, !28, i64 480, !28, i64 496, !28, i64 512, !28, i64 528, !28, i64 544, !28, i64 560, !29, i64 576, !29, i64 580, !12, i64 584, !19, i64 588, !19, i64 592, !30, i64 600, !32, i64 616, !19, i64 632, !12, i64 636, !6, i64 640, !33, i64 648, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !7, i64 904, !7, i64 912, !12, i64 944, !12, i64 948, !11, i64 952}
!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, !12, i64 96, !11, i64 100, !11, i64 101, !11, i64 102, !18, i64 104, !25, i64 112, !12, i64 140, !12, i64 144, !26, i64 152, !6, i64 168, !6, i64 176, !12, i64 184, !12, i64 188, !12, i64 192, !19, i64 196, !19, i64 200, !27, i64 208, !27, i64 224}
!23 = !{!"_ZTS6ImVec1", !19, i64 0}
!24 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!25 = !{!"_ZTS16ImGuiMenuColumns", !12, i64 0, !12, i64 4, !20, i64 8, !20, i64 10, !20, i64 12, !20, i64 14, !20, i64 16, !7, i64 18}
!26 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!28 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!29 = !{!"_ZTS8ImVec2ih", !20, i64 0, !20, i64 2}
!30 = !{!"_ZTS12ImGuiStorage", !31, i64 0}
!31 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !12, i64 0, !12, i64 4, !6, i64 8}
!32 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!33 = !{!"_ZTS10ImDrawList", !34, i64 0, !35, i64 16, !36, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !37, i64 88, !38, i64 104, !39, i64 120, !40, i64 136, !42, i64 168, !19, i64 192}
!34 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorIPvE", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!40 = !{!"_ZTS15ImDrawCmdHeader", !41, i64 0, !6, i64 16, !12, i64 24}
!41 = !{!"_ZTS6ImVec4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!42 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !43, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!44 = !{!45, !19, i64 216}
!45 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !6, i64 24, !6, i64 32, !19, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !19, i64 60, !19, i64 64, !6, i64 72, !6, i64 80, !19, i64 88, !11, i64 92, !6, i64 96, !18, i64 104, !11, i64 112, !11, i64 113, !11, i64 114, !11, i64 115, !11, i64 116, !11, i64 117, !11, i64 118, !11, i64 119, !19, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !11, i64 214, !19, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !12, i64 232, !12, i64 236, !18, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !18, i64 3572, !7, i64 3580, !19, i64 3588, !19, i64 3592, !11, i64 3596, !11, i64 3597, !11, i64 3598, !11, i64 3599, !12, i64 3600, !7, i64 3604, !11, i64 14036, !18, i64 14040, !7, i64 14048, !7, i64 14088, !7, i64 14128, !7, i64 14133, !7, i64 14138, !7, i64 14148, !7, i64 14158, !7, i64 14163, !7, i64 14168, !7, i64 14176, !7, i64 14196, !7, i64 14216, !19, i64 14236, !11, i64 14240, !11, i64 14241, !7, i64 14242, !11, i64 14243, !20, i64 14244, !35, i64 14248}
!46 = !{!45, !12, i64 220}
!47 = !{!45, !12, i64 224}
!48 = !{!45, !12, i64 228}
!49 = !{!45, !12, i64 236}
!50 = !{!10, !12, i64 8}
!51 = !{!10, !12, i64 12}
!52 = !{!11, !11, i64 0}
!53 = !{!7, !7, i64 0}
!54 = !{!55, !11, i64 21552}
!55 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !45, i64 8, !56, i64 14272, !56, i64 14288, !57, i64 14304, !6, i64 15352, !19, i64 15360, !19, i64 15364, !58, i64 15368, !59, i64 15880, !12, i64 15888, !12, i64 15892, !12, i64 15896, !11, i64 15900, !11, i64 15901, !11, i64 15902, !11, i64 15903, !11, i64 15904, !6, i64 15912, !26, i64 15920, !26, i64 15936, !26, i64 15952, !60, i64 15968, !30, i64 15984, !12, i64 16000, !18, i64 16004, !6, i64 16016, !6, i64 16024, !6, i64 16032, !6, i64 16040, !6, i64 16048, !18, i64 16056, !19, i64 16064, !12, i64 16068, !12, i64 16072, !12, i64 16076, !11, i64 16080, !11, i64 16081, !11, i64 16082, !11, i64 16083, !19, i64 16084, !19, i64 16088, !12, i64 16092, !12, i64 16096, !19, i64 16100, !11, i64 16104, !11, i64 16105, !11, i64 16106, !11, i64 16107, !11, i64 16108, !11, i64 16109, !18, i64 16112, !6, i64 16120, !61, i64 16128, !12, i64 16132, !12, i64 16136, !11, i64 16140, !11, i64 16141, !6, i64 16144, !12, i64 16152, !19, i64 16156, !12, i64 16160, !62, i64 16164, !12, i64 16184, !12, i64 16188, !63, i64 16192, !64, i64 16212, !65, i64 16272, !66, i64 16384, !67, i64 16400, !68, i64 16416, !21, i64 16432, !69, i64 16448, !70, i64 16464, !71, i64 16480, !71, i64 16496, !12, i64 16512, !72, i64 16520, !6, i64 16536, !12, i64 16544, !12, i64 16548, !12, i64 16552, !12, i64 16556, !12, i64 16560, !12, i64 16564, !12, i64 16568, !12, i64 16572, !12, i64 16576, !12, i64 16580, !12, i64 16584, !12, i64 16588, !61, i64 16592, !24, i64 16596, !11, i64 16600, !11, i64 16601, !11, i64 16602, !11, i64 16603, !11, i64 16604, !11, i64 16605, !11, i64 16606, !12, i64 16608, !28, i64 16612, !11, i64 16628, !11, i64 16629, !11, i64 16630, !12, i64 16632, !12, i64 16636, !12, i64 16640, !12, i64 16644, !12, i64 16648, !12, i64 16652, !28, i64 16656, !28, i64 16672, !12, i64 16688, !12, i64 16692, !12, i64 16696, !73, i64 16704, !73, i64 16752, !73, i64 16800, !73, i64 16848, !6, i64 16896, !6, i64 16904, !6, i64 16912, !19, i64 16920, !19, i64 16924, !11, i64 16928, !18, i64 16932, !18, i64 16940, !19, i64 16948, !12, i64 16952, !11, i64 16956, !11, i64 16957, !11, i64 16958, !12, i64 16960, !12, i64 16964, !12, i64 16968, !74, i64 16976, !28, i64 17040, !12, i64 17056, !12, i64 17060, !19, i64 17064, !12, i64 17068, !12, i64 17072, !12, i64 17076, !12, i64 17080, !75, i64 17088, !7, i64 17104, !12, i64 17120, !76, i64 17128, !6, i64 17144, !12, i64 17152, !77, i64 17160, !78, i64 17176, !27, i64 17216, !43, i64 17232, !6, i64 17248, !80, i64 17256, !82, i64 17296, !83, i64 17312, !12, i64 17328, !12, i64 17332, !19, i64 17336, !19, i64 17340, !18, i64 17344, !84, i64 17352, !88, i64 21072, !12, i64 21184, !12, i64 21188, !19, i64 21192, !19, i64 21196, !12, i64 21200, !41, i64 21204, !90, i64 21220, !19, i64 21268, !19, i64 21272, !11, i64 21276, !11, i64 21277, !19, i64 21280, !19, i64 21284, !19, i64 21288, !19, i64 21292, !20, i64 21296, !20, i64 21298, !85, i64 21304, !21, i64 21320, !91, i64 21336, !91, i64 21352, !7, i64 21368, !11, i64 21369, !19, i64 21372, !92, i64 21376, !93, i64 21392, !94, i64 21408, !95, i64 21424, !96, i64 21440, !12, i64 21456, !11, i64 21460, !97, i64 21464, !6, i64 21472, !92, i64 21480, !6, i64 21496, !6, i64 21504, !19, i64 21512, !11, i64 21516, !12, i64 21520, !12, i64 21524, !12, i64 21528, !12, i64 21532, !92, i64 21536, !11, i64 21552, !7, i64 21553, !12, i64 21556, !10, i64 21560, !98, i64 21576, !7, i64 21616, !12, i64 21856, !12, i64 21860, !19, i64 21864, !12, i64 21868, !12, i64 21872, !12, i64 21876, !85, i64 21880}
!56 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!57 = !{!"_ZTS10ImGuiStyle", !19, i64 0, !19, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !18, i64 24, !18, i64 32, !12, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !18, i64 60, !19, i64 68, !19, i64 72, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !12, i64 148, !18, i64 152, !18, i64 160, !18, i64 168, !18, i64 176, !19, i64 184, !11, i64 188, !11, i64 189, !11, i64 190, !19, i64 192, !19, i64 196, !7, i64 200}
!58 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !19, i64 16, !19, i64 20, !19, i64 24, !41, i64 28, !12, i64 44, !7, i64 48, !19, i64 432, !7, i64 436, !6, i64 504}
!59 = !{!"double", !7, i64 0}
!60 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!62 = !{!"_ZTS10ImBitArrayILi140ELin512EE", !7, i64 0}
!63 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !19, i64 4, !12, i64 8, !12, i64 12, !11, i64 16}
!64 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !28, i64 12, !28, i64 28, !28, i64 44}
!65 = !{!"_ZTS19ImGuiNextWindowData", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !11, i64 56, !28, i64 60, !6, i64 80, !6, i64 88, !19, i64 96, !18, i64 100}
!66 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!73 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !28, i64 16, !12, i64 32, !19, i64 36, !19, i64 40, !19, i64 44}
!74 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !7, i64 24, !11, i64 57, !11, i64 58}
!75 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS6ImPoolI10ImGuiTableE", !79, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!79 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!80 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !81, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!81 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_ZTS19ImGuiInputTextState", !12, i64 0, !12, i64 4, !12, i64 8, !35, i64 16, !85, i64 32, !85, i64 48, !11, i64 64, !12, i64 68, !19, i64 72, !86, i64 76, !19, i64 3704, !11, i64 3708, !11, i64 3709, !11, i64 3710, !12, i64 3712}
!85 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!86 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !12, i64 0, !12, i64 4, !12, i64 8, !7, i64 12, !12, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !19, i64 28, !87, i64 32}
!87 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !20, i64 3582, !20, i64 3584, !12, i64 3588, !12, i64 3592}
!88 = !{!"_ZTS6ImFont", !27, i64 0, !19, i64 16, !19, i64 20, !35, i64 24, !89, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !20, i64 80, !20, i64 82, !20, i64 84, !20, i64 86, !11, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !12, i64 104, !7, i64 108}
!89 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!90 = !{!"_ZTS21ImGuiComboPreviewData", !28, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !19, i64 40, !12, i64 44}
!91 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !18, i64 4, !19, i64 12}
!92 = !{!"_ZTS15ImGuiTextBuffer", !85, i64 0}
!93 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!94 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !85, i64 0}
!95 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !85, i64 0}
!96 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!97 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!98 = !{!"_ZTS14ImGuiStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !99, i64 16, !11, i64 32, !19, i64 36}
!99 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!100 = !{!10, !11, i64 2}
!101 = !{!55, !6, i64 16536}
!102 = !{!17, !6, i64 0}
!103 = !{!12, !12, i64 0}
!104 = !{!28, !19, i64 0}
!105 = !{!28, !19, i64 4}
!106 = !{!28, !19, i64 8}
!107 = !{!28, !19, i64 12}
!108 = distinct !{!108, !109}
!109 = !{!"llvm.loop.mustprogress"}
!110 = !{!10, !11, i64 4}
!111 = !{!112, !12, i64 112}
!112 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !113, i64 24, !114, i64 40, !115, i64 56, !116, i64 72, !116, i64 80, !116, i64 88, !116, i64 96, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !12, i64 124, !20, i64 128, !20, i64 130, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !19, i64 148, !12, i64 152, !12, i64 154, !12, i64 156, !7, i64 160, !12, i64 168, !12, i64 172, !19, i64 176, !19, i64 180, !19, i64 184, !19, i64 188, !19, i64 192, !19, i64 196, !19, i64 200, !19, i64 204, !19, i64 208, !19, i64 212, !19, i64 216, !19, i64 220, !19, i64 224, !19, i64 228, !19, i64 232, !19, i64 236, !28, i64 240, !28, i64 256, !28, i64 272, !28, i64 288, !28, i64 304, !28, i64 320, !28, i64 336, !28, i64 352, !28, i64 368, !6, i64 384, !6, i64 392, !92, i64 400, !6, i64 416, !117, i64 424, !118, i64 432, !119, i64 448, !120, i64 464, !121, i64 480, !7, i64 496, !7, i64 497, !7, i64 498, !7, i64 499, !7, i64 500, !7, i64 501, !7, i64 502, !7, i64 503, !7, i64 504, !7, i64 505, !7, i64 506, !7, i64 507, !7, i64 508, !7, i64 509, !7, i64 510, !7, i64 511, !7, i64 512, !7, i64 513, !7, i64 514, !7, i64 515, !7, i64 516, !7, i64 517, !7, i64 518, !7, i64 519, !7, i64 520, !11, i64 521, !11, i64 522, !11, i64 523, !11, i64 524, !11, i64 525, !11, i64 526, !11, i64 527, !11, i64 528, !11, i64 529, !11, i64 530, !11, i64 531, !11, i64 532, !11, i64 533, !11, i64 534, !11, i64 535}
!113 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!114 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!115 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!116 = !{!"long long", !7, i64 0}
!117 = !{!"_ZTS22ImGuiTableInstanceData", !19, i64 0, !19, i64 4}
!118 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!119 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !20, i64 4, !20, i64 6, !12, i64 8}
!120 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!121 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!122 = !{!55, !12, i64 15888}
!123 = !{!112, !6, i64 384}
!124 = !{!112, !6, i64 392}
!125 = !{!112, !12, i64 0}
!126 = !{!112, !12, i64 116}
!127 = distinct !{!127, !109}
!128 = distinct !{!128, !109}
!129 = distinct !{!129, !109}
!130 = !{!55, !12, i64 15920}
!131 = !{!17, !12, i64 584}
!132 = distinct !{!132, !109}
!133 = !{!26, !6, i64 8}
!134 = !{!26, !12, i64 0}
!135 = !{!55, !12, i64 16520}
!136 = distinct !{!136, !109}
!137 = !{!138, !12, i64 0}
!138 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!139 = distinct !{!139, !109}
!140 = distinct !{!140, !109}
!141 = distinct !{!141, !109}
!142 = distinct !{!142, !109}
!143 = !{!55, !12, i64 16480}
!144 = !{!145, !6, i64 8}
!145 = !{!"_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}
!146 = !{!145, !12, i64 0}
!147 = !{!17, !12, i64 12}
!148 = !{!145, !6, i64 16}
!149 = !{!17, !6, i64 848}
!150 = distinct !{!150, !109}
!151 = distinct !{!151, !109}
!152 = distinct !{!152, !109}
!153 = !{!55, !6, i64 88}
!154 = !{!155, !12, i64 72}
!155 = !{!"_ZTS11ImFontAtlas", !12, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !11, i64 24, !11, i64 25, !11, i64 26, !6, i64 32, !6, i64 40, !12, i64 48, !12, i64 52, !18, i64 56, !18, i64 64, !68, i64 72, !156, i64 88, !157, i64 104, !7, i64 120, !6, i64 1144, !12, i64 1152, !12, i64 1156, !12, i64 1160}
!156 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!157 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!158 = !{!55, !6, i64 32}
!159 = !{!55, !19, i64 21372}
!160 = !{!55, !12, i64 21392}
!161 = !{!162, !6, i64 0}
!162 = !{!"_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}
!163 = distinct !{!163, !109}
!164 = distinct !{!164, !109}
!165 = distinct !{!165, !109}
!166 = !{!55, !12, i64 21376}
!167 = !{!55, !6, i64 16024}
!168 = !{!17, !6, i64 864}
!169 = !{!55, !6, i64 16032}
!170 = !{!55, !6, i64 16040}
!171 = !{!55, !12, i64 16092}
!172 = !{!55, !12, i64 16136}
!173 = !{!55, !19, i64 16100}
!174 = !{!55, !11, i64 16105}
!175 = !{!55, !61, i64 16128}
!176 = !{!55, !6, i64 16120}
!177 = distinct !{!177, !109}
!178 = !{!55, !12, i64 16160}
!179 = !{!55, !12, i64 16076}
!180 = !{!55, !19, i64 16084}
!181 = !{!55, !11, i64 16080}
!182 = !{!55, !12, i64 17328}
!183 = !{!55, !19, i64 17336}
!184 = !{!55, !19, i64 17340}
!185 = !{!55, !11, i64 16956}
!186 = !{!55, !12, i64 16988}
!187 = !{!55, !12, i64 16984}
!188 = !{!55, !12, i64 16544}
!189 = !{!55, !24, i64 16596}
!190 = !{!55, !61, i64 16592}
!191 = !{!55, !11, i64 221}
!192 = !{!55, !11, i64 222}
!193 = !{!55, !12, i64 16552}
!194 = !{!55, !12, i64 16556}
!195 = !{!55, !12, i64 16560}
!196 = !{!55, !12, i64 16564}
!197 = !{!55, !12, i64 16568}
!198 = !{!55, !11, i64 16602}
!199 = !{!55, !11, i64 16603}
!200 = !{!55, !12, i64 16548}
!201 = !{!55, !6, i64 16896}
!202 = !{!10, !11, i64 3}
!203 = !{!17, !11, i64 151}
!204 = !{!17, !20, i64 166}
!205 = !{!19, !19, i64 0}
!206 = distinct !{!206, !109}
!207 = !{!112, !7, i64 500}
!208 = distinct !{!208, !109}
!209 = distinct !{!209, !109}


; 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.15 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.306 = 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.324 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [135 x i8], align 1
@_ZZN5ImGui17ShowMetricsWindowEPbE3buf = external hidden global [100 x i8], align 16
@.str.327 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.333 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.334 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.376 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.407 = 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 uwtable
declare hidden <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #3

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

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

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

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

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

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

; 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: 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 #6 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: mustprogress uwtable
declare dso_local void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef) local_unnamed_addr #7

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui3EndEv() 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 #4 align 2

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

declare void @_ZN5ImGui7TreePopEv() local_unnamed_addr #5

; 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 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: 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 #6 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 uwtable
declare dso_local void @_ZN5ImGui17DebugTextEncodingEPKc(ptr noundef) local_unnamed_addr #7

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

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

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

; 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.ImRect, align 8
  %24 = alloca [32 x i8], align 16
  %25 = alloca %struct.ImVec2, align 8
  %26 = alloca %struct.ImVec2, align 4
  %27 = alloca %struct.ImRect, align 8
  %28 = alloca %struct.ImRect, align 8
  %29 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %30 = getelementptr inbounds i8, ptr %29, i64 21560
  %31 = load i8, ptr %30, align 4, !tbaa !9, !range !13, !noundef !14
  %32 = trunc nuw i8 %31 to i1
  br i1 %32, label %33, label %34

33:                                               ; preds = %1
  tail call void @_ZN5ImGui18ShowDebugLogWindowEPb(ptr noundef nonnull %30)
  br label %34

34:                                               ; preds = %33, %1
  %35 = getelementptr inbounds i8, ptr %29, i64 21561
  %36 = load i8, ptr %35, align 1, !tbaa !15, !range !13, !noundef !14
  %37 = trunc nuw i8 %36 to i1
  br i1 %37, label %38, label %39

38:                                               ; preds = %34
  tail call void @_ZN5ImGui19ShowStackToolWindowEPb(ptr noundef nonnull %35)
  br label %39

39:                                               ; preds = %38, %34
  %40 = tail call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.302, ptr noundef %0, i32 noundef 0)
  br i1 %40, label %41, label %46

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

46:                                               ; preds = %41, %39
  tail call void @_ZN5ImGui3EndEv()
  br label %797

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

66:                                               ; preds = %47
  store i32 4, ptr %63, align 4, !tbaa !50
  br label %67

67:                                               ; preds = %66, %47
  %68 = getelementptr inbounds i8, ptr %29, i64 21572
  %69 = load i32, ptr %68, align 4, !tbaa !51
  %70 = icmp slt i32 %69, 0
  br i1 %70, label %71, label %72

71:                                               ; preds = %67
  store i32 2, ptr %68, align 4, !tbaa !51
  br label %72

72:                                               ; preds = %71, %67
  %73 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.324)
  br i1 %73, label %74, label %365

74:                                               ; preds = %72
  %75 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.325)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.326)
  br i1 %75, label %76, label %81

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

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

80:                                               ; preds = %79, %76
  tail call void @_ZN5ImGui7TreePopEv()
  br label %81

81:                                               ; preds = %80, %74
  %82 = getelementptr inbounds i8, ptr %29, i64 21552
  %83 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.328, ptr noundef nonnull %82)
  br i1 %83, label %84, label %88

84:                                               ; preds = %81
  %85 = load i8, ptr %82, align 8, !tbaa !53, !range !13, !noundef !14
  %86 = trunc nuw i8 %85 to i1
  br i1 %86, label %87, label %88

87:                                               ; preds = %84
  tail call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %88

88:                                               ; preds = %87, %84, %81
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.329)
  %89 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.330, ptr noundef nonnull %30)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.331)
  %90 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.332, ptr noundef nonnull %35)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.333)
  %91 = getelementptr inbounds i8, ptr %29, i64 21563
  %92 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.334, ptr noundef nonnull %91)
  %93 = getelementptr inbounds i8, ptr %29, i64 21562
  %94 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.335, ptr noundef nonnull %93)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %95 = tail call noundef float @_ZN5ImGui11GetFontSizeEv()
  %96 = fmul float %95, 1.200000e+01
  tail call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %96)
  %97 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.336, ptr noundef nonnull %63, ptr noundef nonnull %2, i32 noundef 8, i32 noundef 8)
  %98 = load i8, ptr %93, align 2, !tbaa !99, !range !13, !noundef !14
  %99 = zext i1 %97 to i8
  %100 = or i8 %98, %99
  %.not322 = icmp eq i8 %100, 0
  store i8 %100, ptr %93, align 2, !tbaa !99
  br i1 %.not322, label %250, label %101

101:                                              ; preds = %88
  %102 = getelementptr inbounds i8, ptr %29, i64 16536
  %103 = load ptr, ptr %102, align 8, !tbaa !100
  %.not323 = icmp eq ptr %103, null
  br i1 %.not323, label %250, label %104

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

250:                                              ; preds = %104, %101, %88
  %251 = getelementptr inbounds i8, ptr %29, i64 21564
  %252 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.339, ptr noundef nonnull %251)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %253 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %254 = fmul float %253, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %254)
  %255 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.340, ptr noundef nonnull %68, ptr noundef nonnull %3, i32 noundef 13, i32 noundef 13)
  %256 = load i8, ptr %251, align 4, !tbaa !102, !range !13, !noundef !14
  %257 = zext i1 %255 to i8
  %258 = or i8 %256, %257
  %.not324 = icmp eq i8 %258, 0
  store i8 %258, ptr %251, align 4, !tbaa !102
  br i1 %.not324, label %.loopexit366, label %259

259:                                              ; preds = %250
  %260 = getelementptr inbounds i8, ptr %29, i64 16536
  %261 = load ptr, ptr %260, align 8, !tbaa !100
  %.not325 = icmp eq ptr %261, null
  br i1 %.not325, label %.loopexit366, label %.preheader365

.preheader365:                                    ; preds = %259
  %262 = getelementptr inbounds i8, ptr %29, i64 17176
  %263 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %262)
  %264 = icmp sgt i32 %263, 0
  br i1 %264, label %.lr.ph372, label %.loopexit366

.lr.ph372:                                        ; preds = %.preheader365
  %265 = getelementptr inbounds i8, ptr %29, i64 15888
  %266 = getelementptr inbounds i8, ptr %16, i64 8
  %267 = getelementptr inbounds i8, ptr %10, i64 8
  br label %268

268:                                              ; preds = %.lr.ph372, %361
  %.0285371 = phi i32 [ 0, %.lr.ph372 ], [ %362, %361 ]
  %269 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %262, i32 noundef %.0285371)
  %270 = icmp eq ptr %269, null
  br i1 %270, label %361, label %271

271:                                              ; preds = %268
  %272 = getelementptr inbounds i8, ptr %269, i64 112
  %273 = load i32, ptr %272, align 8, !tbaa !103
  %274 = load i32, ptr %265, align 8, !tbaa !114
  %275 = add nsw i32 %274, -1
  %276 = icmp slt i32 %273, %275
  br i1 %276, label %361, label %277

277:                                              ; preds = %271
  %278 = getelementptr inbounds i8, ptr %269, i64 384
  %279 = load ptr, ptr %278, align 8, !tbaa !115
  %280 = load ptr, ptr %260, align 8, !tbaa !100
  %.not343 = icmp eq ptr %279, %280
  br i1 %.not343, label %284, label %281

281:                                              ; preds = %277
  %282 = getelementptr inbounds i8, ptr %269, i64 392
  %283 = load ptr, ptr %282, align 8, !tbaa !116
  %.not344 = icmp eq ptr %283, %280
  br i1 %.not344, label %284, label %361

284:                                              ; preds = %281, %277
  %285 = load i32, ptr %269, align 8, !tbaa !117
  %286 = getelementptr inbounds i8, ptr %269, i64 116
  %287 = load i32, ptr %286, align 4, !tbaa !118
  %288 = load ptr, ptr %279, align 8, !tbaa !101
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.341, i32 noundef %285, i32 noundef %287, ptr noundef %288)
  %289 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %289, label %290, label %296

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

296:                                              ; preds = %290, %284
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %9) #9
  br label %298

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

298:                                              ; preds = %296, %.loopexit364
  %indvars.iv = phi i64 [ 0, %296 ], [ %indvars.iv.next, %.loopexit364 ]
  %299 = icmp ugt i64 %indvars.iv, 5
  br i1 %299, label %300, label %334

300:                                              ; preds = %298
  %301 = trunc nuw nsw i64 %indvars.iv to i32
  switch i32 %301, label %.loopexit364 [
    i32 8, label %302
    i32 6, label %302
  ]

302:                                              ; preds = %300, %300
  %303 = load i32, ptr %286, align 4, !tbaa !118
  %304 = icmp sgt i32 %303, 0
  br i1 %304, label %.lr.ph, label %.loopexit364

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

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

326:                                              ; preds = %306
  %327 = 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)
  %328 = 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> %328, 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)
  %329 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %267, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %329, ptr %14, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %327, 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 %330

330:                                              ; preds = %326, %306
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #9
  %331 = add nuw nsw i32 %.0288368, 1
  %332 = load i32, ptr %286, align 4, !tbaa !118
  %333 = icmp slt i32 %331, %332
  br i1 %333, label %306, label %.loopexit364, !llvm.loop !119

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

356:                                              ; preds = %334
  %357 = 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)
  %358 = 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> %358, 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)
  %359 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %266, ptr noundef nonnull align 4 dereferenceable(8) %21)
  store <2 x float> %359, ptr %20, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %357, 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 %360

360:                                              ; preds = %356, %334
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #9
  br label %.loopexit364

.loopexit364:                                     ; preds = %330, %302, %300, %360
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 13
  br i1 %exitcond.not, label %297, label %298, !llvm.loop !121

361:                                              ; preds = %268, %271, %281, %297
  %362 = add nuw nsw i32 %.0285371, 1
  %363 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %262)
  %364 = icmp slt i32 %362, %363
  br i1 %364, label %268, label %.loopexit366, !llvm.loop !122

.loopexit366:                                     ; preds = %361, %.preheader365, %259, %250
  call void @_ZN5ImGui7TreePopEv()
  br label %365

365:                                              ; preds = %.loopexit366, %72
  %366 = getelementptr inbounds i8, ptr %29, i64 15920
  %367 = load i32, ptr %366, align 8, !tbaa !123
  %368 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.343, ptr noundef nonnull @.str.344, i32 noundef %367)
  br i1 %368, label %369, label %397

369:                                              ; preds = %365
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %366, ptr noundef nonnull @.str.345)
  %370 = getelementptr inbounds i8, ptr %29, i64 15936
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %370, ptr noundef nonnull @.str.346)
  %371 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.347)
  br i1 %371, label %372, label %396

372:                                              ; preds = %369
  %373 = getelementptr inbounds i8, ptr %29, i64 15952
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %373, i32 noundef 0)
  %374 = load i32, ptr %366, align 8, !tbaa !123
  %375 = icmp sgt i32 %374, 0
  br i1 %375, label %.lr.ph374, label %._crit_edge

.lr.ph374:                                        ; preds = %372
  %376 = getelementptr inbounds i8, ptr %29, i64 15888
  br label %383

._crit_edge:                                      ; preds = %392, %372
  %377 = getelementptr inbounds i8, ptr %29, i64 15960
  %378 = load ptr, ptr %377, align 8, !tbaa !124
  %379 = load i32, ptr %373, align 8, !tbaa !125
  %380 = sext i32 %379 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %378, i64 noundef %380, i64 noundef 8, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %381 = load ptr, ptr %377, align 8, !tbaa !124
  %382 = load i32, ptr %373, align 8, !tbaa !125
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %381, i32 noundef %382, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %396

383:                                              ; preds = %.lr.ph374, %392
  %.0289373 = phi i32 [ 0, %.lr.ph374 ], [ %393, %392 ]
  %384 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %366, i32 noundef %.0289373)
  %385 = load ptr, ptr %384, align 8, !tbaa !5
  %386 = getelementptr inbounds i8, ptr %385, i64 584
  %387 = load i32, ptr %386, align 8, !tbaa !126
  %388 = add nsw i32 %387, 1
  %389 = load i32, ptr %376, align 8, !tbaa !114
  %.not342 = icmp slt i32 %388, %389
  br i1 %.not342, label %392, label %390

390:                                              ; preds = %383
  %391 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %366, i32 noundef %.0289373)
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %373, ptr noundef nonnull align 8 dereferenceable(8) %391)
  br label %392

392:                                              ; preds = %383, %390
  %393 = add nuw nsw i32 %.0289373, 1
  %394 = load i32, ptr %366, align 8, !tbaa !123
  %395 = icmp slt i32 %393, %394
  br i1 %395, label %383, label %._crit_edge, !llvm.loop !127

396:                                              ; preds = %._crit_edge, %369
  call void @_ZN5ImGui7TreePopEv()
  br label %397

397:                                              ; preds = %396, %365
  %398 = getelementptr inbounds i8, ptr %29, i64 16520
  %399 = load i32, ptr %398, align 8, !tbaa !128
  %400 = icmp sgt i32 %399, 0
  br i1 %400, label %.lr.ph378, label %._crit_edge379

._crit_edge379:                                   ; preds = %.lr.ph378, %397
  %.0290.lcssa = phi i32 [ 0, %397 ], [ %406, %.lr.ph378 ]
  %401 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.348, ptr noundef nonnull @.str.349, i32 noundef %.0290.lcssa)
  br i1 %401, label %410, label %438

.lr.ph378:                                        ; preds = %397, %.lr.ph378
  %.0290376 = phi i32 [ %406, %.lr.ph378 ], [ 0, %397 ]
  %.0297375 = phi i32 [ %407, %.lr.ph378 ], [ 0, %397 ]
  %402 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %398, i32 noundef %.0297375)
  %403 = load ptr, ptr %402, align 8, !tbaa !5
  %404 = getelementptr inbounds i8, ptr %403, i64 120
  %405 = call noundef i32 @_ZNK17ImDrawDataBuilder16GetDrawListCountEv(ptr noundef nonnull align 8 dereferenceable(32) %404)
  %406 = add nsw i32 %405, %.0290376
  %407 = add nuw nsw i32 %.0297375, 1
  %408 = load i32, ptr %398, align 8, !tbaa !128
  %409 = icmp slt i32 %407, %408
  br i1 %409, label %.lr.ph378, label %._crit_edge379, !llvm.loop !129

410:                                              ; preds = %._crit_edge379
  %411 = getelementptr inbounds i8, ptr %29, i64 21565
  %412 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.350, ptr noundef nonnull %411)
  %413 = getelementptr inbounds i8, ptr %29, i64 21566
  %414 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.351, ptr noundef nonnull %413)
  %415 = load i32, ptr %398, align 8, !tbaa !128
  %416 = icmp sgt i32 %415, 0
  br i1 %416, label %.lr.ph387, label %._crit_edge388

._crit_edge388:                                   ; preds = %._crit_edge383.1, %410
  call void @_ZN5ImGui7TreePopEv()
  br label %438

.lr.ph387:                                        ; preds = %410, %._crit_edge383.1
  %.0298385 = phi i32 [ %430, %._crit_edge383.1 ], [ 0, %410 ]
  %417 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %398, i32 noundef %.0298385)
  %418 = load ptr, ptr %417, align 8, !tbaa !5
  %419 = getelementptr inbounds i8, ptr %418, i64 120
  %420 = load i32, ptr %419, align 8, !tbaa !130
  %421 = icmp sgt i32 %420, 0
  br i1 %421, label %.lr.ph382, label %._crit_edge383

._crit_edge383:                                   ; preds = %.lr.ph382, %.lr.ph387
  %422 = getelementptr inbounds i8, ptr %418, i64 136
  %423 = load i32, ptr %422, align 8, !tbaa !130
  %424 = icmp sgt i32 %423, 0
  br i1 %424, label %.lr.ph382.1, label %._crit_edge383.1

.lr.ph382.1:                                      ; preds = %._crit_edge383, %.lr.ph382.1
  %.0302381.1 = phi i32 [ %427, %.lr.ph382.1 ], [ 0, %._crit_edge383 ]
  %425 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %422, i32 noundef %.0302381.1)
  %426 = load ptr, ptr %425, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %426, ptr noundef nonnull @.str.352)
  %427 = add nuw nsw i32 %.0302381.1, 1
  %428 = load i32, ptr %422, align 8, !tbaa !130
  %429 = icmp slt i32 %427, %428
  br i1 %429, label %.lr.ph382.1, label %._crit_edge383.1, !llvm.loop !132

._crit_edge383.1:                                 ; preds = %.lr.ph382.1, %._crit_edge383
  %430 = add nuw nsw i32 %.0298385, 1
  %431 = load i32, ptr %398, align 8, !tbaa !128
  %432 = icmp slt i32 %430, %431
  br i1 %432, label %.lr.ph387, label %._crit_edge388, !llvm.loop !133

.lr.ph382:                                        ; preds = %.lr.ph387, %.lr.ph382
  %.0302381 = phi i32 [ %435, %.lr.ph382 ], [ 0, %.lr.ph387 ]
  %433 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %419, i32 noundef %.0302381)
  %434 = load ptr, ptr %433, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %434, ptr noundef nonnull @.str.352)
  %435 = add nuw nsw i32 %.0302381, 1
  %436 = load i32, ptr %419, align 8, !tbaa !130
  %437 = icmp slt i32 %435, %436
  br i1 %437, label %.lr.ph382, label %._crit_edge383, !llvm.loop !132

438:                                              ; preds = %._crit_edge388, %._crit_edge379
  %439 = load i32, ptr %398, align 8, !tbaa !128
  %440 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.353, ptr noundef nonnull @.str.354, i32 noundef %439)
  br i1 %440, label %441, label %451

441:                                              ; preds = %438
  %442 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %442)
  call void @_ZL25RenderViewportsThumbnailsv()
  %443 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %443)
  %444 = load i32, ptr %398, align 8, !tbaa !128
  %445 = icmp sgt i32 %444, 0
  br i1 %445, label %.lr.ph391, label %._crit_edge392

._crit_edge392:                                   ; preds = %.lr.ph391, %441
  call void @_ZN5ImGui7TreePopEv()
  br label %451

.lr.ph391:                                        ; preds = %441, %.lr.ph391
  %.0303389 = phi i32 [ %448, %.lr.ph391 ], [ 0, %441 ]
  %446 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %398, i32 noundef %.0303389)
  %447 = load ptr, ptr %446, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %447)
  %448 = add nuw nsw i32 %.0303389, 1
  %449 = load i32, ptr %398, align 8, !tbaa !128
  %450 = icmp slt i32 %448, %449
  br i1 %450, label %.lr.ph391, label %._crit_edge392, !llvm.loop !134

451:                                              ; preds = %._crit_edge392, %438
  %452 = getelementptr inbounds i8, ptr %29, i64 16480
  %453 = load i32, ptr %452, align 8, !tbaa !135
  %454 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.355, ptr noundef nonnull @.str.356, i32 noundef %453)
  br i1 %454, label %.preheader362, label %486

.preheader362:                                    ; preds = %451
  %455 = load i32, ptr %452, align 8, !tbaa !135
  %456 = icmp sgt i32 %455, 0
  br i1 %456, label %.lr.ph394, label %._crit_edge395

._crit_edge395:                                   ; preds = %481, %.preheader362
  call void @_ZN5ImGui7TreePopEv()
  br label %486

.lr.ph394:                                        ; preds = %.preheader362, %481
  %.0304393 = phi i32 [ %483, %481 ], [ 0, %.preheader362 ]
  %457 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %452, i32 noundef %.0304393)
  %458 = getelementptr inbounds i8, ptr %457, i64 8
  %459 = load ptr, ptr %458, align 8, !tbaa !136
  %460 = load i32, ptr %457, align 8, !tbaa !138
  %.not339 = icmp eq ptr %459, null
  br i1 %.not339, label %.thread349, label %461

461:                                              ; preds = %.lr.ph394
  %462 = load ptr, ptr %459, align 8, !tbaa !101
  %463 = getelementptr inbounds i8, ptr %459, i64 12
  %464 = load i32, ptr %463, align 4, !tbaa !139
  %.fr354 = freeze i32 %464
  %465 = and i32 %.fr354, 16777216
  %.not353 = icmp eq i32 %465, 0
  %spec.select = select i1 %.not353, ptr @.str.15, ptr @.str.359
  %466 = and i32 %.fr354, 268435456
  %.not355 = icmp eq i32 %466, 0
  %spec.select351 = select i1 %.not355, ptr @.str.15, ptr @.str.360
  br label %.thread349

.thread349:                                       ; preds = %461, %.lr.ph394
  %467 = phi ptr [ @.str.358, %.lr.ph394 ], [ %462, %461 ]
  %468 = phi ptr [ @.str.15, %.lr.ph394 ], [ %spec.select, %461 ]
  %469 = phi ptr [ @.str.15, %.lr.ph394 ], [ %spec.select351, %461 ]
  %470 = getelementptr inbounds i8, ptr %457, i64 16
  %471 = load ptr, ptr %470, align 8, !tbaa !140
  %.not340 = icmp eq ptr %471, null
  br i1 %.not340, label %474, label %472

472:                                              ; preds = %.thread349
  %473 = load ptr, ptr %471, align 8, !tbaa !101
  br label %474

474:                                              ; preds = %.thread349, %472
  %475 = phi ptr [ %473, %472 ], [ @.str.358, %.thread349 ]
  br i1 %.not339, label %481, label %476

476:                                              ; preds = %474
  %477 = getelementptr inbounds i8, ptr %459, i64 848
  %478 = load ptr, ptr %477, align 8, !tbaa !141
  %.not341 = icmp eq ptr %478, null
  br i1 %.not341, label %481, label %479

479:                                              ; preds = %476
  %480 = load ptr, ptr %478, align 8, !tbaa !101
  br label %481

481:                                              ; preds = %474, %476, %479
  %482 = phi ptr [ %480, %479 ], [ @.str.358, %476 ], [ @.str.358, %474 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.357, i32 noundef %460, ptr noundef %467, ptr noundef nonnull %468, ptr noundef nonnull %469, ptr noundef %475, ptr noundef %482)
  %483 = add nuw nsw i32 %.0304393, 1
  %484 = load i32, ptr %452, align 8, !tbaa !135
  %485 = icmp slt i32 %483, %484
  br i1 %485, label %.lr.ph394, label %._crit_edge395, !llvm.loop !142

486:                                              ; preds = %._crit_edge395, %451
  %487 = getelementptr inbounds i8, ptr %29, i64 17256
  %488 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %487)
  %489 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.361, ptr noundef nonnull @.str.362, i32 noundef %488)
  br i1 %489, label %.preheader361, label %498

.preheader361:                                    ; preds = %486
  %490 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %487)
  %491 = icmp sgt i32 %490, 0
  br i1 %491, label %.lr.ph397, label %._crit_edge398

._crit_edge398:                                   ; preds = %494, %.preheader361
  call void @_ZN5ImGui7TreePopEv()
  br label %498

.lr.ph397:                                        ; preds = %.preheader361, %494
  %.0301396 = phi i32 [ %495, %494 ], [ 0, %.preheader361 ]
  %492 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %487, i32 noundef %.0301396)
  %.not338 = icmp eq ptr %492, null
  br i1 %.not338, label %494, label %493

493:                                              ; preds = %.lr.ph397
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef nonnull %492)
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef nonnull %492, ptr noundef nonnull @.str.363)
  call void @_ZN5ImGui5PopIDEv()
  br label %494

494:                                              ; preds = %493, %.lr.ph397
  %495 = add nuw nsw i32 %.0301396, 1
  %496 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %487)
  %497 = icmp slt i32 %495, %496
  br i1 %497, label %.lr.ph397, label %._crit_edge398, !llvm.loop !143

498:                                              ; preds = %._crit_edge398, %486
  %499 = getelementptr inbounds i8, ptr %29, i64 17176
  %500 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %499)
  %501 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.364, ptr noundef nonnull @.str.365, i32 noundef %500)
  br i1 %501, label %.preheader360, label %510

.preheader360:                                    ; preds = %498
  %502 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %499)
  %503 = icmp sgt i32 %502, 0
  br i1 %503, label %.lr.ph400, label %._crit_edge401

._crit_edge401:                                   ; preds = %506, %.preheader360
  call void @_ZN5ImGui7TreePopEv()
  br label %510

.lr.ph400:                                        ; preds = %.preheader360, %506
  %.0299399 = phi i32 [ %507, %506 ], [ 0, %.preheader360 ]
  %504 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %499, i32 noundef %.0299399)
  %.not337 = icmp eq ptr %504, null
  br i1 %.not337, label %506, label %505

505:                                              ; preds = %.lr.ph400
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef nonnull %504)
  br label %506

506:                                              ; preds = %505, %.lr.ph400
  %507 = add nuw nsw i32 %.0299399, 1
  %508 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %499)
  %509 = icmp slt i32 %507, %508
  br i1 %509, label %.lr.ph400, label %._crit_edge401, !llvm.loop !144

510:                                              ; preds = %._crit_edge401, %498
  %511 = getelementptr inbounds i8, ptr %29, i64 88
  %512 = load ptr, ptr %511, align 8, !tbaa !145
  %513 = getelementptr inbounds i8, ptr %512, i64 72
  %514 = load i32, ptr %513, align 8, !tbaa !146
  %515 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.366, ptr noundef nonnull @.str.367, i32 noundef %514)
  br i1 %515, label %516, label %517

516:                                              ; preds = %510
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef nonnull %512)
  call void @_ZN5ImGui7TreePopEv()
  br label %517

517:                                              ; preds = %516, %510
  %518 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.368)
  br i1 %518, label %519, label %521

519:                                              ; preds = %517
  %520 = getelementptr inbounds i8, ptr %29, i64 17352
  call void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef nonnull %520)
  call void @_ZN5ImGui7TreePopEv()
  br label %521

521:                                              ; preds = %519, %517
  %522 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.369)
  br i1 %522, label %523, label %580

523:                                              ; preds = %521
  %524 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.370)
  br i1 %524, label %525, label %526

525:                                              ; preds = %523
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %526

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

528:                                              ; preds = %526
  %529 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %530

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

532:                                              ; preds = %530
  %533 = getelementptr inbounds i8, ptr %29, i64 32
  %534 = load ptr, ptr %533, align 8, !tbaa !150
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %534)
  br label %535

535:                                              ; preds = %532, %530
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %536 = getelementptr inbounds i8, ptr %29, i64 32
  %537 = load ptr, ptr %536, align 8, !tbaa !150
  %.not326 = icmp eq ptr %537, null
  br i1 %.not326, label %539, label %538

538:                                              ; preds = %535
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.373, ptr noundef nonnull %537)
  br label %540

539:                                              ; preds = %535
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef nonnull @.str.237, ptr noundef null)
  br label %540

540:                                              ; preds = %539, %538
  %541 = getelementptr inbounds i8, ptr %29, i64 21372
  %542 = load float, ptr %541, align 4, !tbaa !151
  %543 = fpext float %542 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.374, double noundef %543)
  %544 = getelementptr inbounds i8, ptr %29, i64 21392
  %545 = load i32, ptr %544, align 8, !tbaa !152
  %546 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.375, ptr noundef nonnull @.str.376, i32 noundef %545)
  br i1 %546, label %.preheader359, label %554

.preheader359:                                    ; preds = %540
  %547 = load i32, ptr %544, align 8, !tbaa !152
  %548 = icmp sgt i32 %547, 0
  br i1 %548, label %.lr.ph403, label %._crit_edge404

._crit_edge404:                                   ; preds = %.lr.ph403, %.preheader359
  call void @_ZN5ImGui7TreePopEv()
  br label %554

.lr.ph403:                                        ; preds = %.preheader359, %.lr.ph403
  %.0296402 = phi i32 [ %551, %.lr.ph403 ], [ 0, %.preheader359 ]
  %549 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %544, i32 noundef %.0296402)
  %550 = load ptr, ptr %549, align 8, !tbaa !153
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.377, ptr noundef %550)
  %551 = add nuw nsw i32 %.0296402, 1
  %552 = load i32, ptr %544, align 8, !tbaa !152
  %553 = icmp slt i32 %551, %552
  br i1 %553, label %.lr.ph403, label %._crit_edge404, !llvm.loop !155

554:                                              ; preds = %._crit_edge404, %540
  %555 = getelementptr inbounds i8, ptr %29, i64 21408
  %556 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %555)
  %557 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.379, i32 noundef %556)
  br i1 %557, label %558, label %561

558:                                              ; preds = %554
  %559 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %555)
  %.not327405 = icmp eq ptr %559, null
  br i1 %.not327405, label %._crit_edge409, label %.lr.ph408

._crit_edge409:                                   ; preds = %.lr.ph408, %558
  call void @_ZN5ImGui7TreePopEv()
  br label %561

.lr.ph408:                                        ; preds = %558, %.lr.ph408
  %.0295406 = phi ptr [ %560, %.lr.ph408 ], [ %559, %558 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0295406)
  %560 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %555, ptr noundef nonnull %.0295406)
  %.not327 = icmp eq ptr %560, null
  br i1 %.not327, label %._crit_edge409, label %.lr.ph408, !llvm.loop !156

561:                                              ; preds = %._crit_edge409, %554
  %562 = getelementptr inbounds i8, ptr %29, i64 21424
  %563 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %562)
  %564 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.381, i32 noundef %563)
  br i1 %564, label %565, label %568

565:                                              ; preds = %561
  %566 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %562)
  %.not328410 = icmp eq ptr %566, null
  br i1 %.not328410, label %._crit_edge414, label %.lr.ph413

._crit_edge414:                                   ; preds = %.lr.ph413, %565
  call void @_ZN5ImGui7TreePopEv()
  br label %568

.lr.ph413:                                        ; preds = %565, %.lr.ph413
  %.0294411 = phi ptr [ %567, %.lr.ph413 ], [ %566, %565 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0294411)
  %567 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %562, ptr noundef nonnull %.0294411)
  %.not328 = icmp eq ptr %567, null
  br i1 %.not328, label %._crit_edge414, label %.lr.ph413, !llvm.loop !157

568:                                              ; preds = %._crit_edge414, %561
  %569 = getelementptr inbounds i8, ptr %29, i64 21376
  %570 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %569)
  %571 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.382, ptr noundef nonnull @.str.383, i32 noundef %570)
  br i1 %571, label %572, label %579

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

579:                                              ; preds = %572, %568
  call void @_ZN5ImGui7TreePopEv()
  br label %580

580:                                              ; preds = %579, %521
  %581 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.385)
  br i1 %581, label %582, label %703

582:                                              ; preds = %580
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.386)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %583 = getelementptr inbounds i8, ptr %29, i64 16024
  %584 = load ptr, ptr %583, align 8, !tbaa !159
  %.not329 = icmp eq ptr %584, null
  br i1 %.not329, label %587, label %585

585:                                              ; preds = %582
  %586 = load ptr, ptr %584, align 8, !tbaa !101
  br label %587

587:                                              ; preds = %582, %585
  %588 = phi ptr [ %586, %585 ], [ @.str.358, %582 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.387, ptr noundef %588)
  %589 = load ptr, ptr %583, align 8, !tbaa !159
  %.not330 = icmp eq ptr %589, null
  br i1 %.not330, label %594, label %590

590:                                              ; preds = %587
  %591 = getelementptr inbounds i8, ptr %589, i64 864
  %592 = load ptr, ptr %591, align 8, !tbaa !160
  %593 = load ptr, ptr %592, align 8, !tbaa !101
  br label %594

594:                                              ; preds = %587, %590
  %595 = phi ptr [ %593, %590 ], [ @.str.358, %587 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.388, ptr noundef %595)
  %596 = getelementptr inbounds i8, ptr %29, i64 16032
  %597 = load ptr, ptr %596, align 8, !tbaa !161
  %.not331 = icmp eq ptr %597, null
  br i1 %.not331, label %600, label %598

598:                                              ; preds = %594
  %599 = load ptr, ptr %597, align 8, !tbaa !101
  br label %600

600:                                              ; preds = %594, %598
  %601 = phi ptr [ %599, %598 ], [ @.str.358, %594 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.389, ptr noundef %601)
  %602 = getelementptr inbounds i8, ptr %29, i64 16040
  %603 = load ptr, ptr %602, align 8, !tbaa !162
  %.not332 = icmp eq ptr %603, null
  br i1 %.not332, label %606, label %604

604:                                              ; preds = %600
  %605 = load ptr, ptr %603, align 8, !tbaa !101
  br label %606

606:                                              ; preds = %600, %604
  %607 = phi ptr [ %605, %604 ], [ @.str.358, %600 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.390, ptr noundef %607)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.391)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %608 = getelementptr inbounds i8, ptr %29, i64 16092
  %609 = load i32, ptr %608, align 4, !tbaa !163
  %610 = getelementptr inbounds i8, ptr %29, i64 16136
  %611 = load i32, ptr %610, align 8, !tbaa !164
  %612 = getelementptr inbounds i8, ptr %29, i64 16100
  %613 = load float, ptr %612, align 4, !tbaa !165
  %614 = fpext float %613 to double
  %615 = getelementptr inbounds i8, ptr %29, i64 16105
  %616 = load i8, ptr %615, align 1, !tbaa !166, !range !13, !noundef !14
  %617 = zext nneg i8 %616 to i32
  %618 = getelementptr inbounds i8, ptr %29, i64 16128
  %619 = load i32, ptr %618, align 8, !tbaa !167
  %620 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %619)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.392, i32 noundef %609, i32 noundef %611, double noundef %614, i32 noundef %617, ptr noundef %620)
  %621 = getelementptr inbounds i8, ptr %29, i64 16120
  %622 = load ptr, ptr %621, align 8, !tbaa !168
  %.not333 = icmp eq ptr %622, null
  br i1 %.not333, label %625, label %623

623:                                              ; preds = %606
  %624 = load ptr, ptr %622, align 8, !tbaa !101
  br label %625

625:                                              ; preds = %606, %623
  %626 = phi ptr [ %624, %623 ], [ @.str.358, %606 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.393, ptr noundef %626)
  %627 = getelementptr inbounds i8, ptr %29, i64 16164
  br label %657

628:                                              ; preds = %657
  %629 = getelementptr inbounds i8, ptr %29, i64 16160
  %630 = load i32, ptr %629, align 8, !tbaa !169
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.394, i32 noundef %630, i32 noundef %660)
  %631 = getelementptr inbounds i8, ptr %29, i64 16076
  %632 = load i32, ptr %631, align 4, !tbaa !170
  %633 = getelementptr inbounds i8, ptr %29, i64 16084
  %634 = load float, ptr %633, align 4, !tbaa !171
  %635 = fpext float %634 to double
  %636 = getelementptr inbounds i8, ptr %29, i64 16080
  %637 = load i8, ptr %636, align 8, !tbaa !172, !range !13, !noundef !14
  %638 = zext nneg i8 %637 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.395, i32 noundef %632, double noundef %635, i32 noundef %638)
  %639 = getelementptr inbounds i8, ptr %29, i64 17328
  %640 = load i32, ptr %639, align 8, !tbaa !173
  %641 = getelementptr inbounds i8, ptr %29, i64 17336
  %642 = load float, ptr %641, align 8, !tbaa !174
  %643 = fpext float %642 to double
  %644 = getelementptr inbounds i8, ptr %29, i64 17340
  %645 = load float, ptr %644, align 4, !tbaa !175
  %646 = fpext float %645 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.396, i32 noundef %640, double noundef %643, double noundef %646)
  %647 = getelementptr inbounds i8, ptr %29, i64 16956
  %648 = load i8, ptr %647, align 4, !tbaa !176, !range !13, !noundef !14
  %649 = zext nneg i8 %648 to i32
  %650 = getelementptr inbounds i8, ptr %29, i64 16988
  %651 = load i32, ptr %650, align 4, !tbaa !177
  %652 = getelementptr inbounds i8, ptr %29, i64 17000
  %653 = getelementptr inbounds i8, ptr %29, i64 16984
  %654 = load i32, ptr %653, align 8, !tbaa !178
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.397, i32 noundef %649, i32 noundef %651, ptr noundef nonnull %652, i32 noundef %654)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.398)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %655 = getelementptr inbounds i8, ptr %29, i64 16536
  %656 = load ptr, ptr %655, align 8, !tbaa !100
  %.not334 = icmp eq ptr %656, null
  br i1 %.not334, label %664, label %662

657:                                              ; preds = %625, %657
  %.0292416 = phi i32 [ 512, %625 ], [ %661, %657 ]
  %.0293415 = phi i32 [ 0, %625 ], [ %660, %657 ]
  %658 = call noundef zeroext i1 @_ZNK10ImBitArrayILi140ELin512EEixEi(ptr noundef nonnull align 4 dereferenceable(20) %627, i32 noundef %.0292416)
  %659 = zext i1 %658 to i32
  %660 = add nuw nsw i32 %.0293415, %659
  %661 = add nuw nsw i32 %.0292416, 1
  %exitcond430.not = icmp eq i32 %661, 652
  br i1 %exitcond430.not, label %628, label %657, !llvm.loop !179

662:                                              ; preds = %628
  %663 = load ptr, ptr %656, align 8, !tbaa !101
  br label %664

664:                                              ; preds = %628, %662
  %665 = phi ptr [ %663, %662 ], [ @.str.358, %628 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.399, ptr noundef %665)
  %666 = getelementptr inbounds i8, ptr %29, i64 16544
  %667 = load i32, ptr %666, align 8, !tbaa !180
  %668 = getelementptr inbounds i8, ptr %29, i64 16596
  %669 = load i32, ptr %668, align 4, !tbaa !181
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.400, i32 noundef %667, i32 noundef %669)
  %670 = getelementptr inbounds i8, ptr %29, i64 16592
  %671 = load i32, ptr %670, align 8, !tbaa !182
  %672 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %671)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.401, ptr noundef %672)
  %673 = getelementptr inbounds i8, ptr %29, i64 221
  %674 = load i8, ptr %673, align 1, !tbaa !183, !range !13, !noundef !14
  %675 = zext nneg i8 %674 to i32
  %676 = getelementptr inbounds i8, ptr %29, i64 222
  %677 = load i8, ptr %676, align 2, !tbaa !184, !range !13, !noundef !14
  %678 = zext nneg i8 %677 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.402, i32 noundef %675, i32 noundef %678)
  %679 = getelementptr inbounds i8, ptr %29, i64 16552
  %680 = load i32, ptr %679, align 8, !tbaa !185
  %681 = getelementptr inbounds i8, ptr %29, i64 16556
  %682 = load i32, ptr %681, align 4, !tbaa !186
  %683 = getelementptr inbounds i8, ptr %29, i64 16560
  %684 = load i32, ptr %683, align 8, !tbaa !187
  %685 = getelementptr inbounds i8, ptr %29, i64 16564
  %686 = load i32, ptr %685, align 4, !tbaa !188
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.403, i32 noundef %680, i32 noundef %682, i32 noundef %684, i32 noundef %686)
  %687 = getelementptr inbounds i8, ptr %29, i64 16568
  %688 = load i32, ptr %687, align 8, !tbaa !189
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef %688)
  %689 = getelementptr inbounds i8, ptr %29, i64 16602
  %690 = load i8, ptr %689, align 2, !tbaa !190, !range !13, !noundef !14
  %691 = zext nneg i8 %690 to i32
  %692 = getelementptr inbounds i8, ptr %29, i64 16603
  %693 = load i8, ptr %692, align 1, !tbaa !191, !range !13, !noundef !14
  %694 = zext nneg i8 %693 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.405, i32 noundef %691, i32 noundef %694)
  %695 = getelementptr inbounds i8, ptr %29, i64 16548
  %696 = load i32, ptr %695, align 4, !tbaa !192
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.406, i32 noundef %696)
  %697 = getelementptr inbounds i8, ptr %29, i64 16896
  %698 = load ptr, ptr %697, align 8, !tbaa !193
  %.not335 = icmp eq ptr %698, null
  br i1 %.not335, label %701, label %699

699:                                              ; preds = %664
  %700 = load ptr, ptr %698, align 8, !tbaa !101
  br label %701

701:                                              ; preds = %664, %699
  %702 = phi ptr [ %700, %699 ], [ @.str.358, %664 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.407, ptr noundef %702)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %703

703:                                              ; preds = %701, %580
  %704 = getelementptr inbounds i8, ptr %29, i64 21562
  %705 = load i8, ptr %704, align 2, !tbaa !99, !range !13, !noundef !14
  %706 = trunc nuw i8 %705 to i1
  br i1 %706, label %711, label %707

707:                                              ; preds = %703
  %708 = getelementptr inbounds i8, ptr %29, i64 21563
  %709 = load i8, ptr %708, align 1, !tbaa !194, !range !13, !noundef !14
  %710 = trunc nuw i8 %709 to i1
  br i1 %710, label %711, label %.loopexit358

711:                                              ; preds = %707, %703
  %712 = load i32, ptr %366, align 8, !tbaa !123
  %713 = icmp sgt i32 %712, 0
  br i1 %713, label %.lr.ph419, label %.loopexit358

.lr.ph419:                                        ; preds = %711
  %714 = getelementptr inbounds i8, ptr %23, i64 8
  %715 = getelementptr inbounds i8, ptr %29, i64 21563
  br label %716

716:                                              ; preds = %.lr.ph419, %746
  %.0291417 = phi i32 [ 0, %.lr.ph419 ], [ %747, %746 ]
  %717 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %366, i32 noundef %.0291417)
  %718 = load ptr, ptr %717, align 8, !tbaa !5
  %719 = getelementptr inbounds i8, ptr %718, i64 151
  %720 = load i8, ptr %719, align 1, !tbaa !195, !range !13, !noundef !14
  %721 = trunc nuw i8 %720 to i1
  br i1 %721, label %722, label %746

722:                                              ; preds = %716
  %723 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %718)
  %724 = load i8, ptr %704, align 2, !tbaa !99, !range !13, !noundef !14
  %725 = trunc nuw i8 %724 to i1
  br i1 %725, label %726, label %731

726:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #9
  %727 = load i32, ptr %63, align 4, !tbaa !50
  %728 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef nonnull %718, i32 noundef %727)
  %729 = extractvalue { <2 x float>, <2 x float> } %728, 0
  store <2 x float> %729, ptr %23, align 8
  %730 = extractvalue { <2 x float>, <2 x float> } %728, 1
  store <2 x float> %730, ptr %714, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %723, ptr noundef nonnull align 4 dereferenceable(8) %23, ptr noundef nonnull align 4 dereferenceable(8) %714, 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 %23) #9
  br label %731

731:                                              ; preds = %726, %722
  %732 = load i8, ptr %715, align 1, !tbaa !194, !range !13, !noundef !14
  %733 = trunc nuw i8 %732 to i1
  br i1 %733, label %734, label %746

734:                                              ; preds = %731
  %735 = getelementptr inbounds i8, ptr %718, i64 12
  %736 = load i32, ptr %735, align 4, !tbaa !139
  %737 = and i32 %736, 16777216
  %.not336 = icmp eq i32 %737, 0
  br i1 %.not336, label %738, label %746

738:                                              ; preds = %734
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #9
  %739 = getelementptr inbounds i8, ptr %718, i64 166
  %740 = load i16, ptr %739, align 2, !tbaa !196
  %741 = sext i16 %740 to i32
  %742 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %24, i64 noundef 32, ptr noundef nonnull @.str.295, i32 noundef %741)
  %743 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %744 = getelementptr inbounds i8, ptr %718, i64 24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %26, float noundef %743, float noundef %743)
  %745 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %744, ptr noundef nonnull align 4 dereferenceable(8) %26)
  store <2 x float> %745, ptr %25, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %723, ptr noundef nonnull align 4 dereferenceable(8) %744, ptr noundef nonnull align 4 dereferenceable(8) %25, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #9
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %723, ptr noundef nonnull align 4 dereferenceable(8) %744, i32 noundef -1, ptr noundef nonnull %24, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  br label %746

746:                                              ; preds = %731, %734, %738, %716
  %747 = add nuw nsw i32 %.0291417, 1
  %748 = load i32, ptr %366, align 8, !tbaa !123
  %749 = icmp slt i32 %747, %748
  br i1 %749, label %716, label %.loopexit358, !llvm.loop !197

.loopexit358:                                     ; preds = %746, %711, %707
  %750 = getelementptr inbounds i8, ptr %29, i64 21564
  %751 = load i8, ptr %750, align 4, !tbaa !102, !range !13, !noundef !14
  %752 = trunc nuw i8 %751 to i1
  br i1 %752, label %.preheader356, label %.loopexit357

.preheader356:                                    ; preds = %.loopexit358
  %753 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %499)
  %754 = icmp sgt i32 %753, 0
  br i1 %754, label %.lr.ph423, label %.loopexit357

.lr.ph423:                                        ; preds = %.preheader356
  %755 = getelementptr inbounds i8, ptr %29, i64 15888
  %756 = getelementptr inbounds i8, ptr %28, i64 8
  %757 = getelementptr inbounds i8, ptr %27, i64 8
  br label %758

758:                                              ; preds = %.lr.ph423, %.loopexit
  %.0287422 = phi i32 [ 0, %.lr.ph423 ], [ %794, %.loopexit ]
  %759 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %499, i32 noundef %.0287422)
  %760 = icmp eq ptr %759, null
  br i1 %760, label %.loopexit, label %761

761:                                              ; preds = %758
  %762 = getelementptr inbounds i8, ptr %759, i64 112
  %763 = load i32, ptr %762, align 8, !tbaa !103
  %764 = load i32, ptr %755, align 8, !tbaa !114
  %765 = add nsw i32 %764, -1
  %766 = icmp slt i32 %763, %765
  br i1 %766, label %.loopexit, label %767

767:                                              ; preds = %761
  %768 = getelementptr inbounds i8, ptr %759, i64 384
  %769 = load ptr, ptr %768, align 8, !tbaa !115
  %770 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %769)
  %771 = load i32, ptr %68, align 4, !tbaa !51
  %772 = icmp sgt i32 %771, 5
  br i1 %772, label %.preheader, label %790

.preheader:                                       ; preds = %767
  %773 = getelementptr inbounds i8, ptr %759, i64 116
  %774 = load i32, ptr %773, align 4, !tbaa !118
  %775 = icmp sgt i32 %774, 0
  br i1 %775, label %.lr.ph421, label %.loopexit

.lr.ph421:                                        ; preds = %.preheader
  %776 = getelementptr inbounds i8, ptr %759, i64 500
  br label %777

777:                                              ; preds = %.lr.ph421, %777
  %.0284420 = phi i32 [ 0, %.lr.ph421 ], [ %787, %777 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #9
  %778 = load i32, ptr %68, align 4, !tbaa !51
  %779 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %759, i32 noundef %778, i32 noundef %.0284420)
  %780 = extractvalue { <2 x float>, <2 x float> } %779, 0
  store <2 x float> %780, ptr %27, align 8
  %781 = extractvalue { <2 x float>, <2 x float> } %779, 1
  store <2 x float> %781, ptr %757, align 8
  %782 = load i8, ptr %776, align 4, !tbaa !198
  %783 = sext i8 %782 to i32
  %784 = icmp eq i32 %.0284420, %783
  %785 = select i1 %784, i32 -8323073, i32 -8388353
  %786 = select i1 %784, float 3.000000e+00, float 1.000000e+00
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %770, ptr noundef nonnull align 4 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(8) %757, i32 noundef %785, float noundef 0.000000e+00, i32 noundef 0, float noundef %786)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #9
  %787 = add nuw nsw i32 %.0284420, 1
  %788 = load i32, ptr %773, align 4, !tbaa !118
  %789 = icmp slt i32 %787, %788
  br i1 %789, label %777, label %.loopexit, !llvm.loop !199

790:                                              ; preds = %767
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #9
  %791 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %759, i32 noundef %771, i32 noundef -1)
  %792 = extractvalue { <2 x float>, <2 x float> } %791, 0
  store <2 x float> %792, ptr %28, align 8
  %793 = extractvalue { <2 x float>, <2 x float> } %791, 1
  store <2 x float> %793, ptr %756, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %770, ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(8) %756, 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 %28) #9
  br label %.loopexit

.loopexit:                                        ; preds = %777, %.preheader, %790, %758, %761
  %794 = add nuw nsw i32 %.0287422, 1
  %795 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %499)
  %796 = icmp slt i32 %794, %795
  br i1 %796, label %758, label %.loopexit357, !llvm.loop !200

.loopexit357:                                     ; preds = %.loopexit, %.preheader356, %.loopexit358
  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 %797

797:                                              ; preds = %.loopexit357, %46
  ret void
}

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

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

declare void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #5

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

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

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

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

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

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

; 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 uwtable
declare dso_local noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) local_unnamed_addr #7 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 #5

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

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

declare void @_ZN5ImGui23DebugNodeInputTextStateEP19ImGuiInputTextState(ptr noundef) local_unnamed_addr #5

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK10ImBitArrayILi140ELin512EEixEi(ptr noundef nonnull align 4 dereferenceable(20), i32 noundef) local_unnamed_addr #1 align 2

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

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 #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 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 #4 = { 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 #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress 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 #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, !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 162}
!17 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !12, i64 8, !12, i64 12, !6, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !19, i64 80, !19, i64 84, !12, i64 88, !12, i64 92, !12, i64 96, !18, i64 100, !18, i64 108, !18, i64 116, !18, i64 124, !18, i64 132, !18, i64 140, !11, i64 148, !11, i64 149, !11, i64 150, !11, i64 151, !11, i64 152, !11, i64 153, !11, i64 154, !11, i64 155, !11, i64 156, !11, i64 157, !11, i64 158, !11, i64 159, !11, i64 160, !7, i64 161, !20, i64 162, !20, i64 164, !20, i64 166, !20, i64 168, !12, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !11, i64 179, !12, i64 180, !7, i64 184, !7, i64 185, !7, i64 186, !7, i64 187, !12, i64 188, !12, i64 189, !12, i64 190, !18, i64 192, !18, i64 200, !21, i64 208, !22, i64 224, !28, i64 464, !28, i64 480, !28, i64 496, !28, i64 512, !28, i64 528, !28, i64 544, !28, i64 560, !29, i64 576, !29, i64 580, !12, i64 584, !19, i64 588, !19, i64 592, !30, i64 600, !32, i64 616, !19, i64 632, !12, i64 636, !6, i64 640, !33, i64 648, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !7, i64 904, !7, i64 912, !12, i64 944, !12, i64 948, !11, i64 952}
!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, !12, i64 96, !11, i64 100, !11, i64 101, !11, i64 102, !18, i64 104, !25, i64 112, !12, i64 140, !12, i64 144, !26, i64 152, !6, i64 168, !6, i64 176, !12, i64 184, !12, i64 188, !12, i64 192, !19, i64 196, !19, i64 200, !27, i64 208, !27, i64 224}
!23 = !{!"_ZTS6ImVec1", !19, i64 0}
!24 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!25 = !{!"_ZTS16ImGuiMenuColumns", !12, i64 0, !12, i64 4, !20, i64 8, !20, i64 10, !20, i64 12, !20, i64 14, !20, i64 16, !7, i64 18}
!26 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!28 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!29 = !{!"_ZTS8ImVec2ih", !20, i64 0, !20, i64 2}
!30 = !{!"_ZTS12ImGuiStorage", !31, i64 0}
!31 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !12, i64 0, !12, i64 4, !6, i64 8}
!32 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!33 = !{!"_ZTS10ImDrawList", !34, i64 0, !35, i64 16, !36, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !37, i64 88, !38, i64 104, !39, i64 120, !40, i64 136, !42, i64 168, !19, i64 192}
!34 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorIPvE", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!40 = !{!"_ZTS15ImDrawCmdHeader", !41, i64 0, !6, i64 16, !12, i64 24}
!41 = !{!"_ZTS6ImVec4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!42 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !43, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!44 = !{!45, !19, i64 216}
!45 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !6, i64 24, !6, i64 32, !19, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !19, i64 60, !19, i64 64, !6, i64 72, !6, i64 80, !19, i64 88, !11, i64 92, !6, i64 96, !18, i64 104, !11, i64 112, !11, i64 113, !11, i64 114, !11, i64 115, !11, i64 116, !11, i64 117, !11, i64 118, !11, i64 119, !19, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !11, i64 208, !11, i64 209, !11, i64 210, !11, i64 211, !11, i64 212, !11, i64 213, !11, i64 214, !19, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !12, i64 232, !12, i64 236, !18, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !18, i64 3572, !7, i64 3580, !19, i64 3588, !19, i64 3592, !11, i64 3596, !11, i64 3597, !11, i64 3598, !11, i64 3599, !12, i64 3600, !7, i64 3604, !11, i64 14036, !18, i64 14040, !7, i64 14048, !7, i64 14088, !7, i64 14128, !7, i64 14133, !7, i64 14138, !7, i64 14148, !7, i64 14158, !7, i64 14163, !7, i64 14168, !7, i64 14176, !7, i64 14196, !7, i64 14216, !19, i64 14236, !11, i64 14240, !11, i64 14241, !7, i64 14242, !11, i64 14243, !20, i64 14244, !35, i64 14248}
!46 = !{!45, !12, i64 220}
!47 = !{!45, !12, i64 224}
!48 = !{!45, !12, i64 228}
!49 = !{!45, !12, i64 236}
!50 = !{!10, !12, i64 8}
!51 = !{!10, !12, i64 12}
!52 = !{!7, !7, i64 0}
!53 = !{!54, !11, i64 21552}
!54 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !45, i64 8, !55, i64 14272, !55, i64 14288, !56, i64 14304, !6, i64 15352, !19, i64 15360, !19, i64 15364, !57, i64 15368, !58, i64 15880, !12, i64 15888, !12, i64 15892, !12, i64 15896, !11, i64 15900, !11, i64 15901, !11, i64 15902, !11, i64 15903, !11, i64 15904, !6, i64 15912, !26, i64 15920, !26, i64 15936, !26, i64 15952, !59, i64 15968, !30, i64 15984, !12, i64 16000, !18, i64 16004, !6, i64 16016, !6, i64 16024, !6, i64 16032, !6, i64 16040, !6, i64 16048, !18, i64 16056, !19, i64 16064, !12, i64 16068, !12, i64 16072, !12, i64 16076, !11, i64 16080, !11, i64 16081, !11, i64 16082, !11, i64 16083, !19, i64 16084, !19, i64 16088, !12, i64 16092, !12, i64 16096, !19, i64 16100, !11, i64 16104, !11, i64 16105, !11, i64 16106, !11, i64 16107, !11, i64 16108, !11, i64 16109, !18, i64 16112, !6, i64 16120, !60, i64 16128, !12, i64 16132, !12, i64 16136, !11, i64 16140, !11, i64 16141, !6, i64 16144, !12, i64 16152, !19, i64 16156, !12, i64 16160, !61, i64 16164, !12, i64 16184, !12, i64 16188, !62, i64 16192, !63, i64 16212, !64, i64 16272, !65, i64 16384, !66, i64 16400, !67, i64 16416, !21, i64 16432, !68, i64 16448, !69, i64 16464, !70, i64 16480, !70, i64 16496, !12, i64 16512, !71, i64 16520, !6, i64 16536, !12, i64 16544, !12, i64 16548, !12, i64 16552, !12, i64 16556, !12, i64 16560, !12, i64 16564, !12, i64 16568, !12, i64 16572, !12, i64 16576, !12, i64 16580, !12, i64 16584, !12, i64 16588, !60, i64 16592, !24, i64 16596, !11, i64 16600, !11, i64 16601, !11, i64 16602, !11, i64 16603, !11, i64 16604, !11, i64 16605, !11, i64 16606, !12, i64 16608, !28, i64 16612, !11, i64 16628, !11, i64 16629, !11, i64 16630, !12, i64 16632, !12, i64 16636, !12, i64 16640, !12, i64 16644, !12, i64 16648, !12, i64 16652, !28, i64 16656, !28, i64 16672, !12, i64 16688, !12, i64 16692, !12, i64 16696, !72, i64 16704, !72, i64 16752, !72, i64 16800, !72, i64 16848, !6, i64 16896, !6, i64 16904, !6, i64 16912, !19, i64 16920, !19, i64 16924, !11, i64 16928, !18, i64 16932, !18, i64 16940, !19, i64 16948, !12, i64 16952, !11, i64 16956, !11, i64 16957, !11, i64 16958, !12, i64 16960, !12, i64 16964, !12, i64 16968, !73, i64 16976, !28, i64 17040, !12, i64 17056, !12, i64 17060, !19, i64 17064, !12, i64 17068, !12, i64 17072, !12, i64 17076, !12, i64 17080, !74, i64 17088, !7, i64 17104, !12, i64 17120, !75, i64 17128, !6, i64 17144, !12, i64 17152, !76, i64 17160, !77, i64 17176, !27, i64 17216, !43, i64 17232, !6, i64 17248, !79, i64 17256, !81, i64 17296, !82, i64 17312, !12, i64 17328, !12, i64 17332, !19, i64 17336, !19, i64 17340, !18, i64 17344, !83, i64 17352, !87, i64 21072, !12, i64 21184, !12, i64 21188, !19, i64 21192, !19, i64 21196, !12, i64 21200, !41, i64 21204, !89, i64 21220, !19, i64 21268, !19, i64 21272, !11, i64 21276, !11, i64 21277, !19, i64 21280, !19, i64 21284, !19, i64 21288, !19, i64 21292, !20, i64 21296, !20, i64 21298, !84, i64 21304, !21, i64 21320, !90, i64 21336, !90, i64 21352, !7, i64 21368, !11, i64 21369, !19, i64 21372, !91, i64 21376, !92, i64 21392, !93, i64 21408, !94, i64 21424, !95, i64 21440, !12, i64 21456, !11, i64 21460, !96, i64 21464, !6, i64 21472, !91, i64 21480, !6, i64 21496, !6, i64 21504, !19, i64 21512, !11, i64 21516, !12, i64 21520, !12, i64 21524, !12, i64 21528, !12, i64 21532, !91, i64 21536, !11, i64 21552, !7, i64 21553, !12, i64 21556, !10, i64 21560, !97, i64 21576, !7, i64 21616, !12, i64 21856, !12, i64 21860, !19, i64 21864, !12, i64 21868, !12, i64 21872, !12, i64 21876, !84, i64 21880}
!55 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!56 = !{!"_ZTS10ImGuiStyle", !19, i64 0, !19, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !18, i64 24, !18, i64 32, !12, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !18, i64 60, !19, i64 68, !19, i64 72, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !12, i64 148, !18, i64 152, !18, i64 160, !18, i64 168, !18, i64 176, !19, i64 184, !11, i64 188, !11, i64 189, !11, i64 190, !19, i64 192, !19, i64 196, !7, i64 200}
!57 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !19, i64 16, !19, i64 20, !19, i64 24, !41, i64 28, !12, i64 44, !7, i64 48, !19, i64 432, !7, i64 436, !6, i64 504}
!58 = !{!"double", !7, i64 0}
!59 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!60 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!61 = !{!"_ZTS10ImBitArrayILi140ELin512EE", !7, i64 0}
!62 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !19, i64 4, !12, i64 8, !12, i64 12, !11, i64 16}
!63 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !28, i64 12, !28, i64 28, !28, i64 44}
!64 = !{!"_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}
!65 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!72 = !{!"_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}
!73 = !{!"_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}
!74 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!77 = !{!"_ZTS6ImPoolI10ImGuiTableE", !78, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!78 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!79 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !80, i64 0, !30, i64 16, !12, i64 32, !12, i64 36}
!80 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!81 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!83 = !{!"_ZTS19ImGuiInputTextState", !12, i64 0, !12, i64 4, !12, i64 8, !35, i64 16, !84, i64 32, !84, i64 48, !11, i64 64, !12, i64 68, !19, i64 72, !85, i64 76, !19, i64 3704, !11, i64 3708, !11, i64 3709, !11, i64 3710, !12, i64 3712}
!84 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!85 = !{!"_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, !86, i64 32}
!86 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !20, i64 3582, !20, i64 3584, !12, i64 3588, !12, i64 3592}
!87 = !{!"_ZTS6ImFont", !27, i64 0, !19, i64 16, !19, i64 20, !35, i64 24, !88, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !20, i64 80, !20, i64 82, !20, i64 84, !20, i64 86, !11, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !12, i64 104, !7, i64 108}
!88 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!89 = !{!"_ZTS21ImGuiComboPreviewData", !28, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !19, i64 40, !12, i64 44}
!90 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !18, i64 4, !19, i64 12}
!91 = !{!"_ZTS15ImGuiTextBuffer", !84, i64 0}
!92 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!93 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !84, i64 0}
!94 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !84, i64 0}
!95 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!96 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!97 = !{!"_ZTS14ImGuiStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !98, i64 16, !11, i64 32, !19, i64 36}
!98 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!99 = !{!10, !11, i64 2}
!100 = !{!54, !6, i64 16536}
!101 = !{!17, !6, i64 0}
!102 = !{!10, !11, i64 4}
!103 = !{!104, !12, i64 112}
!104 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !105, i64 24, !106, i64 40, !107, i64 56, !108, i64 72, !108, i64 80, !108, i64 88, !108, i64 96, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !12, i64 124, !20, i64 128, !20, i64 130, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !19, i64 148, !12, i64 152, !12, i64 154, !12, i64 156, !7, i64 160, !12, i64 168, !12, i64 172, !19, i64 176, !19, i64 180, !19, i64 184, !19, i64 188, !19, i64 192, !19, i64 196, !19, i64 200, !19, i64 204, !19, i64 208, !19, i64 212, !19, i64 216, !19, i64 220, !19, i64 224, !19, i64 228, !19, i64 232, !19, i64 236, !28, i64 240, !28, i64 256, !28, i64 272, !28, i64 288, !28, i64 304, !28, i64 320, !28, i64 336, !28, i64 352, !28, i64 368, !6, i64 384, !6, i64 392, !91, i64 400, !6, i64 416, !109, i64 424, !110, i64 432, !111, i64 448, !112, i64 464, !113, i64 480, !7, i64 496, !7, i64 497, !7, i64 498, !7, i64 499, !7, i64 500, !7, i64 501, !7, i64 502, !7, i64 503, !7, i64 504, !7, i64 505, !7, i64 506, !7, i64 507, !7, i64 508, !7, i64 509, !7, i64 510, !7, i64 511, !7, i64 512, !7, i64 513, !7, i64 514, !7, i64 515, !7, i64 516, !7, i64 517, !7, i64 518, !7, i64 519, !7, i64 520, !11, i64 521, !11, i64 522, !11, i64 523, !11, i64 524, !11, i64 525, !11, i64 526, !11, i64 527, !11, i64 528, !11, i64 529, !11, i64 530, !11, i64 531, !11, i64 532, !11, i64 533, !11, i64 534, !11, i64 535}
!105 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!106 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!107 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!108 = !{!"long long", !7, i64 0}
!109 = !{!"_ZTS22ImGuiTableInstanceData", !19, i64 0, !19, i64 4}
!110 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!111 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !20, i64 4, !20, i64 6, !12, i64 8}
!112 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!113 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!114 = !{!54, !12, i64 15888}
!115 = !{!104, !6, i64 384}
!116 = !{!104, !6, i64 392}
!117 = !{!104, !12, i64 0}
!118 = !{!104, !12, i64 116}
!119 = distinct !{!119, !120}
!120 = !{!"llvm.loop.mustprogress"}
!121 = distinct !{!121, !120}
!122 = distinct !{!122, !120}
!123 = !{!54, !12, i64 15920}
!124 = !{!26, !6, i64 8}
!125 = !{!26, !12, i64 0}
!126 = !{!17, !12, i64 584}
!127 = distinct !{!127, !120}
!128 = !{!54, !12, i64 16520}
!129 = distinct !{!129, !120}
!130 = !{!131, !12, i64 0}
!131 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!132 = distinct !{!132, !120}
!133 = distinct !{!133, !120}
!134 = distinct !{!134, !120}
!135 = !{!54, !12, i64 16480}
!136 = !{!137, !6, i64 8}
!137 = !{!"_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}
!138 = !{!137, !12, i64 0}
!139 = !{!17, !12, i64 12}
!140 = !{!137, !6, i64 16}
!141 = !{!17, !6, i64 848}
!142 = distinct !{!142, !120}
!143 = distinct !{!143, !120}
!144 = distinct !{!144, !120}
!145 = !{!54, !6, i64 88}
!146 = !{!147, !12, i64 72}
!147 = !{!"_ZTS11ImFontAtlas", !12, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !11, i64 24, !11, i64 25, !11, i64 26, !6, i64 32, !6, i64 40, !12, i64 48, !12, i64 52, !18, i64 56, !18, i64 64, !67, i64 72, !148, i64 88, !149, i64 104, !7, i64 120, !6, i64 1144, !12, i64 1152, !12, i64 1156, !12, i64 1160}
!148 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!149 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!150 = !{!54, !6, i64 32}
!151 = !{!54, !19, i64 21372}
!152 = !{!54, !12, i64 21392}
!153 = !{!154, !6, i64 0}
!154 = !{!"_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}
!155 = distinct !{!155, !120}
!156 = distinct !{!156, !120}
!157 = distinct !{!157, !120}
!158 = !{!54, !12, i64 21376}
!159 = !{!54, !6, i64 16024}
!160 = !{!17, !6, i64 864}
!161 = !{!54, !6, i64 16032}
!162 = !{!54, !6, i64 16040}
!163 = !{!54, !12, i64 16092}
!164 = !{!54, !12, i64 16136}
!165 = !{!54, !19, i64 16100}
!166 = !{!54, !11, i64 16105}
!167 = !{!54, !60, i64 16128}
!168 = !{!54, !6, i64 16120}
!169 = !{!54, !12, i64 16160}
!170 = !{!54, !12, i64 16076}
!171 = !{!54, !19, i64 16084}
!172 = !{!54, !11, i64 16080}
!173 = !{!54, !12, i64 17328}
!174 = !{!54, !19, i64 17336}
!175 = !{!54, !19, i64 17340}
!176 = !{!54, !11, i64 16956}
!177 = !{!54, !12, i64 16988}
!178 = !{!54, !12, i64 16984}
!179 = distinct !{!179, !120}
!180 = !{!54, !12, i64 16544}
!181 = !{!54, !24, i64 16596}
!182 = !{!54, !60, i64 16592}
!183 = !{!54, !11, i64 221}
!184 = !{!54, !11, i64 222}
!185 = !{!54, !12, i64 16552}
!186 = !{!54, !12, i64 16556}
!187 = !{!54, !12, i64 16560}
!188 = !{!54, !12, i64 16564}
!189 = !{!54, !12, i64 16568}
!190 = !{!54, !11, i64 16602}
!191 = !{!54, !11, i64 16603}
!192 = !{!54, !12, i64 16548}
!193 = !{!54, !6, i64 16896}
!194 = !{!10, !11, i64 3}
!195 = !{!17, !11, i64 151}
!196 = !{!17, !20, i64 166}
!197 = distinct !{!197, !120}
!198 = !{!104, !7, i64 500}
!199 = distinct !{!199, !120}
!200 = distinct !{!200, !120}


; 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