; LLVM IR from jan-van-bergen/GPU-Raytracer :: include/Imgui/imgui.ll (ZN5ImGui17ShowMetricsWindowEPb)

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

%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }
%struct.ImGuiContext = type <{ i8, i8, [6 x 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, [7 x i8], ptr, %struct.ImVector.1, %struct.ImVector.1, %struct.ImVector.1, %struct.ImVector.2, %struct.ImGuiStorage, i32, %struct.ImVec2, [4 x i8], 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, i8, i8, i32, i32, %struct.ImBitArray, %struct.ImVec2, [4 x i8], ptr, i32, i32, i32, i8, i8, [2 x i8], ptr, i32, float, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, [4 x i8], %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, [4 x i8], %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, i8, i32, %struct.ImRect, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, [4 x i8], %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, ptr, ptr, ptr, float, float, i8, [3 x i8], float, i32, i8, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, [4 x i8], %struct.ImVector.12, [16 x i8], i32, [4 x i8], %struct.ImVector.13, ptr, i32, [4 x i8], %struct.ImVector.14, %struct.ImPool, %struct.ImVector.16, %struct.ImVector.17, ptr, %struct.ImPool.18, %struct.ImVector.20, %struct.ImVector.21, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImFont, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, float, i8, i8, [2 x i8], float, float, float, float, i16, i16, float, [4 x i8], %struct.ImVector.22, %struct.ImVector.7, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i8, i8, [2 x i8], float, %struct.ImGuiTextBuffer, %struct.ImVector.24, %struct.ImChunkStream, %struct.ImChunkStream.25, %struct.ImVector.26, i32, i8, [3 x i8], i32, [4 x i8], ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, [3 x i8], i32, i32, i32, i8, [3 x i8], i32, %struct.ImGuiMetricsConfig, [4 x i8], %struct.ImGuiStackTool, [120 x float], i32, i32, float, i32, i32, i32, [3073 x i8], [7 x i8] }>
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, 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, [645 x i32], [512 x i8], %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, [20 x float], i32, i32, [645 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], [20 x float], [20 x float], float, 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.22 = type { i32, i32, ptr }
%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, i32, i32 }
%struct.ImGuiStackTool = type { i32, i32, i32, %struct.ImVector.27 }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImGuiWindow = type <{ ptr, i32, i32, %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, %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, 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.ImGuiTableColumnSortSpecs, %struct.ImVector.38, %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.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.38 = 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.41] }
%struct.ImVector.41 = type { i32, i32, ptr }
%struct.ImGuiPopupData = type { i32, ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2 }
%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.42, %struct.ImVector.43, [64 x %struct.ImVec4], ptr, i32, i32, i32, [4 x i8] }>
%struct.ImVector.42 = type { i32, i32, ptr }
%struct.ImVector.43 = 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.14 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.279 = 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.297 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.300 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.301 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.309 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.313 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.333 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.334 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [3 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 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: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef) #6

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

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

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

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

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

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

; 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(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #7 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) #6

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

declare void @_ZN5ImGui7TreePopEv() #5

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

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

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

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

declare noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8)) #5

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

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

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

; 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
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 i32, align 4
  %10 = alloca %struct.ImRect, align 4
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca %struct.ImVec2, align 4
  %14 = alloca %struct.ImVec2, align 4
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca [128 x i8], align 16
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca %struct.ImRect, align 4
  %21 = alloca %struct.ImVec2, align 4
  %22 = alloca %struct.ImVec2, align 4
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca %struct.ImRect, align 4
  %27 = alloca %struct.ImVec2, 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 i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca i32, align 4
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca %struct.ImVec2, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca %struct.ImRect, align 4
  %59 = alloca [32 x i8], align 16
  %60 = alloca float, align 4
  %61 = alloca %struct.ImVec2, align 4
  %62 = alloca %struct.ImVec2, align 4
  %63 = alloca i32, align 4
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca i32, align 4
  %67 = alloca %struct.ImRect, align 4
  %68 = alloca i32, align 4
  %69 = alloca float, align 4
  %70 = 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
  %71 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %71, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #9
  %72 = load ptr, ptr %3, align 8, !tbaa !5
  %73 = getelementptr inbounds %struct.ImGuiContext, ptr %72, i32 0, i32 3
  store ptr %73, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #9
  %74 = load ptr, ptr %3, align 8, !tbaa !5
  %75 = getelementptr inbounds %struct.ImGuiContext, ptr %74, i32 0, i32 229
  store ptr %75, ptr %5, align 8, !tbaa !5
  %76 = load ptr, ptr %5, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %76, i32 0, i32 0
  %78 = load i8, ptr %77, align 4, !tbaa !9, !range !13, !noundef !14
  %79 = trunc i8 %78 to i1
  br i1 %79, label %80, label %83

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

83:                                               ; preds = %80, %1
  %84 = load ptr, ptr %2, align 8, !tbaa !5
  %85 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.275, ptr noundef %84, i32 noundef 0)
  br i1 %85, label %86, label %92

86:                                               ; preds = %83
  %87 = call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %88 = getelementptr inbounds %struct.ImGuiWindow, ptr %87, i32 0, i32 35
  %89 = load i16, ptr %88, align 2, !tbaa !15
  %90 = sext i16 %89 to i32
  %91 = icmp sgt i32 %90, 1
  br i1 %91, label %92, label %93

92:                                               ; preds = %86, %83
  call void @_ZN5ImGui3EndEv()
  store i32 1, ptr %6, align 4
  br label %1286

93:                                               ; preds = %86
  %94 = call noundef ptr @_ZN5ImGui10GetVersionEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.276, ptr noundef %94)
  %95 = load ptr, ptr %4, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.ImGuiIO, ptr %95, i32 0, i32 43
  %97 = load float, ptr %96, align 8, !tbaa !43
  %98 = fdiv float 1.000000e+03, %97
  %99 = fpext float %98 to double
  %100 = load ptr, ptr %4, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.ImGuiIO, ptr %100, i32 0, i32 43
  %102 = load float, ptr %101, align 8, !tbaa !43
  %103 = fpext float %102 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.277, double noundef %99, double noundef %103)
  %104 = load ptr, ptr %4, align 8, !tbaa !5
  %105 = getelementptr inbounds %struct.ImGuiIO, ptr %104, i32 0, i32 44
  %106 = load i32, ptr %105, align 4, !tbaa !45
  %107 = load ptr, ptr %4, align 8, !tbaa !5
  %108 = getelementptr inbounds %struct.ImGuiIO, ptr %107, i32 0, i32 45
  %109 = load i32, ptr %108, align 8, !tbaa !46
  %110 = load ptr, ptr %4, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.ImGuiIO, ptr %110, i32 0, i32 45
  %112 = load i32, ptr %111, align 8, !tbaa !46
  %113 = sdiv i32 %112, 3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.278, i32 noundef %106, i32 noundef %109, i32 noundef %113)
  %114 = load ptr, ptr %4, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.ImGuiIO, ptr %114, i32 0, i32 46
  %116 = load i32, ptr %115, align 4, !tbaa !47
  %117 = load ptr, ptr %4, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct.ImGuiIO, ptr %117, i32 0, i32 48
  %119 = load i32, ptr %118, align 4, !tbaa !48
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.279, i32 noundef %116, i32 noundef %119)
  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)
  %120 = load ptr, ptr %5, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %120, i32 0, i32 6
  %122 = load i32, ptr %121, align 4, !tbaa !49
  %123 = icmp slt i32 %122, 0
  br i1 %123, label %124, label %127

124:                                              ; preds = %93
  %125 = load ptr, ptr %5, align 8, !tbaa !5
  %126 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %125, i32 0, i32 6
  store i32 4, ptr %126, align 4, !tbaa !49
  br label %127

127:                                              ; preds = %124, %93
  %128 = load ptr, ptr %5, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %128, i32 0, i32 7
  %130 = load i32, ptr %129, align 4, !tbaa !50
  %131 = icmp slt i32 %130, 0
  br i1 %131, label %132, label %135

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

135:                                              ; preds = %132, %127
  %136 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.297)
  br i1 %136, label %137, label %444

137:                                              ; preds = %135
  %138 = load ptr, ptr %5, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %138, i32 0, i32 0
  %140 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.298, ptr noundef %139)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.299)
  %141 = load ptr, ptr %5, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %141, i32 0, i32 2
  %143 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.300, ptr noundef %142)
  %144 = load ptr, ptr %5, align 8, !tbaa !5
  %145 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %144, i32 0, i32 1
  %146 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.301, ptr noundef %145)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %147 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %148 = fmul float %147, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %148)
  %149 = load ptr, ptr %5, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %149, i32 0, i32 6
  %151 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 0
  %152 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.302, ptr noundef %150, ptr noundef %151, i32 noundef 8, i32 noundef 8)
  %153 = zext i1 %152 to i32
  %154 = load ptr, ptr %5, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %154, i32 0, i32 1
  %156 = load i8, ptr %155, align 1, !tbaa !51, !range !13, !noundef !14
  %157 = trunc i8 %156 to i1
  %158 = zext i1 %157 to i32
  %159 = or i32 %158, %153
  %160 = icmp ne i32 %159, 0
  %161 = zext i1 %160 to i8
  store i8 %161, ptr %155, align 1, !tbaa !51
  %162 = load ptr, ptr %5, align 8, !tbaa !5
  %163 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %162, i32 0, i32 1
  %164 = load i8, ptr %163, align 1, !tbaa !51, !range !13, !noundef !14
  %165 = trunc i8 %164 to i1
  br i1 %165, label %166, label %219

166:                                              ; preds = %137
  %167 = load ptr, ptr %3, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.ImGuiContext, ptr %167, i32 0, i32 88
  %169 = load ptr, ptr %168, align 8, !tbaa !52
  %170 = icmp ne ptr %169, null
  br i1 %170, label %171, label %219

171:                                              ; preds = %166
  %172 = load ptr, ptr %3, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.ImGuiContext, ptr %172, i32 0, i32 88
  %174 = load ptr, ptr %173, align 8, !tbaa !52
  %175 = getelementptr inbounds %struct.ImGuiWindow, ptr %174, i32 0, i32 0
  %176 = load ptr, ptr %175, align 8, !tbaa !98
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.303, ptr noundef %176)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  store i32 0, ptr %9, align 4, !tbaa !99
  br label %177

177:                                              ; preds = %215, %171
  %178 = load i32, ptr %9, align 4, !tbaa !99
  %179 = icmp slt i32 %178, 8
  br i1 %179, label %181, label %180

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

181:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #9
  %182 = load ptr, ptr %3, align 8, !tbaa !5
  %183 = getelementptr inbounds %struct.ImGuiContext, ptr %182, i32 0, i32 88
  %184 = load ptr, ptr %183, align 8, !tbaa !52
  %185 = load i32, ptr %9, align 4, !tbaa !99
  %186 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %184, i32 noundef %185)
  %187 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %10, i32 0, i32 0
  %188 = extractvalue { <2 x float>, <2 x float> } %186, 0
  store <2 x float> %188, ptr %187, align 4
  %189 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %10, i32 0, i32 1
  %190 = extractvalue { <2 x float>, <2 x float> } %186, 1
  store <2 x float> %190, ptr %189, align 4
  %191 = getelementptr inbounds %struct.ImRect, ptr %10, i32 0, i32 0
  %192 = getelementptr inbounds %struct.ImVec2, ptr %191, i32 0, i32 0
  %193 = load float, ptr %192, align 4, !tbaa !100
  %194 = fpext float %193 to double
  %195 = getelementptr inbounds %struct.ImRect, ptr %10, i32 0, i32 0
  %196 = getelementptr inbounds %struct.ImVec2, ptr %195, i32 0, i32 1
  %197 = load float, ptr %196, align 4, !tbaa !101
  %198 = fpext float %197 to double
  %199 = getelementptr inbounds %struct.ImRect, ptr %10, i32 0, i32 1
  %200 = getelementptr inbounds %struct.ImVec2, ptr %199, i32 0, i32 0
  %201 = load float, ptr %200, align 4, !tbaa !102
  %202 = fpext float %201 to double
  %203 = getelementptr inbounds %struct.ImRect, ptr %10, i32 0, i32 1
  %204 = getelementptr inbounds %struct.ImVec2, ptr %203, i32 0, i32 1
  %205 = load float, ptr %204, align 4, !tbaa !103
  %206 = fpext float %205 to double
  %207 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %208 = fpext float %207 to double
  %209 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %210 = fpext float %209 to double
  %211 = load i32, ptr %9, align 4, !tbaa !99
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds [8 x ptr], ptr %7, i64 0, i64 %212
  %214 = load ptr, ptr %213, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.304, double noundef %194, double noundef %198, double noundef %202, double noundef %206, double noundef %208, double noundef %210, ptr noundef %214)
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #9
  br label %215

215:                                              ; preds = %181
  %216 = load i32, ptr %9, align 4, !tbaa !99
  %217 = add nsw i32 %216, 1
  store i32 %217, ptr %9, align 4, !tbaa !99
  br label %177, !llvm.loop !104

218:                                              ; preds = %180
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %219

219:                                              ; preds = %218, %166, %137
  %220 = load ptr, ptr %5, align 8, !tbaa !5
  %221 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %220, i32 0, i32 3
  %222 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.305, ptr noundef %221)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %223 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %224 = fmul float %223, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %224)
  %225 = load ptr, ptr %5, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %225, i32 0, i32 7
  %227 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 0
  %228 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.306, ptr noundef %226, ptr noundef %227, i32 noundef 13, i32 noundef 13)
  %229 = zext i1 %228 to i32
  %230 = load ptr, ptr %5, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %230, i32 0, i32 3
  %232 = load i8, ptr %231, align 1, !tbaa !106, !range !13, !noundef !14
  %233 = trunc i8 %232 to i1
  %234 = zext i1 %233 to i32
  %235 = or i32 %234, %229
  %236 = icmp ne i32 %235, 0
  %237 = zext i1 %236 to i8
  store i8 %237, ptr %231, align 1, !tbaa !106
  %238 = load ptr, ptr %5, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %238, i32 0, i32 3
  %240 = load i8, ptr %239, align 1, !tbaa !106, !range !13, !noundef !14
  %241 = trunc i8 %240 to i1
  br i1 %241, label %242, label %440

242:                                              ; preds = %219
  %243 = load ptr, ptr %3, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.ImGuiContext, ptr %243, i32 0, i32 88
  %245 = load ptr, ptr %244, align 8, !tbaa !52
  %246 = icmp ne ptr %245, null
  br i1 %246, label %247, label %440

247:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  store i32 0, ptr %11, align 4, !tbaa !99
  br label %248

248:                                              ; preds = %436, %247
  %249 = load i32, ptr %11, align 4, !tbaa !99
  %250 = load ptr, ptr %3, align 8, !tbaa !5
  %251 = getelementptr inbounds %struct.ImGuiContext, ptr %250, i32 0, i32 169
  %252 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %251)
  %253 = icmp slt i32 %249, %252
  br i1 %253, label %255, label %254

254:                                              ; preds = %248
  store i32 5, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %439

255:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  %256 = load ptr, ptr %3, align 8, !tbaa !5
  %257 = getelementptr inbounds %struct.ImGuiContext, ptr %256, i32 0, i32 169
  %258 = load i32, ptr %11, align 4, !tbaa !99
  %259 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %257, i32 noundef %258)
  store ptr %259, ptr %12, align 8, !tbaa !5
  %260 = load ptr, ptr %12, align 8, !tbaa !5
  %261 = icmp eq ptr %260, null
  br i1 %261, label %287, label %262

262:                                              ; preds = %255
  %263 = load ptr, ptr %12, align 8, !tbaa !5
  %264 = getelementptr inbounds %struct.ImGuiTable, ptr %263, i32 0, i32 13
  %265 = load i32, ptr %264, align 8, !tbaa !107
  %266 = load ptr, ptr %3, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.ImGuiContext, ptr %266, i32 0, i32 12
  %268 = load i32, ptr %267, align 8, !tbaa !116
  %269 = sub nsw i32 %268, 1
  %270 = icmp slt i32 %265, %269
  br i1 %270, label %287, label %271

271:                                              ; preds = %262
  %272 = load ptr, ptr %12, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.ImGuiTable, ptr %272, i32 0, i32 55
  %274 = load ptr, ptr %273, align 8, !tbaa !117
  %275 = load ptr, ptr %3, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.ImGuiContext, ptr %275, i32 0, i32 88
  %277 = load ptr, ptr %276, align 8, !tbaa !52
  %278 = icmp ne ptr %274, %277
  br i1 %278, label %279, label %288

279:                                              ; preds = %271
  %280 = load ptr, ptr %12, align 8, !tbaa !5
  %281 = getelementptr inbounds %struct.ImGuiTable, ptr %280, i32 0, i32 56
  %282 = load ptr, ptr %281, align 8, !tbaa !118
  %283 = load ptr, ptr %3, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.ImGuiContext, ptr %283, i32 0, i32 88
  %285 = load ptr, ptr %284, align 8, !tbaa !52
  %286 = icmp ne ptr %282, %285
  br i1 %286, label %287, label %288

287:                                              ; preds = %279, %262, %255
  store i32 7, ptr %6, align 4
  br label %433

288:                                              ; preds = %279, %271
  %289 = load ptr, ptr %12, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.ImGuiTable, ptr %289, i32 0, i32 0
  %291 = load i32, ptr %290, align 8, !tbaa !119
  %292 = load ptr, ptr %12, align 8, !tbaa !5
  %293 = getelementptr inbounds %struct.ImGuiTable, ptr %292, i32 0, i32 14
  %294 = load i32, ptr %293, align 4, !tbaa !120
  %295 = load ptr, ptr %12, align 8, !tbaa !5
  %296 = getelementptr inbounds %struct.ImGuiTable, ptr %295, i32 0, i32 55
  %297 = load ptr, ptr %296, align 8, !tbaa !117
  %298 = getelementptr inbounds %struct.ImGuiWindow, ptr %297, i32 0, i32 0
  %299 = load ptr, ptr %298, align 8, !tbaa !98
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.307, i32 noundef %291, i32 noundef %294, ptr noundef %299)
  %300 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %300, label %301, label %311

301:                                              ; preds = %288
  %302 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %303 = load ptr, ptr %12, align 8, !tbaa !5
  %304 = getelementptr inbounds %struct.ImGuiTable, ptr %303, i32 0, i32 46
  %305 = getelementptr inbounds %struct.ImRect, ptr %304, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %14, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %306 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %305, ptr noundef nonnull align 4 dereferenceable(8) %14)
  store <2 x float> %306, ptr %13, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  %307 = load ptr, ptr %12, align 8, !tbaa !5
  %308 = getelementptr inbounds %struct.ImGuiTable, ptr %307, i32 0, i32 46
  %309 = getelementptr inbounds %struct.ImRect, ptr %308, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %16, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %310 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %309, ptr noundef nonnull align 4 dereferenceable(8) %16)
  store <2 x float> %310, ptr %15, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %302, ptr noundef nonnull align 4 dereferenceable(8) %13, ptr noundef nonnull align 4 dereferenceable(8) %15, 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 %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  br label %311

311:                                              ; preds = %301, %288
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 128, ptr %17) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  store i32 0, ptr %18, align 4, !tbaa !99
  br label %312

312:                                              ; preds = %429, %311
  %313 = load i32, ptr %18, align 4, !tbaa !99
  %314 = icmp slt i32 %313, 13
  br i1 %314, label %316, label %315

315:                                              ; preds = %312
  store i32 8, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %432

316:                                              ; preds = %312
  %317 = load i32, ptr %18, align 4, !tbaa !99
  %318 = icmp sge i32 %317, 6
  br i1 %318, label %319, label %384

319:                                              ; preds = %316
  %320 = load i32, ptr %18, align 4, !tbaa !99
  %321 = icmp ne i32 %320, 6
  br i1 %321, label %322, label %326

322:                                              ; preds = %319
  %323 = load i32, ptr %18, align 4, !tbaa !99
  %324 = icmp ne i32 %323, 8
  br i1 %324, label %325, label %326

325:                                              ; preds = %322
  br label %429

326:                                              ; preds = %322, %319
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  store i32 0, ptr %19, align 4, !tbaa !99
  br label %327

327:                                              ; preds = %380, %326
  %328 = load i32, ptr %19, align 4, !tbaa !99
  %329 = load ptr, ptr %12, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.ImGuiTable, ptr %329, i32 0, i32 14
  %331 = load i32, ptr %330, align 4, !tbaa !120
  %332 = icmp slt i32 %328, %331
  br i1 %332, label %334, label %333

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

334:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 16, ptr %20) #9
  %335 = load ptr, ptr %12, align 8, !tbaa !5
  %336 = load i32, ptr %18, align 4, !tbaa !99
  %337 = load i32, ptr %19, align 4, !tbaa !99
  %338 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %335, i32 noundef %336, i32 noundef %337)
  %339 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %20, i32 0, i32 0
  %340 = extractvalue { <2 x float>, <2 x float> } %338, 0
  store <2 x float> %340, ptr %339, align 4
  %341 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %20, i32 0, i32 1
  %342 = extractvalue { <2 x float>, <2 x float> } %338, 1
  store <2 x float> %342, ptr %341, align 4
  %343 = getelementptr inbounds [128 x i8], ptr %17, i64 0, i64 0
  %344 = getelementptr inbounds %struct.ImRect, ptr %20, i32 0, i32 0
  %345 = getelementptr inbounds %struct.ImVec2, ptr %344, i32 0, i32 0
  %346 = load float, ptr %345, align 4, !tbaa !100
  %347 = fpext float %346 to double
  %348 = getelementptr inbounds %struct.ImRect, ptr %20, i32 0, i32 0
  %349 = getelementptr inbounds %struct.ImVec2, ptr %348, i32 0, i32 1
  %350 = load float, ptr %349, align 4, !tbaa !101
  %351 = fpext float %350 to double
  %352 = getelementptr inbounds %struct.ImRect, ptr %20, i32 0, i32 1
  %353 = getelementptr inbounds %struct.ImVec2, ptr %352, i32 0, i32 0
  %354 = load float, ptr %353, align 4, !tbaa !102
  %355 = fpext float %354 to double
  %356 = getelementptr inbounds %struct.ImRect, ptr %20, i32 0, i32 1
  %357 = getelementptr inbounds %struct.ImVec2, ptr %356, i32 0, i32 1
  %358 = load float, ptr %357, align 4, !tbaa !103
  %359 = fpext float %358 to double
  %360 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %20)
  %361 = fpext float %360 to double
  %362 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %20)
  %363 = fpext float %362 to double
  %364 = load i32, ptr %19, align 4, !tbaa !99
  %365 = load i32, ptr %18, align 4, !tbaa !99
  %366 = sext i32 %365 to i64
  %367 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 %366
  %368 = load ptr, ptr %367, align 8, !tbaa !5
  %369 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %343, i64 noundef 128, ptr noundef @.str.308, double noundef %347, double noundef %351, double noundef %355, double noundef %359, double noundef %361, double noundef %363, i32 noundef %364, ptr noundef %368)
  %370 = getelementptr inbounds [128 x i8], ptr %17, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %21, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %371 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %370, i1 noundef zeroext false, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %21)
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  %372 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %372, label %373, label %379

373:                                              ; preds = %334
  %374 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  %375 = getelementptr inbounds %struct.ImRect, ptr %20, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %376 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %375, ptr noundef nonnull align 4 dereferenceable(8) %23)
  store <2 x float> %376, ptr %22, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  %377 = getelementptr inbounds %struct.ImRect, ptr %20, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %378 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %377, ptr noundef nonnull align 4 dereferenceable(8) %25)
  store <2 x float> %378, ptr %24, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %374, ptr noundef nonnull align 4 dereferenceable(8) %22, ptr noundef nonnull align 4 dereferenceable(8) %24, 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 %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  br label %379

379:                                              ; preds = %373, %334
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #9
  br label %380

380:                                              ; preds = %379
  %381 = load i32, ptr %19, align 4, !tbaa !99
  %382 = add nsw i32 %381, 1
  store i32 %382, ptr %19, align 4, !tbaa !99
  br label %327, !llvm.loop !121

383:                                              ; preds = %333
  br label %428

384:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #9
  %385 = load ptr, ptr %12, align 8, !tbaa !5
  %386 = load i32, ptr %18, align 4, !tbaa !99
  %387 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %385, i32 noundef %386, i32 noundef -1)
  %388 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %26, i32 0, i32 0
  %389 = extractvalue { <2 x float>, <2 x float> } %387, 0
  store <2 x float> %389, ptr %388, align 4
  %390 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %26, i32 0, i32 1
  %391 = extractvalue { <2 x float>, <2 x float> } %387, 1
  store <2 x float> %391, ptr %390, align 4
  %392 = getelementptr inbounds [128 x i8], ptr %17, i64 0, i64 0
  %393 = getelementptr inbounds %struct.ImRect, ptr %26, i32 0, i32 0
  %394 = getelementptr inbounds %struct.ImVec2, ptr %393, i32 0, i32 0
  %395 = load float, ptr %394, align 4, !tbaa !100
  %396 = fpext float %395 to double
  %397 = getelementptr inbounds %struct.ImRect, ptr %26, i32 0, i32 0
  %398 = getelementptr inbounds %struct.ImVec2, ptr %397, i32 0, i32 1
  %399 = load float, ptr %398, align 4, !tbaa !101
  %400 = fpext float %399 to double
  %401 = getelementptr inbounds %struct.ImRect, ptr %26, i32 0, i32 1
  %402 = getelementptr inbounds %struct.ImVec2, ptr %401, i32 0, i32 0
  %403 = load float, ptr %402, align 4, !tbaa !102
  %404 = fpext float %403 to double
  %405 = getelementptr inbounds %struct.ImRect, ptr %26, i32 0, i32 1
  %406 = getelementptr inbounds %struct.ImVec2, ptr %405, i32 0, i32 1
  %407 = load float, ptr %406, align 4, !tbaa !103
  %408 = fpext float %407 to double
  %409 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %26)
  %410 = fpext float %409 to double
  %411 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %26)
  %412 = fpext float %411 to double
  %413 = load i32, ptr %18, align 4, !tbaa !99
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds [13 x ptr], ptr %8, i64 0, i64 %414
  %416 = load ptr, ptr %415, align 8, !tbaa !5
  %417 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %392, i64 noundef 128, ptr noundef @.str.304, double noundef %396, double noundef %400, double noundef %404, double noundef %408, double noundef %410, double noundef %412, ptr noundef %416)
  %418 = getelementptr inbounds [128 x i8], ptr %17, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %27, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %419 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %418, i1 noundef zeroext false, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %27)
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  %420 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %420, label %421, label %427

421:                                              ; preds = %384
  %422 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  %423 = getelementptr inbounds %struct.ImRect, ptr %26, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %29, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %424 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %423, ptr noundef nonnull align 4 dereferenceable(8) %29)
  store <2 x float> %424, ptr %28, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  %425 = getelementptr inbounds %struct.ImRect, ptr %26, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %31, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %426 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %425, ptr noundef nonnull align 4 dereferenceable(8) %31)
  store <2 x float> %426, ptr %30, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %422, ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(8) %30, 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 %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %427

427:                                              ; preds = %421, %384
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #9
  br label %428

428:                                              ; preds = %427, %383
  br label %429

429:                                              ; preds = %428, %325
  %430 = load i32, ptr %18, align 4, !tbaa !99
  %431 = add nsw i32 %430, 1
  store i32 %431, ptr %18, align 4, !tbaa !99
  br label %312, !llvm.loop !122

432:                                              ; preds = %315
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 128, ptr %17) #9
  store i32 0, ptr %6, align 4
  br label %433

433:                                              ; preds = %432, %287
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  %434 = load i32, ptr %6, align 4
  switch i32 %434, label %1289 [
    i32 0, label %435
    i32 7, label %436
  ]

435:                                              ; preds = %433
  br label %436

436:                                              ; preds = %435, %433
  %437 = load i32, ptr %11, align 4, !tbaa !99
  %438 = add nsw i32 %437, 1
  store i32 %438, ptr %11, align 4, !tbaa !99
  br label %248, !llvm.loop !123

439:                                              ; preds = %254
  br label %440

440:                                              ; preds = %439, %242, %219
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %441 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.309, ptr noundef nonnull align 4 dereferenceable(8) %32)
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  br i1 %441, label %442, label %443

442:                                              ; preds = %440
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %443

443:                                              ; preds = %442, %440
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.310)
  call void @_ZN5ImGui7TreePopEv()
  br label %444

444:                                              ; preds = %443, %135
  %445 = load ptr, ptr %3, align 8, !tbaa !5
  %446 = getelementptr inbounds %struct.ImGuiContext, ptr %445, i32 0, i32 22
  %447 = getelementptr inbounds %struct.ImVector.1, ptr %446, i32 0, i32 0
  %448 = load i32, ptr %447, align 8, !tbaa !124
  %449 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.311, ptr noundef @.str.312, i32 noundef %448)
  br i1 %449, label %450, label %506

450:                                              ; preds = %444
  %451 = load ptr, ptr %3, align 8, !tbaa !5
  %452 = getelementptr inbounds %struct.ImGuiContext, ptr %451, i32 0, i32 22
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %452, ptr noundef @.str.313)
  %453 = load ptr, ptr %3, align 8, !tbaa !5
  %454 = getelementptr inbounds %struct.ImGuiContext, ptr %453, i32 0, i32 23
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %454, ptr noundef @.str.314)
  %455 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.315)
  br i1 %455, label %456, label %505

456:                                              ; preds = %450
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %457 = load ptr, ptr %3, align 8, !tbaa !5
  %458 = getelementptr inbounds %struct.ImGuiContext, ptr %457, i32 0, i32 24
  store ptr %458, ptr %33, align 8, !tbaa !5
  %459 = load ptr, ptr %33, align 8, !tbaa !5
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %459, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  store i32 0, ptr %34, align 4, !tbaa !99
  br label %460

460:                                              ; preds = %488, %456
  %461 = load i32, ptr %34, align 4, !tbaa !99
  %462 = load ptr, ptr %3, align 8, !tbaa !5
  %463 = getelementptr inbounds %struct.ImGuiContext, ptr %462, i32 0, i32 22
  %464 = getelementptr inbounds %struct.ImVector.1, ptr %463, i32 0, i32 0
  %465 = load i32, ptr %464, align 8, !tbaa !124
  %466 = icmp slt i32 %461, %465
  br i1 %466, label %468, label %467

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

468:                                              ; preds = %460
  %469 = load ptr, ptr %3, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.ImGuiContext, ptr %469, i32 0, i32 22
  %471 = load i32, ptr %34, align 4, !tbaa !99
  %472 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %470, i32 noundef %471)
  %473 = load ptr, ptr %472, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.ImGuiWindow, ptr %473, i32 0, i32 64
  %475 = load i32, ptr %474, align 8, !tbaa !125
  %476 = add nsw i32 %475, 1
  %477 = load ptr, ptr %3, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.ImGuiContext, ptr %477, i32 0, i32 12
  %479 = load i32, ptr %478, align 8, !tbaa !116
  %480 = icmp sge i32 %476, %479
  br i1 %480, label %481, label %487

481:                                              ; preds = %468
  %482 = load ptr, ptr %33, align 8, !tbaa !5
  %483 = load ptr, ptr %3, align 8, !tbaa !5
  %484 = getelementptr inbounds %struct.ImGuiContext, ptr %483, i32 0, i32 22
  %485 = load i32, ptr %34, align 4, !tbaa !99
  %486 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %484, i32 noundef %485)
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %482, ptr noundef nonnull align 8 dereferenceable(8) %486)
  br label %487

487:                                              ; preds = %481, %468
  br label %488

488:                                              ; preds = %487
  %489 = load i32, ptr %34, align 4, !tbaa !99
  %490 = add nsw i32 %489, 1
  store i32 %490, ptr %34, align 4, !tbaa !99
  br label %460, !llvm.loop !126

491:                                              ; preds = %467
  %492 = load ptr, ptr %33, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.ImVector.1, ptr %492, i32 0, i32 2
  %494 = load ptr, ptr %493, align 8, !tbaa !127
  %495 = load ptr, ptr %33, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.ImVector.1, ptr %495, i32 0, i32 0
  %497 = load i32, ptr %496, align 8, !tbaa !128
  %498 = sext i32 %497 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %494, i64 noundef %498, i64 noundef 8, ptr noundef @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %499 = load ptr, ptr %33, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.ImVector.1, ptr %499, i32 0, i32 2
  %501 = load ptr, ptr %500, align 8, !tbaa !127
  %502 = load ptr, ptr %33, align 8, !tbaa !5
  %503 = getelementptr inbounds %struct.ImVector.1, ptr %502, i32 0, i32 0
  %504 = load i32, ptr %503, align 8, !tbaa !128
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %501, i32 noundef %504, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  br label %505

505:                                              ; preds = %491, %450
  call void @_ZN5ImGui7TreePopEv()
  br label %506

506:                                              ; preds = %505, %444
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  store i32 0, ptr %35, align 4, !tbaa !99
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  store i32 0, ptr %36, align 4, !tbaa !99
  br label %507

507:                                              ; preds = %525, %506
  %508 = load i32, ptr %36, align 4, !tbaa !99
  %509 = load ptr, ptr %3, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.ImGuiContext, ptr %509, i32 0, i32 87
  %511 = getelementptr inbounds %struct.ImVector.11, ptr %510, i32 0, i32 0
  %512 = load i32, ptr %511, align 8, !tbaa !129
  %513 = icmp slt i32 %508, %512
  br i1 %513, label %515, label %514

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

515:                                              ; preds = %507
  %516 = load ptr, ptr %3, align 8, !tbaa !5
  %517 = getelementptr inbounds %struct.ImGuiContext, ptr %516, i32 0, i32 87
  %518 = load i32, ptr %36, align 4, !tbaa !99
  %519 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %517, i32 noundef %518)
  %520 = load ptr, ptr %519, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.ImGuiViewportP, ptr %520, i32 0, i32 4
  %522 = call noundef i32 @_ZNK17ImDrawDataBuilder16GetDrawListCountEv(ptr noundef nonnull align 8 dereferenceable(32) %521)
  %523 = load i32, ptr %35, align 4, !tbaa !99
  %524 = add nsw i32 %523, %522
  store i32 %524, ptr %35, align 4, !tbaa !99
  br label %525

525:                                              ; preds = %515
  %526 = load i32, ptr %36, align 4, !tbaa !99
  %527 = add nsw i32 %526, 1
  store i32 %527, ptr %36, align 4, !tbaa !99
  br label %507, !llvm.loop !130

528:                                              ; preds = %514
  %529 = load i32, ptr %35, align 4, !tbaa !99
  %530 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.316, ptr noundef @.str.317, i32 noundef %529)
  br i1 %530, label %531, label %591

531:                                              ; preds = %528
  %532 = load ptr, ptr %5, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %532, i32 0, i32 4
  %534 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.318, ptr noundef %533)
  %535 = load ptr, ptr %5, align 8, !tbaa !5
  %536 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %535, i32 0, i32 5
  %537 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.319, ptr noundef %536)
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  store i32 0, ptr %37, align 4, !tbaa !99
  br label %538

538:                                              ; preds = %587, %531
  %539 = load i32, ptr %37, align 4, !tbaa !99
  %540 = load ptr, ptr %3, align 8, !tbaa !5
  %541 = getelementptr inbounds %struct.ImGuiContext, ptr %540, i32 0, i32 87
  %542 = getelementptr inbounds %struct.ImVector.11, ptr %541, i32 0, i32 0
  %543 = load i32, ptr %542, align 8, !tbaa !129
  %544 = icmp slt i32 %539, %543
  br i1 %544, label %546, label %545

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

546:                                              ; preds = %538
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #9
  %547 = load ptr, ptr %3, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.ImGuiContext, ptr %547, i32 0, i32 87
  %549 = load i32, ptr %37, align 4, !tbaa !99
  %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
  store ptr %551, 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 !99
  br label %552

552:                                              ; preds = %583, %546
  %553 = load i32, ptr %39, align 4, !tbaa !99
  %554 = icmp slt i32 %553, 2
  br i1 %554, label %556, label %555

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

556:                                              ; preds = %552
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  store i32 0, ptr %40, align 4, !tbaa !99
  br label %557

557:                                              ; preds = %579, %556
  %558 = load i32, ptr %40, align 4, !tbaa !99
  %559 = load ptr, ptr %38, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.ImGuiViewportP, ptr %559, i32 0, i32 4
  %561 = getelementptr inbounds %struct.ImDrawDataBuilder, ptr %560, i32 0, i32 0
  %562 = load i32, ptr %39, align 4, !tbaa !99
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds [2 x %struct.ImVector.41], ptr %561, i64 0, i64 %563
  %565 = getelementptr inbounds %struct.ImVector.41, ptr %564, i32 0, i32 0
  %566 = load i32, ptr %565, align 8, !tbaa !131
  %567 = icmp slt i32 %558, %566
  br i1 %567, label %569, label %568

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

569:                                              ; preds = %557
  %570 = load ptr, ptr %38, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.ImGuiViewportP, ptr %570, i32 0, i32 4
  %572 = getelementptr inbounds %struct.ImDrawDataBuilder, ptr %571, i32 0, i32 0
  %573 = load i32, ptr %39, align 4, !tbaa !99
  %574 = sext i32 %573 to i64
  %575 = getelementptr inbounds [2 x %struct.ImVector.41], ptr %572, i64 0, i64 %574
  %576 = load i32, ptr %40, align 4, !tbaa !99
  %577 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %575, i32 noundef %576)
  %578 = load ptr, ptr %577, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %578, ptr noundef @.str.320)
  br label %579

579:                                              ; preds = %569
  %580 = load i32, ptr %40, align 4, !tbaa !99
  %581 = add nsw i32 %580, 1
  store i32 %581, ptr %40, align 4, !tbaa !99
  br label %557, !llvm.loop !133

582:                                              ; preds = %568
  br label %583

583:                                              ; preds = %582
  %584 = load i32, ptr %39, align 4, !tbaa !99
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr %39, align 4, !tbaa !99
  br label %552, !llvm.loop !134

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

587:                                              ; preds = %586
  %588 = load i32, ptr %37, align 4, !tbaa !99
  %589 = add nsw i32 %588, 1
  store i32 %589, ptr %37, align 4, !tbaa !99
  br label %538, !llvm.loop !135

590:                                              ; preds = %545
  call void @_ZN5ImGui7TreePopEv()
  br label %591

591:                                              ; preds = %590, %528
  %592 = load ptr, ptr %3, align 8, !tbaa !5
  %593 = getelementptr inbounds %struct.ImGuiContext, ptr %592, i32 0, i32 87
  %594 = getelementptr inbounds %struct.ImVector.11, ptr %593, i32 0, i32 0
  %595 = load i32, ptr %594, align 8, !tbaa !129
  %596 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.321, ptr noundef @.str.322, i32 noundef %595)
  br i1 %596, label %597, label %618

597:                                              ; preds = %591
  %598 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %598)
  call void @_ZL25RenderViewportsThumbnailsv()
  %599 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %599)
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  store i32 0, ptr %41, align 4, !tbaa !99
  br label %600

600:                                              ; preds = %614, %597
  %601 = load i32, ptr %41, align 4, !tbaa !99
  %602 = load ptr, ptr %3, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.ImGuiContext, ptr %602, i32 0, i32 87
  %604 = getelementptr inbounds %struct.ImVector.11, ptr %603, i32 0, i32 0
  %605 = load i32, ptr %604, align 8, !tbaa !129
  %606 = icmp slt i32 %601, %605
  br i1 %606, label %608, label %607

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

608:                                              ; preds = %600
  %609 = load ptr, ptr %3, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.ImGuiContext, ptr %609, i32 0, i32 87
  %611 = load i32, ptr %41, align 4, !tbaa !99
  %612 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %610, i32 noundef %611)
  %613 = load ptr, ptr %612, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %613)
  br label %614

614:                                              ; preds = %608
  %615 = load i32, ptr %41, align 4, !tbaa !99
  %616 = add nsw i32 %615, 1
  store i32 %616, ptr %41, align 4, !tbaa !99
  br label %600, !llvm.loop !136

617:                                              ; preds = %607
  call void @_ZN5ImGui7TreePopEv()
  br label %618

618:                                              ; preds = %617, %591
  %619 = load ptr, ptr %3, align 8, !tbaa !5
  %620 = getelementptr inbounds %struct.ImGuiContext, ptr %619, i32 0, i32 83
  %621 = getelementptr inbounds %struct.ImVector.10, ptr %620, i32 0, i32 0
  %622 = load i32, ptr %621, align 8, !tbaa !137
  %623 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.323, ptr noundef @.str.324, i32 noundef %622)
  br i1 %623, label %624, label %683

624:                                              ; preds = %618
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  store i32 0, ptr %42, align 4, !tbaa !99
  br label %625

625:                                              ; preds = %679, %624
  %626 = load i32, ptr %42, align 4, !tbaa !99
  %627 = load ptr, ptr %3, align 8, !tbaa !5
  %628 = getelementptr inbounds %struct.ImGuiContext, ptr %627, i32 0, i32 83
  %629 = getelementptr inbounds %struct.ImVector.10, ptr %628, i32 0, i32 0
  %630 = load i32, ptr %629, align 8, !tbaa !137
  %631 = icmp slt i32 %626, %630
  br i1 %631, label %633, label %632

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

633:                                              ; preds = %625
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  %634 = load ptr, ptr %3, align 8, !tbaa !5
  %635 = getelementptr inbounds %struct.ImGuiContext, ptr %634, i32 0, i32 83
  %636 = load i32, ptr %42, align 4, !tbaa !99
  %637 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %635, i32 noundef %636)
  %638 = getelementptr inbounds %struct.ImGuiPopupData, ptr %637, i32 0, i32 1
  %639 = load ptr, ptr %638, align 8, !tbaa !138
  store ptr %639, ptr %43, align 8, !tbaa !5
  %640 = load ptr, ptr %3, align 8, !tbaa !5
  %641 = getelementptr inbounds %struct.ImGuiContext, ptr %640, i32 0, i32 83
  %642 = load i32, ptr %42, align 4, !tbaa !99
  %643 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %641, i32 noundef %642)
  %644 = getelementptr inbounds %struct.ImGuiPopupData, ptr %643, i32 0, i32 0
  %645 = load i32, ptr %644, align 8, !tbaa !140
  %646 = load ptr, ptr %43, align 8, !tbaa !5
  %647 = icmp ne ptr %646, null
  br i1 %647, label %648, label %652

648:                                              ; preds = %633
  %649 = load ptr, ptr %43, align 8, !tbaa !5
  %650 = getelementptr inbounds %struct.ImGuiWindow, ptr %649, i32 0, i32 0
  %651 = load ptr, ptr %650, align 8, !tbaa !98
  br label %653

652:                                              ; preds = %633
  br label %653

653:                                              ; preds = %652, %648
  %654 = phi ptr [ %651, %648 ], [ @.str.326, %652 ]
  %655 = load ptr, ptr %43, align 8, !tbaa !5
  %656 = icmp ne ptr %655, null
  br i1 %656, label %657, label %663

657:                                              ; preds = %653
  %658 = load ptr, ptr %43, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.ImGuiWindow, ptr %658, i32 0, i32 2
  %660 = load i32, ptr %659, align 4, !tbaa !141
  %661 = and i32 %660, 16777216
  %662 = icmp ne i32 %661, 0
  br label %663

663:                                              ; preds = %657, %653
  %664 = phi i1 [ false, %653 ], [ %662, %657 ]
  %665 = zext i1 %664 to i64
  %666 = select i1 %664, ptr @.str.327, ptr @.str.14
  %667 = load ptr, ptr %43, align 8, !tbaa !5
  %668 = icmp ne ptr %667, null
  br i1 %668, label %669, label %675

669:                                              ; preds = %663
  %670 = load ptr, ptr %43, align 8, !tbaa !5
  %671 = getelementptr inbounds %struct.ImGuiWindow, ptr %670, i32 0, i32 2
  %672 = load i32, ptr %671, align 4, !tbaa !141
  %673 = and i32 %672, 268435456
  %674 = icmp ne i32 %673, 0
  br label %675

675:                                              ; preds = %669, %663
  %676 = phi i1 [ false, %663 ], [ %674, %669 ]
  %677 = zext i1 %676 to i64
  %678 = select i1 %676, ptr @.str.328, ptr @.str.14
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.325, i32 noundef %645, ptr noundef %654, ptr noundef %666, ptr noundef %678)
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  br label %679

679:                                              ; preds = %675
  %680 = load i32, ptr %42, align 4, !tbaa !99
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr %42, align 4, !tbaa !99
  br label %625, !llvm.loop !142

682:                                              ; preds = %632
  call void @_ZN5ImGui7TreePopEv()
  br label %683

683:                                              ; preds = %682, %618
  %684 = load ptr, ptr %3, align 8, !tbaa !5
  %685 = getelementptr inbounds %struct.ImGuiContext, ptr %684, i32 0, i32 173
  %686 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %685)
  %687 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.329, ptr noundef @.str.330, i32 noundef %686)
  br i1 %687, label %688, label %711

688:                                              ; preds = %683
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  store i32 0, ptr %44, align 4, !tbaa !99
  br label %689

689:                                              ; preds = %707, %688
  %690 = load i32, ptr %44, align 4, !tbaa !99
  %691 = load ptr, ptr %3, align 8, !tbaa !5
  %692 = getelementptr inbounds %struct.ImGuiContext, ptr %691, i32 0, i32 173
  %693 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %692)
  %694 = icmp slt i32 %690, %693
  br i1 %694, label %696, label %695

695:                                              ; preds = %689
  store i32 35, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %710

696:                                              ; preds = %689
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  %697 = load ptr, ptr %3, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.ImGuiContext, ptr %697, i32 0, i32 173
  %699 = load i32, ptr %44, align 4, !tbaa !99
  %700 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %698, i32 noundef %699)
  store ptr %700, ptr %45, align 8, !tbaa !5
  %701 = load ptr, ptr %45, align 8, !tbaa !5
  %702 = icmp ne ptr %701, null
  br i1 %702, label %703, label %706

703:                                              ; preds = %696
  %704 = load ptr, ptr %45, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef %704)
  %705 = load ptr, ptr %45, align 8, !tbaa !5
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef %705, ptr noundef @.str.331)
  call void @_ZN5ImGui5PopIDEv()
  br label %706

706:                                              ; preds = %703, %696
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  br label %707

707:                                              ; preds = %706
  %708 = load i32, ptr %44, align 4, !tbaa !99
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr %44, align 4, !tbaa !99
  br label %689, !llvm.loop !143

710:                                              ; preds = %695
  call void @_ZN5ImGui7TreePopEv()
  br label %711

711:                                              ; preds = %710, %683
  %712 = load ptr, ptr %3, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.ImGuiContext, ptr %712, i32 0, i32 169
  %714 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %713)
  %715 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.332, ptr noundef @.str.333, i32 noundef %714)
  br i1 %715, label %716, label %738

716:                                              ; preds = %711
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  store i32 0, ptr %46, align 4, !tbaa !99
  br label %717

717:                                              ; preds = %734, %716
  %718 = load i32, ptr %46, align 4, !tbaa !99
  %719 = load ptr, ptr %3, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.ImGuiContext, ptr %719, i32 0, i32 169
  %721 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %720)
  %722 = icmp slt i32 %718, %721
  br i1 %722, label %724, label %723

723:                                              ; preds = %717
  store i32 38, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %737

724:                                              ; preds = %717
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  %725 = load ptr, ptr %3, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.ImGuiContext, ptr %725, i32 0, i32 169
  %727 = load i32, ptr %46, align 4, !tbaa !99
  %728 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %726, i32 noundef %727)
  store ptr %728, ptr %47, align 8, !tbaa !5
  %729 = load ptr, ptr %47, align 8, !tbaa !5
  %730 = icmp ne ptr %729, null
  br i1 %730, label %731, label %733

731:                                              ; preds = %724
  %732 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef %732)
  br label %733

733:                                              ; preds = %731, %724
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  br label %734

734:                                              ; preds = %733
  %735 = load i32, ptr %46, align 4, !tbaa !99
  %736 = add nsw i32 %735, 1
  store i32 %736, ptr %46, align 4, !tbaa !99
  br label %717, !llvm.loop !144

737:                                              ; preds = %723
  call void @_ZN5ImGui7TreePopEv()
  br label %738

738:                                              ; preds = %737, %711
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  %739 = load ptr, ptr %3, align 8, !tbaa !5
  %740 = getelementptr inbounds %struct.ImGuiContext, ptr %739, i32 0, i32 3
  %741 = getelementptr inbounds %struct.ImGuiIO, ptr %740, i32 0, i32 13
  %742 = load ptr, ptr %741, align 8, !tbaa !145
  store ptr %742, ptr %48, align 8, !tbaa !5
  %743 = load ptr, ptr %48, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.ImFontAtlas, ptr %743, i32 0, i32 15
  %745 = getelementptr inbounds %struct.ImVector.6, ptr %744, i32 0, i32 0
  %746 = load i32, ptr %745, align 8, !tbaa !146
  %747 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.334, ptr noundef @.str.335, i32 noundef %746)
  br i1 %747, label %748, label %750

748:                                              ; preds = %738
  %749 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef %749)
  call void @_ZN5ImGui7TreePopEv()
  br label %750

750:                                              ; preds = %748, %738
  %751 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.336)
  br i1 %751, label %752, label %869

752:                                              ; preds = %750
  %753 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.337)
  br i1 %753, label %754, label %755

754:                                              ; preds = %752
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %755

755:                                              ; preds = %754, %752
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %756 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.338)
  br i1 %756, label %757, label %759

757:                                              ; preds = %755
  %758 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %759

759:                                              ; preds = %757, %755
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %760 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.339)
  br i1 %760, label %761, label %766

761:                                              ; preds = %759
  %762 = load ptr, ptr %3, align 8, !tbaa !5
  %763 = getelementptr inbounds %struct.ImGuiContext, ptr %762, i32 0, i32 3
  %764 = getelementptr inbounds %struct.ImGuiIO, ptr %763, i32 0, i32 5
  %765 = load ptr, ptr %764, align 8, !tbaa !150
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %765)
  br label %766

766:                                              ; preds = %761, %759
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %767 = load ptr, ptr %3, align 8, !tbaa !5
  %768 = getelementptr inbounds %struct.ImGuiContext, ptr %767, i32 0, i32 3
  %769 = getelementptr inbounds %struct.ImGuiIO, ptr %768, i32 0, i32 5
  %770 = load ptr, ptr %769, align 8, !tbaa !150
  %771 = icmp ne ptr %770, null
  br i1 %771, label %772, label %777

772:                                              ; preds = %766
  %773 = load ptr, ptr %3, align 8, !tbaa !5
  %774 = getelementptr inbounds %struct.ImGuiContext, ptr %773, i32 0, i32 3
  %775 = getelementptr inbounds %struct.ImGuiIO, ptr %774, i32 0, i32 5
  %776 = load ptr, ptr %775, align 8, !tbaa !150
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.340, ptr noundef %776)
  br label %778

777:                                              ; preds = %766
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef @.str.341, ptr noundef null)
  br label %778

778:                                              ; preds = %777, %772
  %779 = load ptr, ptr %3, align 8, !tbaa !5
  %780 = getelementptr inbounds %struct.ImGuiContext, ptr %779, i32 0, i32 205
  %781 = load float, ptr %780, align 4, !tbaa !151
  %782 = fpext float %781 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.342, double noundef %782)
  %783 = load ptr, ptr %3, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.ImGuiContext, ptr %783, i32 0, i32 207
  %785 = getelementptr inbounds %struct.ImVector.24, ptr %784, i32 0, i32 0
  %786 = load i32, ptr %785, align 8, !tbaa !152
  %787 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.343, ptr noundef @.str.344, i32 noundef %786)
  br i1 %787, label %788, label %808

788:                                              ; preds = %778
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  store i32 0, ptr %49, align 4, !tbaa !99
  br label %789

789:                                              ; preds = %804, %788
  %790 = load i32, ptr %49, align 4, !tbaa !99
  %791 = load ptr, ptr %3, align 8, !tbaa !5
  %792 = getelementptr inbounds %struct.ImGuiContext, ptr %791, i32 0, i32 207
  %793 = getelementptr inbounds %struct.ImVector.24, ptr %792, i32 0, i32 0
  %794 = load i32, ptr %793, align 8, !tbaa !152
  %795 = icmp slt i32 %790, %794
  br i1 %795, label %797, label %796

796:                                              ; preds = %789
  store i32 41, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %807

797:                                              ; preds = %789
  %798 = load ptr, ptr %3, align 8, !tbaa !5
  %799 = getelementptr inbounds %struct.ImGuiContext, ptr %798, i32 0, i32 207
  %800 = load i32, ptr %49, align 4, !tbaa !99
  %801 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %799, i32 noundef %800)
  %802 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %801, i32 0, i32 0
  %803 = load ptr, ptr %802, align 8, !tbaa !153
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.345, ptr noundef %803)
  br label %804

804:                                              ; preds = %797
  %805 = load i32, ptr %49, align 4, !tbaa !99
  %806 = add nsw i32 %805, 1
  store i32 %806, ptr %49, align 4, !tbaa !99
  br label %789, !llvm.loop !155

807:                                              ; preds = %796
  call void @_ZN5ImGui7TreePopEv()
  br label %808

808:                                              ; preds = %807, %778
  %809 = load ptr, ptr %3, align 8, !tbaa !5
  %810 = getelementptr inbounds %struct.ImGuiContext, ptr %809, i32 0, i32 208
  %811 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %810)
  %812 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.346, ptr noundef @.str.347, i32 noundef %811)
  br i1 %812, label %813, label %829

813:                                              ; preds = %808
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %814 = load ptr, ptr %3, align 8, !tbaa !5
  %815 = getelementptr inbounds %struct.ImGuiContext, ptr %814, i32 0, i32 208
  %816 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %815)
  store ptr %816, ptr %50, align 8, !tbaa !5
  br label %817

817:                                              ; preds = %823, %813
  %818 = load ptr, ptr %50, align 8, !tbaa !5
  %819 = icmp ne ptr %818, null
  br i1 %819, label %821, label %820

820:                                              ; preds = %817
  store i32 44, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  br label %828

821:                                              ; preds = %817
  %822 = load ptr, ptr %50, align 8, !tbaa !5
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef %822)
  br label %823

823:                                              ; preds = %821
  %824 = load ptr, ptr %3, align 8, !tbaa !5
  %825 = getelementptr inbounds %struct.ImGuiContext, ptr %824, i32 0, i32 208
  %826 = load ptr, ptr %50, align 8, !tbaa !5
  %827 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %825, ptr noundef %826)
  store ptr %827, ptr %50, align 8, !tbaa !5
  br label %817, !llvm.loop !156

828:                                              ; preds = %820
  call void @_ZN5ImGui7TreePopEv()
  br label %829

829:                                              ; preds = %828, %808
  %830 = load ptr, ptr %3, align 8, !tbaa !5
  %831 = getelementptr inbounds %struct.ImGuiContext, ptr %830, i32 0, i32 209
  %832 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %831)
  %833 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.348, ptr noundef @.str.349, i32 noundef %832)
  br i1 %833, label %834, label %850

834:                                              ; preds = %829
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  %835 = load ptr, ptr %3, align 8, !tbaa !5
  %836 = getelementptr inbounds %struct.ImGuiContext, ptr %835, i32 0, i32 209
  %837 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %836)
  store ptr %837, ptr %51, align 8, !tbaa !5
  br label %838

838:                                              ; preds = %844, %834
  %839 = load ptr, ptr %51, align 8, !tbaa !5
  %840 = icmp ne ptr %839, null
  br i1 %840, label %842, label %841

841:                                              ; preds = %838
  store i32 47, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  br label %849

842:                                              ; preds = %838
  %843 = load ptr, ptr %51, align 8, !tbaa !5
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef %843)
  br label %844

844:                                              ; preds = %842
  %845 = load ptr, ptr %3, align 8, !tbaa !5
  %846 = getelementptr inbounds %struct.ImGuiContext, ptr %845, i32 0, i32 209
  %847 = load ptr, ptr %51, align 8, !tbaa !5
  %848 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %846, ptr noundef %847)
  store ptr %848, ptr %51, align 8, !tbaa !5
  br label %838, !llvm.loop !157

849:                                              ; preds = %841
  call void @_ZN5ImGui7TreePopEv()
  br label %850

850:                                              ; preds = %849, %829
  %851 = load ptr, ptr %3, align 8, !tbaa !5
  %852 = getelementptr inbounds %struct.ImGuiContext, ptr %851, i32 0, i32 206
  %853 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %852)
  %854 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.350, ptr noundef @.str.351, i32 noundef %853)
  br i1 %854, label %855, label %868

855:                                              ; preds = %850
  %856 = load ptr, ptr %3, align 8, !tbaa !5
  %857 = getelementptr inbounds %struct.ImGuiContext, ptr %856, i32 0, i32 206
  %858 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %857)
  %859 = load ptr, ptr %3, align 8, !tbaa !5
  %860 = getelementptr inbounds %struct.ImGuiContext, ptr %859, i32 0, i32 206
  %861 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %860, i32 0, i32 0
  %862 = getelementptr inbounds %struct.ImVector.22, ptr %861, i32 0, i32 0
  %863 = load i32, ptr %862, align 8, !tbaa !158
  %864 = sext i32 %863 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  %865 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %866 = fmul float %865, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %52, float noundef 0xB810000000000000, float noundef %866)
  %867 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.352, ptr noundef %858, i64 noundef %864, ptr noundef nonnull align 4 dereferenceable(8) %52, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @_ZN5ImGui7TreePopEv()
  br label %868

868:                                              ; preds = %855, %850
  call void @_ZN5ImGui7TreePopEv()
  br label %869

869:                                              ; preds = %868, %750
  %870 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.353)
  br i1 %870, label %871, label %1092

871:                                              ; preds = %869
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.354)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %872 = load ptr, ptr %3, align 8, !tbaa !5
  %873 = getelementptr inbounds %struct.ImGuiContext, ptr %872, i32 0, i32 31
  %874 = load ptr, ptr %873, align 8, !tbaa !159
  %875 = icmp ne ptr %874, null
  br i1 %875, label %876, label %882

876:                                              ; preds = %871
  %877 = load ptr, ptr %3, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.ImGuiContext, ptr %877, i32 0, i32 31
  %879 = load ptr, ptr %878, align 8, !tbaa !159
  %880 = getelementptr inbounds %struct.ImGuiWindow, ptr %879, i32 0, i32 0
  %881 = load ptr, ptr %880, align 8, !tbaa !98
  br label %883

882:                                              ; preds = %871
  br label %883

883:                                              ; preds = %882, %876
  %884 = phi ptr [ %881, %876 ], [ @.str.326, %882 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.355, ptr noundef %884)
  %885 = load ptr, ptr %3, align 8, !tbaa !5
  %886 = getelementptr inbounds %struct.ImGuiContext, ptr %885, i32 0, i32 31
  %887 = load ptr, ptr %886, align 8, !tbaa !159
  %888 = icmp ne ptr %887, null
  br i1 %888, label %889, label %897

889:                                              ; preds = %883
  %890 = load ptr, ptr %3, align 8, !tbaa !5
  %891 = getelementptr inbounds %struct.ImGuiContext, ptr %890, i32 0, i32 31
  %892 = load ptr, ptr %891, align 8, !tbaa !159
  %893 = getelementptr inbounds %struct.ImGuiWindow, ptr %892, i32 0, i32 76
  %894 = load ptr, ptr %893, align 8, !tbaa !160
  %895 = getelementptr inbounds %struct.ImGuiWindow, ptr %894, i32 0, i32 0
  %896 = load ptr, ptr %895, align 8, !tbaa !98
  br label %898

897:                                              ; preds = %883
  br label %898

898:                                              ; preds = %897, %889
  %899 = phi ptr [ %896, %889 ], [ @.str.326, %897 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.356, ptr noundef %899)
  %900 = load ptr, ptr %3, align 8, !tbaa !5
  %901 = getelementptr inbounds %struct.ImGuiContext, ptr %900, i32 0, i32 32
  %902 = load ptr, ptr %901, align 8, !tbaa !161
  %903 = icmp ne ptr %902, null
  br i1 %903, label %904, label %910

904:                                              ; preds = %898
  %905 = load ptr, ptr %3, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.ImGuiContext, ptr %905, i32 0, i32 32
  %907 = load ptr, ptr %906, align 8, !tbaa !161
  %908 = getelementptr inbounds %struct.ImGuiWindow, ptr %907, i32 0, i32 0
  %909 = load ptr, ptr %908, align 8, !tbaa !98
  br label %911

910:                                              ; preds = %898
  br label %911

911:                                              ; preds = %910, %904
  %912 = phi ptr [ %909, %904 ], [ @.str.326, %910 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.357, ptr noundef %912)
  %913 = load ptr, ptr %3, align 8, !tbaa !5
  %914 = getelementptr inbounds %struct.ImGuiContext, ptr %913, i32 0, i32 33
  %915 = load ptr, ptr %914, align 8, !tbaa !162
  %916 = icmp ne ptr %915, null
  br i1 %916, label %917, label %923

917:                                              ; preds = %911
  %918 = load ptr, ptr %3, align 8, !tbaa !5
  %919 = getelementptr inbounds %struct.ImGuiContext, ptr %918, i32 0, i32 33
  %920 = load ptr, ptr %919, align 8, !tbaa !162
  %921 = getelementptr inbounds %struct.ImGuiWindow, ptr %920, i32 0, i32 0
  %922 = load ptr, ptr %921, align 8, !tbaa !98
  br label %924

923:                                              ; preds = %911
  br label %924

924:                                              ; preds = %923, %917
  %925 = phi ptr [ %922, %917 ], [ @.str.326, %923 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.358, ptr noundef %925)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.359)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %926 = load ptr, ptr %3, align 8, !tbaa !5
  %927 = getelementptr inbounds %struct.ImGuiContext, ptr %926, i32 0, i32 46
  %928 = load i32, ptr %927, align 4, !tbaa !163
  %929 = load ptr, ptr %3, align 8, !tbaa !5
  %930 = getelementptr inbounds %struct.ImGuiContext, ptr %929, i32 0, i32 65
  %931 = load i32, ptr %930, align 8, !tbaa !164
  %932 = load ptr, ptr %3, align 8, !tbaa !5
  %933 = getelementptr inbounds %struct.ImGuiContext, ptr %932, i32 0, i32 48
  %934 = load float, ptr %933, align 4, !tbaa !165
  %935 = fpext float %934 to double
  %936 = load ptr, ptr %3, align 8, !tbaa !5
  %937 = getelementptr inbounds %struct.ImGuiContext, ptr %936, i32 0, i32 50
  %938 = load i8, ptr %937, align 1, !tbaa !166, !range !13, !noundef !14
  %939 = trunc i8 %938 to i1
  %940 = zext i1 %939 to i32
  %941 = load ptr, ptr %3, align 8, !tbaa !5
  %942 = getelementptr inbounds %struct.ImGuiContext, ptr %941, i32 0, i32 63
  %943 = load i32, ptr %942, align 8, !tbaa !167
  %944 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %943)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.360, i32 noundef %928, i32 noundef %931, double noundef %935, i32 noundef %940, ptr noundef %944)
  %945 = load ptr, ptr %3, align 8, !tbaa !5
  %946 = getelementptr inbounds %struct.ImGuiContext, ptr %945, i32 0, i32 62
  %947 = load ptr, ptr %946, align 8, !tbaa !168
  %948 = icmp ne ptr %947, null
  br i1 %948, label %949, label %955

949:                                              ; preds = %924
  %950 = load ptr, ptr %3, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.ImGuiContext, ptr %950, i32 0, i32 62
  %952 = load ptr, ptr %951, align 8, !tbaa !168
  %953 = getelementptr inbounds %struct.ImGuiWindow, ptr %952, i32 0, i32 0
  %954 = load ptr, ptr %953, align 8, !tbaa !98
  br label %956

955:                                              ; preds = %924
  br label %956

956:                                              ; preds = %955, %949
  %957 = phi ptr [ %954, %949 ], [ @.str.326, %955 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.361, ptr noundef %957)
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  store i32 0, ptr %53, align 4, !tbaa !99
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  store i32 0, ptr %54, align 4, !tbaa !99
  br label %958

958:                                              ; preds = %971, %956
  %959 = load i32, ptr %54, align 4, !tbaa !99
  %960 = icmp slt i32 %959, 133
  br i1 %960, label %962, label %961

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

962:                                              ; preds = %958
  %963 = load ptr, ptr %3, align 8, !tbaa !5
  %964 = getelementptr inbounds %struct.ImGuiContext, ptr %963, i32 0, i32 59
  %965 = load i32, ptr %54, align 4, !tbaa !99
  %966 = call noundef zeroext i1 @_ZNK10ImBitArrayILi133ELin512EEixEi(ptr noundef nonnull align 4 dereferenceable(20) %964, i32 noundef %965)
  %967 = zext i1 %966 to i64
  %968 = select i1 %966, i32 1, i32 0
  %969 = load i32, ptr %53, align 4, !tbaa !99
  %970 = add nsw i32 %969, %968
  store i32 %970, ptr %53, align 4, !tbaa !99
  br label %971

971:                                              ; preds = %962
  %972 = load i32, ptr %54, align 4, !tbaa !99
  %973 = add nsw i32 %972, 1
  store i32 %973, ptr %54, align 4, !tbaa !99
  br label %958, !llvm.loop !169

974:                                              ; preds = %961
  %975 = load ptr, ptr %3, align 8, !tbaa !5
  %976 = getelementptr inbounds %struct.ImGuiContext, ptr %975, i32 0, i32 55
  %977 = load i8, ptr %976, align 2, !tbaa !170, !range !13, !noundef !14
  %978 = trunc i8 %977 to i1
  %979 = zext i1 %978 to i32
  %980 = load ptr, ptr %3, align 8, !tbaa !5
  %981 = getelementptr inbounds %struct.ImGuiContext, ptr %980, i32 0, i32 57
  %982 = load i32, ptr %981, align 8, !tbaa !171
  %983 = load ptr, ptr %3, align 8, !tbaa !5
  %984 = getelementptr inbounds %struct.ImGuiContext, ptr %983, i32 0, i32 58
  %985 = load i32, ptr %984, align 4, !tbaa !172
  %986 = load i32, ptr %53, align 4, !tbaa !99
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.362, i32 noundef %979, i32 noundef %982, i32 noundef %985, i32 noundef %986)
  %987 = load ptr, ptr %3, align 8, !tbaa !5
  %988 = getelementptr inbounds %struct.ImGuiContext, ptr %987, i32 0, i32 39
  %989 = load i32, ptr %988, align 4, !tbaa !173
  %990 = load ptr, ptr %3, align 8, !tbaa !5
  %991 = getelementptr inbounds %struct.ImGuiContext, ptr %990, i32 0, i32 44
  %992 = load float, ptr %991, align 4, !tbaa !174
  %993 = fpext float %992 to double
  %994 = load ptr, ptr %3, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.ImGuiContext, ptr %994, i32 0, i32 40
  %996 = load i8, ptr %995, align 8, !tbaa !175, !range !13, !noundef !14
  %997 = trunc i8 %996 to i1
  %998 = zext i1 %997 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.363, i32 noundef %989, double noundef %993, i32 noundef %998)
  %999 = load ptr, ptr %3, align 8, !tbaa !5
  %1000 = getelementptr inbounds %struct.ImGuiContext, ptr %999, i32 0, i32 142
  %1001 = load i8, ptr %1000, align 4, !tbaa !176, !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 150
  %1006 = getelementptr inbounds %struct.ImGuiPayload, ptr %1005, i32 0, i32 2
  %1007 = load i32, ptr %1006, align 4, !tbaa !177
  %1008 = load ptr, ptr %3, align 8, !tbaa !5
  %1009 = getelementptr inbounds %struct.ImGuiContext, ptr %1008, i32 0, i32 150
  %1010 = getelementptr inbounds %struct.ImGuiPayload, ptr %1009, i32 0, i32 5
  %1011 = getelementptr inbounds [33 x i8], ptr %1010, i64 0, i64 0
  %1012 = load ptr, ptr %3, align 8, !tbaa !5
  %1013 = getelementptr inbounds %struct.ImGuiContext, ptr %1012, i32 0, i32 150
  %1014 = getelementptr inbounds %struct.ImGuiPayload, ptr %1013, i32 0, i32 1
  %1015 = load i32, ptr %1014, align 8, !tbaa !178
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.364, i32 noundef %1003, i32 noundef %1007, ptr noundef %1011, i32 noundef %1015)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.365)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %1016 = load ptr, ptr %3, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.ImGuiContext, ptr %1016, i32 0, i32 88
  %1018 = load ptr, ptr %1017, align 8, !tbaa !52
  %1019 = icmp ne ptr %1018, null
  br i1 %1019, label %1020, label %1026

1020:                                             ; preds = %974
  %1021 = load ptr, ptr %3, align 8, !tbaa !5
  %1022 = getelementptr inbounds %struct.ImGuiContext, ptr %1021, i32 0, i32 88
  %1023 = load ptr, ptr %1022, align 8, !tbaa !52
  %1024 = getelementptr inbounds %struct.ImGuiWindow, ptr %1023, i32 0, i32 0
  %1025 = load ptr, ptr %1024, align 8, !tbaa !98
  br label %1027

1026:                                             ; preds = %974
  br label %1027

1027:                                             ; preds = %1026, %1020
  %1028 = phi ptr [ %1025, %1020 ], [ @.str.326, %1026 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.366, ptr noundef %1028)
  %1029 = load ptr, ptr %3, align 8, !tbaa !5
  %1030 = getelementptr inbounds %struct.ImGuiContext, ptr %1029, i32 0, i32 89
  %1031 = load i32, ptr %1030, align 8, !tbaa !179
  %1032 = load ptr, ptr %3, align 8, !tbaa !5
  %1033 = getelementptr inbounds %struct.ImGuiContext, ptr %1032, i32 0, i32 102
  %1034 = load i32, ptr %1033, align 4, !tbaa !180
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.367, i32 noundef %1031, i32 noundef %1034)
  %1035 = load ptr, ptr %3, align 8, !tbaa !5
  %1036 = getelementptr inbounds %struct.ImGuiContext, ptr %1035, i32 0, i32 101
  %1037 = load i32, ptr %1036, align 8, !tbaa !181
  %1038 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %1037)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.368, ptr noundef %1038)
  %1039 = load ptr, ptr %3, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct.ImGuiContext, ptr %1039, i32 0, i32 3
  %1041 = getelementptr inbounds %struct.ImGuiIO, ptr %1040, i32 0, i32 41
  %1042 = load i8, ptr %1041, align 1, !tbaa !182, !range !13, !noundef !14
  %1043 = trunc i8 %1042 to i1
  %1044 = zext i1 %1043 to i32
  %1045 = load ptr, ptr %3, align 8, !tbaa !5
  %1046 = getelementptr inbounds %struct.ImGuiContext, ptr %1045, i32 0, i32 3
  %1047 = getelementptr inbounds %struct.ImGuiIO, ptr %1046, i32 0, i32 42
  %1048 = load i8, ptr %1047, align 2, !tbaa !183, !range !13, !noundef !14
  %1049 = trunc i8 %1048 to i1
  %1050 = zext i1 %1049 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.369, i32 noundef %1044, i32 noundef %1050)
  %1051 = load ptr, ptr %3, align 8, !tbaa !5
  %1052 = getelementptr inbounds %struct.ImGuiContext, ptr %1051, i32 0, i32 91
  %1053 = load i32, ptr %1052, align 8, !tbaa !184
  %1054 = load ptr, ptr %3, align 8, !tbaa !5
  %1055 = getelementptr inbounds %struct.ImGuiContext, ptr %1054, i32 0, i32 92
  %1056 = load i32, ptr %1055, align 4, !tbaa !185
  %1057 = load ptr, ptr %3, align 8, !tbaa !5
  %1058 = getelementptr inbounds %struct.ImGuiContext, ptr %1057, i32 0, i32 93
  %1059 = load i32, ptr %1058, align 8, !tbaa !186
  %1060 = load ptr, ptr %3, align 8, !tbaa !5
  %1061 = getelementptr inbounds %struct.ImGuiContext, ptr %1060, i32 0, i32 94
  %1062 = load i32, ptr %1061, align 4, !tbaa !187
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.370, i32 noundef %1053, i32 noundef %1056, i32 noundef %1059, i32 noundef %1062)
  %1063 = load ptr, ptr %3, align 8, !tbaa !5
  %1064 = getelementptr inbounds %struct.ImGuiContext, ptr %1063, i32 0, i32 95
  %1065 = load i32, ptr %1064, align 8, !tbaa !188
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.371, i32 noundef %1065)
  %1066 = load ptr, ptr %3, align 8, !tbaa !5
  %1067 = getelementptr inbounds %struct.ImGuiContext, ptr %1066, i32 0, i32 105
  %1068 = load i8, ptr %1067, align 2, !tbaa !189, !range !13, !noundef !14
  %1069 = trunc i8 %1068 to i1
  %1070 = zext i1 %1069 to i32
  %1071 = load ptr, ptr %3, align 8, !tbaa !5
  %1072 = getelementptr inbounds %struct.ImGuiContext, ptr %1071, i32 0, i32 106
  %1073 = load i8, ptr %1072, align 1, !tbaa !190, !range !13, !noundef !14
  %1074 = trunc i8 %1073 to i1
  %1075 = zext i1 %1074 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.372, i32 noundef %1070, i32 noundef %1075)
  %1076 = load ptr, ptr %3, align 8, !tbaa !5
  %1077 = getelementptr inbounds %struct.ImGuiContext, ptr %1076, i32 0, i32 90
  %1078 = load i32, ptr %1077, align 4, !tbaa !191
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.373, i32 noundef %1078)
  %1079 = load ptr, ptr %3, align 8, !tbaa !5
  %1080 = getelementptr inbounds %struct.ImGuiContext, ptr %1079, i32 0, i32 133
  %1081 = load ptr, ptr %1080, align 8, !tbaa !192
  %1082 = icmp ne ptr %1081, null
  br i1 %1082, label %1083, label %1089

1083:                                             ; preds = %1027
  %1084 = load ptr, ptr %3, align 8, !tbaa !5
  %1085 = getelementptr inbounds %struct.ImGuiContext, ptr %1084, i32 0, i32 133
  %1086 = load ptr, ptr %1085, align 8, !tbaa !192
  %1087 = getelementptr inbounds %struct.ImGuiWindow, ptr %1086, i32 0, i32 0
  %1088 = load ptr, ptr %1087, align 8, !tbaa !98
  br label %1090

1089:                                             ; preds = %1027
  br label %1090

1090:                                             ; preds = %1089, %1083
  %1091 = phi ptr [ %1088, %1083 ], [ @.str.326, %1089 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.374, ptr noundef %1091)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %1092

1092:                                             ; preds = %1090, %869
  %1093 = load ptr, ptr %5, align 8, !tbaa !5
  %1094 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1093, i32 0, i32 1
  %1095 = load i8, ptr %1094, align 1, !tbaa !51, !range !13, !noundef !14
  %1096 = trunc i8 %1095 to i1
  br i1 %1096, label %1102, label %1097

1097:                                             ; preds = %1092
  %1098 = load ptr, ptr %5, align 8, !tbaa !5
  %1099 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1098, i32 0, i32 2
  %1100 = load i8, ptr %1099, align 2, !tbaa !193, !range !13, !noundef !14
  %1101 = trunc i8 %1100 to i1
  br i1 %1101, label %1102, label %1181

1102:                                             ; preds = %1097, %1092
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  store i32 0, ptr %55, align 4, !tbaa !99
  br label %1103

1103:                                             ; preds = %1177, %1102
  %1104 = load i32, ptr %55, align 4, !tbaa !99
  %1105 = load ptr, ptr %3, align 8, !tbaa !5
  %1106 = getelementptr inbounds %struct.ImGuiContext, ptr %1105, i32 0, i32 22
  %1107 = getelementptr inbounds %struct.ImVector.1, ptr %1106, i32 0, i32 0
  %1108 = load i32, ptr %1107, align 8, !tbaa !124
  %1109 = icmp slt i32 %1104, %1108
  br i1 %1109, label %1111, label %1110

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

1111:                                             ; preds = %1103
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %1112 = load ptr, ptr %3, align 8, !tbaa !5
  %1113 = getelementptr inbounds %struct.ImGuiContext, ptr %1112, i32 0, i32 22
  %1114 = load i32, ptr %55, align 4, !tbaa !99
  %1115 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1113, i32 noundef %1114)
  %1116 = load ptr, ptr %1115, align 8, !tbaa !5
  store ptr %1116, ptr %56, align 8, !tbaa !5
  %1117 = load ptr, ptr %56, align 8, !tbaa !5
  %1118 = getelementptr inbounds %struct.ImGuiWindow, ptr %1117, i32 0, i32 24
  %1119 = load i8, ptr %1118, align 1, !tbaa !194, !range !13, !noundef !14
  %1120 = trunc i8 %1119 to i1
  br i1 %1120, label %1122, label %1121

1121:                                             ; preds = %1111
  store i32 55, ptr %6, align 4
  br label %1174

1122:                                             ; preds = %1111
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #9
  %1123 = load ptr, ptr %56, align 8, !tbaa !5
  %1124 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1123)
  store ptr %1124, ptr %57, align 8, !tbaa !5
  %1125 = load ptr, ptr %5, align 8, !tbaa !5
  %1126 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1125, i32 0, i32 1
  %1127 = load i8, ptr %1126, align 1, !tbaa !51, !range !13, !noundef !14
  %1128 = trunc i8 %1127 to i1
  br i1 %1128, label %1129, label %1142

1129:                                             ; preds = %1122
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #9
  %1130 = load ptr, ptr %56, align 8, !tbaa !5
  %1131 = load ptr, ptr %5, align 8, !tbaa !5
  %1132 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1131, i32 0, i32 6
  %1133 = load i32, ptr %1132, align 4, !tbaa !49
  %1134 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %1130, i32 noundef %1133)
  %1135 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %58, i32 0, i32 0
  %1136 = extractvalue { <2 x float>, <2 x float> } %1134, 0
  store <2 x float> %1136, ptr %1135, align 4
  %1137 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %58, i32 0, i32 1
  %1138 = extractvalue { <2 x float>, <2 x float> } %1134, 1
  store <2 x float> %1138, ptr %1137, align 4
  %1139 = load ptr, ptr %57, align 8, !tbaa !5
  %1140 = getelementptr inbounds %struct.ImRect, ptr %58, i32 0, i32 0
  %1141 = getelementptr inbounds %struct.ImRect, ptr %58, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1139, ptr noundef nonnull align 4 dereferenceable(8) %1140, ptr noundef nonnull align 4 dereferenceable(8) %1141, 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 %58) #9
  br label %1142

1142:                                             ; preds = %1129, %1122
  %1143 = load ptr, ptr %5, align 8, !tbaa !5
  %1144 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1143, i32 0, i32 2
  %1145 = load i8, ptr %1144, align 2, !tbaa !193, !range !13, !noundef !14
  %1146 = trunc i8 %1145 to i1
  br i1 %1146, label %1147, label %1173

1147:                                             ; preds = %1142
  %1148 = load ptr, ptr %56, align 8, !tbaa !5
  %1149 = getelementptr inbounds %struct.ImGuiWindow, ptr %1148, i32 0, i32 2
  %1150 = load i32, ptr %1149, align 4, !tbaa !141
  %1151 = and i32 %1150, 16777216
  %1152 = icmp ne i32 %1151, 0
  br i1 %1152, label %1173, label %1153

1153:                                             ; preds = %1147
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #9
  %1154 = getelementptr inbounds [32 x i8], ptr %59, i64 0, i64 0
  %1155 = load ptr, ptr %56, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.ImGuiWindow, ptr %1155, i32 0, i32 37
  %1157 = load i16, ptr %1156, align 2, !tbaa !195
  %1158 = sext i16 %1157 to i32
  %1159 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %1154, i64 noundef 32, ptr noundef @.str.375, i32 noundef %1158)
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  %1160 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  store float %1160, ptr %60, align 4, !tbaa !196
  %1161 = load ptr, ptr %57, align 8, !tbaa !5
  %1162 = load ptr, ptr %56, align 8, !tbaa !5
  %1163 = getelementptr inbounds %struct.ImGuiWindow, ptr %1162, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #9
  %1164 = load ptr, ptr %56, align 8, !tbaa !5
  %1165 = getelementptr inbounds %struct.ImGuiWindow, ptr %1164, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #9
  %1166 = load float, ptr %60, align 4, !tbaa !196
  %1167 = load float, ptr %60, align 4, !tbaa !196
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %62, float noundef %1166, float noundef %1167)
  %1168 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1165, ptr noundef nonnull align 4 dereferenceable(8) %62)
  store <2 x float> %1168, ptr %61, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1161, ptr noundef nonnull align 4 dereferenceable(8) %1163, ptr noundef nonnull align 4 dereferenceable(8) %61, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  %1169 = load ptr, ptr %57, align 8, !tbaa !5
  %1170 = load ptr, ptr %56, align 8, !tbaa !5
  %1171 = getelementptr inbounds %struct.ImGuiWindow, ptr %1170, i32 0, i32 3
  %1172 = getelementptr inbounds [32 x i8], ptr %59, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1169, ptr noundef nonnull align 4 dereferenceable(8) %1171, i32 noundef -1, ptr noundef %1172, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  br label %1173

1173:                                             ; preds = %1153, %1147, %1142
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  store i32 0, ptr %6, align 4
  br label %1174

1174:                                             ; preds = %1173, %1121
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  %1175 = load i32, ptr %6, align 4
  switch i32 %1175, label %1289 [
    i32 0, label %1176
    i32 55, label %1177
  ]

1176:                                             ; preds = %1174
  br label %1177

1177:                                             ; preds = %1176, %1174
  %1178 = load i32, ptr %55, align 4, !tbaa !99
  %1179 = add nsw i32 %1178, 1
  store i32 %1179, ptr %55, align 4, !tbaa !99
  br label %1103, !llvm.loop !197

1180:                                             ; preds = %1110
  br label %1181

1181:                                             ; preds = %1180, %1097
  %1182 = load ptr, ptr %5, align 8, !tbaa !5
  %1183 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1182, i32 0, i32 3
  %1184 = load i8, ptr %1183, align 1, !tbaa !106, !range !13, !noundef !14
  %1185 = trunc i8 %1184 to i1
  br i1 %1185, label %1186, label %1285

1186:                                             ; preds = %1181
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  store i32 0, ptr %63, align 4, !tbaa !99
  br label %1187

1187:                                             ; preds = %1281, %1186
  %1188 = load i32, ptr %63, align 4, !tbaa !99
  %1189 = load ptr, ptr %3, align 8, !tbaa !5
  %1190 = getelementptr inbounds %struct.ImGuiContext, ptr %1189, i32 0, i32 169
  %1191 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1190)
  %1192 = icmp slt i32 %1188, %1191
  br i1 %1192, label %1194, label %1193

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

1194:                                             ; preds = %1187
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  %1195 = load ptr, ptr %3, align 8, !tbaa !5
  %1196 = getelementptr inbounds %struct.ImGuiContext, ptr %1195, i32 0, i32 169
  %1197 = load i32, ptr %63, align 4, !tbaa !99
  %1198 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1196, i32 noundef %1197)
  store ptr %1198, ptr %64, align 8, !tbaa !5
  %1199 = load ptr, ptr %64, align 8, !tbaa !5
  %1200 = icmp eq ptr %1199, null
  br i1 %1200, label %1210, label %1201

1201:                                             ; preds = %1194
  %1202 = load ptr, ptr %64, align 8, !tbaa !5
  %1203 = getelementptr inbounds %struct.ImGuiTable, ptr %1202, i32 0, i32 13
  %1204 = load i32, ptr %1203, align 8, !tbaa !107
  %1205 = load ptr, ptr %3, align 8, !tbaa !5
  %1206 = getelementptr inbounds %struct.ImGuiContext, ptr %1205, i32 0, i32 12
  %1207 = load i32, ptr %1206, align 8, !tbaa !116
  %1208 = sub nsw i32 %1207, 1
  %1209 = icmp slt i32 %1204, %1208
  br i1 %1209, label %1210, label %1211

1210:                                             ; preds = %1201, %1194
  store i32 58, ptr %6, align 4
  br label %1278

1211:                                             ; preds = %1201
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %1212 = load ptr, ptr %64, align 8, !tbaa !5
  %1213 = getelementptr inbounds %struct.ImGuiTable, ptr %1212, i32 0, i32 55
  %1214 = load ptr, ptr %1213, align 8, !tbaa !117
  %1215 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1214)
  store ptr %1215, ptr %65, align 8, !tbaa !5
  %1216 = load ptr, ptr %5, align 8, !tbaa !5
  %1217 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1216, i32 0, i32 7
  %1218 = load i32, ptr %1217, align 4, !tbaa !50
  %1219 = icmp sge i32 %1218, 6
  br i1 %1219, label %1220, label %1264

1220:                                             ; preds = %1211
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  store i32 0, ptr %66, align 4, !tbaa !99
  br label %1221

1221:                                             ; preds = %1260, %1220
  %1222 = load i32, ptr %66, align 4, !tbaa !99
  %1223 = load ptr, ptr %64, align 8, !tbaa !5
  %1224 = getelementptr inbounds %struct.ImGuiTable, ptr %1223, i32 0, i32 14
  %1225 = load i32, ptr %1224, align 4, !tbaa !120
  %1226 = icmp slt i32 %1222, %1225
  br i1 %1226, label %1228, label %1227

1227:                                             ; preds = %1221
  store i32 59, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %1263

1228:                                             ; preds = %1221
  call void @llvm.lifetime.start.p0(i64 16, ptr %67) #9
  %1229 = load ptr, ptr %64, align 8, !tbaa !5
  %1230 = load ptr, ptr %5, align 8, !tbaa !5
  %1231 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1230, i32 0, i32 7
  %1232 = load i32, ptr %1231, align 4, !tbaa !50
  %1233 = load i32, ptr %66, align 4, !tbaa !99
  %1234 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1229, i32 noundef %1232, i32 noundef %1233)
  %1235 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %67, i32 0, i32 0
  %1236 = extractvalue { <2 x float>, <2 x float> } %1234, 0
  store <2 x float> %1236, ptr %1235, align 4
  %1237 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %67, i32 0, i32 1
  %1238 = extractvalue { <2 x float>, <2 x float> } %1234, 1
  store <2 x float> %1238, ptr %1237, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %1239 = load ptr, ptr %64, align 8, !tbaa !5
  %1240 = getelementptr inbounds %struct.ImGuiTable, ptr %1239, i32 0, i32 66
  %1241 = load i8, ptr %1240, align 4, !tbaa !198
  %1242 = sext i8 %1241 to i32
  %1243 = load i32, ptr %66, align 4, !tbaa !99
  %1244 = icmp eq i32 %1242, %1243
  %1245 = zext i1 %1244 to i64
  %1246 = select i1 %1244, i32 -8323073, i32 -8388353
  store i32 %1246, ptr %68, align 4, !tbaa !99
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %1247 = load ptr, ptr %64, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.ImGuiTable, ptr %1247, i32 0, i32 66
  %1249 = load i8, ptr %1248, align 4, !tbaa !198
  %1250 = sext i8 %1249 to i32
  %1251 = load i32, ptr %66, align 4, !tbaa !99
  %1252 = icmp eq i32 %1250, %1251
  %1253 = zext i1 %1252 to i64
  %1254 = select i1 %1252, float 3.000000e+00, float 1.000000e+00
  store float %1254, ptr %69, align 4, !tbaa !196
  %1255 = load ptr, ptr %65, align 8, !tbaa !5
  %1256 = getelementptr inbounds %struct.ImRect, ptr %67, i32 0, i32 0
  %1257 = getelementptr inbounds %struct.ImRect, ptr %67, i32 0, i32 1
  %1258 = load i32, ptr %68, align 4, !tbaa !99
  %1259 = load float, ptr %69, align 4, !tbaa !196
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1255, ptr noundef nonnull align 4 dereferenceable(8) %1256, ptr noundef nonnull align 4 dereferenceable(8) %1257, i32 noundef %1258, float noundef 0.000000e+00, i32 noundef 0, float noundef %1259)
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #9
  br label %1260

1260:                                             ; preds = %1228
  %1261 = load i32, ptr %66, align 4, !tbaa !99
  %1262 = add nsw i32 %1261, 1
  store i32 %1262, ptr %66, align 4, !tbaa !99
  br label %1221, !llvm.loop !199

1263:                                             ; preds = %1227
  br label %1277

1264:                                             ; preds = %1211
  call void @llvm.lifetime.start.p0(i64 16, ptr %70) #9
  %1265 = load ptr, ptr %64, align 8, !tbaa !5
  %1266 = load ptr, ptr %5, align 8, !tbaa !5
  %1267 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1266, i32 0, i32 7
  %1268 = load i32, ptr %1267, align 4, !tbaa !50
  %1269 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1265, i32 noundef %1268, i32 noundef -1)
  %1270 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %70, i32 0, i32 0
  %1271 = extractvalue { <2 x float>, <2 x float> } %1269, 0
  store <2 x float> %1271, ptr %1270, align 4
  %1272 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %70, i32 0, i32 1
  %1273 = extractvalue { <2 x float>, <2 x float> } %1269, 1
  store <2 x float> %1273, ptr %1272, align 4
  %1274 = load ptr, ptr %65, align 8, !tbaa !5
  %1275 = getelementptr inbounds %struct.ImRect, ptr %70, i32 0, i32 0
  %1276 = getelementptr inbounds %struct.ImRect, ptr %70, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1274, ptr noundef nonnull align 4 dereferenceable(8) %1275, ptr noundef nonnull align 4 dereferenceable(8) %1276, 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 %70) #9
  br label %1277

1277:                                             ; preds = %1264, %1263
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  store i32 0, ptr %6, align 4
  br label %1278

1278:                                             ; preds = %1277, %1210
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  %1279 = load i32, ptr %6, align 4
  switch i32 %1279, label %1289 [
    i32 0, label %1280
    i32 58, label %1281
  ]

1280:                                             ; preds = %1278
  br label %1281

1281:                                             ; preds = %1280, %1278
  %1282 = load i32, ptr %63, align 4, !tbaa !99
  %1283 = add nsw i32 %1282, 1
  store i32 %1283, ptr %63, align 4, !tbaa !99
  br label %1187, !llvm.loop !200

1284:                                             ; preds = %1193
  br label %1285

1285:                                             ; preds = %1284, %1181
  call void @_ZN5ImGui3EndEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #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 %1286

1286:                                             ; preds = %1285, %92
  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
  %1287 = load i32, ptr %6, align 4
  switch i32 %1287, label %1289 [
    i32 0, label %1288
    i32 1, label %1288
  ]

1288:                                             ; preds = %1286, %1286
  ret void

1289:                                             ; preds = %1286, %1278, %1174, %433
  unreachable
}

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

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

declare void @_ZN5ImGui9SeparatorEv() #5

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL17MetricsHelpMarkerPKc(ptr noundef) #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) #6 align 2

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

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

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

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

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

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

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

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

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

; 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

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

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

declare void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef, 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) #6

; 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) #6 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 uwtable
declare dso_local noundef zeroext i1 @_ZNK10ImBitArrayILi133ELin512EEixEi(ptr noundef nonnull align 4 dereferenceable(20), i32 noundef) #6 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 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #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, !12, i64 8, !12, i64 12}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !19, i64 154}
!16 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !12, i64 8, !12, i64 12, !17, i64 16, !17, i64 24, !17, i64 32, !17, i64 40, !17, i64 48, !17, i64 56, !17, i64 64, !18, i64 72, !18, i64 76, !12, i64 80, !12, i64 84, !12, i64 88, !17, i64 92, !17, i64 100, !17, i64 108, !17, i64 116, !17, i64 124, !17, i64 132, !11, i64 140, !11, i64 141, !11, i64 142, !11, i64 143, !11, i64 144, !11, i64 145, !11, i64 146, !11, i64 147, !11, i64 148, !11, i64 149, !11, i64 150, !11, i64 151, !11, i64 152, !7, i64 153, !19, i64 154, !19, i64 156, !19, i64 158, !19, i64 160, !12, i64 164, !7, i64 168, !7, i64 169, !7, i64 170, !11, i64 171, !12, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !7, i64 179, !12, i64 180, !12, i64 181, !12, i64 182, !17, i64 184, !17, i64 192, !20, i64 200, !21, i64 216, !27, i64 448, !27, i64 464, !27, i64 480, !27, i64 496, !27, i64 512, !27, i64 528, !27, i64 544, !28, i64 560, !28, i64 564, !12, i64 568, !18, i64 572, !18, i64 576, !29, i64 584, !31, i64 600, !18, i64 616, !12, i64 620, !6, i64 624, !32, i64 632, !6, i64 832, !6, i64 840, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !7, i64 888, !7, i64 896, !12, i64 928, !12, i64 932, !11, i64 936}
!17 = !{!"_ZTS6ImVec2", !18, i64 0, !18, i64 4}
!18 = !{!"float", !7, i64 0}
!19 = !{!"short", !7, i64 0}
!20 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!21 = !{!"_ZTS19ImGuiWindowTempData", !17, i64 0, !17, i64 8, !17, i64 16, !17, i64 24, !17, i64 32, !17, i64 40, !17, i64 48, !18, i64 56, !18, i64 60, !22, i64 64, !22, i64 68, !22, i64 72, !17, i64 76, !23, i64 84, !19, i64 88, !19, i64 90, !12, i64 92, !11, i64 96, !11, i64 97, !11, i64 98, !17, i64 100, !24, i64 108, !12, i64 136, !12, i64 140, !25, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !18, i64 188, !18, i64 192, !26, i64 200, !26, i64 216}
!22 = !{!"_ZTS6ImVec1", !18, i64 0}
!23 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!24 = !{!"_ZTS16ImGuiMenuColumns", !12, i64 0, !12, i64 4, !19, i64 8, !19, i64 10, !19, i64 12, !19, i64 14, !19, i64 16, !7, i64 18}
!25 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!26 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!27 = !{!"_ZTS6ImRect", !17, i64 0, !17, i64 8}
!28 = !{!"_ZTS8ImVec2ih", !19, i64 0, !19, i64 2}
!29 = !{!"_ZTS12ImGuiStorage", !30, i64 0}
!30 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !12, i64 0, !12, i64 4, !6, i64 8}
!31 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!32 = !{!"_ZTS10ImDrawList", !33, i64 0, !34, i64 16, !35, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !36, i64 88, !37, i64 104, !38, i64 120, !39, i64 136, !41, i64 168, !18, i64 192}
!33 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!34 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorIPvE", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS15ImDrawCmdHeader", !40, i64 0, !6, i64 16, !12, i64 24}
!40 = !{!"_ZTS6ImVec4", !18, i64 0, !18, i64 4, !18, i64 8, !18, i64 12}
!41 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !42, i64 8}
!42 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!43 = !{!44, !18, i64 208}
!44 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !17, i64 8, !18, i64 16, !18, i64 20, !6, i64 24, !6, i64 32, !18, i64 40, !18, i64 44, !18, i64 48, !18, i64 52, !18, i64 56, !6, i64 64, !6, i64 72, !18, i64 80, !11, i64 84, !6, i64 88, !17, i64 96, !11, i64 104, !11, i64 105, !11, i64 106, !11, i64 107, !11, i64 108, !11, i64 109, !11, i64 110, !18, i64 112, !6, 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, !11, i64 200, !11, i64 201, !11, i64 202, !11, i64 203, !11, i64 204, !11, i64 205, !11, i64 206, !18, i64 208, !12, i64 212, !12, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !17, i64 232, !7, i64 240, !7, i64 2820, !17, i64 3332, !7, i64 3340, !18, i64 3348, !18, i64 3352, !11, i64 3356, !11, i64 3357, !11, i64 3358, !11, i64 3359, !7, i64 3360, !12, i64 3440, !12, i64 3444, !7, i64 3448, !11, i64 13768, !17, i64 13772, !7, i64 13780, !7, i64 13824, !7, i64 13864, !7, i64 13869, !7, i64 13874, !7, i64 13884, !7, i64 13894, !7, i64 13899, !7, i64 13904, !7, i64 13912, !7, i64 13932, !7, i64 13952, !7, i64 13972, !7, i64 14052, !18, i64 14132, !11, i64 14136, !7, i64 14137, !11, i64 14138, !19, i64 14140, !34, i64 14144}
!45 = !{!44, !12, i64 212}
!46 = !{!44, !12, i64 216}
!47 = !{!44, !12, i64 220}
!48 = !{!44, !12, i64 228}
!49 = !{!10, !12, i64 8}
!50 = !{!10, !12, i64 12}
!51 = !{!10, !11, i64 1}
!52 = !{!53, !6, i64 16440}
!53 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !44, i64 8, !54, i64 14168, !54, i64 14184, !55, i64 14200, !6, i64 15248, !18, i64 15256, !18, i64 15260, !56, i64 15264, !57, i64 15776, !12, i64 15784, !12, i64 15788, !12, i64 15792, !11, i64 15796, !11, i64 15797, !11, i64 15798, !11, i64 15799, !11, i64 15800, !6, i64 15808, !25, i64 15816, !25, i64 15832, !25, i64 15848, !58, i64 15864, !29, i64 15880, !12, i64 15896, !17, i64 15900, !6, i64 15912, !6, i64 15920, !6, i64 15928, !6, i64 15936, !6, i64 15944, !17, i64 15952, !18, i64 15960, !12, i64 15964, !12, i64 15968, !12, i64 15972, !11, i64 15976, !11, i64 15977, !11, i64 15978, !11, i64 15979, !18, i64 15980, !18, i64 15984, !12, i64 15988, !12, i64 15992, !18, i64 15996, !11, i64 16000, !11, i64 16001, !11, i64 16002, !11, i64 16003, !11, i64 16004, !11, i64 16005, !11, i64 16006, !12, i64 16008, !12, i64 16012, !59, i64 16016, !17, i64 16036, !6, i64 16048, !60, i64 16056, !12, i64 16060, !12, i64 16064, !11, i64 16068, !11, i64 16069, !6, i64 16072, !12, i64 16080, !18, i64 16084, !12, i64 16088, !61, i64 16092, !62, i64 16112, !63, i64 16176, !64, i64 16288, !65, i64 16304, !66, i64 16320, !20, i64 16336, !67, i64 16352, !68, i64 16368, !69, i64 16384, !69, i64 16400, !12, i64 16416, !70, i64 16424, !6, i64 16440, !12, i64 16448, !12, i64 16452, !12, i64 16456, !12, i64 16460, !12, i64 16464, !12, i64 16468, !12, i64 16472, !12, i64 16476, !12, i64 16480, !12, i64 16484, !12, i64 16488, !12, i64 16492, !60, i64 16496, !23, i64 16500, !11, i64 16504, !11, i64 16505, !11, i64 16506, !11, i64 16507, !11, i64 16508, !11, i64 16509, !11, i64 16510, !12, i64 16512, !27, i64 16516, !11, i64 16532, !11, i64 16533, !11, i64 16534, !12, i64 16536, !12, i64 16540, !12, i64 16544, !12, i64 16548, !12, i64 16552, !12, i64 16556, !27, i64 16560, !27, i64 16576, !12, i64 16592, !12, i64 16596, !12, i64 16600, !71, i64 16608, !71, i64 16656, !71, i64 16704, !71, i64 16752, !6, i64 16800, !6, i64 16808, !6, i64 16816, !18, i64 16824, !18, i64 16828, !11, i64 16832, !18, i64 16836, !12, i64 16840, !11, i64 16844, !11, i64 16845, !11, i64 16846, !12, i64 16848, !12, i64 16852, !12, i64 16856, !72, i64 16864, !27, i64 16928, !12, i64 16944, !12, i64 16948, !18, i64 16952, !12, i64 16956, !12, i64 16960, !12, i64 16964, !12, i64 16968, !73, i64 16976, !7, i64 16992, !12, i64 17008, !74, i64 17016, !6, i64 17032, !12, i64 17040, !75, i64 17048, !76, i64 17064, !26, i64 17104, !42, i64 17120, !6, i64 17136, !78, i64 17144, !80, i64 17184, !81, i64 17200, !17, i64 17216, !82, i64 17224, !86, i64 20944, !12, i64 21056, !12, i64 21060, !18, i64 21064, !18, i64 21068, !12, i64 21072, !40, i64 21076, !88, i64 21092, !18, i64 21140, !11, i64 21144, !11, i64 21145, !18, i64 21148, !18, i64 21152, !18, i64 21156, !18, i64 21160, !19, i64 21164, !19, i64 21166, !18, i64 21168, !83, i64 21176, !20, i64 21192, !89, i64 21208, !89, i64 21224, !7, i64 21240, !11, i64 21241, !18, i64 21244, !90, i64 21248, !91, i64 21264, !92, i64 21280, !93, i64 21296, !94, i64 21312, !12, i64 21328, !11, i64 21332, !95, i64 21336, !6, i64 21344, !90, i64 21352, !6, i64 21368, !6, i64 21376, !18, i64 21384, !11, i64 21388, !12, i64 21392, !12, i64 21396, !12, i64 21400, !11, i64 21404, !12, i64 21408, !10, i64 21412, !96, i64 21432, !7, i64 21464, !12, i64 21944, !12, i64 21948, !18, i64 21952, !12, i64 21956, !12, i64 21960, !12, i64 21964, !7, i64 21968}
!54 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!55 = !{!"_ZTS10ImGuiStyle", !18, i64 0, !18, i64 4, !17, i64 8, !18, i64 16, !18, i64 20, !17, i64 24, !17, i64 32, !12, i64 40, !18, i64 44, !18, i64 48, !18, i64 52, !18, i64 56, !17, i64 60, !18, i64 68, !18, i64 72, !17, i64 76, !17, i64 84, !17, i64 92, !17, i64 100, !18, i64 108, !18, i64 112, !18, i64 116, !18, i64 120, !18, i64 124, !18, i64 128, !18, i64 132, !18, i64 136, !18, i64 140, !18, i64 144, !12, i64 148, !17, i64 152, !17, i64 160, !17, i64 168, !17, i64 176, !18, i64 184, !11, i64 188, !11, i64 189, !11, i64 190, !18, i64 192, !18, i64 196, !7, i64 200}
!56 = !{!"_ZTS20ImDrawListSharedData", !17, i64 0, !6, i64 8, !18, i64 16, !18, i64 20, !18, i64 24, !40, i64 28, !12, i64 44, !7, i64 48, !18, i64 432, !7, i64 436, !6, i64 504}
!57 = !{!"double", !7, i64 0}
!58 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!59 = !{!"_ZTS10ImBitArrayILi133ELin512EE", !7, i64 0}
!60 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!61 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !18, i64 4, !12, i64 8, !12, i64 12, !11, i64 16}
!62 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !27, i64 12, !27, i64 28, !27, i64 44}
!63 = !{!"_ZTS19ImGuiNextWindowData", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !17, i64 16, !17, i64 24, !17, i64 32, !17, i64 40, !17, i64 48, !11, i64 56, !27, i64 60, !6, i64 80, !6, i64 88, !18, i64 96, !17, i64 100}
!64 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !27, i64 16, !12, i64 32, !18, i64 36, !18, i64 40, !18, i64 44}
!72 = !{!"_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}
!73 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS6ImPoolI10ImGuiTableE", !77, i64 0, !29, i64 16, !12, i64 32, !12, i64 36}
!77 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !79, i64 0, !29, i64 16, !12, i64 32, !12, i64 36}
!79 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!80 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!81 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS19ImGuiInputTextState", !12, i64 0, !12, i64 4, !12, i64 8, !34, i64 16, !83, i64 32, !83, i64 48, !11, i64 64, !12, i64 68, !18, i64 72, !84, i64 76, !18, i64 3704, !11, i64 3708, !11, i64 3709, !11, i64 3710, !12, i64 3712}
!83 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_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, !18, i64 28, !85, i64 32}
!85 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !19, i64 3582, !19, i64 3584, !12, i64 3588, !12, i64 3592}
!86 = !{!"_ZTS6ImFont", !26, i64 0, !18, i64 16, !18, i64 20, !34, i64 24, !87, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !19, i64 80, !19, i64 82, !19, i64 84, !19, i64 86, !11, i64 88, !18, i64 92, !18, i64 96, !18, i64 100, !12, i64 104, !7, i64 108}
!87 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!88 = !{!"_ZTS21ImGuiComboPreviewData", !27, i64 0, !17, i64 16, !17, i64 24, !17, i64 32, !18, i64 40, !12, i64 44}
!89 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !17, i64 4, !18, i64 12}
!90 = !{!"_ZTS15ImGuiTextBuffer", !83, i64 0}
!91 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!92 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !83, i64 0}
!93 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !83, i64 0}
!94 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!95 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!96 = !{!"_ZTS14ImGuiStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !97, i64 16}
!97 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!98 = !{!16, !6, i64 0}
!99 = !{!12, !12, i64 0}
!100 = !{!27, !18, i64 0}
!101 = !{!27, !18, i64 4}
!102 = !{!27, !18, i64 8}
!103 = !{!27, !18, i64 12}
!104 = distinct !{!104, !105}
!105 = !{!"llvm.loop.mustprogress"}
!106 = !{!10, !11, i64 3}
!107 = !{!108, !12, i64 112}
!108 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !109, i64 24, !110, i64 40, !111, i64 56, !112, i64 72, !112, i64 80, !112, i64 88, !112, i64 96, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !12, i64 124, !19, i64 128, !19, i64 130, !18, i64 132, !18, i64 136, !18, i64 140, !18, i64 144, !18, i64 148, !12, i64 152, !12, i64 154, !12, i64 156, !7, i64 160, !12, i64 168, !12, i64 172, !18, i64 176, !18, i64 180, !18, i64 184, !18, i64 188, !18, i64 192, !18, i64 196, !18, i64 200, !18, i64 204, !18, i64 208, !18, i64 212, !18, i64 216, !18, i64 220, !18, i64 224, !18, i64 228, !18, i64 232, !18, i64 236, !18, i64 240, !27, i64 244, !27, i64 260, !27, i64 276, !27, i64 292, !27, i64 308, !27, i64 324, !27, i64 340, !27, i64 356, !27, i64 372, !6, i64 392, !6, i64 400, !90, i64 408, !6, i64 424, !113, i64 432, !114, i64 448, !115, i64 464, !7, i64 480, !7, i64 481, !7, i64 482, !7, i64 483, !7, i64 484, !7, i64 485, !7, i64 486, !7, i64 487, !7, i64 488, !7, i64 489, !7, i64 490, !7, i64 491, !7, i64 492, !7, i64 493, !7, i64 494, !7, i64 495, !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, !11, i64 505, !11, i64 506, !11, i64 507, !11, i64 508, !11, i64 509, !11, i64 510, !11, i64 511, !11, i64 512, !11, i64 513, !11, i64 514, !11, i64 515, !11, i64 516, !11, i64 517, !11, i64 518, !11, i64 519}
!109 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!110 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!111 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!112 = !{!"long long", !7, i64 0}
!113 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !19, i64 4, !19, i64 6, !12, i64 8}
!114 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!115 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!116 = !{!53, !12, i64 15784}
!117 = !{!108, !6, i64 392}
!118 = !{!108, !6, i64 400}
!119 = !{!108, !12, i64 0}
!120 = !{!108, !12, i64 116}
!121 = distinct !{!121, !105}
!122 = distinct !{!122, !105}
!123 = distinct !{!123, !105}
!124 = !{!53, !12, i64 15816}
!125 = !{!16, !12, i64 568}
!126 = distinct !{!126, !105}
!127 = !{!25, !6, i64 8}
!128 = !{!25, !12, i64 0}
!129 = !{!53, !12, i64 16424}
!130 = distinct !{!130, !105}
!131 = !{!132, !12, i64 0}
!132 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!133 = distinct !{!133, !105}
!134 = distinct !{!134, !105}
!135 = distinct !{!135, !105}
!136 = distinct !{!136, !105}
!137 = !{!53, !12, i64 16384}
!138 = !{!139, !6, i64 8}
!139 = !{!"_ZTS14ImGuiPopupData", !12, i64 0, !6, i64 8, !6, i64 16, !12, i64 24, !12, i64 28, !17, i64 32, !17, i64 40}
!140 = !{!139, !12, i64 0}
!141 = !{!16, !12, i64 12}
!142 = distinct !{!142, !105}
!143 = distinct !{!143, !105}
!144 = distinct !{!144, !105}
!145 = !{!53, !6, i64 80}
!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, !17, i64 56, !17, i64 64, !66, 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 = !{!53, !6, i64 32}
!151 = !{!53, !18, i64 21244}
!152 = !{!53, !12, i64 21264}
!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, !105}
!156 = distinct !{!156, !105}
!157 = distinct !{!157, !105}
!158 = !{!53, !12, i64 21248}
!159 = !{!53, !6, i64 15920}
!160 = !{!16, !6, i64 848}
!161 = !{!53, !6, i64 15928}
!162 = !{!53, !6, i64 15936}
!163 = !{!53, !12, i64 15988}
!164 = !{!53, !12, i64 16064}
!165 = !{!53, !18, i64 15996}
!166 = !{!53, !11, i64 16001}
!167 = !{!53, !60, i64 16056}
!168 = !{!53, !6, i64 16048}
!169 = distinct !{!169, !105}
!170 = !{!53, !11, i64 16006}
!171 = !{!53, !12, i64 16008}
!172 = !{!53, !12, i64 16012}
!173 = !{!53, !12, i64 15972}
!174 = !{!53, !18, i64 15980}
!175 = !{!53, !11, i64 15976}
!176 = !{!53, !11, i64 16844}
!177 = !{!53, !12, i64 16876}
!178 = !{!53, !12, i64 16872}
!179 = !{!53, !12, i64 16448}
!180 = !{!53, !23, i64 16500}
!181 = !{!53, !60, i64 16496}
!182 = !{!53, !11, i64 213}
!183 = !{!53, !11, i64 214}
!184 = !{!53, !12, i64 16456}
!185 = !{!53, !12, i64 16460}
!186 = !{!53, !12, i64 16464}
!187 = !{!53, !12, i64 16468}
!188 = !{!53, !12, i64 16472}
!189 = !{!53, !11, i64 16506}
!190 = !{!53, !11, i64 16507}
!191 = !{!53, !12, i64 16452}
!192 = !{!53, !6, i64 16800}
!193 = !{!10, !11, i64 2}
!194 = !{!16, !11, i64 143}
!195 = !{!16, !19, i64 158}
!196 = !{!18, !18, i64 0}
!197 = distinct !{!197, !105}
!198 = !{!108, !7, i64 484}
!199 = distinct !{!199, !105}
!200 = distinct !{!200, !105}


; 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.14 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.279 = 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.297 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.300 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.301 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.309 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.313 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.333 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.334 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [3 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 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: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef) local_unnamed_addr #6

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

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

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

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

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

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

; 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(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #7 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 #6

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

declare void @_ZN5ImGui7TreePopEv() local_unnamed_addr #5

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

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

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

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

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

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

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

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

; 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
define dso_local void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef %0) local_unnamed_addr #8 {
  %2 = alloca [8 x ptr], align 16
  %3 = alloca [13 x ptr], align 16
  %4 = alloca %struct.ImRect, align 8
  %5 = alloca %struct.ImVec2, align 8
  %6 = alloca %struct.ImVec2, align 4
  %7 = alloca %struct.ImVec2, align 8
  %8 = alloca %struct.ImVec2, align 4
  %9 = alloca [128 x i8], align 16
  %10 = alloca %struct.ImRect, align 8
  %11 = alloca %struct.ImVec2, align 4
  %12 = alloca %struct.ImVec2, align 8
  %13 = alloca %struct.ImVec2, align 4
  %14 = alloca %struct.ImVec2, align 8
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca %struct.ImRect, align 8
  %17 = alloca %struct.ImVec2, align 4
  %18 = alloca %struct.ImVec2, align 8
  %19 = alloca %struct.ImVec2, align 4
  %20 = alloca %struct.ImVec2, align 8
  %21 = alloca %struct.ImVec2, align 4
  %22 = alloca %struct.ImVec2, align 4
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImRect, align 8
  %25 = alloca [32 x i8], align 16
  %26 = alloca %struct.ImVec2, align 8
  %27 = alloca %struct.ImVec2, align 4
  %28 = alloca %struct.ImRect, align 8
  %29 = alloca %struct.ImRect, align 8
  %30 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %31 = getelementptr inbounds i8, ptr %30, i64 21412
  %32 = load i8, ptr %31, align 4, !tbaa !9, !range !13, !noundef !14
  %33 = trunc nuw i8 %32 to i1
  br i1 %33, label %34, label %35

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

35:                                               ; preds = %34, %1
  %36 = tail call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.275, ptr noundef %0, i32 noundef 0)
  br i1 %36, label %37, label %42

37:                                               ; preds = %35
  %38 = tail call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %39 = getelementptr inbounds i8, ptr %38, i64 154
  %40 = load i16, ptr %39, align 2, !tbaa !15
  %41 = icmp sgt i16 %40, 1
  br i1 %41, label %42, label %43

42:                                               ; preds = %37, %35
  tail call void @_ZN5ImGui3EndEv()
  br label %762

43:                                               ; preds = %37
  %44 = tail call noundef ptr @_ZN5ImGui10GetVersionEv()
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.276, ptr noundef %44)
  %45 = getelementptr inbounds i8, ptr %30, i64 216
  %46 = load float, ptr %45, align 8, !tbaa !43
  %47 = fdiv float 1.000000e+03, %46
  %48 = fpext float %47 to double
  %49 = fpext float %46 to double
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.277, double noundef %48, double noundef %49)
  %50 = getelementptr inbounds i8, ptr %30, i64 220
  %51 = load i32, ptr %50, align 4, !tbaa !45
  %52 = getelementptr inbounds i8, ptr %30, i64 224
  %53 = load i32, ptr %52, align 8, !tbaa !46
  %54 = sdiv i32 %53, 3
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.278, i32 noundef %51, i32 noundef %53, i32 noundef %54)
  %55 = getelementptr inbounds i8, ptr %30, i64 228
  %56 = load i32, ptr %55, align 4, !tbaa !47
  %57 = getelementptr inbounds i8, ptr %30, i64 236
  %58 = load i32, ptr %57, align 4, !tbaa !48
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.279, i32 noundef %56, i32 noundef %58)
  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)
  %59 = getelementptr inbounds i8, ptr %30, i64 21420
  %60 = load i32, ptr %59, align 4, !tbaa !49
  %61 = icmp slt i32 %60, 0
  br i1 %61, label %62, label %63

62:                                               ; preds = %43
  store i32 4, ptr %59, align 4, !tbaa !49
  br label %63

63:                                               ; preds = %62, %43
  %64 = getelementptr inbounds i8, ptr %30, i64 21424
  %65 = load i32, ptr %64, align 4, !tbaa !50
  %66 = icmp slt i32 %65, 0
  br i1 %66, label %67, label %68

67:                                               ; preds = %63
  store i32 2, ptr %64, align 4, !tbaa !50
  br label %68

68:                                               ; preds = %67, %63
  %69 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.297)
  br i1 %69, label %70, label %349

70:                                               ; preds = %68
  %71 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.298, ptr noundef nonnull %31)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  tail call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.299)
  %72 = getelementptr inbounds i8, ptr %30, i64 21414
  %73 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.300, ptr noundef nonnull %72)
  %74 = getelementptr inbounds i8, ptr %30, i64 21413
  %75 = tail call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.301, ptr noundef nonnull %74)
  tail call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %76 = tail call noundef float @_ZN5ImGui11GetFontSizeEv()
  %77 = fmul float %76, 1.200000e+01
  tail call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %77)
  %78 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.302, ptr noundef nonnull %59, ptr noundef nonnull %2, i32 noundef 8, i32 noundef 8)
  %79 = load i8, ptr %74, align 1, !tbaa !51, !range !13, !noundef !14
  %80 = zext i1 %78 to i8
  %81 = or i8 %79, %80
  %.not = icmp eq i8 %81, 0
  store i8 %81, ptr %74, align 1, !tbaa !51
  br i1 %.not, label %231, label %82

82:                                               ; preds = %70
  %83 = getelementptr inbounds i8, ptr %30, i64 16440
  %84 = load ptr, ptr %83, align 8, !tbaa !52
  %.not307 = icmp eq ptr %84, null
  br i1 %.not307, label %231, label %85

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

231:                                              ; preds = %85, %82, %70
  %232 = getelementptr inbounds i8, ptr %30, i64 21415
  %233 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.305, ptr noundef nonnull %232)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %234 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %235 = fmul float %234, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %235)
  %236 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.306, ptr noundef nonnull %64, ptr noundef nonnull %3, i32 noundef 13, i32 noundef 13)
  %237 = load i8, ptr %232, align 1, !tbaa !99, !range !13, !noundef !14
  %238 = zext i1 %236 to i8
  %239 = or i8 %237, %238
  %.not308 = icmp eq i8 %239, 0
  store i8 %239, ptr %232, align 1, !tbaa !99
  br i1 %.not308, label %.loopexit348, label %240

240:                                              ; preds = %231
  %241 = getelementptr inbounds i8, ptr %30, i64 16440
  %242 = load ptr, ptr %241, align 8, !tbaa !52
  %.not309 = icmp eq ptr %242, null
  br i1 %.not309, label %.loopexit348, label %.preheader347

.preheader347:                                    ; preds = %240
  %243 = getelementptr inbounds i8, ptr %30, i64 17064
  %244 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %243)
  %245 = icmp sgt i32 %244, 0
  br i1 %245, label %.lr.ph354, label %.loopexit348

.lr.ph354:                                        ; preds = %.preheader347
  %246 = getelementptr inbounds i8, ptr %30, i64 15784
  %247 = getelementptr inbounds i8, ptr %16, i64 8
  %248 = getelementptr inbounds i8, ptr %10, i64 8
  br label %249

249:                                              ; preds = %.lr.ph354, %342
  %.0272353 = phi i32 [ 0, %.lr.ph354 ], [ %343, %342 ]
  %250 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %243, i32 noundef %.0272353)
  %251 = icmp eq ptr %250, null
  br i1 %251, label %342, label %252

252:                                              ; preds = %249
  %253 = getelementptr inbounds i8, ptr %250, i64 112
  %254 = load i32, ptr %253, align 8, !tbaa !100
  %255 = load i32, ptr %246, align 8, !tbaa !109
  %256 = add nsw i32 %255, -1
  %257 = icmp slt i32 %254, %256
  br i1 %257, label %342, label %258

258:                                              ; preds = %252
  %259 = getelementptr inbounds i8, ptr %250, i64 392
  %260 = load ptr, ptr %259, align 8, !tbaa !110
  %261 = load ptr, ptr %241, align 8, !tbaa !52
  %.not325 = icmp eq ptr %260, %261
  br i1 %.not325, label %265, label %262

262:                                              ; preds = %258
  %263 = getelementptr inbounds i8, ptr %250, i64 400
  %264 = load ptr, ptr %263, align 8, !tbaa !111
  %.not326 = icmp eq ptr %264, %261
  br i1 %.not326, label %265, label %342

265:                                              ; preds = %262, %258
  %266 = load i32, ptr %250, align 8, !tbaa !112
  %267 = getelementptr inbounds i8, ptr %250, i64 116
  %268 = load i32, ptr %267, align 4, !tbaa !113
  %269 = load ptr, ptr %260, align 8, !tbaa !98
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.307, i32 noundef %266, i32 noundef %268, ptr noundef %269)
  %270 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %270, label %271, label %277

271:                                              ; preds = %265
  %272 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  %273 = getelementptr inbounds i8, ptr %250, i64 244
  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)
  %274 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %273, ptr noundef nonnull align 4 dereferenceable(8) %6)
  store <2 x float> %274, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %275 = getelementptr inbounds i8, ptr %250, i64 252
  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)
  %276 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %275, ptr noundef nonnull align 4 dereferenceable(8) %8)
  store <2 x float> %276, ptr %7, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %272, 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 %277

277:                                              ; preds = %271, %265
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %9) #9
  br label %279

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

279:                                              ; preds = %277, %.loopexit346
  %indvars.iv = phi i64 [ 0, %277 ], [ %indvars.iv.next, %.loopexit346 ]
  %280 = icmp ugt i64 %indvars.iv, 5
  br i1 %280, label %281, label %315

281:                                              ; preds = %279
  %282 = trunc nuw nsw i64 %indvars.iv to i32
  switch i32 %282, label %.loopexit346 [
    i32 8, label %283
    i32 6, label %283
  ]

283:                                              ; preds = %281, %281
  %284 = load i32, ptr %267, align 4, !tbaa !113
  %285 = icmp sgt i32 %284, 0
  br i1 %285, label %.lr.ph, label %.loopexit346

.lr.ph:                                           ; preds = %283
  %286 = getelementptr inbounds [13 x ptr], ptr %3, i64 0, i64 %indvars.iv
  br label %287

287:                                              ; preds = %.lr.ph, %311
  %.0275350 = phi i32 [ 0, %.lr.ph ], [ %312, %311 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #9
  %288 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %250, i32 noundef %282, i32 noundef %.0275350)
  %289 = extractvalue { <2 x float>, <2 x float> } %288, 0
  store <2 x float> %289, ptr %10, align 8
  %290 = extractvalue { <2 x float>, <2 x float> } %288, 1
  store <2 x float> %290, ptr %248, align 8
  %291 = extractelement <2 x float> %289, i64 0
  %292 = fpext float %291 to double
  %293 = extractelement <2 x float> %289, i64 1
  %294 = fpext float %293 to double
  %295 = extractelement <2 x float> %290, i64 0
  %296 = fpext float %295 to double
  %297 = extractelement <2 x float> %290, i64 1
  %298 = fpext float %297 to double
  %299 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %300 = fpext float %299 to double
  %301 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %302 = fpext float %301 to double
  %303 = load ptr, ptr %286, align 8, !tbaa !5
  %304 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %9, i64 noundef 128, ptr noundef nonnull @.str.308, double noundef %292, double noundef %294, double noundef %296, double noundef %298, double noundef %300, double noundef %302, i32 noundef %.0275350, ptr noundef %303)
  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)
  %305 = 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
  %306 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %306, label %307, label %311

307:                                              ; preds = %287
  %308 = 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)
  %309 = 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> %309, 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)
  %310 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %248, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %310, ptr %14, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %308, 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 %311

311:                                              ; preds = %307, %287
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #9
  %312 = add nuw nsw i32 %.0275350, 1
  %313 = load i32, ptr %267, align 4, !tbaa !113
  %314 = icmp slt i32 %312, %313
  br i1 %314, label %287, label %.loopexit346, !llvm.loop !114

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

337:                                              ; preds = %315
  %338 = 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)
  %339 = 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> %339, 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)
  %340 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %247, ptr noundef nonnull align 4 dereferenceable(8) %21)
  store <2 x float> %340, ptr %20, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %338, 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 %341

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

.loopexit346:                                     ; preds = %311, %283, %281, %341
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 13
  br i1 %exitcond.not, label %278, label %279, !llvm.loop !116

342:                                              ; preds = %249, %252, %262, %278
  %343 = add nuw nsw i32 %.0272353, 1
  %344 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %243)
  %345 = icmp slt i32 %343, %344
  br i1 %345, label %249, label %.loopexit348, !llvm.loop !117

.loopexit348:                                     ; preds = %342, %.preheader347, %240, %231
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %22, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %346 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.309, ptr noundef nonnull align 4 dereferenceable(8) %22)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  br i1 %346, label %347, label %348

347:                                              ; preds = %.loopexit348
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %348

348:                                              ; preds = %347, %.loopexit348
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.310)
  call void @_ZN5ImGui7TreePopEv()
  br label %349

349:                                              ; preds = %348, %68
  %350 = getelementptr inbounds i8, ptr %30, i64 15816
  %351 = load i32, ptr %350, align 8, !tbaa !118
  %352 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.311, ptr noundef nonnull @.str.312, i32 noundef %351)
  br i1 %352, label %353, label %381

353:                                              ; preds = %349
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %350, ptr noundef nonnull @.str.313)
  %354 = getelementptr inbounds i8, ptr %30, i64 15832
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %354, ptr noundef nonnull @.str.314)
  %355 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.315)
  br i1 %355, label %356, label %380

356:                                              ; preds = %353
  %357 = getelementptr inbounds i8, ptr %30, i64 15848
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %357, i32 noundef 0)
  %358 = load i32, ptr %350, align 8, !tbaa !118
  %359 = icmp sgt i32 %358, 0
  br i1 %359, label %.lr.ph356, label %._crit_edge

.lr.ph356:                                        ; preds = %356
  %360 = getelementptr inbounds i8, ptr %30, i64 15784
  br label %367

._crit_edge:                                      ; preds = %376, %356
  %361 = getelementptr inbounds i8, ptr %30, i64 15856
  %362 = load ptr, ptr %361, align 8, !tbaa !119
  %363 = load i32, ptr %357, align 8, !tbaa !120
  %364 = sext i32 %363 to i64
  call void @_ZL7ImQsortPvmmPFiPKvS1_E(ptr noundef %362, i64 noundef %364, i64 noundef 8, ptr noundef nonnull @_ZZN5ImGui17ShowMetricsWindowEPbEN4Func26WindowComparerByBeginOrderEPKvS3_)
  %365 = load ptr, ptr %361, align 8, !tbaa !119
  %366 = load i32, ptr %357, align 8, !tbaa !120
  call void @_ZN5ImGui38DebugNodeWindowsListByBeginStackParentEPP11ImGuiWindowiS1_(ptr noundef %365, i32 noundef %366, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %380

367:                                              ; preds = %.lr.ph356, %376
  %.0276355 = phi i32 [ 0, %.lr.ph356 ], [ %377, %376 ]
  %368 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %350, i32 noundef %.0276355)
  %369 = load ptr, ptr %368, align 8, !tbaa !5
  %370 = getelementptr inbounds i8, ptr %369, i64 568
  %371 = load i32, ptr %370, align 8, !tbaa !121
  %372 = add nsw i32 %371, 1
  %373 = load i32, ptr %360, align 8, !tbaa !109
  %.not324 = icmp slt i32 %372, %373
  br i1 %.not324, label %376, label %374

374:                                              ; preds = %367
  %375 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %350, i32 noundef %.0276355)
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %357, ptr noundef nonnull align 8 dereferenceable(8) %375)
  br label %376

376:                                              ; preds = %367, %374
  %377 = add nuw nsw i32 %.0276355, 1
  %378 = load i32, ptr %350, align 8, !tbaa !118
  %379 = icmp slt i32 %377, %378
  br i1 %379, label %367, label %._crit_edge, !llvm.loop !122

380:                                              ; preds = %._crit_edge, %353
  call void @_ZN5ImGui7TreePopEv()
  br label %381

381:                                              ; preds = %380, %349
  %382 = getelementptr inbounds i8, ptr %30, i64 16424
  %383 = load i32, ptr %382, align 8, !tbaa !123
  %384 = icmp sgt i32 %383, 0
  br i1 %384, label %.lr.ph360, label %._crit_edge361

._crit_edge361:                                   ; preds = %.lr.ph360, %381
  %.0277.lcssa = phi i32 [ 0, %381 ], [ %390, %.lr.ph360 ]
  %385 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.316, ptr noundef nonnull @.str.317, i32 noundef %.0277.lcssa)
  br i1 %385, label %394, label %422

.lr.ph360:                                        ; preds = %381, %.lr.ph360
  %.0277358 = phi i32 [ %390, %.lr.ph360 ], [ 0, %381 ]
  %.0284357 = phi i32 [ %391, %.lr.ph360 ], [ 0, %381 ]
  %386 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %382, i32 noundef %.0284357)
  %387 = load ptr, ptr %386, align 8, !tbaa !5
  %388 = getelementptr inbounds i8, ptr %387, i64 120
  %389 = call noundef i32 @_ZNK17ImDrawDataBuilder16GetDrawListCountEv(ptr noundef nonnull align 8 dereferenceable(32) %388)
  %390 = add nsw i32 %389, %.0277358
  %391 = add nuw nsw i32 %.0284357, 1
  %392 = load i32, ptr %382, align 8, !tbaa !123
  %393 = icmp slt i32 %391, %392
  br i1 %393, label %.lr.ph360, label %._crit_edge361, !llvm.loop !124

394:                                              ; preds = %._crit_edge361
  %395 = getelementptr inbounds i8, ptr %30, i64 21416
  %396 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.318, ptr noundef nonnull %395)
  %397 = getelementptr inbounds i8, ptr %30, i64 21417
  %398 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.319, ptr noundef nonnull %397)
  %399 = load i32, ptr %382, align 8, !tbaa !123
  %400 = icmp sgt i32 %399, 0
  br i1 %400, label %.lr.ph369, label %._crit_edge370

._crit_edge370:                                   ; preds = %._crit_edge365.1, %394
  call void @_ZN5ImGui7TreePopEv()
  br label %422

.lr.ph369:                                        ; preds = %394, %._crit_edge365.1
  %.0285367 = phi i32 [ %414, %._crit_edge365.1 ], [ 0, %394 ]
  %401 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %382, i32 noundef %.0285367)
  %402 = load ptr, ptr %401, align 8, !tbaa !5
  %403 = getelementptr inbounds i8, ptr %402, i64 120
  %404 = load i32, ptr %403, align 8, !tbaa !125
  %405 = icmp sgt i32 %404, 0
  br i1 %405, label %.lr.ph364, label %._crit_edge365

._crit_edge365:                                   ; preds = %.lr.ph364, %.lr.ph369
  %406 = getelementptr inbounds i8, ptr %402, i64 136
  %407 = load i32, ptr %406, align 8, !tbaa !125
  %408 = icmp sgt i32 %407, 0
  br i1 %408, label %.lr.ph364.1, label %._crit_edge365.1

.lr.ph364.1:                                      ; preds = %._crit_edge365, %.lr.ph364.1
  %.0289363.1 = phi i32 [ %411, %.lr.ph364.1 ], [ 0, %._crit_edge365 ]
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %406, i32 noundef %.0289363.1)
  %410 = load ptr, ptr %409, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %410, ptr noundef nonnull @.str.320)
  %411 = add nuw nsw i32 %.0289363.1, 1
  %412 = load i32, ptr %406, align 8, !tbaa !125
  %413 = icmp slt i32 %411, %412
  br i1 %413, label %.lr.ph364.1, label %._crit_edge365.1, !llvm.loop !127

._crit_edge365.1:                                 ; preds = %.lr.ph364.1, %._crit_edge365
  %414 = add nuw nsw i32 %.0285367, 1
  %415 = load i32, ptr %382, align 8, !tbaa !123
  %416 = icmp slt i32 %414, %415
  br i1 %416, label %.lr.ph369, label %._crit_edge370, !llvm.loop !128

.lr.ph364:                                        ; preds = %.lr.ph369, %.lr.ph364
  %.0289363 = phi i32 [ %419, %.lr.ph364 ], [ 0, %.lr.ph369 ]
  %417 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %403, i32 noundef %.0289363)
  %418 = load ptr, ptr %417, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %418, ptr noundef nonnull @.str.320)
  %419 = add nuw nsw i32 %.0289363, 1
  %420 = load i32, ptr %403, align 8, !tbaa !125
  %421 = icmp slt i32 %419, %420
  br i1 %421, label %.lr.ph364, label %._crit_edge365, !llvm.loop !127

422:                                              ; preds = %._crit_edge370, %._crit_edge361
  %423 = load i32, ptr %382, align 8, !tbaa !123
  %424 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.321, ptr noundef nonnull @.str.322, i32 noundef %423)
  br i1 %424, label %425, label %435

425:                                              ; preds = %422
  %426 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %426)
  call void @_ZL25RenderViewportsThumbnailsv()
  %427 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %427)
  %428 = load i32, ptr %382, align 8, !tbaa !123
  %429 = icmp sgt i32 %428, 0
  br i1 %429, label %.lr.ph373, label %._crit_edge374

._crit_edge374:                                   ; preds = %.lr.ph373, %425
  call void @_ZN5ImGui7TreePopEv()
  br label %435

.lr.ph373:                                        ; preds = %425, %.lr.ph373
  %.0291371 = phi i32 [ %432, %.lr.ph373 ], [ 0, %425 ]
  %430 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %382, i32 noundef %.0291371)
  %431 = load ptr, ptr %430, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %431)
  %432 = add nuw nsw i32 %.0291371, 1
  %433 = load i32, ptr %382, align 8, !tbaa !123
  %434 = icmp slt i32 %432, %433
  br i1 %434, label %.lr.ph373, label %._crit_edge374, !llvm.loop !129

435:                                              ; preds = %._crit_edge374, %422
  %436 = getelementptr inbounds i8, ptr %30, i64 16384
  %437 = load i32, ptr %436, align 8, !tbaa !130
  %438 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.323, ptr noundef nonnull @.str.324, i32 noundef %437)
  br i1 %438, label %.preheader344, label %458

.preheader344:                                    ; preds = %435
  %439 = load i32, ptr %436, align 8, !tbaa !130
  %440 = icmp sgt i32 %439, 0
  br i1 %440, label %.lr.ph376, label %._crit_edge377

._crit_edge377:                                   ; preds = %.thread331, %.preheader344
  call void @_ZN5ImGui7TreePopEv()
  br label %458

.lr.ph376:                                        ; preds = %.preheader344, %.thread331
  %.0290375 = phi i32 [ %455, %.thread331 ], [ 0, %.preheader344 ]
  %441 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %436, i32 noundef %.0290375)
  %442 = getelementptr inbounds i8, ptr %441, i64 8
  %443 = load ptr, ptr %442, align 8, !tbaa !131
  %444 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %436, i32 noundef %.0290375)
  %445 = load i32, ptr %444, align 8, !tbaa !133
  %.not323 = icmp eq ptr %443, null
  br i1 %.not323, label %.thread331, label %446

446:                                              ; preds = %.lr.ph376
  %447 = load ptr, ptr %443, align 8, !tbaa !98
  %448 = getelementptr inbounds i8, ptr %443, i64 12
  %449 = load i32, ptr %448, align 4, !tbaa !134
  %.fr336 = freeze i32 %449
  %450 = and i32 %.fr336, 16777216
  %.not335 = icmp eq i32 %450, 0
  %spec.select = select i1 %.not335, ptr @.str.14, ptr @.str.327
  %451 = and i32 %.fr336, 268435456
  %.not337 = icmp eq i32 %451, 0
  %spec.select333 = select i1 %.not337, ptr @.str.14, ptr @.str.328
  br label %.thread331

.thread331:                                       ; preds = %446, %.lr.ph376
  %452 = phi ptr [ @.str.326, %.lr.ph376 ], [ %447, %446 ]
  %453 = phi ptr [ @.str.14, %.lr.ph376 ], [ %spec.select, %446 ]
  %454 = phi ptr [ @.str.14, %.lr.ph376 ], [ %spec.select333, %446 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.325, i32 noundef %445, ptr noundef %452, ptr noundef nonnull %453, ptr noundef nonnull %454)
  %455 = add nuw nsw i32 %.0290375, 1
  %456 = load i32, ptr %436, align 8, !tbaa !130
  %457 = icmp slt i32 %455, %456
  br i1 %457, label %.lr.ph376, label %._crit_edge377, !llvm.loop !135

458:                                              ; preds = %._crit_edge377, %435
  %459 = getelementptr inbounds i8, ptr %30, i64 17144
  %460 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %459)
  %461 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.329, ptr noundef nonnull @.str.330, i32 noundef %460)
  br i1 %461, label %.preheader343, label %470

.preheader343:                                    ; preds = %458
  %462 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %459)
  %463 = icmp sgt i32 %462, 0
  br i1 %463, label %.lr.ph379, label %._crit_edge380

._crit_edge380:                                   ; preds = %466, %.preheader343
  call void @_ZN5ImGui7TreePopEv()
  br label %470

.lr.ph379:                                        ; preds = %.preheader343, %466
  %.0288378 = phi i32 [ %467, %466 ], [ 0, %.preheader343 ]
  %464 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %459, i32 noundef %.0288378)
  %.not322 = icmp eq ptr %464, null
  br i1 %.not322, label %466, label %465

465:                                              ; preds = %.lr.ph379
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef nonnull %464)
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef nonnull %464, ptr noundef nonnull @.str.331)
  call void @_ZN5ImGui5PopIDEv()
  br label %466

466:                                              ; preds = %465, %.lr.ph379
  %467 = add nuw nsw i32 %.0288378, 1
  %468 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %459)
  %469 = icmp slt i32 %467, %468
  br i1 %469, label %.lr.ph379, label %._crit_edge380, !llvm.loop !136

470:                                              ; preds = %._crit_edge380, %458
  %471 = getelementptr inbounds i8, ptr %30, i64 17064
  %472 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %471)
  %473 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.332, ptr noundef nonnull @.str.333, i32 noundef %472)
  br i1 %473, label %.preheader342, label %482

.preheader342:                                    ; preds = %470
  %474 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %471)
  %475 = icmp sgt i32 %474, 0
  br i1 %475, label %.lr.ph382, label %._crit_edge383

._crit_edge383:                                   ; preds = %478, %.preheader342
  call void @_ZN5ImGui7TreePopEv()
  br label %482

.lr.ph382:                                        ; preds = %.preheader342, %478
  %.0286381 = phi i32 [ %479, %478 ], [ 0, %.preheader342 ]
  %476 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %471, i32 noundef %.0286381)
  %.not321 = icmp eq ptr %476, null
  br i1 %.not321, label %478, label %477

477:                                              ; preds = %.lr.ph382
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef nonnull %476)
  br label %478

478:                                              ; preds = %477, %.lr.ph382
  %479 = add nuw nsw i32 %.0286381, 1
  %480 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %471)
  %481 = icmp slt i32 %479, %480
  br i1 %481, label %.lr.ph382, label %._crit_edge383, !llvm.loop !137

482:                                              ; preds = %._crit_edge383, %470
  %483 = getelementptr inbounds i8, ptr %30, i64 80
  %484 = load ptr, ptr %483, align 8, !tbaa !138
  %485 = getelementptr inbounds i8, ptr %484, i64 72
  %486 = load i32, ptr %485, align 8, !tbaa !139
  %487 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.334, ptr noundef nonnull @.str.335, i32 noundef %486)
  br i1 %487, label %488, label %489

488:                                              ; preds = %482
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef nonnull %484)
  call void @_ZN5ImGui7TreePopEv()
  br label %489

489:                                              ; preds = %488, %482
  %490 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.336)
  br i1 %490, label %491, label %548

491:                                              ; preds = %489
  %492 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.337)
  br i1 %492, label %493, label %494

493:                                              ; preds = %491
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %494

494:                                              ; preds = %493, %491
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %495 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.338)
  br i1 %495, label %496, label %498

496:                                              ; preds = %494
  %497 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %498

498:                                              ; preds = %496, %494
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %499 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.339)
  br i1 %499, label %500, label %503

500:                                              ; preds = %498
  %501 = getelementptr inbounds i8, ptr %30, i64 32
  %502 = load ptr, ptr %501, align 8, !tbaa !143
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %502)
  br label %503

503:                                              ; preds = %500, %498
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %504 = getelementptr inbounds i8, ptr %30, i64 32
  %505 = load ptr, ptr %504, align 8, !tbaa !143
  %.not310 = icmp eq ptr %505, null
  br i1 %.not310, label %507, label %506

506:                                              ; preds = %503
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.340, ptr noundef nonnull %505)
  br label %508

507:                                              ; preds = %503
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef nonnull @.str.341, ptr noundef null)
  br label %508

508:                                              ; preds = %507, %506
  %509 = getelementptr inbounds i8, ptr %30, i64 21244
  %510 = load float, ptr %509, align 4, !tbaa !144
  %511 = fpext float %510 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.342, double noundef %511)
  %512 = getelementptr inbounds i8, ptr %30, i64 21264
  %513 = load i32, ptr %512, align 8, !tbaa !145
  %514 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.343, ptr noundef nonnull @.str.344, i32 noundef %513)
  br i1 %514, label %.preheader341, label %522

.preheader341:                                    ; preds = %508
  %515 = load i32, ptr %512, align 8, !tbaa !145
  %516 = icmp sgt i32 %515, 0
  br i1 %516, label %.lr.ph385, label %._crit_edge386

._crit_edge386:                                   ; preds = %.lr.ph385, %.preheader341
  call void @_ZN5ImGui7TreePopEv()
  br label %522

.lr.ph385:                                        ; preds = %.preheader341, %.lr.ph385
  %.0283384 = phi i32 [ %519, %.lr.ph385 ], [ 0, %.preheader341 ]
  %517 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %512, i32 noundef %.0283384)
  %518 = load ptr, ptr %517, align 8, !tbaa !146
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.345, ptr noundef %518)
  %519 = add nuw nsw i32 %.0283384, 1
  %520 = load i32, ptr %512, align 8, !tbaa !145
  %521 = icmp slt i32 %519, %520
  br i1 %521, label %.lr.ph385, label %._crit_edge386, !llvm.loop !148

522:                                              ; preds = %._crit_edge386, %508
  %523 = getelementptr inbounds i8, ptr %30, i64 21280
  %524 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %523)
  %525 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.346, ptr noundef nonnull @.str.347, i32 noundef %524)
  br i1 %525, label %526, label %529

526:                                              ; preds = %522
  %527 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %523)
  %.not311387 = icmp eq ptr %527, null
  br i1 %.not311387, label %._crit_edge391, label %.lr.ph390

._crit_edge391:                                   ; preds = %.lr.ph390, %526
  call void @_ZN5ImGui7TreePopEv()
  br label %529

.lr.ph390:                                        ; preds = %526, %.lr.ph390
  %.0282388 = phi ptr [ %528, %.lr.ph390 ], [ %527, %526 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0282388)
  %528 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %523, ptr noundef nonnull %.0282388)
  %.not311 = icmp eq ptr %528, null
  br i1 %.not311, label %._crit_edge391, label %.lr.ph390, !llvm.loop !149

529:                                              ; preds = %._crit_edge391, %522
  %530 = getelementptr inbounds i8, ptr %30, i64 21296
  %531 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %530)
  %532 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.348, ptr noundef nonnull @.str.349, i32 noundef %531)
  br i1 %532, label %533, label %536

533:                                              ; preds = %529
  %534 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %530)
  %.not312392 = icmp eq ptr %534, null
  br i1 %.not312392, label %._crit_edge396, label %.lr.ph395

._crit_edge396:                                   ; preds = %.lr.ph395, %533
  call void @_ZN5ImGui7TreePopEv()
  br label %536

.lr.ph395:                                        ; preds = %533, %.lr.ph395
  %.0281393 = phi ptr [ %535, %.lr.ph395 ], [ %534, %533 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0281393)
  %535 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %530, ptr noundef nonnull %.0281393)
  %.not312 = icmp eq ptr %535, null
  br i1 %.not312, label %._crit_edge396, label %.lr.ph395, !llvm.loop !150

536:                                              ; preds = %._crit_edge396, %529
  %537 = getelementptr inbounds i8, ptr %30, i64 21248
  %538 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %537)
  %539 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.350, ptr noundef nonnull @.str.351, i32 noundef %538)
  br i1 %539, label %540, label %547

540:                                              ; preds = %536
  %541 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %537)
  %542 = load i32, ptr %537, align 8, !tbaa !151
  %543 = sext i32 %542 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  %544 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %545 = fmul float %544, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0xB810000000000000, float noundef %545)
  %546 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.352, ptr noundef %541, i64 noundef %543, ptr noundef nonnull align 4 dereferenceable(8) %23, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  call void @_ZN5ImGui7TreePopEv()
  br label %547

547:                                              ; preds = %540, %536
  call void @_ZN5ImGui7TreePopEv()
  br label %548

548:                                              ; preds = %547, %489
  %549 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.353)
  br i1 %549, label %550, label %668

550:                                              ; preds = %548
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.354)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %551 = getelementptr inbounds i8, ptr %30, i64 15920
  %552 = load ptr, ptr %551, align 8, !tbaa !152
  %.not313 = icmp eq ptr %552, null
  br i1 %.not313, label %555, label %553

553:                                              ; preds = %550
  %554 = load ptr, ptr %552, align 8, !tbaa !98
  br label %555

555:                                              ; preds = %550, %553
  %556 = phi ptr [ %554, %553 ], [ @.str.326, %550 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.355, ptr noundef %556)
  %557 = load ptr, ptr %551, align 8, !tbaa !152
  %.not314 = icmp eq ptr %557, null
  br i1 %.not314, label %562, label %558

558:                                              ; preds = %555
  %559 = getelementptr inbounds i8, ptr %557, i64 848
  %560 = load ptr, ptr %559, align 8, !tbaa !153
  %561 = load ptr, ptr %560, align 8, !tbaa !98
  br label %562

562:                                              ; preds = %555, %558
  %563 = phi ptr [ %561, %558 ], [ @.str.326, %555 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.356, ptr noundef %563)
  %564 = getelementptr inbounds i8, ptr %30, i64 15928
  %565 = load ptr, ptr %564, align 8, !tbaa !154
  %.not315 = icmp eq ptr %565, null
  br i1 %.not315, label %568, label %566

566:                                              ; preds = %562
  %567 = load ptr, ptr %565, align 8, !tbaa !98
  br label %568

568:                                              ; preds = %562, %566
  %569 = phi ptr [ %567, %566 ], [ @.str.326, %562 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.357, ptr noundef %569)
  %570 = getelementptr inbounds i8, ptr %30, i64 15936
  %571 = load ptr, ptr %570, align 8, !tbaa !155
  %.not316 = icmp eq ptr %571, null
  br i1 %.not316, label %574, label %572

572:                                              ; preds = %568
  %573 = load ptr, ptr %571, align 8, !tbaa !98
  br label %574

574:                                              ; preds = %568, %572
  %575 = phi ptr [ %573, %572 ], [ @.str.326, %568 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.358, ptr noundef %575)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.359)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %576 = getelementptr inbounds i8, ptr %30, i64 15988
  %577 = load i32, ptr %576, align 4, !tbaa !156
  %578 = getelementptr inbounds i8, ptr %30, i64 16064
  %579 = load i32, ptr %578, align 8, !tbaa !157
  %580 = getelementptr inbounds i8, ptr %30, i64 15996
  %581 = load float, ptr %580, align 4, !tbaa !158
  %582 = fpext float %581 to double
  %583 = getelementptr inbounds i8, ptr %30, i64 16001
  %584 = load i8, ptr %583, align 1, !tbaa !159, !range !13, !noundef !14
  %585 = zext nneg i8 %584 to i32
  %586 = getelementptr inbounds i8, ptr %30, i64 16056
  %587 = load i32, ptr %586, align 8, !tbaa !160
  %588 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %587)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.360, i32 noundef %577, i32 noundef %579, double noundef %582, i32 noundef %585, ptr noundef %588)
  %589 = getelementptr inbounds i8, ptr %30, i64 16048
  %590 = load ptr, ptr %589, align 8, !tbaa !161
  %.not317 = icmp eq ptr %590, null
  br i1 %.not317, label %593, label %591

591:                                              ; preds = %574
  %592 = load ptr, ptr %590, align 8, !tbaa !98
  br label %593

593:                                              ; preds = %574, %591
  %594 = phi ptr [ %592, %591 ], [ @.str.326, %574 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.361, ptr noundef %594)
  %595 = getelementptr inbounds i8, ptr %30, i64 16016
  br label %622

596:                                              ; preds = %622
  %597 = getelementptr inbounds i8, ptr %30, i64 16006
  %598 = load i8, ptr %597, align 2, !tbaa !162, !range !13, !noundef !14
  %599 = zext nneg i8 %598 to i32
  %600 = getelementptr inbounds i8, ptr %30, i64 16008
  %601 = load i32, ptr %600, align 8, !tbaa !163
  %602 = getelementptr inbounds i8, ptr %30, i64 16012
  %603 = load i32, ptr %602, align 4, !tbaa !164
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.362, i32 noundef %599, i32 noundef %601, i32 noundef %603, i32 noundef %625)
  %604 = getelementptr inbounds i8, ptr %30, i64 15972
  %605 = load i32, ptr %604, align 4, !tbaa !165
  %606 = getelementptr inbounds i8, ptr %30, i64 15980
  %607 = load float, ptr %606, align 4, !tbaa !166
  %608 = fpext float %607 to double
  %609 = getelementptr inbounds i8, ptr %30, i64 15976
  %610 = load i8, ptr %609, align 8, !tbaa !167, !range !13, !noundef !14
  %611 = zext nneg i8 %610 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.363, i32 noundef %605, double noundef %608, i32 noundef %611)
  %612 = getelementptr inbounds i8, ptr %30, i64 16844
  %613 = load i8, ptr %612, align 4, !tbaa !168, !range !13, !noundef !14
  %614 = zext nneg i8 %613 to i32
  %615 = getelementptr inbounds i8, ptr %30, i64 16876
  %616 = load i32, ptr %615, align 4, !tbaa !169
  %617 = getelementptr inbounds i8, ptr %30, i64 16888
  %618 = getelementptr inbounds i8, ptr %30, i64 16872
  %619 = load i32, ptr %618, align 8, !tbaa !170
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.364, i32 noundef %614, i32 noundef %616, ptr noundef nonnull %617, i32 noundef %619)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.365)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %620 = getelementptr inbounds i8, ptr %30, i64 16440
  %621 = load ptr, ptr %620, align 8, !tbaa !52
  %.not318 = icmp eq ptr %621, null
  br i1 %.not318, label %629, label %627

622:                                              ; preds = %593, %622
  %.0279398 = phi i32 [ 0, %593 ], [ %626, %622 ]
  %.0280397 = phi i32 [ 0, %593 ], [ %625, %622 ]
  %623 = call noundef zeroext i1 @_ZNK10ImBitArrayILi133ELin512EEixEi(ptr noundef nonnull align 4 dereferenceable(20) %595, i32 noundef %.0279398)
  %624 = zext i1 %623 to i32
  %625 = add nuw nsw i32 %.0280397, %624
  %626 = add nuw nsw i32 %.0279398, 1
  %exitcond412.not = icmp eq i32 %626, 133
  br i1 %exitcond412.not, label %596, label %622, !llvm.loop !171

627:                                              ; preds = %596
  %628 = load ptr, ptr %621, align 8, !tbaa !98
  br label %629

629:                                              ; preds = %596, %627
  %630 = phi ptr [ %628, %627 ], [ @.str.326, %596 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.366, ptr noundef %630)
  %631 = getelementptr inbounds i8, ptr %30, i64 16448
  %632 = load i32, ptr %631, align 8, !tbaa !172
  %633 = getelementptr inbounds i8, ptr %30, i64 16500
  %634 = load i32, ptr %633, align 4, !tbaa !173
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.367, i32 noundef %632, i32 noundef %634)
  %635 = getelementptr inbounds i8, ptr %30, i64 16496
  %636 = load i32, ptr %635, align 8, !tbaa !174
  %637 = call noundef ptr @_ZL18GetInputSourceName16ImGuiInputSource(i32 noundef %636)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.368, ptr noundef %637)
  %638 = getelementptr inbounds i8, ptr %30, i64 213
  %639 = load i8, ptr %638, align 1, !tbaa !175, !range !13, !noundef !14
  %640 = zext nneg i8 %639 to i32
  %641 = getelementptr inbounds i8, ptr %30, i64 214
  %642 = load i8, ptr %641, align 2, !tbaa !176, !range !13, !noundef !14
  %643 = zext nneg i8 %642 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.369, i32 noundef %640, i32 noundef %643)
  %644 = getelementptr inbounds i8, ptr %30, i64 16456
  %645 = load i32, ptr %644, align 8, !tbaa !177
  %646 = getelementptr inbounds i8, ptr %30, i64 16460
  %647 = load i32, ptr %646, align 4, !tbaa !178
  %648 = getelementptr inbounds i8, ptr %30, i64 16464
  %649 = load i32, ptr %648, align 8, !tbaa !179
  %650 = getelementptr inbounds i8, ptr %30, i64 16468
  %651 = load i32, ptr %650, align 4, !tbaa !180
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.370, i32 noundef %645, i32 noundef %647, i32 noundef %649, i32 noundef %651)
  %652 = getelementptr inbounds i8, ptr %30, i64 16472
  %653 = load i32, ptr %652, align 8, !tbaa !181
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.371, i32 noundef %653)
  %654 = getelementptr inbounds i8, ptr %30, i64 16506
  %655 = load i8, ptr %654, align 2, !tbaa !182, !range !13, !noundef !14
  %656 = zext nneg i8 %655 to i32
  %657 = getelementptr inbounds i8, ptr %30, i64 16507
  %658 = load i8, ptr %657, align 1, !tbaa !183, !range !13, !noundef !14
  %659 = zext nneg i8 %658 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.372, i32 noundef %656, i32 noundef %659)
  %660 = getelementptr inbounds i8, ptr %30, i64 16452
  %661 = load i32, ptr %660, align 4, !tbaa !184
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.373, i32 noundef %661)
  %662 = getelementptr inbounds i8, ptr %30, i64 16800
  %663 = load ptr, ptr %662, align 8, !tbaa !185
  %.not319 = icmp eq ptr %663, null
  br i1 %.not319, label %666, label %664

664:                                              ; preds = %629
  %665 = load ptr, ptr %663, align 8, !tbaa !98
  br label %666

666:                                              ; preds = %629, %664
  %667 = phi ptr [ %665, %664 ], [ @.str.326, %629 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.374, ptr noundef %667)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %668

668:                                              ; preds = %666, %548
  %669 = getelementptr inbounds i8, ptr %30, i64 21413
  %670 = load i8, ptr %669, align 1, !tbaa !51, !range !13, !noundef !14
  %671 = trunc nuw i8 %670 to i1
  br i1 %671, label %676, label %672

672:                                              ; preds = %668
  %673 = getelementptr inbounds i8, ptr %30, i64 21414
  %674 = load i8, ptr %673, align 2, !tbaa !186, !range !13, !noundef !14
  %675 = trunc nuw i8 %674 to i1
  br i1 %675, label %676, label %.loopexit340

676:                                              ; preds = %672, %668
  %677 = load i32, ptr %350, align 8, !tbaa !118
  %678 = icmp sgt i32 %677, 0
  br i1 %678, label %.lr.ph401, label %.loopexit340

.lr.ph401:                                        ; preds = %676
  %679 = getelementptr inbounds i8, ptr %24, i64 8
  %680 = getelementptr inbounds i8, ptr %30, i64 21414
  br label %681

681:                                              ; preds = %.lr.ph401, %711
  %.0278399 = phi i32 [ 0, %.lr.ph401 ], [ %712, %711 ]
  %682 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %350, i32 noundef %.0278399)
  %683 = load ptr, ptr %682, align 8, !tbaa !5
  %684 = getelementptr inbounds i8, ptr %683, i64 143
  %685 = load i8, ptr %684, align 1, !tbaa !187, !range !13, !noundef !14
  %686 = trunc nuw i8 %685 to i1
  br i1 %686, label %687, label %711

687:                                              ; preds = %681
  %688 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %683)
  %689 = load i8, ptr %669, align 1, !tbaa !51, !range !13, !noundef !14
  %690 = trunc nuw i8 %689 to i1
  br i1 %690, label %691, label %696

691:                                              ; preds = %687
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #9
  %692 = load i32, ptr %59, align 4, !tbaa !49
  %693 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef nonnull %683, i32 noundef %692)
  %694 = extractvalue { <2 x float>, <2 x float> } %693, 0
  store <2 x float> %694, ptr %24, align 8
  %695 = extractvalue { <2 x float>, <2 x float> } %693, 1
  store <2 x float> %695, ptr %679, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %688, ptr noundef nonnull align 4 dereferenceable(8) %24, ptr noundef nonnull align 4 dereferenceable(8) %679, 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 %24) #9
  br label %696

696:                                              ; preds = %691, %687
  %697 = load i8, ptr %680, align 2, !tbaa !186, !range !13, !noundef !14
  %698 = trunc nuw i8 %697 to i1
  br i1 %698, label %699, label %711

699:                                              ; preds = %696
  %700 = getelementptr inbounds i8, ptr %683, i64 12
  %701 = load i32, ptr %700, align 4, !tbaa !134
  %702 = and i32 %701, 16777216
  %.not320 = icmp eq i32 %702, 0
  br i1 %.not320, label %703, label %711

703:                                              ; preds = %699
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #9
  %704 = getelementptr inbounds i8, ptr %683, i64 158
  %705 = load i16, ptr %704, align 2, !tbaa !188
  %706 = sext i16 %705 to i32
  %707 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %25, i64 noundef 32, ptr noundef nonnull @.str.375, i32 noundef %706)
  %708 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %709 = getelementptr inbounds i8, ptr %683, i64 16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %27, float noundef %708, float noundef %708)
  %710 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %709, ptr noundef nonnull align 4 dereferenceable(8) %27)
  store <2 x float> %710, ptr %26, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %688, ptr noundef nonnull align 4 dereferenceable(8) %709, ptr noundef nonnull align 4 dereferenceable(8) %26, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %688, ptr noundef nonnull align 4 dereferenceable(8) %709, i32 noundef -1, ptr noundef nonnull %25, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  br label %711

711:                                              ; preds = %696, %699, %703, %681
  %712 = add nuw nsw i32 %.0278399, 1
  %713 = load i32, ptr %350, align 8, !tbaa !118
  %714 = icmp slt i32 %712, %713
  br i1 %714, label %681, label %.loopexit340, !llvm.loop !189

.loopexit340:                                     ; preds = %711, %676, %672
  %715 = getelementptr inbounds i8, ptr %30, i64 21415
  %716 = load i8, ptr %715, align 1, !tbaa !99, !range !13, !noundef !14
  %717 = trunc nuw i8 %716 to i1
  br i1 %717, label %.preheader338, label %.loopexit339

.preheader338:                                    ; preds = %.loopexit340
  %718 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %471)
  %719 = icmp sgt i32 %718, 0
  br i1 %719, label %.lr.ph405, label %.loopexit339

.lr.ph405:                                        ; preds = %.preheader338
  %720 = getelementptr inbounds i8, ptr %30, i64 15784
  %721 = getelementptr inbounds i8, ptr %29, i64 8
  %722 = getelementptr inbounds i8, ptr %28, i64 8
  br label %723

723:                                              ; preds = %.lr.ph405, %.loopexit
  %.0274404 = phi i32 [ 0, %.lr.ph405 ], [ %759, %.loopexit ]
  %724 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %471, i32 noundef %.0274404)
  %725 = icmp eq ptr %724, null
  br i1 %725, label %.loopexit, label %726

726:                                              ; preds = %723
  %727 = getelementptr inbounds i8, ptr %724, i64 112
  %728 = load i32, ptr %727, align 8, !tbaa !100
  %729 = load i32, ptr %720, align 8, !tbaa !109
  %730 = add nsw i32 %729, -1
  %731 = icmp slt i32 %728, %730
  br i1 %731, label %.loopexit, label %732

732:                                              ; preds = %726
  %733 = getelementptr inbounds i8, ptr %724, i64 392
  %734 = load ptr, ptr %733, align 8, !tbaa !110
  %735 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %734)
  %736 = load i32, ptr %64, align 4, !tbaa !50
  %737 = icmp sgt i32 %736, 5
  br i1 %737, label %.preheader, label %755

.preheader:                                       ; preds = %732
  %738 = getelementptr inbounds i8, ptr %724, i64 116
  %739 = load i32, ptr %738, align 4, !tbaa !113
  %740 = icmp sgt i32 %739, 0
  br i1 %740, label %.lr.ph403, label %.loopexit

.lr.ph403:                                        ; preds = %.preheader
  %741 = getelementptr inbounds i8, ptr %724, i64 484
  br label %742

742:                                              ; preds = %.lr.ph403, %742
  %.0271402 = phi i32 [ 0, %.lr.ph403 ], [ %752, %742 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #9
  %743 = load i32, ptr %64, align 4, !tbaa !50
  %744 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %724, i32 noundef %743, i32 noundef %.0271402)
  %745 = extractvalue { <2 x float>, <2 x float> } %744, 0
  store <2 x float> %745, ptr %28, align 8
  %746 = extractvalue { <2 x float>, <2 x float> } %744, 1
  store <2 x float> %746, ptr %722, align 8
  %747 = load i8, ptr %741, align 4, !tbaa !190
  %748 = sext i8 %747 to i32
  %749 = icmp eq i32 %.0271402, %748
  %750 = select i1 %749, i32 -8323073, i32 -8388353
  %751 = select i1 %749, float 3.000000e+00, float 1.000000e+00
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %735, ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(8) %722, i32 noundef %750, float noundef 0.000000e+00, i32 noundef 0, float noundef %751)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #9
  %752 = add nuw nsw i32 %.0271402, 1
  %753 = load i32, ptr %738, align 4, !tbaa !113
  %754 = icmp slt i32 %752, %753
  br i1 %754, label %742, label %.loopexit, !llvm.loop !191

755:                                              ; preds = %732
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #9
  %756 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %724, i32 noundef %736, i32 noundef -1)
  %757 = extractvalue { <2 x float>, <2 x float> } %756, 0
  store <2 x float> %757, ptr %29, align 8
  %758 = extractvalue { <2 x float>, <2 x float> } %756, 1
  store <2 x float> %758, ptr %721, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %735, ptr noundef nonnull align 4 dereferenceable(8) %29, ptr noundef nonnull align 4 dereferenceable(8) %721, 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 %29) #9
  br label %.loopexit

.loopexit:                                        ; preds = %742, %.preheader, %755, %723, %726
  %759 = add nuw nsw i32 %.0274404, 1
  %760 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %471)
  %761 = icmp slt i32 %759, %760
  br i1 %761, label %723, label %.loopexit339, !llvm.loop !192

.loopexit339:                                     ; preds = %.loopexit, %.preheader338, %.loopexit340
  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 %762

762:                                              ; preds = %.loopexit339, %42
  ret void
}

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

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

declare void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #5

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

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

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

declare noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #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 #6 align 2

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #6 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui20DebugStartItemPickerEv() local_unnamed_addr #7

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

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

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

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

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

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

; 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

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

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

declare void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef, 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 #6

; 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 #6 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 uwtable
declare dso_local noundef zeroext i1 @_ZNK10ImBitArrayILi133ELin512EEixEi(ptr noundef nonnull align 4 dereferenceable(20), i32 noundef) local_unnamed_addr #6 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 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #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, !12, i64 8, !12, i64 12}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !19, i64 154}
!16 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !12, i64 8, !12, i64 12, !17, i64 16, !17, i64 24, !17, i64 32, !17, i64 40, !17, i64 48, !17, i64 56, !17, i64 64, !18, i64 72, !18, i64 76, !12, i64 80, !12, i64 84, !12, i64 88, !17, i64 92, !17, i64 100, !17, i64 108, !17, i64 116, !17, i64 124, !17, i64 132, !11, i64 140, !11, i64 141, !11, i64 142, !11, i64 143, !11, i64 144, !11, i64 145, !11, i64 146, !11, i64 147, !11, i64 148, !11, i64 149, !11, i64 150, !11, i64 151, !11, i64 152, !7, i64 153, !19, i64 154, !19, i64 156, !19, i64 158, !19, i64 160, !12, i64 164, !7, i64 168, !7, i64 169, !7, i64 170, !11, i64 171, !12, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !7, i64 179, !12, i64 180, !12, i64 181, !12, i64 182, !17, i64 184, !17, i64 192, !20, i64 200, !21, i64 216, !27, i64 448, !27, i64 464, !27, i64 480, !27, i64 496, !27, i64 512, !27, i64 528, !27, i64 544, !28, i64 560, !28, i64 564, !12, i64 568, !18, i64 572, !18, i64 576, !29, i64 584, !31, i64 600, !18, i64 616, !12, i64 620, !6, i64 624, !32, i64 632, !6, i64 832, !6, i64 840, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !7, i64 888, !7, i64 896, !12, i64 928, !12, i64 932, !11, i64 936}
!17 = !{!"_ZTS6ImVec2", !18, i64 0, !18, i64 4}
!18 = !{!"float", !7, i64 0}
!19 = !{!"short", !7, i64 0}
!20 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!21 = !{!"_ZTS19ImGuiWindowTempData", !17, i64 0, !17, i64 8, !17, i64 16, !17, i64 24, !17, i64 32, !17, i64 40, !17, i64 48, !18, i64 56, !18, i64 60, !22, i64 64, !22, i64 68, !22, i64 72, !17, i64 76, !23, i64 84, !19, i64 88, !19, i64 90, !12, i64 92, !11, i64 96, !11, i64 97, !11, i64 98, !17, i64 100, !24, i64 108, !12, i64 136, !12, i64 140, !25, i64 144, !6, i64 160, !6, i64 168, !12, i64 176, !12, i64 180, !12, i64 184, !18, i64 188, !18, i64 192, !26, i64 200, !26, i64 216}
!22 = !{!"_ZTS6ImVec1", !18, i64 0}
!23 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!24 = !{!"_ZTS16ImGuiMenuColumns", !12, i64 0, !12, i64 4, !19, i64 8, !19, i64 10, !19, i64 12, !19, i64 14, !19, i64 16, !7, i64 18}
!25 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!26 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!27 = !{!"_ZTS6ImRect", !17, i64 0, !17, i64 8}
!28 = !{!"_ZTS8ImVec2ih", !19, i64 0, !19, i64 2}
!29 = !{!"_ZTS12ImGuiStorage", !30, i64 0}
!30 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !12, i64 0, !12, i64 4, !6, i64 8}
!31 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !12, i64 0, !12, i64 4, !6, i64 8}
!32 = !{!"_ZTS10ImDrawList", !33, i64 0, !34, i64 16, !35, i64 32, !12, i64 48, !12, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !36, i64 88, !37, i64 104, !38, i64 120, !39, i64 136, !41, i64 168, !18, i64 192}
!33 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !12, i64 0, !12, i64 4, !6, i64 8}
!34 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorI10ImDrawVertE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorI6ImVec4E", !12, i64 0, !12, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorIPvE", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!39 = !{!"_ZTS15ImDrawCmdHeader", !40, i64 0, !6, i64 16, !12, i64 24}
!40 = !{!"_ZTS6ImVec4", !18, i64 0, !18, i64 4, !18, i64 8, !18, i64 12}
!41 = !{!"_ZTS18ImDrawListSplitter", !12, i64 0, !12, i64 4, !42, i64 8}
!42 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!43 = !{!44, !18, i64 208}
!44 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !17, i64 8, !18, i64 16, !18, i64 20, !6, i64 24, !6, i64 32, !18, i64 40, !18, i64 44, !18, i64 48, !18, i64 52, !18, i64 56, !6, i64 64, !6, i64 72, !18, i64 80, !11, i64 84, !6, i64 88, !17, i64 96, !11, i64 104, !11, i64 105, !11, i64 106, !11, i64 107, !11, i64 108, !11, i64 109, !11, i64 110, !18, i64 112, !6, 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, !11, i64 200, !11, i64 201, !11, i64 202, !11, i64 203, !11, i64 204, !11, i64 205, !11, i64 206, !18, i64 208, !12, i64 212, !12, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !17, i64 232, !7, i64 240, !7, i64 2820, !17, i64 3332, !7, i64 3340, !18, i64 3348, !18, i64 3352, !11, i64 3356, !11, i64 3357, !11, i64 3358, !11, i64 3359, !7, i64 3360, !12, i64 3440, !12, i64 3444, !7, i64 3448, !11, i64 13768, !17, i64 13772, !7, i64 13780, !7, i64 13824, !7, i64 13864, !7, i64 13869, !7, i64 13874, !7, i64 13884, !7, i64 13894, !7, i64 13899, !7, i64 13904, !7, i64 13912, !7, i64 13932, !7, i64 13952, !7, i64 13972, !7, i64 14052, !18, i64 14132, !11, i64 14136, !7, i64 14137, !11, i64 14138, !19, i64 14140, !34, i64 14144}
!45 = !{!44, !12, i64 212}
!46 = !{!44, !12, i64 216}
!47 = !{!44, !12, i64 220}
!48 = !{!44, !12, i64 228}
!49 = !{!10, !12, i64 8}
!50 = !{!10, !12, i64 12}
!51 = !{!10, !11, i64 1}
!52 = !{!53, !6, i64 16440}
!53 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !44, i64 8, !54, i64 14168, !54, i64 14184, !55, i64 14200, !6, i64 15248, !18, i64 15256, !18, i64 15260, !56, i64 15264, !57, i64 15776, !12, i64 15784, !12, i64 15788, !12, i64 15792, !11, i64 15796, !11, i64 15797, !11, i64 15798, !11, i64 15799, !11, i64 15800, !6, i64 15808, !25, i64 15816, !25, i64 15832, !25, i64 15848, !58, i64 15864, !29, i64 15880, !12, i64 15896, !17, i64 15900, !6, i64 15912, !6, i64 15920, !6, i64 15928, !6, i64 15936, !6, i64 15944, !17, i64 15952, !18, i64 15960, !12, i64 15964, !12, i64 15968, !12, i64 15972, !11, i64 15976, !11, i64 15977, !11, i64 15978, !11, i64 15979, !18, i64 15980, !18, i64 15984, !12, i64 15988, !12, i64 15992, !18, i64 15996, !11, i64 16000, !11, i64 16001, !11, i64 16002, !11, i64 16003, !11, i64 16004, !11, i64 16005, !11, i64 16006, !12, i64 16008, !12, i64 16012, !59, i64 16016, !17, i64 16036, !6, i64 16048, !60, i64 16056, !12, i64 16060, !12, i64 16064, !11, i64 16068, !11, i64 16069, !6, i64 16072, !12, i64 16080, !18, i64 16084, !12, i64 16088, !61, i64 16092, !62, i64 16112, !63, i64 16176, !64, i64 16288, !65, i64 16304, !66, i64 16320, !20, i64 16336, !67, i64 16352, !68, i64 16368, !69, i64 16384, !69, i64 16400, !12, i64 16416, !70, i64 16424, !6, i64 16440, !12, i64 16448, !12, i64 16452, !12, i64 16456, !12, i64 16460, !12, i64 16464, !12, i64 16468, !12, i64 16472, !12, i64 16476, !12, i64 16480, !12, i64 16484, !12, i64 16488, !12, i64 16492, !60, i64 16496, !23, i64 16500, !11, i64 16504, !11, i64 16505, !11, i64 16506, !11, i64 16507, !11, i64 16508, !11, i64 16509, !11, i64 16510, !12, i64 16512, !27, i64 16516, !11, i64 16532, !11, i64 16533, !11, i64 16534, !12, i64 16536, !12, i64 16540, !12, i64 16544, !12, i64 16548, !12, i64 16552, !12, i64 16556, !27, i64 16560, !27, i64 16576, !12, i64 16592, !12, i64 16596, !12, i64 16600, !71, i64 16608, !71, i64 16656, !71, i64 16704, !71, i64 16752, !6, i64 16800, !6, i64 16808, !6, i64 16816, !18, i64 16824, !18, i64 16828, !11, i64 16832, !18, i64 16836, !12, i64 16840, !11, i64 16844, !11, i64 16845, !11, i64 16846, !12, i64 16848, !12, i64 16852, !12, i64 16856, !72, i64 16864, !27, i64 16928, !12, i64 16944, !12, i64 16948, !18, i64 16952, !12, i64 16956, !12, i64 16960, !12, i64 16964, !12, i64 16968, !73, i64 16976, !7, i64 16992, !12, i64 17008, !74, i64 17016, !6, i64 17032, !12, i64 17040, !75, i64 17048, !76, i64 17064, !26, i64 17104, !42, i64 17120, !6, i64 17136, !78, i64 17144, !80, i64 17184, !81, i64 17200, !17, i64 17216, !82, i64 17224, !86, i64 20944, !12, i64 21056, !12, i64 21060, !18, i64 21064, !18, i64 21068, !12, i64 21072, !40, i64 21076, !88, i64 21092, !18, i64 21140, !11, i64 21144, !11, i64 21145, !18, i64 21148, !18, i64 21152, !18, i64 21156, !18, i64 21160, !19, i64 21164, !19, i64 21166, !18, i64 21168, !83, i64 21176, !20, i64 21192, !89, i64 21208, !89, i64 21224, !7, i64 21240, !11, i64 21241, !18, i64 21244, !90, i64 21248, !91, i64 21264, !92, i64 21280, !93, i64 21296, !94, i64 21312, !12, i64 21328, !11, i64 21332, !95, i64 21336, !6, i64 21344, !90, i64 21352, !6, i64 21368, !6, i64 21376, !18, i64 21384, !11, i64 21388, !12, i64 21392, !12, i64 21396, !12, i64 21400, !11, i64 21404, !12, i64 21408, !10, i64 21412, !96, i64 21432, !7, i64 21464, !12, i64 21944, !12, i64 21948, !18, i64 21952, !12, i64 21956, !12, i64 21960, !12, i64 21964, !7, i64 21968}
!54 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!55 = !{!"_ZTS10ImGuiStyle", !18, i64 0, !18, i64 4, !17, i64 8, !18, i64 16, !18, i64 20, !17, i64 24, !17, i64 32, !12, i64 40, !18, i64 44, !18, i64 48, !18, i64 52, !18, i64 56, !17, i64 60, !18, i64 68, !18, i64 72, !17, i64 76, !17, i64 84, !17, i64 92, !17, i64 100, !18, i64 108, !18, i64 112, !18, i64 116, !18, i64 120, !18, i64 124, !18, i64 128, !18, i64 132, !18, i64 136, !18, i64 140, !18, i64 144, !12, i64 148, !17, i64 152, !17, i64 160, !17, i64 168, !17, i64 176, !18, i64 184, !11, i64 188, !11, i64 189, !11, i64 190, !18, i64 192, !18, i64 196, !7, i64 200}
!56 = !{!"_ZTS20ImDrawListSharedData", !17, i64 0, !6, i64 8, !18, i64 16, !18, i64 20, !18, i64 24, !40, i64 28, !12, i64 44, !7, i64 48, !18, i64 432, !7, i64 436, !6, i64 504}
!57 = !{!"double", !7, i64 0}
!58 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!59 = !{!"_ZTS10ImBitArrayILi133ELin512EE", !7, i64 0}
!60 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!61 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !18, i64 4, !12, i64 8, !12, i64 12, !11, i64 16}
!62 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !27, i64 12, !27, i64 28, !27, i64 44}
!63 = !{!"_ZTS19ImGuiNextWindowData", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !17, i64 16, !17, i64 24, !17, i64 32, !17, i64 40, !17, i64 48, !11, i64 56, !27, i64 60, !6, i64 80, !6, i64 88, !18, i64 96, !17, i64 100}
!64 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!71 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !27, i64 16, !12, i64 32, !18, i64 36, !18, i64 40, !18, i64 44}
!72 = !{!"_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}
!73 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!76 = !{!"_ZTS6ImPoolI10ImGuiTableE", !77, i64 0, !29, i64 16, !12, i64 32, !12, i64 36}
!77 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!78 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !79, i64 0, !29, i64 16, !12, i64 32, !12, i64 36}
!79 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!80 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!81 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!82 = !{!"_ZTS19ImGuiInputTextState", !12, i64 0, !12, i64 4, !12, i64 8, !34, i64 16, !83, i64 32, !83, i64 48, !11, i64 64, !12, i64 68, !18, i64 72, !84, i64 76, !18, i64 3704, !11, i64 3708, !11, i64 3709, !11, i64 3710, !12, i64 3712}
!83 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!84 = !{!"_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, !18, i64 28, !85, i64 32}
!85 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !19, i64 3582, !19, i64 3584, !12, i64 3588, !12, i64 3592}
!86 = !{!"_ZTS6ImFont", !26, i64 0, !18, i64 16, !18, i64 20, !34, i64 24, !87, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !19, i64 80, !19, i64 82, !19, i64 84, !19, i64 86, !11, i64 88, !18, i64 92, !18, i64 96, !18, i64 100, !12, i64 104, !7, i64 108}
!87 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!88 = !{!"_ZTS21ImGuiComboPreviewData", !27, i64 0, !17, i64 16, !17, i64 24, !17, i64 32, !18, i64 40, !12, i64 44}
!89 = !{!"_ZTS20ImGuiPlatformImeData", !11, i64 0, !17, i64 4, !18, i64 12}
!90 = !{!"_ZTS15ImGuiTextBuffer", !83, i64 0}
!91 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!92 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !83, i64 0}
!93 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !83, i64 0}
!94 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!95 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!96 = !{!"_ZTS14ImGuiStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !97, i64 16}
!97 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!98 = !{!16, !6, i64 0}
!99 = !{!10, !11, i64 3}
!100 = !{!101, !12, i64 112}
!101 = !{!"_ZTS10ImGuiTable", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !102, i64 24, !103, i64 40, !104, i64 56, !105, i64 72, !105, i64 80, !105, i64 88, !105, i64 96, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !12, i64 124, !19, i64 128, !19, i64 130, !18, i64 132, !18, i64 136, !18, i64 140, !18, i64 144, !18, i64 148, !12, i64 152, !12, i64 154, !12, i64 156, !7, i64 160, !12, i64 168, !12, i64 172, !18, i64 176, !18, i64 180, !18, i64 184, !18, i64 188, !18, i64 192, !18, i64 196, !18, i64 200, !18, i64 204, !18, i64 208, !18, i64 212, !18, i64 216, !18, i64 220, !18, i64 224, !18, i64 228, !18, i64 232, !18, i64 236, !18, i64 240, !27, i64 244, !27, i64 260, !27, i64 276, !27, i64 292, !27, i64 308, !27, i64 324, !27, i64 340, !27, i64 356, !27, i64 372, !6, i64 392, !6, i64 400, !90, i64 408, !6, i64 424, !106, i64 432, !107, i64 448, !108, i64 464, !7, i64 480, !7, i64 481, !7, i64 482, !7, i64 483, !7, i64 484, !7, i64 485, !7, i64 486, !7, i64 487, !7, i64 488, !7, i64 489, !7, i64 490, !7, i64 491, !7, i64 492, !7, i64 493, !7, i64 494, !7, i64 495, !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, !11, i64 505, !11, i64 506, !11, i64 507, !11, i64 508, !11, i64 509, !11, i64 510, !11, i64 511, !11, i64 512, !11, i64 513, !11, i64 514, !11, i64 515, !11, i64 516, !11, i64 517, !11, i64 518, !11, i64 519}
!102 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!103 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!104 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!105 = !{!"long long", !7, i64 0}
!106 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !12, i64 0, !19, i64 4, !19, i64 6, !12, i64 8}
!107 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !12, i64 0, !12, i64 4, !6, i64 8}
!108 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !12, i64 8, !11, i64 12}
!109 = !{!53, !12, i64 15784}
!110 = !{!101, !6, i64 392}
!111 = !{!101, !6, i64 400}
!112 = !{!101, !12, i64 0}
!113 = !{!101, !12, i64 116}
!114 = distinct !{!114, !115}
!115 = !{!"llvm.loop.mustprogress"}
!116 = distinct !{!116, !115}
!117 = distinct !{!117, !115}
!118 = !{!53, !12, i64 15816}
!119 = !{!25, !6, i64 8}
!120 = !{!25, !12, i64 0}
!121 = !{!16, !12, i64 568}
!122 = distinct !{!122, !115}
!123 = !{!53, !12, i64 16424}
!124 = distinct !{!124, !115}
!125 = !{!126, !12, i64 0}
!126 = !{!"_ZTS8ImVectorIP10ImDrawListE", !12, i64 0, !12, i64 4, !6, i64 8}
!127 = distinct !{!127, !115}
!128 = distinct !{!128, !115}
!129 = distinct !{!129, !115}
!130 = !{!53, !12, i64 16384}
!131 = !{!132, !6, i64 8}
!132 = !{!"_ZTS14ImGuiPopupData", !12, i64 0, !6, i64 8, !6, i64 16, !12, i64 24, !12, i64 28, !17, i64 32, !17, i64 40}
!133 = !{!132, !12, i64 0}
!134 = !{!16, !12, i64 12}
!135 = distinct !{!135, !115}
!136 = distinct !{!136, !115}
!137 = distinct !{!137, !115}
!138 = !{!53, !6, i64 80}
!139 = !{!140, !12, i64 72}
!140 = !{!"_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, !17, i64 56, !17, i64 64, !66, i64 72, !141, i64 88, !142, i64 104, !7, i64 120, !6, i64 1144, !12, i64 1152, !12, i64 1156, !12, i64 1160}
!141 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !12, i64 0, !12, i64 4, !6, i64 8}
!142 = !{!"_ZTS8ImVectorI12ImFontConfigE", !12, i64 0, !12, i64 4, !6, i64 8}
!143 = !{!53, !6, i64 32}
!144 = !{!53, !18, i64 21244}
!145 = !{!53, !12, i64 21264}
!146 = !{!147, !6, i64 0}
!147 = !{!"_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}
!148 = distinct !{!148, !115}
!149 = distinct !{!149, !115}
!150 = distinct !{!150, !115}
!151 = !{!53, !12, i64 21248}
!152 = !{!53, !6, i64 15920}
!153 = !{!16, !6, i64 848}
!154 = !{!53, !6, i64 15928}
!155 = !{!53, !6, i64 15936}
!156 = !{!53, !12, i64 15988}
!157 = !{!53, !12, i64 16064}
!158 = !{!53, !18, i64 15996}
!159 = !{!53, !11, i64 16001}
!160 = !{!53, !60, i64 16056}
!161 = !{!53, !6, i64 16048}
!162 = !{!53, !11, i64 16006}
!163 = !{!53, !12, i64 16008}
!164 = !{!53, !12, i64 16012}
!165 = !{!53, !12, i64 15972}
!166 = !{!53, !18, i64 15980}
!167 = !{!53, !11, i64 15976}
!168 = !{!53, !11, i64 16844}
!169 = !{!53, !12, i64 16876}
!170 = !{!53, !12, i64 16872}
!171 = distinct !{!171, !115}
!172 = !{!53, !12, i64 16448}
!173 = !{!53, !23, i64 16500}
!174 = !{!53, !60, i64 16496}
!175 = !{!53, !11, i64 213}
!176 = !{!53, !11, i64 214}
!177 = !{!53, !12, i64 16456}
!178 = !{!53, !12, i64 16460}
!179 = !{!53, !12, i64 16464}
!180 = !{!53, !12, i64 16468}
!181 = !{!53, !12, i64 16472}
!182 = !{!53, !11, i64 16506}
!183 = !{!53, !11, i64 16507}
!184 = !{!53, !12, i64 16452}
!185 = !{!53, !6, i64 16800}
!186 = !{!10, !11, i64 2}
!187 = !{!16, !11, i64 143}
!188 = !{!16, !19, i64 158}
!189 = distinct !{!189, !115}
!190 = !{!101, !7, i64 484}
!191 = distinct !{!191, !115}
!192 = distinct !{!192, !115}


; 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