; LLVM IR from JawherBenjeddou/GraphicsRenderer :: Graphics/vendor/ImGui/imgui_tables.ll (ZN5ImGui17TableUpdateLayoutEP10ImGuiTable)

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

@GImGui = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable = external hidden unnamed_addr constant [44 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [12 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #1

; 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: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef, float noundef) #3

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL5ImMinIfET_S0_S0_(float noundef, float noundef) #3

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17TableUpdateLayoutEP10ImGuiTable(ptr noundef %0) #6 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i8, align 1
  %9 = alloca i8, align 1
  %10 = alloca float, align 4
  %11 = alloca float, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca float, align 4
  %19 = alloca float, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i8, align 1
  %23 = alloca float, align 4
  %24 = alloca %struct.ImRect, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca float, align 4
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca %struct.ImRect, align 4
  %37 = alloca i32, align 4
  %38 = alloca i8, align 1
  %39 = alloca i32, align 4
  %40 = alloca i8, align 1
  %41 = alloca float, align 4
  %42 = alloca %struct.ImRect, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca float, align 4
  %47 = alloca i8, align 1
  %48 = alloca float, align 4
  %49 = alloca float, align 4
  %50 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #10
  %51 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %51, ptr %3, align 8, !tbaa !5
  %52 = load ptr, ptr %2, align 8, !tbaa !5
  %53 = getelementptr inbounds %struct.ImGuiTable, ptr %52, i32 0, i32 88
  %54 = load i8, ptr %53, align 2, !tbaa !9, !range !27, !noundef !28
  %55 = trunc i8 %54 to i1
  %56 = zext i1 %55 to i32
  %57 = icmp eq i32 %56, 0
  br i1 %57, label %58, label %59

58:                                               ; preds = %1
  br label %61

59:                                               ; preds = %1
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 743, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

60:                                               ; No predecessors!
  br label %61

61:                                               ; preds = %60, %58
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #10
  %62 = load ptr, ptr %2, align 8, !tbaa !5
  %63 = getelementptr inbounds %struct.ImGuiTable, ptr %62, i32 0, i32 1
  %64 = load i32, ptr %63, align 4, !tbaa !29
  %65 = and i32 %64, 57344
  store i32 %65, ptr %4, align 4, !tbaa !30
  %66 = load ptr, ptr %2, align 8, !tbaa !5
  %67 = getelementptr inbounds %struct.ImGuiTable, ptr %66, i32 0, i32 96
  store i8 1, ptr %67, align 2, !tbaa !31
  %68 = load ptr, ptr %2, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.ImGuiTable, ptr %68, i32 0, i32 64
  store i16 0, ptr %69, align 2, !tbaa !32
  %70 = load ptr, ptr %2, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.ImGuiTable, ptr %70, i32 0, i32 8
  %72 = load ptr, ptr %71, align 8, !tbaa !33
  %73 = load ptr, ptr %2, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.ImGuiTable, ptr %73, i32 0, i32 13
  %75 = load i32, ptr %74, align 4, !tbaa !34
  call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %72, i32 noundef %75)
  %76 = load ptr, ptr %2, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.ImGuiTable, ptr %76, i32 0, i32 7
  %78 = load ptr, ptr %77, align 8, !tbaa !35
  %79 = load ptr, ptr %2, align 8, !tbaa !5
  %80 = getelementptr inbounds %struct.ImGuiTable, ptr %79, i32 0, i32 13
  %81 = load i32, ptr %80, align 4, !tbaa !34
  call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %78, i32 noundef %81)
  %82 = load ptr, ptr %2, align 8, !tbaa !5
  %83 = getelementptr inbounds %struct.ImGuiTable, ptr %82, i32 0, i32 75
  store i16 -1, ptr %83, align 8, !tbaa !36
  %84 = load ptr, ptr %3, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct.ImGuiContext, ptr %84, i32 0, i32 4
  %86 = getelementptr inbounds %struct.ImGuiStyle, ptr %85, i32 0, i32 12
  %87 = getelementptr inbounds %struct.ImVec2, ptr %86, i32 0, i32 0
  %88 = load float, ptr %87, align 4, !tbaa !37
  %89 = fmul float %88, 1.000000e+00
  %90 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %89)
  %91 = load ptr, ptr %2, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.ImGuiTable, ptr %91, i32 0, i32 31
  store float %90, ptr %92, align 4, !tbaa !105
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #10
  store i32 0, ptr %5, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  store i32 0, ptr %6, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  store i32 -1, ptr %7, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #10
  store i8 0, ptr %8, align 1, !tbaa !106
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #10
  store i8 0, ptr %9, align 1, !tbaa !106
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  store float 0.000000e+00, ptr %10, align 4, !tbaa !107
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  store float 0.000000e+00, ptr %11, align 4, !tbaa !107
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  store i32 0, ptr %12, align 4, !tbaa !30
  br label %93

93:                                               ; preds = %375, %61
  %94 = load i32, ptr %12, align 4, !tbaa !30
  %95 = load ptr, ptr %2, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.ImGuiTable, ptr %95, i32 0, i32 13
  %97 = load i32, ptr %96, align 4, !tbaa !34
  %98 = icmp slt i32 %94, %97
  br i1 %98, label %100, label %99

99:                                               ; preds = %93
  store i32 2, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  br label %378

100:                                              ; preds = %93
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %101 = load ptr, ptr %2, align 8, !tbaa !5
  %102 = getelementptr inbounds %struct.ImGuiTable, ptr %101, i32 0, i32 5
  %103 = load i32, ptr %12, align 4, !tbaa !30
  %104 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %102, i32 noundef %103)
  %105 = load i16, ptr %104, align 2, !tbaa !108
  %106 = sext i16 %105 to i32
  store i32 %106, ptr %14, align 4, !tbaa !30
  %107 = load i32, ptr %14, align 4, !tbaa !30
  %108 = load i32, ptr %12, align 4, !tbaa !30
  %109 = icmp ne i32 %107, %108
  br i1 %109, label %110, label %113

110:                                              ; preds = %100
  %111 = load ptr, ptr %2, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct.ImGuiTable, ptr %111, i32 0, i32 96
  store i8 0, ptr %112, align 2, !tbaa !31
  br label %113

113:                                              ; preds = %110, %100
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  %114 = load ptr, ptr %2, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.ImGuiTable, ptr %114, i32 0, i32 4
  %116 = load i32, ptr %14, align 4, !tbaa !30
  %117 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %115, i32 noundef %116)
  store ptr %117, ptr %15, align 8, !tbaa !5
  %118 = load ptr, ptr %2, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.ImGuiTable, ptr %118, i32 0, i32 66
  %120 = load i16, ptr %119, align 2, !tbaa !109
  %121 = sext i16 %120 to i32
  %122 = load i32, ptr %14, align 4, !tbaa !30
  %123 = icmp sle i32 %121, %122
  br i1 %123, label %124, label %133

124:                                              ; preds = %113
  %125 = load ptr, ptr %2, align 8, !tbaa !5
  %126 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef %125, ptr noundef %126, i32 noundef 0)
  %127 = load ptr, ptr %15, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %127, i32 0, i32 17
  store i16 -1, ptr %128, align 4, !tbaa !110
  %129 = load ptr, ptr %15, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %129, i32 0, i32 9
  store i32 0, ptr %130, align 4, !tbaa !112
  %131 = load ptr, ptr %15, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %131, i32 0, i32 7
  store float -1.000000e+00, ptr %132, align 4, !tbaa !113
  br label %133

133:                                              ; preds = %124, %113
  %134 = load ptr, ptr %2, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.ImGuiTable, ptr %134, i32 0, i32 1
  %136 = load i32, ptr %135, align 4, !tbaa !29
  %137 = and i32 %136, 4
  %138 = icmp ne i32 %137, 0
  br i1 %138, label %139, label %145

139:                                              ; preds = %133
  %140 = load ptr, ptr %15, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %140, i32 0, i32 0
  %142 = load i32, ptr %141, align 4, !tbaa !114
  %143 = and i32 %142, 128
  %144 = icmp ne i32 %143, 0
  br i1 %144, label %145, label %148

145:                                              ; preds = %139, %133
  %146 = load ptr, ptr %15, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %146, i32 0, i32 28
  store i8 1, ptr %147, align 4, !tbaa !115
  br label %148

148:                                              ; preds = %145, %139
  %149 = load ptr, ptr %15, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %149, i32 0, i32 27
  %151 = load i8, ptr %150, align 1, !tbaa !116, !range !27, !noundef !28
  %152 = trunc i8 %151 to i1
  %153 = zext i1 %152 to i32
  %154 = load ptr, ptr %15, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %154, i32 0, i32 28
  %156 = load i8, ptr %155, align 4, !tbaa !115, !range !27, !noundef !28
  %157 = trunc i8 %156 to i1
  %158 = zext i1 %157 to i32
  %159 = icmp ne i32 %153, %158
  br i1 %159, label %160, label %170

160:                                              ; preds = %148
  %161 = load ptr, ptr %15, align 8, !tbaa !5
  %162 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %161, i32 0, i32 28
  %163 = load i8, ptr %162, align 4, !tbaa !115, !range !27, !noundef !28
  %164 = trunc i8 %163 to i1
  %165 = load ptr, ptr %15, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %165, i32 0, i32 27
  %167 = zext i1 %164 to i8
  store i8 %167, ptr %166, align 1, !tbaa !116
  %168 = load ptr, ptr %2, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.ImGuiTable, ptr %168, i32 0, i32 95
  store i8 1, ptr %169, align 1, !tbaa !117
  br label %170

170:                                              ; preds = %160, %148
  %171 = load ptr, ptr %15, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %171, i32 0, i32 27
  %173 = load i8, ptr %172, align 1, !tbaa !116, !range !27, !noundef !28
  %174 = trunc i8 %173 to i1
  br i1 %174, label %175, label %181

175:                                              ; preds = %170
  %176 = load ptr, ptr %15, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %176, i32 0, i32 0
  %178 = load i32, ptr %177, align 4, !tbaa !114
  %179 = and i32 %178, 1
  %180 = icmp eq i32 %179, 0
  br label %181

181:                                              ; preds = %175, %170
  %182 = phi i1 [ false, %170 ], [ %180, %175 ]
  %183 = load ptr, ptr %15, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %183, i32 0, i32 26
  %185 = zext i1 %182 to i8
  store i8 %185, ptr %184, align 2, !tbaa !118
  %186 = load ptr, ptr %15, align 8, !tbaa !5
  %187 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %186, i32 0, i32 22
  %188 = load i16, ptr %187, align 2, !tbaa !119
  %189 = sext i16 %188 to i32
  %190 = icmp ne i32 %189, -1
  br i1 %190, label %191, label %199

191:                                              ; preds = %181
  %192 = load ptr, ptr %15, align 8, !tbaa !5
  %193 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %192, i32 0, i32 26
  %194 = load i8, ptr %193, align 2, !tbaa !118, !range !27, !noundef !28
  %195 = trunc i8 %194 to i1
  br i1 %195, label %199, label %196

196:                                              ; preds = %191
  %197 = load ptr, ptr %2, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.ImGuiTable, ptr %197, i32 0, i32 91
  store i8 1, ptr %198, align 1, !tbaa !120
  br label %199

199:                                              ; preds = %196, %191, %181
  %200 = load ptr, ptr %15, align 8, !tbaa !5
  %201 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %200, i32 0, i32 22
  %202 = load i16, ptr %201, align 2, !tbaa !119
  %203 = sext i16 %202 to i32
  %204 = icmp sgt i32 %203, 0
  br i1 %204, label %205, label %214

205:                                              ; preds = %199
  %206 = load ptr, ptr %2, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.ImGuiTable, ptr %206, i32 0, i32 1
  %208 = load i32, ptr %207, align 4, !tbaa !29
  %209 = and i32 %208, 67108864
  %210 = icmp ne i32 %209, 0
  br i1 %210, label %214, label %211

211:                                              ; preds = %205
  %212 = load ptr, ptr %2, align 8, !tbaa !5
  %213 = getelementptr inbounds %struct.ImGuiTable, ptr %212, i32 0, i32 91
  store i8 1, ptr %213, align 1, !tbaa !120
  br label %214

214:                                              ; preds = %211, %205, %199
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #10
  %215 = load ptr, ptr %15, align 8, !tbaa !5
  %216 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %215, i32 0, i32 0
  %217 = load i32, ptr %216, align 4, !tbaa !114
  %218 = and i32 %217, 16
  %219 = icmp ne i32 %218, 0
  br i1 %219, label %220, label %225

220:                                              ; preds = %214
  %221 = load ptr, ptr %15, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %221, i32 0, i32 4
  %223 = load float, ptr %222, align 4, !tbaa !121
  %224 = fcmp olt float %223, 0.000000e+00
  br label %230

225:                                              ; preds = %214
  %226 = load ptr, ptr %15, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %226, i32 0, i32 6
  %228 = load float, ptr %227, align 4, !tbaa !122
  %229 = fcmp olt float %228, 0.000000e+00
  br label %230

230:                                              ; preds = %225, %220
  %231 = phi i1 [ %224, %220 ], [ %229, %225 ]
  %232 = zext i1 %231 to i8
  store i8 %232, ptr %16, align 1, !tbaa !106
  %233 = load i8, ptr %16, align 1, !tbaa !106, !range !27, !noundef !28
  %234 = trunc i8 %233 to i1
  br i1 %234, label %235, label %240

235:                                              ; preds = %230
  %236 = load ptr, ptr %15, align 8, !tbaa !5
  %237 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %236, i32 0, i32 36
  store i8 7, ptr %237, align 4, !tbaa !123
  %238 = load ptr, ptr %15, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %238, i32 0, i32 35
  store i8 7, ptr %239, align 1, !tbaa !124
  br label %240

240:                                              ; preds = %235, %230
  %241 = load ptr, ptr %15, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %241, i32 0, i32 26
  %243 = load i8, ptr %242, align 2, !tbaa !118, !range !27, !noundef !28
  %244 = trunc i8 %243 to i1
  br i1 %244, label %248, label %245

245:                                              ; preds = %240
  %246 = load ptr, ptr %15, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %246, i32 0, i32 19
  store i16 -1, ptr %247, align 4, !tbaa !125
  store i32 4, ptr %13, align 4
  br label %372

248:                                              ; preds = %240
  %249 = load i32, ptr %7, align 4, !tbaa !30
  %250 = trunc i32 %249 to i16
  %251 = load ptr, ptr %15, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %251, i32 0, i32 20
  store i16 %250, ptr %252, align 2, !tbaa !126
  %253 = load ptr, ptr %15, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %253, i32 0, i32 21
  store i16 -1, ptr %254, align 4, !tbaa !127
  %255 = load i32, ptr %7, align 4, !tbaa !30
  %256 = icmp ne i32 %255, -1
  br i1 %256, label %257, label %265

257:                                              ; preds = %248
  %258 = load i32, ptr %14, align 4, !tbaa !30
  %259 = trunc i32 %258 to i16
  %260 = load ptr, ptr %2, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.ImGuiTable, ptr %260, i32 0, i32 4
  %262 = load i32, ptr %7, align 4, !tbaa !30
  %263 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %261, i32 noundef %262)
  %264 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %263, i32 0, i32 21
  store i16 %259, ptr %264, align 4, !tbaa !127
  br label %270

265:                                              ; preds = %248
  %266 = load i32, ptr %14, align 4, !tbaa !30
  %267 = trunc i32 %266 to i16
  %268 = load ptr, ptr %2, align 8, !tbaa !5
  %269 = getelementptr inbounds %struct.ImGuiTable, ptr %268, i32 0, i32 75
  store i16 %267, ptr %269, align 8, !tbaa !36
  br label %270

270:                                              ; preds = %265, %257
  %271 = load ptr, ptr %2, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.ImGuiTable, ptr %271, i32 0, i32 64
  %273 = load i16, ptr %272, align 2, !tbaa !32
  %274 = add i16 %273, 1
  store i16 %274, ptr %272, align 2, !tbaa !32
  %275 = load ptr, ptr %15, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %275, i32 0, i32 19
  store i16 %273, ptr %276, align 4, !tbaa !125
  %277 = load ptr, ptr %2, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.ImGuiTable, ptr %277, i32 0, i32 8
  %279 = load ptr, ptr %278, align 8, !tbaa !33
  %280 = load i32, ptr %14, align 4, !tbaa !30
  call void @_Z16ImBitArraySetBitPji(ptr noundef %279, i32 noundef %280)
  %281 = load ptr, ptr %2, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.ImGuiTable, ptr %281, i32 0, i32 7
  %283 = load ptr, ptr %282, align 8, !tbaa !35
  %284 = load ptr, ptr %15, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %284, i32 0, i32 18
  %286 = load i16, ptr %285, align 2, !tbaa !128
  %287 = sext i16 %286 to i32
  call void @_Z16ImBitArraySetBitPji(ptr noundef %283, i32 noundef %287)
  %288 = load i32, ptr %14, align 4, !tbaa !30
  store i32 %288, ptr %7, align 4, !tbaa !30
  %289 = load ptr, ptr %15, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %289, i32 0, i32 19
  %291 = load i16, ptr %290, align 4, !tbaa !125
  %292 = sext i16 %291 to i32
  %293 = load ptr, ptr %15, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %293, i32 0, i32 18
  %295 = load i16, ptr %294, align 2, !tbaa !128
  %296 = sext i16 %295 to i32
  %297 = icmp sle i32 %292, %296
  br i1 %297, label %298, label %299

298:                                              ; preds = %270
  br label %301

299:                                              ; preds = %270
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 817, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

300:                                              ; No predecessors!
  br label %301

301:                                              ; preds = %300, %298
  %302 = load ptr, ptr %15, align 8, !tbaa !5
  %303 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %302, i32 0, i32 33
  %304 = load i8, ptr %303, align 1, !tbaa !129, !range !27, !noundef !28
  %305 = trunc i8 %304 to i1
  br i1 %305, label %312, label %306

306:                                              ; preds = %301
  %307 = load ptr, ptr %2, align 8, !tbaa !5
  %308 = load ptr, ptr %15, align 8, !tbaa !5
  %309 = call noundef float @_ZN5ImGui23TableGetColumnWidthAutoEP10ImGuiTableP16ImGuiTableColumn(ptr noundef %307, ptr noundef %308)
  %310 = load ptr, ptr %15, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %310, i32 0, i32 5
  store float %309, ptr %311, align 4, !tbaa !130
  br label %312

312:                                              ; preds = %306, %301
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #10
  %313 = load ptr, ptr %15, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %313, i32 0, i32 0
  %315 = load i32, ptr %314, align 4, !tbaa !114
  %316 = and i32 %315, 32
  %317 = icmp eq i32 %316, 0
  %318 = zext i1 %317 to i8
  store i8 %318, ptr %17, align 1, !tbaa !106
  %319 = load i8, ptr %17, align 1, !tbaa !106, !range !27, !noundef !28
  %320 = trunc i8 %319 to i1
  br i1 %320, label %321, label %322

321:                                              ; preds = %312
  store i8 1, ptr %9, align 1, !tbaa !106
  br label %322

322:                                              ; preds = %321, %312
  %323 = load ptr, ptr %15, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %323, i32 0, i32 0
  %325 = load i32, ptr %324, align 4, !tbaa !114
  %326 = and i32 %325, 16
  %327 = icmp ne i32 %326, 0
  br i1 %327, label %328, label %342

328:                                              ; preds = %322
  %329 = load ptr, ptr %15, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %329, i32 0, i32 7
  %331 = load float, ptr %330, align 4, !tbaa !113
  %332 = fcmp ogt float %331, 0.000000e+00
  br i1 %332, label %333, label %342

333:                                              ; preds = %328
  %334 = load i8, ptr %17, align 1, !tbaa !106, !range !27, !noundef !28
  %335 = trunc i8 %334 to i1
  br i1 %335, label %342, label %336

336:                                              ; preds = %333
  %337 = load ptr, ptr %15, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %337, i32 0, i32 7
  %339 = load float, ptr %338, align 4, !tbaa !113
  %340 = load ptr, ptr %15, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %340, i32 0, i32 5
  store float %339, ptr %341, align 4, !tbaa !130
  br label %342

342:                                              ; preds = %336, %333, %328, %322
  %343 = load ptr, ptr %15, align 8, !tbaa !5
  %344 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %343, i32 0, i32 35
  %345 = load i8, ptr %344, align 1, !tbaa !124
  %346 = zext i8 %345 to i32
  %347 = icmp ne i32 %346, 0
  br i1 %347, label %348, label %349

348:                                              ; preds = %342
  store i8 1, ptr %8, align 1, !tbaa !106
  br label %349

349:                                              ; preds = %348, %342
  %350 = load ptr, ptr %15, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %350, i32 0, i32 0
  %352 = load i32, ptr %351, align 4, !tbaa !114
  %353 = and i32 %352, 8
  %354 = icmp ne i32 %353, 0
  br i1 %354, label %355, label %363

355:                                              ; preds = %349
  %356 = load ptr, ptr %15, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %356, i32 0, i32 5
  %358 = load float, ptr %357, align 4, !tbaa !130
  %359 = load float, ptr %10, align 4, !tbaa !107
  %360 = fadd float %359, %358
  store float %360, ptr %10, align 4, !tbaa !107
  %361 = load i32, ptr %6, align 4, !tbaa !30
  %362 = add nsw i32 %361, 1
  store i32 %362, ptr %6, align 4, !tbaa !30
  br label %371

363:                                              ; preds = %349
  %364 = load float, ptr %11, align 4, !tbaa !107
  %365 = load ptr, ptr %15, align 8, !tbaa !5
  %366 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %365, i32 0, i32 5
  %367 = load float, ptr %366, align 4, !tbaa !130
  %368 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %364, float noundef %367)
  store float %368, ptr %11, align 4, !tbaa !107
  %369 = load i32, ptr %5, align 4, !tbaa !30
  %370 = add nsw i32 %369, 1
  store i32 %370, ptr %5, align 4, !tbaa !30
  br label %371

371:                                              ; preds = %363, %355
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #10
  store i32 0, ptr %13, align 4
  br label %372

372:                                              ; preds = %371, %245
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  %373 = load i32, ptr %13, align 4
  switch i32 %373, label %1754 [
    i32 0, label %374
    i32 4, label %375
  ]

374:                                              ; preds = %372
  br label %375

375:                                              ; preds = %374, %372
  %376 = load i32, ptr %12, align 4, !tbaa !30
  %377 = add nsw i32 %376, 1
  store i32 %377, ptr %12, align 4, !tbaa !30
  br label %93, !llvm.loop !131

378:                                              ; preds = %99
  %379 = load ptr, ptr %2, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.ImGuiTable, ptr %379, i32 0, i32 1
  %381 = load i32, ptr %380, align 4, !tbaa !29
  %382 = and i32 %381, 8
  %383 = icmp ne i32 %382, 0
  br i1 %383, label %384, label %399

384:                                              ; preds = %378
  %385 = load ptr, ptr %2, align 8, !tbaa !5
  %386 = getelementptr inbounds %struct.ImGuiTable, ptr %385, i32 0, i32 63
  %387 = load i16, ptr %386, align 8, !tbaa !133
  %388 = sext i16 %387 to i32
  %389 = icmp eq i32 %388, 0
  br i1 %389, label %390, label %399

390:                                              ; preds = %384
  %391 = load ptr, ptr %2, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.ImGuiTable, ptr %391, i32 0, i32 1
  %393 = load i32, ptr %392, align 4, !tbaa !29
  %394 = and i32 %393, 134217728
  %395 = icmp ne i32 %394, 0
  br i1 %395, label %399, label %396

396:                                              ; preds = %390
  %397 = load ptr, ptr %2, align 8, !tbaa !5
  %398 = getelementptr inbounds %struct.ImGuiTable, ptr %397, i32 0, i32 91
  store i8 1, ptr %398, align 1, !tbaa !120
  br label %399

399:                                              ; preds = %396, %390, %384, %378
  %400 = load i32, ptr %7, align 4, !tbaa !30
  %401 = trunc i32 %400 to i16
  %402 = load ptr, ptr %2, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.ImGuiTable, ptr %402, i32 0, i32 76
  store i16 %401, ptr %403, align 2, !tbaa !134
  %404 = load ptr, ptr %2, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.ImGuiTable, ptr %404, i32 0, i32 75
  %406 = load i16, ptr %405, align 8, !tbaa !36
  %407 = sext i16 %406 to i32
  %408 = icmp sge i32 %407, 0
  br i1 %408, label %409, label %415

409:                                              ; preds = %399
  %410 = load ptr, ptr %2, align 8, !tbaa !5
  %411 = getelementptr inbounds %struct.ImGuiTable, ptr %410, i32 0, i32 76
  %412 = load i16, ptr %411, align 2, !tbaa !134
  %413 = sext i16 %412 to i32
  %414 = icmp sge i32 %413, 0
  br label %415

415:                                              ; preds = %409, %399
  %416 = phi i1 [ false, %399 ], [ %414, %409 ]
  br i1 %416, label %417, label %418

417:                                              ; preds = %415
  br label %420

418:                                              ; preds = %415
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 847, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

419:                                              ; No predecessors!
  br label %420

420:                                              ; preds = %419, %417
  %421 = load i8, ptr %8, align 1, !tbaa !106, !range !27, !noundef !28
  %422 = trunc i8 %421 to i1
  br i1 %422, label %423, label %436

423:                                              ; preds = %420
  %424 = load ptr, ptr %2, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.ImGuiTable, ptr %424, i32 0, i32 53
  %426 = load ptr, ptr %425, align 8, !tbaa !135
  %427 = load ptr, ptr %2, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.ImGuiTable, ptr %427, i32 0, i32 54
  %429 = load ptr, ptr %428, align 8, !tbaa !136
  %430 = icmp ne ptr %426, %429
  br i1 %430, label %431, label %436

431:                                              ; preds = %423
  %432 = load ptr, ptr %2, align 8, !tbaa !5
  %433 = getelementptr inbounds %struct.ImGuiTable, ptr %432, i32 0, i32 54
  %434 = load ptr, ptr %433, align 8, !tbaa !136
  %435 = getelementptr inbounds %struct.ImGuiWindow, ptr %434, i32 0, i32 43
  store i8 0, ptr %435, align 8, !tbaa !137
  br label %436

436:                                              ; preds = %431, %423, %420
  %437 = load i8, ptr %8, align 1, !tbaa !106, !range !27, !noundef !28
  %438 = trunc i8 %437 to i1
  br i1 %438, label %439, label %442

439:                                              ; preds = %436
  %440 = load ptr, ptr %2, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.ImGuiTable, ptr %440, i32 0, i32 95
  store i8 1, ptr %441, align 1, !tbaa !117
  br label %442

442:                                              ; preds = %439, %436
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  store float 0.000000e+00, ptr %18, align 4, !tbaa !107
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  store float 0.000000e+00, ptr %19, align 4, !tbaa !107
  %443 = load ptr, ptr %2, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.ImGuiTable, ptr %443, i32 0, i32 78
  store i16 -1, ptr %444, align 2, !tbaa !152
  %445 = load ptr, ptr %2, align 8, !tbaa !5
  %446 = getelementptr inbounds %struct.ImGuiTable, ptr %445, i32 0, i32 77
  store i16 -1, ptr %446, align 4, !tbaa !153
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  store i32 0, ptr %20, align 4, !tbaa !30
  br label %447

447:                                              ; preds = %676, %442
  %448 = load i32, ptr %20, align 4, !tbaa !30
  %449 = load ptr, ptr %2, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.ImGuiTable, ptr %449, i32 0, i32 13
  %451 = load i32, ptr %450, align 4, !tbaa !34
  %452 = icmp slt i32 %448, %451
  br i1 %452, label %454, label %453

453:                                              ; preds = %447
  store i32 5, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %679

454:                                              ; preds = %447
  %455 = load ptr, ptr %2, align 8, !tbaa !5
  %456 = getelementptr inbounds %struct.ImGuiTable, ptr %455, i32 0, i32 8
  %457 = load ptr, ptr %456, align 8, !tbaa !33
  %458 = load i32, ptr %20, align 4, !tbaa !30
  %459 = ashr i32 %458, 5
  %460 = sext i32 %459 to i64
  %461 = getelementptr inbounds i32, ptr %457, i64 %460
  %462 = load i32, ptr %461, align 4, !tbaa !30
  %463 = load i32, ptr %20, align 4, !tbaa !30
  %464 = and i32 %463, 31
  %465 = shl i32 1, %464
  %466 = and i32 %462, %465
  %467 = icmp ne i32 %466, 0
  br i1 %467, label %469, label %468

468:                                              ; preds = %454
  br label %676

469:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  %470 = load ptr, ptr %2, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.ImGuiTable, ptr %470, i32 0, i32 4
  %472 = load i32, ptr %20, align 4, !tbaa !30
  %473 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %471, i32 noundef %472)
  store ptr %473, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #10
  %474 = load ptr, ptr %21, align 8, !tbaa !5
  %475 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %474, i32 0, i32 0
  %476 = load i32, ptr %475, align 4, !tbaa !114
  %477 = and i32 %476, 32
  %478 = icmp eq i32 %477, 0
  %479 = zext i1 %478 to i8
  store i8 %479, ptr %22, align 1, !tbaa !106
  %480 = load ptr, ptr %21, align 8, !tbaa !5
  %481 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %480, i32 0, i32 0
  %482 = load i32, ptr %481, align 4, !tbaa !114
  %483 = and i32 %482, 16
  %484 = icmp ne i32 %483, 0
  br i1 %484, label %485, label %564

485:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %486 = load ptr, ptr %21, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %486, i32 0, i32 5
  %488 = load float, ptr %487, align 4, !tbaa !130
  store float %488, ptr %23, align 4, !tbaa !107
  %489 = load i32, ptr %4, align 4, !tbaa !30
  %490 = icmp eq i32 %489, 16384
  br i1 %490, label %491, label %502

491:                                              ; preds = %485
  %492 = load ptr, ptr %21, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %492, i32 0, i32 35
  %494 = load i8, ptr %493, align 1, !tbaa !124
  %495 = zext i8 %494 to i32
  %496 = icmp ne i32 %495, 0
  br i1 %496, label %500, label %497

497:                                              ; preds = %491
  %498 = load i8, ptr %22, align 1, !tbaa !106, !range !27, !noundef !28
  %499 = trunc i8 %498 to i1
  br i1 %499, label %502, label %500

500:                                              ; preds = %497, %491
  %501 = load float, ptr %11, align 4, !tbaa !107
  store float %501, ptr %23, align 4, !tbaa !107
  br label %502

502:                                              ; preds = %500, %497, %485
  %503 = load ptr, ptr %21, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %503, i32 0, i32 35
  %505 = load i8, ptr %504, align 1, !tbaa !124
  %506 = zext i8 %505 to i32
  %507 = icmp ne i32 %506, 0
  br i1 %507, label %508, label %512

508:                                              ; preds = %502
  %509 = load float, ptr %23, align 4, !tbaa !107
  %510 = load ptr, ptr %21, align 8, !tbaa !5
  %511 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %510, i32 0, i32 4
  store float %509, ptr %511, align 4, !tbaa !121
  br label %531

512:                                              ; preds = %502
  %513 = load ptr, ptr %21, align 8, !tbaa !5
  %514 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %513, i32 0, i32 0
  %515 = load i32, ptr %514, align 4, !tbaa !114
  %516 = and i32 %515, 16
  %517 = icmp ne i32 %516, 0
  br i1 %517, label %518, label %530

518:                                              ; preds = %512
  %519 = load i8, ptr %22, align 1, !tbaa !106, !range !27, !noundef !28
  %520 = trunc i8 %519 to i1
  br i1 %520, label %530, label %521

521:                                              ; preds = %518
  %522 = load ptr, ptr %21, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %522, i32 0, i32 31
  %524 = load i8, ptr %523, align 1, !tbaa !154, !range !27, !noundef !28
  %525 = trunc i8 %524 to i1
  br i1 %525, label %526, label %530

526:                                              ; preds = %521
  %527 = load float, ptr %23, align 4, !tbaa !107
  %528 = load ptr, ptr %21, align 8, !tbaa !5
  %529 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %528, i32 0, i32 4
  store float %527, ptr %529, align 4, !tbaa !121
  br label %530

530:                                              ; preds = %526, %521, %518, %512
  br label %531

531:                                              ; preds = %530, %508
  %532 = load ptr, ptr %21, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %532, i32 0, i32 35
  %534 = load i8, ptr %533, align 1, !tbaa !124
  %535 = zext i8 %534 to i32
  %536 = icmp sgt i32 %535, 1
  br i1 %536, label %537, label %558

537:                                              ; preds = %531
  %538 = load ptr, ptr %2, align 8, !tbaa !5
  %539 = getelementptr inbounds %struct.ImGuiTable, ptr %538, i32 0, i32 90
  %540 = load i8, ptr %539, align 4, !tbaa !155, !range !27, !noundef !28
  %541 = trunc i8 %540 to i1
  br i1 %541, label %542, label %558

542:                                              ; preds = %537
  %543 = load ptr, ptr %21, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %543, i32 0, i32 33
  %545 = load i8, ptr %544, align 1, !tbaa !129, !range !27, !noundef !28
  %546 = trunc i8 %545 to i1
  br i1 %546, label %558, label %547

547:                                              ; preds = %542
  %548 = load ptr, ptr %21, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %548, i32 0, i32 4
  %550 = load float, ptr %549, align 4, !tbaa !121
  %551 = load ptr, ptr %2, align 8, !tbaa !5
  %552 = getelementptr inbounds %struct.ImGuiTable, ptr %551, i32 0, i32 31
  %553 = load float, ptr %552, align 4, !tbaa !105
  %554 = fmul float %553, 4.000000e+00
  %555 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %550, float noundef %554)
  %556 = load ptr, ptr %21, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %556, i32 0, i32 4
  store float %555, ptr %557, align 4, !tbaa !121
  br label %558

558:                                              ; preds = %547, %542, %537, %531
  %559 = load ptr, ptr %21, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %559, i32 0, i32 4
  %561 = load float, ptr %560, align 4, !tbaa !121
  %562 = load float, ptr %18, align 4, !tbaa !107
  %563 = fadd float %562, %561
  store float %563, ptr %18, align 4, !tbaa !107
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %668

564:                                              ; preds = %469
  %565 = load ptr, ptr %21, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %565, i32 0, i32 35
  %567 = load i8, ptr %566, align 1, !tbaa !124
  %568 = zext i8 %567 to i32
  %569 = icmp ne i32 %568, 0
  br i1 %569, label %578, label %570

570:                                              ; preds = %564
  %571 = load ptr, ptr %21, align 8, !tbaa !5
  %572 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %571, i32 0, i32 6
  %573 = load float, ptr %572, align 4, !tbaa !122
  %574 = fcmp olt float %573, 0.000000e+00
  br i1 %574, label %578, label %575

575:                                              ; preds = %570
  %576 = load i8, ptr %22, align 1, !tbaa !106, !range !27, !noundef !28
  %577 = trunc i8 %576 to i1
  br i1 %577, label %608, label %578

578:                                              ; preds = %575, %570, %564
  %579 = load ptr, ptr %21, align 8, !tbaa !5
  %580 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %579, i32 0, i32 7
  %581 = load float, ptr %580, align 4, !tbaa !113
  %582 = fcmp ogt float %581, 0.000000e+00
  br i1 %582, label %583, label %589

583:                                              ; preds = %578
  %584 = load ptr, ptr %21, align 8, !tbaa !5
  %585 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %584, i32 0, i32 7
  %586 = load float, ptr %585, align 4, !tbaa !113
  %587 = load ptr, ptr %21, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %587, i32 0, i32 6
  store float %586, ptr %588, align 4, !tbaa !122
  br label %607

589:                                              ; preds = %578
  %590 = load i32, ptr %4, align 4, !tbaa !30
  %591 = icmp eq i32 %590, 24576
  br i1 %591, label %592, label %603

592:                                              ; preds = %589
  %593 = load ptr, ptr %21, align 8, !tbaa !5
  %594 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %593, i32 0, i32 5
  %595 = load float, ptr %594, align 4, !tbaa !130
  %596 = load float, ptr %10, align 4, !tbaa !107
  %597 = fdiv float %595, %596
  %598 = load i32, ptr %6, align 4, !tbaa !30
  %599 = sitofp i32 %598 to float
  %600 = fmul float %597, %599
  %601 = load ptr, ptr %21, align 8, !tbaa !5
  %602 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %601, i32 0, i32 6
  store float %600, ptr %602, align 4, !tbaa !122
  br label %606

603:                                              ; preds = %589
  %604 = load ptr, ptr %21, align 8, !tbaa !5
  %605 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %604, i32 0, i32 6
  store float 1.000000e+00, ptr %605, align 4, !tbaa !122
  br label %606

606:                                              ; preds = %603, %592
  br label %607

607:                                              ; preds = %606, %583
  br label %608

608:                                              ; preds = %607, %575
  %609 = load ptr, ptr %21, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %609, i32 0, i32 6
  %611 = load float, ptr %610, align 4, !tbaa !122
  %612 = load float, ptr %19, align 4, !tbaa !107
  %613 = fadd float %612, %611
  store float %613, ptr %19, align 4, !tbaa !107
  %614 = load ptr, ptr %2, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.ImGuiTable, ptr %614, i32 0, i32 77
  %616 = load i16, ptr %615, align 4, !tbaa !153
  %617 = sext i16 %616 to i32
  %618 = icmp eq i32 %617, -1
  br i1 %618, label %635, label %619

619:                                              ; preds = %608
  %620 = load ptr, ptr %2, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.ImGuiTable, ptr %620, i32 0, i32 4
  %622 = load ptr, ptr %2, align 8, !tbaa !5
  %623 = getelementptr inbounds %struct.ImGuiTable, ptr %622, i32 0, i32 77
  %624 = load i16, ptr %623, align 4, !tbaa !153
  %625 = sext i16 %624 to i32
  %626 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %621, i32 noundef %625)
  %627 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %626, i32 0, i32 18
  %628 = load i16, ptr %627, align 2, !tbaa !128
  %629 = sext i16 %628 to i32
  %630 = load ptr, ptr %21, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %630, i32 0, i32 18
  %632 = load i16, ptr %631, align 2, !tbaa !128
  %633 = sext i16 %632 to i32
  %634 = icmp sgt i32 %629, %633
  br i1 %634, label %635, label %640

635:                                              ; preds = %619, %608
  %636 = load i32, ptr %20, align 4, !tbaa !30
  %637 = trunc i32 %636 to i16
  %638 = load ptr, ptr %2, align 8, !tbaa !5
  %639 = getelementptr inbounds %struct.ImGuiTable, ptr %638, i32 0, i32 77
  store i16 %637, ptr %639, align 4, !tbaa !153
  br label %640

640:                                              ; preds = %635, %619
  %641 = load ptr, ptr %2, align 8, !tbaa !5
  %642 = getelementptr inbounds %struct.ImGuiTable, ptr %641, i32 0, i32 78
  %643 = load i16, ptr %642, align 2, !tbaa !152
  %644 = sext i16 %643 to i32
  %645 = icmp eq i32 %644, -1
  br i1 %645, label %662, label %646

646:                                              ; preds = %640
  %647 = load ptr, ptr %2, align 8, !tbaa !5
  %648 = getelementptr inbounds %struct.ImGuiTable, ptr %647, i32 0, i32 4
  %649 = load ptr, ptr %2, align 8, !tbaa !5
  %650 = getelementptr inbounds %struct.ImGuiTable, ptr %649, i32 0, i32 78
  %651 = load i16, ptr %650, align 2, !tbaa !152
  %652 = sext i16 %651 to i32
  %653 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %648, i32 noundef %652)
  %654 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %653, i32 0, i32 18
  %655 = load i16, ptr %654, align 2, !tbaa !128
  %656 = sext i16 %655 to i32
  %657 = load ptr, ptr %21, align 8, !tbaa !5
  %658 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %657, i32 0, i32 18
  %659 = load i16, ptr %658, align 2, !tbaa !128
  %660 = sext i16 %659 to i32
  %661 = icmp slt i32 %656, %660
  br i1 %661, label %662, label %667

662:                                              ; preds = %646, %640
  %663 = load i32, ptr %20, align 4, !tbaa !30
  %664 = trunc i32 %663 to i16
  %665 = load ptr, ptr %2, align 8, !tbaa !5
  %666 = getelementptr inbounds %struct.ImGuiTable, ptr %665, i32 0, i32 78
  store i16 %664, ptr %666, align 2, !tbaa !152
  br label %667

667:                                              ; preds = %662, %646
  br label %668

668:                                              ; preds = %667, %558
  %669 = load ptr, ptr %21, align 8, !tbaa !5
  %670 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %669, i32 0, i32 33
  store i8 0, ptr %670, align 1, !tbaa !129
  %671 = load ptr, ptr %2, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.ImGuiTable, ptr %671, i32 0, i32 33
  %673 = load float, ptr %672, align 4, !tbaa !156
  %674 = load float, ptr %18, align 4, !tbaa !107
  %675 = call float @llvm.fmuladd.f32(float %673, float 2.000000e+00, float %674)
  store float %675, ptr %18, align 4, !tbaa !107
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br label %676

676:                                              ; preds = %668, %468
  %677 = load i32, ptr %20, align 4, !tbaa !30
  %678 = add nsw i32 %677, 1
  store i32 %678, ptr %20, align 4, !tbaa !30
  br label %447, !llvm.loop !157

679:                                              ; preds = %453
  %680 = load i32, ptr %5, align 4, !tbaa !30
  %681 = trunc i32 %680 to i16
  %682 = load ptr, ptr %2, align 8, !tbaa !5
  %683 = getelementptr inbounds %struct.ImGuiTable, ptr %682, i32 0, i32 65
  store i16 %681, ptr %683, align 4, !tbaa !158
  %684 = load float, ptr %19, align 4, !tbaa !107
  %685 = load ptr, ptr %2, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.ImGuiTable, ptr %685, i32 0, i32 40
  store float %684, ptr %686, align 8, !tbaa !159
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #10
  %687 = load ptr, ptr %2, align 8, !tbaa !5
  %688 = getelementptr inbounds %struct.ImGuiTable, ptr %687, i32 0, i32 46
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %24, ptr align 8 %688, i64 16, i1 false), !tbaa.struct !160
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %689 = load ptr, ptr %2, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct.ImGuiTable, ptr %689, i32 0, i32 32
  %691 = load float, ptr %690, align 8, !tbaa !161
  %692 = load ptr, ptr %2, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.ImGuiTable, ptr %692, i32 0, i32 35
  %694 = load float, ptr %693, align 4, !tbaa !162
  %695 = load ptr, ptr %2, align 8, !tbaa !5
  %696 = getelementptr inbounds %struct.ImGuiTable, ptr %695, i32 0, i32 36
  %697 = load float, ptr %696, align 8, !tbaa !163
  %698 = fadd float %694, %697
  %699 = load ptr, ptr %2, align 8, !tbaa !5
  %700 = getelementptr inbounds %struct.ImGuiTable, ptr %699, i32 0, i32 64
  %701 = load i16, ptr %700, align 2, !tbaa !32
  %702 = sext i16 %701 to i32
  %703 = sub nsw i32 %702, 1
  %704 = sitofp i32 %703 to float
  %705 = fmul float %698, %704
  %706 = call float @llvm.fmuladd.f32(float %691, float 2.000000e+00, float %705)
  store float %706, ptr %25, align 4, !tbaa !107
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %707 = load ptr, ptr %2, align 8, !tbaa !5
  %708 = getelementptr inbounds %struct.ImGuiTable, ptr %707, i32 0, i32 102
  %709 = load i8, ptr %708, align 8, !tbaa !164, !range !27, !noundef !28
  %710 = trunc i8 %709 to i1
  br i1 %710, label %711, label %723

711:                                              ; preds = %679
  %712 = load ptr, ptr %2, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.ImGuiTable, ptr %712, i32 0, i32 54
  %714 = load ptr, ptr %713, align 8, !tbaa !136
  %715 = getelementptr inbounds %struct.ImGuiWindow, ptr %714, i32 0, i32 36
  %716 = load i8, ptr %715, align 1, !tbaa !165, !range !27, !noundef !28
  %717 = trunc i8 %716 to i1
  br i1 %717, label %723, label %718

718:                                              ; preds = %711
  %719 = load ptr, ptr %3, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.ImGuiContext, ptr %719, i32 0, i32 4
  %721 = getelementptr inbounds %struct.ImGuiStyle, ptr %720, i32 0, i32 21
  %722 = load float, ptr %721, align 4, !tbaa !166
  br label %724

723:                                              ; preds = %711, %679
  br label %724

724:                                              ; preds = %723, %718
  %725 = phi float [ %722, %718 ], [ 0.000000e+00, %723 ]
  store float %725, ptr %26, align 4, !tbaa !107
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %726 = load ptr, ptr %2, align 8, !tbaa !5
  %727 = getelementptr inbounds %struct.ImGuiTable, ptr %726, i32 0, i32 1
  %728 = load i32, ptr %727, align 4, !tbaa !29
  %729 = and i32 %728, 16777216
  %730 = icmp ne i32 %729, 0
  br i1 %730, label %731, label %740

731:                                              ; preds = %724
  %732 = load ptr, ptr %2, align 8, !tbaa !5
  %733 = getelementptr inbounds %struct.ImGuiTable, ptr %732, i32 0, i32 37
  %734 = load float, ptr %733, align 4, !tbaa !167
  %735 = fcmp oeq float %734, 0.000000e+00
  br i1 %735, label %736, label %740

736:                                              ; preds = %731
  %737 = load ptr, ptr %2, align 8, !tbaa !5
  %738 = getelementptr inbounds %struct.ImGuiTable, ptr %737, i32 0, i32 47
  %739 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %738)
  br label %742

740:                                              ; preds = %731, %724
  %741 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %24)
  br label %742

742:                                              ; preds = %740, %736
  %743 = phi float [ %739, %736 ], [ %741, %740 ]
  %744 = load float, ptr %26, align 4, !tbaa !107
  %745 = fsub float %743, %744
  %746 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %745)
  store float %746, ptr %27, align 4, !tbaa !107
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %747 = load float, ptr %27, align 4, !tbaa !107
  %748 = load float, ptr %25, align 4, !tbaa !107
  %749 = fsub float %747, %748
  %750 = load float, ptr %18, align 4, !tbaa !107
  %751 = fsub float %749, %750
  store float %751, ptr %28, align 4, !tbaa !107
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %752 = load float, ptr %28, align 4, !tbaa !107
  store float %752, ptr %29, align 4, !tbaa !107
  %753 = load float, ptr %25, align 4, !tbaa !107
  %754 = load ptr, ptr %2, align 8, !tbaa !5
  %755 = getelementptr inbounds %struct.ImGuiTable, ptr %754, i32 0, i32 33
  %756 = load float, ptr %755, align 4, !tbaa !156
  %757 = fmul float %756, 2.000000e+00
  %758 = load ptr, ptr %2, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.ImGuiTable, ptr %758, i32 0, i32 64
  %760 = load i16, ptr %759, align 2, !tbaa !32
  %761 = sext i16 %760 to i32
  %762 = sitofp i32 %761 to float
  %763 = call float @llvm.fmuladd.f32(float %757, float %762, float %753)
  %764 = load ptr, ptr %2, align 8, !tbaa !5
  %765 = getelementptr inbounds %struct.ImGuiTable, ptr %764, i32 0, i32 38
  store float %763, ptr %765, align 8, !tbaa !168
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  store i32 0, ptr %30, align 4, !tbaa !30
  br label %766

766:                                              ; preds = %856, %742
  %767 = load i32, ptr %30, align 4, !tbaa !30
  %768 = load ptr, ptr %2, align 8, !tbaa !5
  %769 = getelementptr inbounds %struct.ImGuiTable, ptr %768, i32 0, i32 13
  %770 = load i32, ptr %769, align 4, !tbaa !34
  %771 = icmp slt i32 %767, %770
  br i1 %771, label %773, label %772

772:                                              ; preds = %766
  store i32 8, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %859

773:                                              ; preds = %766
  %774 = load ptr, ptr %2, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct.ImGuiTable, ptr %774, i32 0, i32 8
  %776 = load ptr, ptr %775, align 8, !tbaa !33
  %777 = load i32, ptr %30, align 4, !tbaa !30
  %778 = ashr i32 %777, 5
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds i32, ptr %776, i64 %779
  %781 = load i32, ptr %780, align 4, !tbaa !30
  %782 = load i32, ptr %30, align 4, !tbaa !30
  %783 = and i32 %782, 31
  %784 = shl i32 1, %783
  %785 = and i32 %781, %784
  %786 = icmp ne i32 %785, 0
  br i1 %786, label %788, label %787

787:                                              ; preds = %773
  br label %856

788:                                              ; preds = %773
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %789 = load ptr, ptr %2, align 8, !tbaa !5
  %790 = getelementptr inbounds %struct.ImGuiTable, ptr %789, i32 0, i32 4
  %791 = load i32, ptr %30, align 4, !tbaa !30
  %792 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %790, i32 noundef %791)
  store ptr %792, ptr %31, align 8, !tbaa !5
  %793 = load ptr, ptr %31, align 8, !tbaa !5
  %794 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %793, i32 0, i32 0
  %795 = load i32, ptr %794, align 4, !tbaa !114
  %796 = and i32 %795, 8
  %797 = icmp ne i32 %796, 0
  br i1 %797, label %798, label %821

798:                                              ; preds = %788
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %799 = load ptr, ptr %31, align 8, !tbaa !5
  %800 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %799, i32 0, i32 6
  %801 = load float, ptr %800, align 4, !tbaa !122
  %802 = load float, ptr %19, align 4, !tbaa !107
  %803 = fdiv float %801, %802
  store float %803, ptr %32, align 4, !tbaa !107
  %804 = load float, ptr %28, align 4, !tbaa !107
  %805 = load float, ptr %32, align 4, !tbaa !107
  %806 = fmul float %804, %805
  %807 = load ptr, ptr %2, align 8, !tbaa !5
  %808 = getelementptr inbounds %struct.ImGuiTable, ptr %807, i32 0, i32 31
  %809 = load float, ptr %808, align 4, !tbaa !105
  %810 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %806, float noundef %809)
  %811 = fadd float %810, 0x3F847AE140000000
  %812 = fptosi float %811 to i32
  %813 = sitofp i32 %812 to float
  %814 = load ptr, ptr %31, align 8, !tbaa !5
  %815 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %814, i32 0, i32 4
  store float %813, ptr %815, align 4, !tbaa !121
  %816 = load ptr, ptr %31, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %816, i32 0, i32 4
  %818 = load float, ptr %817, align 4, !tbaa !121
  %819 = load float, ptr %29, align 4, !tbaa !107
  %820 = fsub float %819, %818
  store float %820, ptr %29, align 4, !tbaa !107
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %821

821:                                              ; preds = %798, %788
  %822 = load ptr, ptr %31, align 8, !tbaa !5
  %823 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %822, i32 0, i32 21
  %824 = load i16, ptr %823, align 4, !tbaa !127
  %825 = sext i16 %824 to i32
  %826 = icmp eq i32 %825, -1
  br i1 %826, label %827, label %838

827:                                              ; preds = %821
  %828 = load ptr, ptr %2, align 8, !tbaa !5
  %829 = getelementptr inbounds %struct.ImGuiTable, ptr %828, i32 0, i32 77
  %830 = load i16, ptr %829, align 4, !tbaa !153
  %831 = sext i16 %830 to i32
  %832 = icmp ne i32 %831, -1
  br i1 %832, label %833, label %838

833:                                              ; preds = %827
  %834 = load ptr, ptr %31, align 8, !tbaa !5
  %835 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %834, i32 0, i32 0
  %836 = load i32, ptr %835, align 4, !tbaa !114
  %837 = or i32 %836, 1073741824
  store i32 %837, ptr %835, align 4, !tbaa !114
  br label %838

838:                                              ; preds = %833, %827, %821
  %839 = load ptr, ptr %31, align 8, !tbaa !5
  %840 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %839, i32 0, i32 4
  %841 = load float, ptr %840, align 4, !tbaa !121
  %842 = load ptr, ptr %2, align 8, !tbaa !5
  %843 = getelementptr inbounds %struct.ImGuiTable, ptr %842, i32 0, i32 31
  %844 = load float, ptr %843, align 4, !tbaa !105
  %845 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %841, float noundef %844)
  %846 = call noundef float @_ZL7ImFloorf(float noundef %845)
  %847 = load ptr, ptr %31, align 8, !tbaa !5
  %848 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %847, i32 0, i32 1
  store float %846, ptr %848, align 4, !tbaa !169
  %849 = load ptr, ptr %31, align 8, !tbaa !5
  %850 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %849, i32 0, i32 1
  %851 = load float, ptr %850, align 4, !tbaa !169
  %852 = load ptr, ptr %2, align 8, !tbaa !5
  %853 = getelementptr inbounds %struct.ImGuiTable, ptr %852, i32 0, i32 38
  %854 = load float, ptr %853, align 8, !tbaa !168
  %855 = fadd float %854, %851
  store float %855, ptr %853, align 8, !tbaa !168
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  br label %856

856:                                              ; preds = %838, %787
  %857 = load i32, ptr %30, align 4, !tbaa !30
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr %30, align 4, !tbaa !30
  br label %766, !llvm.loop !170

859:                                              ; preds = %772
  %860 = load float, ptr %29, align 4, !tbaa !107
  %861 = fcmp oge float %860, 1.000000e+00
  br i1 %861, label %862, label %934

862:                                              ; preds = %859
  %863 = load ptr, ptr %2, align 8, !tbaa !5
  %864 = getelementptr inbounds %struct.ImGuiTable, ptr %863, i32 0, i32 1
  %865 = load i32, ptr %864, align 4, !tbaa !29
  %866 = and i32 %865, 524288
  %867 = icmp ne i32 %866, 0
  br i1 %867, label %934, label %868

868:                                              ; preds = %862
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %869 = load ptr, ptr %2, align 8, !tbaa !5
  %870 = getelementptr inbounds %struct.ImGuiTable, ptr %869, i32 0, i32 13
  %871 = load i32, ptr %870, align 4, !tbaa !34
  %872 = sub nsw i32 %871, 1
  store i32 %872, ptr %33, align 4, !tbaa !30
  br label %873

873:                                              ; preds = %930, %868
  %874 = load float, ptr %19, align 4, !tbaa !107
  %875 = fcmp ogt float %874, 0.000000e+00
  br i1 %875, label %876, label %882

876:                                              ; preds = %873
  %877 = load float, ptr %29, align 4, !tbaa !107
  %878 = fcmp oge float %877, 1.000000e+00
  br i1 %878, label %879, label %882

879:                                              ; preds = %876
  %880 = load i32, ptr %33, align 4, !tbaa !30
  %881 = icmp sge i32 %880, 0
  br label %882

882:                                              ; preds = %879, %876, %873
  %883 = phi i1 [ false, %876 ], [ false, %873 ], [ %881, %879 ]
  br i1 %883, label %885, label %884

884:                                              ; preds = %882
  store i32 11, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %933

885:                                              ; preds = %882
  %886 = load ptr, ptr %2, align 8, !tbaa !5
  %887 = getelementptr inbounds %struct.ImGuiTable, ptr %886, i32 0, i32 7
  %888 = load ptr, ptr %887, align 8, !tbaa !35
  %889 = load i32, ptr %33, align 4, !tbaa !30
  %890 = ashr i32 %889, 5
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds i32, ptr %888, i64 %891
  %893 = load i32, ptr %892, align 4, !tbaa !30
  %894 = load i32, ptr %33, align 4, !tbaa !30
  %895 = and i32 %894, 31
  %896 = shl i32 1, %895
  %897 = and i32 %893, %896
  %898 = icmp ne i32 %897, 0
  br i1 %898, label %900, label %899

899:                                              ; preds = %885
  br label %930

900:                                              ; preds = %885
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %901 = load ptr, ptr %2, align 8, !tbaa !5
  %902 = getelementptr inbounds %struct.ImGuiTable, ptr %901, i32 0, i32 4
  %903 = load ptr, ptr %2, align 8, !tbaa !5
  %904 = getelementptr inbounds %struct.ImGuiTable, ptr %903, i32 0, i32 5
  %905 = load i32, ptr %33, align 4, !tbaa !30
  %906 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %904, i32 noundef %905)
  %907 = load i16, ptr %906, align 2, !tbaa !108
  %908 = sext i16 %907 to i32
  %909 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %902, i32 noundef %908)
  store ptr %909, ptr %34, align 8, !tbaa !5
  %910 = load ptr, ptr %34, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %910, i32 0, i32 0
  %912 = load i32, ptr %911, align 4, !tbaa !114
  %913 = and i32 %912, 8
  %914 = icmp ne i32 %913, 0
  br i1 %914, label %916, label %915

915:                                              ; preds = %900
  store i32 13, ptr %13, align 4
  br label %927

916:                                              ; preds = %900
  %917 = load ptr, ptr %34, align 8, !tbaa !5
  %918 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %917, i32 0, i32 4
  %919 = load float, ptr %918, align 4, !tbaa !121
  %920 = fadd float %919, 1.000000e+00
  store float %920, ptr %918, align 4, !tbaa !121
  %921 = load ptr, ptr %34, align 8, !tbaa !5
  %922 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %921, i32 0, i32 1
  %923 = load float, ptr %922, align 4, !tbaa !169
  %924 = fadd float %923, 1.000000e+00
  store float %924, ptr %922, align 4, !tbaa !169
  %925 = load float, ptr %29, align 4, !tbaa !107
  %926 = fsub float %925, 1.000000e+00
  store float %926, ptr %29, align 4, !tbaa !107
  store i32 0, ptr %13, align 4
  br label %927

927:                                              ; preds = %916, %915
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  %928 = load i32, ptr %13, align 4
  switch i32 %928, label %1754 [
    i32 0, label %929
    i32 13, label %930
  ]

929:                                              ; preds = %927
  br label %930

930:                                              ; preds = %929, %927, %899
  %931 = load i32, ptr %33, align 4, !tbaa !30
  %932 = add nsw i32 %931, -1
  store i32 %932, ptr %33, align 4, !tbaa !30
  br label %873, !llvm.loop !171

933:                                              ; preds = %884
  br label %934

934:                                              ; preds = %933, %862, %859
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  %935 = load ptr, ptr %2, align 8, !tbaa !5
  %936 = load ptr, ptr %2, align 8, !tbaa !5
  %937 = getelementptr inbounds %struct.ImGuiTable, ptr %936, i32 0, i32 16
  %938 = load i16, ptr %937, align 8, !tbaa !172
  %939 = sext i16 %938 to i32
  %940 = call noundef ptr @_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei(ptr noundef %935, i32 noundef %939)
  store ptr %940, ptr %35, align 8, !tbaa !5
  %941 = load ptr, ptr %35, align 8, !tbaa !5
  %942 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %941, i32 0, i32 5
  %943 = load i32, ptr %942, align 4, !tbaa !173
  %944 = load ptr, ptr %35, align 8, !tbaa !5
  %945 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %944, i32 0, i32 4
  store i32 %943, ptr %945, align 4, !tbaa !174
  %946 = load ptr, ptr %35, align 8, !tbaa !5
  %947 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %946, i32 0, i32 5
  store i32 -1, ptr %947, align 4, !tbaa !173
  %948 = load ptr, ptr %2, align 8, !tbaa !5
  %949 = getelementptr inbounds %struct.ImGuiTable, ptr %948, i32 0, i32 67
  store i16 -1, ptr %949, align 8, !tbaa !175
  %950 = load ptr, ptr %2, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.ImGuiTable, ptr %950, i32 0, i32 68
  store i16 -1, ptr %951, align 2, !tbaa !176
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #10
  %952 = load ptr, ptr %2, align 8, !tbaa !5
  %953 = getelementptr inbounds %struct.ImGuiTable, ptr %952, i32 0, i32 44
  %954 = getelementptr inbounds %struct.ImRect, ptr %953, i32 0, i32 0
  %955 = getelementptr inbounds %struct.ImVec2, ptr %954, i32 0, i32 0
  %956 = load float, ptr %955, align 8, !tbaa !177
  %957 = load ptr, ptr %2, align 8, !tbaa !5
  %958 = getelementptr inbounds %struct.ImGuiTable, ptr %957, i32 0, i32 44
  %959 = getelementptr inbounds %struct.ImRect, ptr %958, i32 0, i32 0
  %960 = getelementptr inbounds %struct.ImVec2, ptr %959, i32 0, i32 1
  %961 = load float, ptr %960, align 4, !tbaa !178
  %962 = load ptr, ptr %2, align 8, !tbaa !5
  %963 = getelementptr inbounds %struct.ImGuiTable, ptr %962, i32 0, i32 44
  %964 = getelementptr inbounds %struct.ImRect, ptr %963, i32 0, i32 1
  %965 = getelementptr inbounds %struct.ImVec2, ptr %964, i32 0, i32 0
  %966 = load float, ptr %965, align 8, !tbaa !179
  %967 = load ptr, ptr %2, align 8, !tbaa !5
  %968 = getelementptr inbounds %struct.ImGuiTable, ptr %967, i32 0, i32 44
  %969 = getelementptr inbounds %struct.ImRect, ptr %968, i32 0, i32 1
  %970 = getelementptr inbounds %struct.ImVec2, ptr %969, i32 0, i32 1
  %971 = load float, ptr %970, align 4, !tbaa !180
  %972 = load ptr, ptr %2, align 8, !tbaa !5
  %973 = getelementptr inbounds %struct.ImGuiTable, ptr %972, i32 0, i32 44
  %974 = getelementptr inbounds %struct.ImRect, ptr %973, i32 0, i32 0
  %975 = getelementptr inbounds %struct.ImVec2, ptr %974, i32 0, i32 1
  %976 = load float, ptr %975, align 4, !tbaa !178
  %977 = load ptr, ptr %35, align 8, !tbaa !5
  %978 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %977, i32 0, i32 1
  %979 = load float, ptr %978, align 4, !tbaa !181
  %980 = fadd float %976, %979
  %981 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %971, float noundef %980)
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %36, float noundef %956, float noundef %961, float noundef %966, float noundef %981)
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  %982 = load ptr, ptr %3, align 8, !tbaa !5
  %983 = getelementptr inbounds %struct.ImGuiContext, ptr %982, i32 0, i32 50
  %984 = load i32, ptr %983, align 8, !tbaa !182
  store i32 %984, ptr %37, align 4, !tbaa !30
  %985 = load ptr, ptr %3, align 8, !tbaa !5
  %986 = getelementptr inbounds %struct.ImGuiContext, ptr %985, i32 0, i32 50
  store i32 0, ptr %986, align 8, !tbaa !182
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #10
  %987 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %36, i32 noundef 0, i32 noundef 0)
  %988 = zext i1 %987 to i8
  store i8 %988, ptr %38, align 1, !tbaa !106
  %989 = load i32, ptr %37, align 4, !tbaa !30
  %990 = load ptr, ptr %3, align 8, !tbaa !5
  %991 = getelementptr inbounds %struct.ImGuiContext, ptr %990, i32 0, i32 50
  store i32 %989, ptr %991, align 8, !tbaa !182
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  store i32 0, ptr %39, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #10
  %992 = load ptr, ptr %2, align 8, !tbaa !5
  %993 = getelementptr inbounds %struct.ImGuiTable, ptr %992, i32 0, i32 83
  %994 = load i16, ptr %993, align 8, !tbaa !183
  %995 = sext i16 %994 to i32
  %996 = icmp sgt i32 %995, 0
  %997 = zext i1 %996 to i8
  store i8 %997, ptr %40, align 1, !tbaa !106
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  %998 = load ptr, ptr %2, align 8, !tbaa !5
  %999 = getelementptr inbounds %struct.ImGuiTable, ptr %998, i32 0, i32 83
  %1000 = load i16, ptr %999, align 8, !tbaa !183
  %1001 = sext i16 %1000 to i32
  %1002 = icmp sgt i32 %1001, 0
  br i1 %1002, label %1003, label %1009

1003:                                             ; preds = %934
  %1004 = load ptr, ptr %2, align 8, !tbaa !5
  %1005 = getelementptr inbounds %struct.ImGuiTable, ptr %1004, i32 0, i32 44
  %1006 = getelementptr inbounds %struct.ImRect, ptr %1005, i32 0, i32 0
  %1007 = getelementptr inbounds %struct.ImVec2, ptr %1006, i32 0, i32 0
  %1008 = load float, ptr %1007, align 8, !tbaa !177
  br label %1013

1009:                                             ; preds = %934
  %1010 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1011 = getelementptr inbounds %struct.ImVec2, ptr %1010, i32 0, i32 0
  %1012 = load float, ptr %1011, align 4, !tbaa !184
  br label %1013

1013:                                             ; preds = %1009, %1003
  %1014 = phi float [ %1008, %1003 ], [ %1012, %1009 ]
  %1015 = load ptr, ptr %2, align 8, !tbaa !5
  %1016 = getelementptr inbounds %struct.ImGuiTable, ptr %1015, i32 0, i32 32
  %1017 = load float, ptr %1016, align 8, !tbaa !161
  %1018 = fadd float %1014, %1017
  %1019 = load ptr, ptr %2, align 8, !tbaa !5
  %1020 = getelementptr inbounds %struct.ImGuiTable, ptr %1019, i32 0, i32 35
  %1021 = load float, ptr %1020, align 4, !tbaa !162
  %1022 = fsub float %1018, %1021
  store float %1022, ptr %41, align 4, !tbaa !107
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #10
  %1023 = load ptr, ptr %2, align 8, !tbaa !5
  %1024 = getelementptr inbounds %struct.ImGuiTable, ptr %1023, i32 0, i32 47
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %42, ptr align 8 %1024, i64 16, i1 false), !tbaa.struct !160
  %1025 = load ptr, ptr %2, align 8, !tbaa !5
  %1026 = getelementptr inbounds %struct.ImGuiTable, ptr %1025, i32 0, i32 9
  %1027 = load ptr, ptr %1026, align 8, !tbaa !185
  %1028 = load ptr, ptr %2, align 8, !tbaa !5
  %1029 = getelementptr inbounds %struct.ImGuiTable, ptr %1028, i32 0, i32 13
  %1030 = load i32, ptr %1029, align 4, !tbaa !34
  call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %1027, i32 noundef %1030)
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  store i32 0, ptr %43, align 4, !tbaa !30
  br label %1031

1031:                                             ; preds = %1464, %1013
  %1032 = load i32, ptr %43, align 4, !tbaa !30
  %1033 = load ptr, ptr %2, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.ImGuiTable, ptr %1033, i32 0, i32 13
  %1035 = load i32, ptr %1034, align 4, !tbaa !34
  %1036 = icmp slt i32 %1032, %1035
  br i1 %1036, label %1038, label %1037

1037:                                             ; preds = %1031
  store i32 14, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %1467

1038:                                             ; preds = %1031
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %1039 = load ptr, ptr %2, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct.ImGuiTable, ptr %1039, i32 0, i32 5
  %1041 = load i32, ptr %43, align 4, !tbaa !30
  %1042 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1040, i32 noundef %1041)
  %1043 = load i16, ptr %1042, align 2, !tbaa !108
  %1044 = sext i16 %1043 to i32
  store i32 %1044, ptr %44, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  %1045 = load ptr, ptr %2, align 8, !tbaa !5
  %1046 = getelementptr inbounds %struct.ImGuiTable, ptr %1045, i32 0, i32 4
  %1047 = load i32, ptr %44, align 4, !tbaa !30
  %1048 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1046, i32 noundef %1047)
  store ptr %1048, ptr %45, align 8, !tbaa !5
  %1049 = load ptr, ptr %2, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.ImGuiTable, ptr %1049, i32 0, i32 81
  %1051 = load i16, ptr %1050, align 4, !tbaa !186
  %1052 = sext i16 %1051 to i32
  %1053 = icmp sgt i32 %1052, 0
  %1054 = zext i1 %1053 to i64
  %1055 = select i1 %1053, i32 1, i32 0
  %1056 = trunc i32 %1055 to i8
  %1057 = load ptr, ptr %45, align 8, !tbaa !5
  %1058 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1057, i32 0, i32 34
  store i8 %1056, ptr %1058, align 2, !tbaa !187
  %1059 = load i8, ptr %40, align 1, !tbaa !106, !range !27, !noundef !28
  %1060 = trunc i8 %1059 to i1
  br i1 %1060, label %1061, label %1080

1061:                                             ; preds = %1038
  %1062 = load ptr, ptr %2, align 8, !tbaa !5
  %1063 = getelementptr inbounds %struct.ImGuiTable, ptr %1062, i32 0, i32 83
  %1064 = load i16, ptr %1063, align 8, !tbaa !183
  %1065 = sext i16 %1064 to i32
  %1066 = load i32, ptr %39, align 4, !tbaa !30
  %1067 = icmp eq i32 %1065, %1066
  br i1 %1067, label %1068, label %1080

1068:                                             ; preds = %1061
  %1069 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1070 = getelementptr inbounds %struct.ImVec2, ptr %1069, i32 0, i32 0
  %1071 = load float, ptr %1070, align 4, !tbaa !184
  %1072 = load ptr, ptr %2, align 8, !tbaa !5
  %1073 = getelementptr inbounds %struct.ImGuiTable, ptr %1072, i32 0, i32 44
  %1074 = getelementptr inbounds %struct.ImRect, ptr %1073, i32 0, i32 0
  %1075 = getelementptr inbounds %struct.ImVec2, ptr %1074, i32 0, i32 0
  %1076 = load float, ptr %1075, align 8, !tbaa !177
  %1077 = fsub float %1071, %1076
  %1078 = load float, ptr %41, align 4, !tbaa !107
  %1079 = fadd float %1078, %1077
  store float %1079, ptr %41, align 4, !tbaa !107
  store i8 0, ptr %40, align 1, !tbaa !106
  br label %1080

1080:                                             ; preds = %1068, %1061, %1038
  %1081 = load ptr, ptr %45, align 8, !tbaa !5
  %1082 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1081, i32 0, i32 0
  %1083 = load i32, ptr %1082, align 4, !tbaa !114
  %1084 = and i32 %1083, -251658241
  store i32 %1084, ptr %1082, align 4, !tbaa !114
  %1085 = load ptr, ptr %2, align 8, !tbaa !5
  %1086 = getelementptr inbounds %struct.ImGuiTable, ptr %1085, i32 0, i32 7
  %1087 = load ptr, ptr %1086, align 8, !tbaa !35
  %1088 = load i32, ptr %43, align 4, !tbaa !30
  %1089 = ashr i32 %1088, 5
  %1090 = sext i32 %1089 to i64
  %1091 = getelementptr inbounds i32, ptr %1087, i64 %1090
  %1092 = load i32, ptr %1091, align 4, !tbaa !30
  %1093 = load i32, ptr %43, align 4, !tbaa !30
  %1094 = and i32 %1093, 31
  %1095 = shl i32 1, %1094
  %1096 = and i32 %1092, %1095
  %1097 = icmp ne i32 %1096, 0
  br i1 %1097, label %1139, label %1098

1098:                                             ; preds = %1080
  %1099 = load float, ptr %41, align 4, !tbaa !107
  %1100 = load ptr, ptr %45, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1100, i32 0, i32 8
  %1102 = getelementptr inbounds %struct.ImRect, ptr %1101, i32 0, i32 1
  %1103 = getelementptr inbounds %struct.ImVec2, ptr %1102, i32 0, i32 0
  store float %1099, ptr %1103, align 4, !tbaa !188
  %1104 = load ptr, ptr %45, align 8, !tbaa !5
  %1105 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1104, i32 0, i32 8
  %1106 = getelementptr inbounds %struct.ImRect, ptr %1105, i32 0, i32 0
  %1107 = getelementptr inbounds %struct.ImVec2, ptr %1106, i32 0, i32 0
  store float %1099, ptr %1107, align 4, !tbaa !189
  %1108 = load ptr, ptr %45, align 8, !tbaa !5
  %1109 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1108, i32 0, i32 10
  store float %1099, ptr %1109, align 4, !tbaa !190
  %1110 = load ptr, ptr %45, align 8, !tbaa !5
  %1111 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1110, i32 0, i32 3
  store float %1099, ptr %1111, align 4, !tbaa !191
  %1112 = load ptr, ptr %45, align 8, !tbaa !5
  %1113 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1112, i32 0, i32 2
  store float %1099, ptr %1113, align 4, !tbaa !192
  %1114 = load ptr, ptr %45, align 8, !tbaa !5
  %1115 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1114, i32 0, i32 1
  store float 0.000000e+00, ptr %1115, align 4, !tbaa !169
  %1116 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1117 = getelementptr inbounds %struct.ImVec2, ptr %1116, i32 0, i32 1
  %1118 = load float, ptr %1117, align 4, !tbaa !193
  %1119 = load ptr, ptr %45, align 8, !tbaa !5
  %1120 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1119, i32 0, i32 8
  %1121 = getelementptr inbounds %struct.ImRect, ptr %1120, i32 0, i32 0
  %1122 = getelementptr inbounds %struct.ImVec2, ptr %1121, i32 0, i32 1
  store float %1118, ptr %1122, align 4, !tbaa !194
  %1123 = load ptr, ptr %45, align 8, !tbaa !5
  %1124 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1123, i32 0, i32 8
  %1125 = getelementptr inbounds %struct.ImRect, ptr %1124, i32 0, i32 1
  %1126 = getelementptr inbounds %struct.ImVec2, ptr %1125, i32 0, i32 1
  store float 0x47EFFFFFE0000000, ptr %1126, align 4, !tbaa !195
  %1127 = load ptr, ptr %45, align 8, !tbaa !5
  %1128 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1127, i32 0, i32 8
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1128, ptr noundef nonnull align 4 dereferenceable(16) %42)
  %1129 = load ptr, ptr %45, align 8, !tbaa !5
  %1130 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1129, i32 0, i32 31
  store i8 0, ptr %1130, align 1, !tbaa !154
  %1131 = load ptr, ptr %45, align 8, !tbaa !5
  %1132 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1131, i32 0, i32 30
  store i8 0, ptr %1132, align 2, !tbaa !196
  %1133 = load ptr, ptr %45, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1133, i32 0, i32 29
  store i8 0, ptr %1134, align 1, !tbaa !197
  %1135 = load ptr, ptr %45, align 8, !tbaa !5
  %1136 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1135, i32 0, i32 32
  store i8 1, ptr %1136, align 4, !tbaa !198
  %1137 = load ptr, ptr %45, align 8, !tbaa !5
  %1138 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1137, i32 0, i32 12
  store float 1.000000e+00, ptr %1138, align 4, !tbaa !199
  store i32 16, ptr %13, align 4
  br label %1461

1139:                                             ; preds = %1080
  %1140 = load i8, ptr %38, align 1, !tbaa !106, !range !27, !noundef !28
  %1141 = trunc i8 %1140 to i1
  br i1 %1141, label %1142, label %1171

1142:                                             ; preds = %1139
  %1143 = load ptr, ptr %3, align 8, !tbaa !5
  %1144 = getelementptr inbounds %struct.ImGuiContext, ptr %1143, i32 0, i32 2
  %1145 = getelementptr inbounds %struct.ImGuiIO, ptr %1144, i32 0, i32 67
  %1146 = getelementptr inbounds %struct.ImVec2, ptr %1145, i32 0, i32 0
  %1147 = load float, ptr %1146, align 8, !tbaa !200
  %1148 = load ptr, ptr %45, align 8, !tbaa !5
  %1149 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1148, i32 0, i32 8
  %1150 = getelementptr inbounds %struct.ImRect, ptr %1149, i32 0, i32 0
  %1151 = getelementptr inbounds %struct.ImVec2, ptr %1150, i32 0, i32 0
  %1152 = load float, ptr %1151, align 4, !tbaa !189
  %1153 = fcmp oge float %1147, %1152
  br i1 %1153, label %1154, label %1171

1154:                                             ; preds = %1142
  %1155 = load ptr, ptr %3, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.ImGuiContext, ptr %1155, i32 0, i32 2
  %1157 = getelementptr inbounds %struct.ImGuiIO, ptr %1156, i32 0, i32 67
  %1158 = getelementptr inbounds %struct.ImVec2, ptr %1157, i32 0, i32 0
  %1159 = load float, ptr %1158, align 8, !tbaa !200
  %1160 = load ptr, ptr %45, align 8, !tbaa !5
  %1161 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1160, i32 0, i32 8
  %1162 = getelementptr inbounds %struct.ImRect, ptr %1161, i32 0, i32 1
  %1163 = getelementptr inbounds %struct.ImVec2, ptr %1162, i32 0, i32 0
  %1164 = load float, ptr %1163, align 4, !tbaa !188
  %1165 = fcmp olt float %1159, %1164
  br i1 %1165, label %1166, label %1171

1166:                                             ; preds = %1154
  %1167 = load i32, ptr %44, align 4, !tbaa !30
  %1168 = trunc i32 %1167 to i16
  %1169 = load ptr, ptr %2, align 8, !tbaa !5
  %1170 = getelementptr inbounds %struct.ImGuiTable, ptr %1169, i32 0, i32 67
  store i16 %1168, ptr %1170, align 8, !tbaa !175
  br label %1171

1171:                                             ; preds = %1166, %1154, %1142, %1139
  %1172 = load float, ptr %41, align 4, !tbaa !107
  %1173 = load ptr, ptr %45, align 8, !tbaa !5
  %1174 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1173, i32 0, i32 2
  store float %1172, ptr %1174, align 4, !tbaa !192
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %1175 = load ptr, ptr %2, align 8, !tbaa !5
  %1176 = load i32, ptr %44, align 4, !tbaa !30
  %1177 = call noundef float @_ZN5ImGui22TableGetMaxColumnWidthEPK10ImGuiTablei(ptr noundef %1175, i32 noundef %1176)
  store float %1177, ptr %46, align 4, !tbaa !107
  %1178 = load ptr, ptr %45, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1178, i32 0, i32 1
  %1180 = load float, ptr %1179, align 4, !tbaa !169
  %1181 = load float, ptr %46, align 4, !tbaa !107
  %1182 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1180, float noundef %1181)
  %1183 = load ptr, ptr %45, align 8, !tbaa !5
  %1184 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1183, i32 0, i32 1
  store float %1182, ptr %1184, align 4, !tbaa !169
  %1185 = load ptr, ptr %45, align 8, !tbaa !5
  %1186 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1185, i32 0, i32 1
  %1187 = load float, ptr %1186, align 4, !tbaa !169
  %1188 = load ptr, ptr %45, align 8, !tbaa !5
  %1189 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1188, i32 0, i32 4
  %1190 = load float, ptr %1189, align 4, !tbaa !121
  %1191 = load ptr, ptr %2, align 8, !tbaa !5
  %1192 = getelementptr inbounds %struct.ImGuiTable, ptr %1191, i32 0, i32 31
  %1193 = load float, ptr %1192, align 4, !tbaa !105
  %1194 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1190, float noundef %1193)
  %1195 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1187, float noundef %1194)
  %1196 = load ptr, ptr %45, align 8, !tbaa !5
  %1197 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1196, i32 0, i32 1
  store float %1195, ptr %1197, align 4, !tbaa !169
  %1198 = load float, ptr %41, align 4, !tbaa !107
  %1199 = load ptr, ptr %45, align 8, !tbaa !5
  %1200 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1199, i32 0, i32 1
  %1201 = load float, ptr %1200, align 4, !tbaa !169
  %1202 = fadd float %1198, %1201
  %1203 = load ptr, ptr %2, align 8, !tbaa !5
  %1204 = getelementptr inbounds %struct.ImGuiTable, ptr %1203, i32 0, i32 35
  %1205 = load float, ptr %1204, align 4, !tbaa !162
  %1206 = fadd float %1202, %1205
  %1207 = load ptr, ptr %2, align 8, !tbaa !5
  %1208 = getelementptr inbounds %struct.ImGuiTable, ptr %1207, i32 0, i32 36
  %1209 = load float, ptr %1208, align 8, !tbaa !163
  %1210 = fadd float %1206, %1209
  %1211 = load ptr, ptr %2, align 8, !tbaa !5
  %1212 = getelementptr inbounds %struct.ImGuiTable, ptr %1211, i32 0, i32 33
  %1213 = load float, ptr %1212, align 4, !tbaa !156
  %1214 = call float @llvm.fmuladd.f32(float %1213, float 2.000000e+00, float %1210)
  %1215 = load ptr, ptr %45, align 8, !tbaa !5
  %1216 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1215, i32 0, i32 3
  store float %1214, ptr %1216, align 4, !tbaa !191
  %1217 = load ptr, ptr %45, align 8, !tbaa !5
  %1218 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1217, i32 0, i32 2
  %1219 = load float, ptr %1218, align 4, !tbaa !192
  %1220 = load ptr, ptr %2, align 8, !tbaa !5
  %1221 = getelementptr inbounds %struct.ImGuiTable, ptr %1220, i32 0, i32 33
  %1222 = load float, ptr %1221, align 4, !tbaa !156
  %1223 = fadd float %1219, %1222
  %1224 = load ptr, ptr %2, align 8, !tbaa !5
  %1225 = getelementptr inbounds %struct.ImGuiTable, ptr %1224, i32 0, i32 35
  %1226 = load float, ptr %1225, align 4, !tbaa !162
  %1227 = fadd float %1223, %1226
  %1228 = load ptr, ptr %45, align 8, !tbaa !5
  %1229 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1228, i32 0, i32 10
  store float %1227, ptr %1229, align 4, !tbaa !190
  %1230 = load ptr, ptr %45, align 8, !tbaa !5
  %1231 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1230, i32 0, i32 3
  %1232 = load float, ptr %1231, align 4, !tbaa !191
  %1233 = load ptr, ptr %2, align 8, !tbaa !5
  %1234 = getelementptr inbounds %struct.ImGuiTable, ptr %1233, i32 0, i32 33
  %1235 = load float, ptr %1234, align 4, !tbaa !156
  %1236 = fsub float %1232, %1235
  %1237 = load ptr, ptr %2, align 8, !tbaa !5
  %1238 = getelementptr inbounds %struct.ImGuiTable, ptr %1237, i32 0, i32 36
  %1239 = load float, ptr %1238, align 8, !tbaa !163
  %1240 = fsub float %1236, %1239
  %1241 = load ptr, ptr %45, align 8, !tbaa !5
  %1242 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1241, i32 0, i32 11
  store float %1240, ptr %1242, align 4, !tbaa !201
  %1243 = load ptr, ptr %45, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1243, i32 0, i32 1
  %1245 = load float, ptr %1244, align 4, !tbaa !169
  %1246 = fmul float %1245, 0x3FE4CCCCC0000000
  %1247 = call noundef float @_ZL7ImFloorf(float noundef %1246)
  %1248 = load ptr, ptr %45, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1248, i32 0, i32 12
  store float %1247, ptr %1249, align 4, !tbaa !199
  %1250 = load ptr, ptr %45, align 8, !tbaa !5
  %1251 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1250, i32 0, i32 2
  %1252 = load float, ptr %1251, align 4, !tbaa !192
  %1253 = load ptr, ptr %45, align 8, !tbaa !5
  %1254 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1253, i32 0, i32 8
  %1255 = getelementptr inbounds %struct.ImRect, ptr %1254, i32 0, i32 0
  %1256 = getelementptr inbounds %struct.ImVec2, ptr %1255, i32 0, i32 0
  store float %1252, ptr %1256, align 4, !tbaa !189
  %1257 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1258 = getelementptr inbounds %struct.ImVec2, ptr %1257, i32 0, i32 1
  %1259 = load float, ptr %1258, align 4, !tbaa !193
  %1260 = load ptr, ptr %45, align 8, !tbaa !5
  %1261 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1260, i32 0, i32 8
  %1262 = getelementptr inbounds %struct.ImRect, ptr %1261, i32 0, i32 0
  %1263 = getelementptr inbounds %struct.ImVec2, ptr %1262, i32 0, i32 1
  store float %1259, ptr %1263, align 4, !tbaa !194
  %1264 = load ptr, ptr %45, align 8, !tbaa !5
  %1265 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1264, i32 0, i32 3
  %1266 = load float, ptr %1265, align 4, !tbaa !191
  %1267 = load ptr, ptr %45, align 8, !tbaa !5
  %1268 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1267, i32 0, i32 8
  %1269 = getelementptr inbounds %struct.ImRect, ptr %1268, i32 0, i32 1
  %1270 = getelementptr inbounds %struct.ImVec2, ptr %1269, i32 0, i32 0
  store float %1266, ptr %1270, align 4, !tbaa !188
  %1271 = load ptr, ptr %45, align 8, !tbaa !5
  %1272 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1271, i32 0, i32 8
  %1273 = getelementptr inbounds %struct.ImRect, ptr %1272, i32 0, i32 1
  %1274 = getelementptr inbounds %struct.ImVec2, ptr %1273, i32 0, i32 1
  store float 0x47EFFFFFE0000000, ptr %1274, align 4, !tbaa !195
  %1275 = load ptr, ptr %45, align 8, !tbaa !5
  %1276 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1275, i32 0, i32 8
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1276, ptr noundef nonnull align 4 dereferenceable(16) %42)
  %1277 = load ptr, ptr %45, align 8, !tbaa !5
  %1278 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1277, i32 0, i32 8
  %1279 = getelementptr inbounds %struct.ImRect, ptr %1278, i32 0, i32 1
  %1280 = getelementptr inbounds %struct.ImVec2, ptr %1279, i32 0, i32 0
  %1281 = load float, ptr %1280, align 4, !tbaa !188
  %1282 = load ptr, ptr %45, align 8, !tbaa !5
  %1283 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1282, i32 0, i32 8
  %1284 = getelementptr inbounds %struct.ImRect, ptr %1283, i32 0, i32 0
  %1285 = getelementptr inbounds %struct.ImVec2, ptr %1284, i32 0, i32 0
  %1286 = load float, ptr %1285, align 4, !tbaa !189
  %1287 = fcmp ogt float %1281, %1286
  %1288 = load ptr, ptr %45, align 8, !tbaa !5
  %1289 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1288, i32 0, i32 29
  %1290 = zext i1 %1287 to i8
  store i8 %1290, ptr %1289, align 1, !tbaa !197
  %1291 = load ptr, ptr %45, align 8, !tbaa !5
  %1292 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1291, i32 0, i32 30
  store i8 1, ptr %1292, align 2, !tbaa !196
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #10
  %1293 = load ptr, ptr %45, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1293, i32 0, i32 29
  %1295 = load i8, ptr %1294, align 1, !tbaa !197, !range !27, !noundef !28
  %1296 = trunc i8 %1295 to i1
  %1297 = zext i1 %1296 to i8
  store i8 %1297, ptr %47, align 1, !tbaa !106
  %1298 = load i8, ptr %47, align 1, !tbaa !106, !range !27, !noundef !28
  %1299 = trunc i8 %1298 to i1
  br i1 %1299, label %1300, label %1305

1300:                                             ; preds = %1171
  %1301 = load ptr, ptr %2, align 8, !tbaa !5
  %1302 = getelementptr inbounds %struct.ImGuiTable, ptr %1301, i32 0, i32 9
  %1303 = load ptr, ptr %1302, align 8, !tbaa !185
  %1304 = load i32, ptr %44, align 4, !tbaa !30
  call void @_Z16ImBitArraySetBitPji(ptr noundef %1303, i32 noundef %1304)
  br label %1305

1305:                                             ; preds = %1300, %1171
  %1306 = load i8, ptr %47, align 1, !tbaa !106, !range !27, !noundef !28
  %1307 = trunc i8 %1306 to i1
  br i1 %1307, label %1320, label %1308

1308:                                             ; preds = %1305
  %1309 = load ptr, ptr %45, align 8, !tbaa !5
  %1310 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1309, i32 0, i32 35
  %1311 = load i8, ptr %1310, align 1, !tbaa !124
  %1312 = zext i8 %1311 to i32
  %1313 = icmp ne i32 %1312, 0
  br i1 %1313, label %1320, label %1314

1314:                                             ; preds = %1308
  %1315 = load ptr, ptr %45, align 8, !tbaa !5
  %1316 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1315, i32 0, i32 36
  %1317 = load i8, ptr %1316, align 4, !tbaa !123
  %1318 = zext i8 %1317 to i32
  %1319 = icmp ne i32 %1318, 0
  br label %1320

1320:                                             ; preds = %1314, %1308, %1305
  %1321 = phi i1 [ true, %1308 ], [ true, %1305 ], [ %1319, %1314 ]
  %1322 = load ptr, ptr %45, align 8, !tbaa !5
  %1323 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1322, i32 0, i32 31
  %1324 = zext i1 %1321 to i8
  store i8 %1324, ptr %1323, align 1, !tbaa !154
  %1325 = load ptr, ptr %45, align 8, !tbaa !5
  %1326 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1325, i32 0, i32 26
  %1327 = load i8, ptr %1326, align 2, !tbaa !118, !range !27, !noundef !28
  %1328 = trunc i8 %1327 to i1
  br i1 %1328, label %1329, label %1334

1329:                                             ; preds = %1320
  %1330 = load ptr, ptr %2, align 8, !tbaa !5
  %1331 = getelementptr inbounds %struct.ImGuiTable, ptr %1330, i32 0, i32 104
  %1332 = load i8, ptr %1331, align 2, !tbaa !202, !range !27, !noundef !28
  %1333 = trunc i8 %1332 to i1
  br label %1334

1334:                                             ; preds = %1329, %1320
  %1335 = phi i1 [ true, %1320 ], [ %1333, %1329 ]
  %1336 = load ptr, ptr %45, align 8, !tbaa !5
  %1337 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1336, i32 0, i32 32
  %1338 = zext i1 %1335 to i8
  store i8 %1338, ptr %1337, align 4, !tbaa !198
  %1339 = load ptr, ptr %45, align 8, !tbaa !5
  %1340 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1339, i32 0, i32 32
  %1341 = load i8, ptr %1340, align 4, !tbaa !198, !range !27, !noundef !28
  %1342 = trunc i8 %1341 to i1
  br i1 %1342, label %1343, label %1351

1343:                                             ; preds = %1334
  %1344 = load i8, ptr %47, align 1, !tbaa !106, !range !27, !noundef !28
  %1345 = trunc i8 %1344 to i1
  %1346 = xor i1 %1345, true
  br i1 %1346, label %1347, label %1348

1347:                                             ; preds = %1343
  br label %1350

1348:                                             ; preds = %1343
  call void @__assert_fail(ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 1065, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

1349:                                             ; No predecessors!
  br label %1350

1350:                                             ; preds = %1349, %1347
  br label %1351

1351:                                             ; preds = %1350, %1334
  %1352 = load ptr, ptr %45, align 8, !tbaa !5
  %1353 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1352, i32 0, i32 0
  %1354 = load i32, ptr %1353, align 4, !tbaa !114
  %1355 = or i32 %1354, 16777216
  store i32 %1355, ptr %1353, align 4, !tbaa !114
  %1356 = load i8, ptr %47, align 1, !tbaa !106, !range !27, !noundef !28
  %1357 = trunc i8 %1356 to i1
  br i1 %1357, label %1358, label %1363

1358:                                             ; preds = %1351
  %1359 = load ptr, ptr %45, align 8, !tbaa !5
  %1360 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1359, i32 0, i32 0
  %1361 = load i32, ptr %1360, align 4, !tbaa !114
  %1362 = or i32 %1361, 33554432
  store i32 %1362, ptr %1360, align 4, !tbaa !114
  br label %1363

1363:                                             ; preds = %1358, %1351
  %1364 = load ptr, ptr %45, align 8, !tbaa !5
  %1365 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1364, i32 0, i32 22
  %1366 = load i16, ptr %1365, align 2, !tbaa !119
  %1367 = sext i16 %1366 to i32
  %1368 = icmp ne i32 %1367, -1
  br i1 %1368, label %1369, label %1374

1369:                                             ; preds = %1363
  %1370 = load ptr, ptr %45, align 8, !tbaa !5
  %1371 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1370, i32 0, i32 0
  %1372 = load i32, ptr %1371, align 4, !tbaa !114
  %1373 = or i32 %1372, 67108864
  store i32 %1373, ptr %1371, align 4, !tbaa !114
  br label %1374

1374:                                             ; preds = %1369, %1363
  %1375 = load ptr, ptr %2, align 8, !tbaa !5
  %1376 = getelementptr inbounds %struct.ImGuiTable, ptr %1375, i32 0, i32 67
  %1377 = load i16, ptr %1376, align 8, !tbaa !175
  %1378 = sext i16 %1377 to i32
  %1379 = load i32, ptr %44, align 4, !tbaa !30
  %1380 = icmp eq i32 %1378, %1379
  br i1 %1380, label %1381, label %1386

1381:                                             ; preds = %1374
  %1382 = load ptr, ptr %45, align 8, !tbaa !5
  %1383 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1382, i32 0, i32 0
  %1384 = load i32, ptr %1383, align 4, !tbaa !114
  %1385 = or i32 %1384, 134217728
  store i32 %1385, ptr %1383, align 4, !tbaa !114
  br label %1386

1386:                                             ; preds = %1381, %1374
  %1387 = load ptr, ptr %45, align 8, !tbaa !5
  %1388 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1387, i32 0, i32 10
  %1389 = load float, ptr %1388, align 4, !tbaa !190
  %1390 = load ptr, ptr %45, align 8, !tbaa !5
  %1391 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1390, i32 0, i32 14
  store float %1389, ptr %1391, align 4, !tbaa !203
  %1392 = load ptr, ptr %45, align 8, !tbaa !5
  %1393 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1392, i32 0, i32 13
  store float %1389, ptr %1393, align 4, !tbaa !204
  %1394 = load ptr, ptr %45, align 8, !tbaa !5
  %1395 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1394, i32 0, i32 10
  %1396 = load float, ptr %1395, align 4, !tbaa !190
  %1397 = load ptr, ptr %45, align 8, !tbaa !5
  %1398 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1397, i32 0, i32 16
  store float %1396, ptr %1398, align 4, !tbaa !205
  %1399 = load ptr, ptr %45, align 8, !tbaa !5
  %1400 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1399, i32 0, i32 15
  store float %1396, ptr %1400, align 4, !tbaa !206
  %1401 = load ptr, ptr %2, align 8, !tbaa !5
  %1402 = getelementptr inbounds %struct.ImGuiTable, ptr %1401, i32 0, i32 104
  %1403 = load i8, ptr %1402, align 2, !tbaa !202, !range !27, !noundef !28
  %1404 = trunc i8 %1403 to i1
  %1405 = zext i1 %1404 to i32
  %1406 = icmp eq i32 %1405, 0
  br i1 %1406, label %1407, label %1420

1407:                                             ; preds = %1386
  %1408 = load ptr, ptr %45, align 8, !tbaa !5
  %1409 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1408, i32 0, i32 35
  %1410 = load i8, ptr %1409, align 1, !tbaa !124
  %1411 = zext i8 %1410 to i32
  %1412 = ashr i32 %1411, 1
  %1413 = trunc i32 %1412 to i8
  store i8 %1413, ptr %1409, align 1, !tbaa !124
  %1414 = load ptr, ptr %45, align 8, !tbaa !5
  %1415 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1414, i32 0, i32 36
  %1416 = load i8, ptr %1415, align 4, !tbaa !123
  %1417 = zext i8 %1416 to i32
  %1418 = ashr i32 %1417, 1
  %1419 = trunc i32 %1418 to i8
  store i8 %1419, ptr %1415, align 4, !tbaa !123
  br label %1420

1420:                                             ; preds = %1407, %1386
  %1421 = load i32, ptr %39, align 4, !tbaa !30
  %1422 = load ptr, ptr %2, align 8, !tbaa !5
  %1423 = getelementptr inbounds %struct.ImGuiTable, ptr %1422, i32 0, i32 83
  %1424 = load i16, ptr %1423, align 8, !tbaa !183
  %1425 = sext i16 %1424 to i32
  %1426 = icmp slt i32 %1421, %1425
  br i1 %1426, label %1427, label %1441

1427:                                             ; preds = %1420
  %1428 = load ptr, ptr %45, align 8, !tbaa !5
  %1429 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1428, i32 0, i32 3
  %1430 = load float, ptr %1429, align 4, !tbaa !191
  %1431 = fadd float %1430, 1.000000e+00
  %1432 = getelementptr inbounds %struct.ImRect, ptr %42, i32 0, i32 0
  %1433 = getelementptr inbounds %struct.ImVec2, ptr %1432, i32 0, i32 0
  %1434 = load float, ptr %1433, align 4, !tbaa !184
  %1435 = getelementptr inbounds %struct.ImRect, ptr %42, i32 0, i32 1
  %1436 = getelementptr inbounds %struct.ImVec2, ptr %1435, i32 0, i32 0
  %1437 = load float, ptr %1436, align 4, !tbaa !207
  %1438 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %1431, float noundef %1434, float noundef %1437)
  %1439 = getelementptr inbounds %struct.ImRect, ptr %42, i32 0, i32 0
  %1440 = getelementptr inbounds %struct.ImVec2, ptr %1439, i32 0, i32 0
  store float %1438, ptr %1440, align 4, !tbaa !184
  br label %1441

1441:                                             ; preds = %1427, %1420
  %1442 = load ptr, ptr %45, align 8, !tbaa !5
  %1443 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1442, i32 0, i32 1
  %1444 = load float, ptr %1443, align 4, !tbaa !169
  %1445 = load ptr, ptr %2, align 8, !tbaa !5
  %1446 = getelementptr inbounds %struct.ImGuiTable, ptr %1445, i32 0, i32 35
  %1447 = load float, ptr %1446, align 4, !tbaa !162
  %1448 = fadd float %1444, %1447
  %1449 = load ptr, ptr %2, align 8, !tbaa !5
  %1450 = getelementptr inbounds %struct.ImGuiTable, ptr %1449, i32 0, i32 36
  %1451 = load float, ptr %1450, align 8, !tbaa !163
  %1452 = fadd float %1448, %1451
  %1453 = load ptr, ptr %2, align 8, !tbaa !5
  %1454 = getelementptr inbounds %struct.ImGuiTable, ptr %1453, i32 0, i32 33
  %1455 = load float, ptr %1454, align 4, !tbaa !156
  %1456 = call float @llvm.fmuladd.f32(float %1455, float 2.000000e+00, float %1452)
  %1457 = load float, ptr %41, align 4, !tbaa !107
  %1458 = fadd float %1457, %1456
  store float %1458, ptr %41, align 4, !tbaa !107
  %1459 = load i32, ptr %39, align 4, !tbaa !30
  %1460 = add nsw i32 %1459, 1
  store i32 %1460, ptr %39, align 4, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  store i32 0, ptr %13, align 4
  br label %1461

1461:                                             ; preds = %1441, %1098
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  %1462 = load i32, ptr %13, align 4
  switch i32 %1462, label %1754 [
    i32 0, label %1463
    i32 16, label %1464
  ]

1463:                                             ; preds = %1461
  br label %1464

1464:                                             ; preds = %1463, %1461
  %1465 = load i32, ptr %43, align 4, !tbaa !30
  %1466 = add nsw i32 %1465, 1
  store i32 %1466, ptr %43, align 4, !tbaa !30
  br label %1031, !llvm.loop !208

1467:                                             ; preds = %1037
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %1468 = load ptr, ptr %2, align 8, !tbaa !5
  %1469 = getelementptr inbounds %struct.ImGuiTable, ptr %1468, i32 0, i32 46
  %1470 = getelementptr inbounds %struct.ImRect, ptr %1469, i32 0, i32 0
  %1471 = getelementptr inbounds %struct.ImVec2, ptr %1470, i32 0, i32 0
  %1472 = load float, ptr %1471, align 8, !tbaa !209
  %1473 = load ptr, ptr %2, align 8, !tbaa !5
  %1474 = getelementptr inbounds %struct.ImGuiTable, ptr %1473, i32 0, i32 4
  %1475 = load ptr, ptr %2, align 8, !tbaa !5
  %1476 = getelementptr inbounds %struct.ImGuiTable, ptr %1475, i32 0, i32 76
  %1477 = load i16, ptr %1476, align 2, !tbaa !134
  %1478 = sext i16 %1477 to i32
  %1479 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1474, i32 noundef %1478)
  %1480 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1479, i32 0, i32 8
  %1481 = getelementptr inbounds %struct.ImRect, ptr %1480, i32 0, i32 1
  %1482 = getelementptr inbounds %struct.ImVec2, ptr %1481, i32 0, i32 0
  %1483 = load float, ptr %1482, align 4, !tbaa !188
  %1484 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1472, float noundef %1483)
  store float %1484, ptr %48, align 4, !tbaa !107
  %1485 = load i8, ptr %38, align 1, !tbaa !106, !range !27, !noundef !28
  %1486 = trunc i8 %1485 to i1
  br i1 %1486, label %1487, label %1509

1487:                                             ; preds = %1467
  %1488 = load ptr, ptr %2, align 8, !tbaa !5
  %1489 = getelementptr inbounds %struct.ImGuiTable, ptr %1488, i32 0, i32 67
  %1490 = load i16, ptr %1489, align 8, !tbaa !175
  %1491 = sext i16 %1490 to i32
  %1492 = icmp eq i32 %1491, -1
  br i1 %1492, label %1493, label %1509

1493:                                             ; preds = %1487
  %1494 = load ptr, ptr %3, align 8, !tbaa !5
  %1495 = getelementptr inbounds %struct.ImGuiContext, ptr %1494, i32 0, i32 2
  %1496 = getelementptr inbounds %struct.ImGuiIO, ptr %1495, i32 0, i32 67
  %1497 = getelementptr inbounds %struct.ImVec2, ptr %1496, i32 0, i32 0
  %1498 = load float, ptr %1497, align 8, !tbaa !200
  %1499 = load float, ptr %48, align 4, !tbaa !107
  %1500 = fcmp oge float %1498, %1499
  br i1 %1500, label %1501, label %1508

1501:                                             ; preds = %1493
  %1502 = load ptr, ptr %2, align 8, !tbaa !5
  %1503 = getelementptr inbounds %struct.ImGuiTable, ptr %1502, i32 0, i32 13
  %1504 = load i32, ptr %1503, align 4, !tbaa !34
  %1505 = trunc i32 %1504 to i16
  %1506 = load ptr, ptr %2, align 8, !tbaa !5
  %1507 = getelementptr inbounds %struct.ImGuiTable, ptr %1506, i32 0, i32 67
  store i16 %1505, ptr %1507, align 8, !tbaa !175
  br label %1508

1508:                                             ; preds = %1501, %1493
  br label %1509

1509:                                             ; preds = %1508, %1487, %1467
  %1510 = load i8, ptr %9, align 1, !tbaa !106, !range !27, !noundef !28
  %1511 = trunc i8 %1510 to i1
  %1512 = zext i1 %1511 to i32
  %1513 = icmp eq i32 %1512, 0
  br i1 %1513, label %1514, label %1525

1514:                                             ; preds = %1509
  %1515 = load ptr, ptr %2, align 8, !tbaa !5
  %1516 = getelementptr inbounds %struct.ImGuiTable, ptr %1515, i32 0, i32 1
  %1517 = load i32, ptr %1516, align 4, !tbaa !29
  %1518 = and i32 %1517, 1
  %1519 = icmp ne i32 %1518, 0
  br i1 %1519, label %1520, label %1525

1520:                                             ; preds = %1514
  %1521 = load ptr, ptr %2, align 8, !tbaa !5
  %1522 = getelementptr inbounds %struct.ImGuiTable, ptr %1521, i32 0, i32 1
  %1523 = load i32, ptr %1522, align 4, !tbaa !29
  %1524 = and i32 %1523, -2
  store i32 %1524, ptr %1522, align 4, !tbaa !29
  br label %1525

1525:                                             ; preds = %1520, %1514, %1509
  %1526 = load ptr, ptr %2, align 8, !tbaa !5
  %1527 = getelementptr inbounds %struct.ImGuiTable, ptr %1526, i32 0, i32 78
  %1528 = load i16, ptr %1527, align 2, !tbaa !152
  %1529 = sext i16 %1528 to i32
  %1530 = icmp ne i32 %1529, -1
  br i1 %1530, label %1531, label %1536

1531:                                             ; preds = %1525
  %1532 = load ptr, ptr %2, align 8, !tbaa !5
  %1533 = getelementptr inbounds %struct.ImGuiTable, ptr %1532, i32 0, i32 1
  %1534 = load i32, ptr %1533, align 4, !tbaa !29
  %1535 = and i32 %1534, -65537
  store i32 %1535, ptr %1533, align 4, !tbaa !29
  br label %1536

1536:                                             ; preds = %1531, %1525
  %1537 = load ptr, ptr %2, align 8, !tbaa !5
  %1538 = getelementptr inbounds %struct.ImGuiTable, ptr %1537, i32 0, i32 1
  %1539 = load i32, ptr %1538, align 4, !tbaa !29
  %1540 = and i32 %1539, 65536
  %1541 = icmp ne i32 %1540, 0
  br i1 %1541, label %1542, label %1563

1542:                                             ; preds = %1536
  %1543 = load float, ptr %48, align 4, !tbaa !107
  %1544 = load ptr, ptr %2, align 8, !tbaa !5
  %1545 = getelementptr inbounds %struct.ImGuiTable, ptr %1544, i32 0, i32 46
  %1546 = getelementptr inbounds %struct.ImRect, ptr %1545, i32 0, i32 1
  %1547 = getelementptr inbounds %struct.ImVec2, ptr %1546, i32 0, i32 0
  store float %1543, ptr %1547, align 8, !tbaa !210
  %1548 = load ptr, ptr %2, align 8, !tbaa !5
  %1549 = getelementptr inbounds %struct.ImGuiTable, ptr %1548, i32 0, i32 44
  %1550 = getelementptr inbounds %struct.ImRect, ptr %1549, i32 0, i32 1
  %1551 = getelementptr inbounds %struct.ImVec2, ptr %1550, i32 0, i32 0
  store float %1543, ptr %1551, align 8, !tbaa !179
  %1552 = load ptr, ptr %2, align 8, !tbaa !5
  %1553 = getelementptr inbounds %struct.ImGuiTable, ptr %1552, i32 0, i32 47
  %1554 = getelementptr inbounds %struct.ImRect, ptr %1553, i32 0, i32 1
  %1555 = getelementptr inbounds %struct.ImVec2, ptr %1554, i32 0, i32 0
  %1556 = load float, ptr %1555, align 8, !tbaa !211
  %1557 = load float, ptr %48, align 4, !tbaa !107
  %1558 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1556, float noundef %1557)
  %1559 = load ptr, ptr %2, align 8, !tbaa !5
  %1560 = getelementptr inbounds %struct.ImGuiTable, ptr %1559, i32 0, i32 47
  %1561 = getelementptr inbounds %struct.ImRect, ptr %1560, i32 0, i32 1
  %1562 = getelementptr inbounds %struct.ImVec2, ptr %1561, i32 0, i32 0
  store float %1558, ptr %1562, align 8, !tbaa !211
  br label %1563

1563:                                             ; preds = %1542, %1536
  %1564 = load ptr, ptr %2, align 8, !tbaa !5
  %1565 = getelementptr inbounds %struct.ImGuiTable, ptr %1564, i32 0, i32 46
  %1566 = load ptr, ptr %2, align 8, !tbaa !5
  %1567 = getelementptr inbounds %struct.ImGuiTable, ptr %1566, i32 0, i32 54
  %1568 = load ptr, ptr %1567, align 8, !tbaa !136
  %1569 = getelementptr inbounds %struct.ImGuiWindow, ptr %1568, i32 0, i32 74
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1569, ptr align 8 %1565, i64 16, i1 false), !tbaa.struct !160
  %1570 = load ptr, ptr %2, align 8, !tbaa !5
  %1571 = getelementptr inbounds %struct.ImGuiTable, ptr %1570, i32 0, i32 47
  %1572 = getelementptr inbounds %struct.ImRect, ptr %1571, i32 0, i32 0
  %1573 = getelementptr inbounds %struct.ImVec2, ptr %1572, i32 0, i32 0
  %1574 = load float, ptr %1573, align 8, !tbaa !212
  %1575 = load ptr, ptr %2, align 8, !tbaa !5
  %1576 = getelementptr inbounds %struct.ImGuiTable, ptr %1575, i32 0, i32 28
  store float %1574, ptr %1576, align 8, !tbaa !213
  %1577 = load ptr, ptr %2, align 8, !tbaa !5
  %1578 = getelementptr inbounds %struct.ImGuiTable, ptr %1577, i32 0, i32 47
  %1579 = getelementptr inbounds %struct.ImRect, ptr %1578, i32 0, i32 1
  %1580 = getelementptr inbounds %struct.ImVec2, ptr %1579, i32 0, i32 0
  %1581 = load float, ptr %1580, align 8, !tbaa !211
  %1582 = load ptr, ptr %2, align 8, !tbaa !5
  %1583 = getelementptr inbounds %struct.ImGuiTable, ptr %1582, i32 0, i32 29
  store float %1581, ptr %1583, align 4, !tbaa !214
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %1584 = load ptr, ptr %2, align 8, !tbaa !5
  %1585 = getelementptr inbounds %struct.ImGuiTable, ptr %1584, i32 0, i32 1
  %1586 = load i32, ptr %1585, align 4, !tbaa !29
  %1587 = and i32 %1586, 131072
  %1588 = icmp ne i32 %1587, 0
  br i1 %1588, label %1589, label %1595

1589:                                             ; preds = %1563
  %1590 = load ptr, ptr %2, align 8, !tbaa !5
  %1591 = getelementptr inbounds %struct.ImGuiTable, ptr %1590, i32 0, i32 44
  %1592 = getelementptr inbounds %struct.ImRect, ptr %1591, i32 0, i32 1
  %1593 = getelementptr inbounds %struct.ImVec2, ptr %1592, i32 0, i32 1
  %1594 = load float, ptr %1593, align 4, !tbaa !180
  store float %1594, ptr %49, align 4, !tbaa !107
  br label %1618

1595:                                             ; preds = %1563
  %1596 = load ptr, ptr %2, align 8, !tbaa !5
  %1597 = getelementptr inbounds %struct.ImGuiTable, ptr %1596, i32 0, i32 54
  %1598 = load ptr, ptr %1597, align 8, !tbaa !136
  %1599 = getelementptr inbounds %struct.ImGuiWindow, ptr %1598, i32 0, i32 76
  %1600 = getelementptr inbounds %struct.ImRect, ptr %1599, i32 0, i32 1
  %1601 = getelementptr inbounds %struct.ImVec2, ptr %1600, i32 0, i32 1
  %1602 = load float, ptr %1601, align 4, !tbaa !215
  %1603 = load ptr, ptr %2, align 8, !tbaa !5
  %1604 = getelementptr inbounds %struct.ImGuiTable, ptr %1603, i32 0, i32 1
  %1605 = load i32, ptr %1604, align 4, !tbaa !29
  %1606 = and i32 %1605, 33554432
  %1607 = icmp ne i32 %1606, 0
  br i1 %1607, label %1608, label %1609

1608:                                             ; preds = %1595
  br label %1615

1609:                                             ; preds = %1595
  %1610 = load ptr, ptr %2, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.ImGuiTable, ptr %1610, i32 0, i32 44
  %1612 = getelementptr inbounds %struct.ImRect, ptr %1611, i32 0, i32 1
  %1613 = getelementptr inbounds %struct.ImVec2, ptr %1612, i32 0, i32 1
  %1614 = load float, ptr %1613, align 4, !tbaa !180
  br label %1615

1615:                                             ; preds = %1609, %1608
  %1616 = phi float [ 0.000000e+00, %1608 ], [ %1614, %1609 ]
  %1617 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1602, float noundef %1616)
  store float %1617, ptr %49, align 4, !tbaa !107
  br label %1618

1618:                                             ; preds = %1615, %1589
  %1619 = load float, ptr %49, align 4, !tbaa !107
  %1620 = load ptr, ptr %3, align 8, !tbaa !5
  %1621 = getelementptr inbounds %struct.ImGuiContext, ptr %1620, i32 0, i32 4
  %1622 = getelementptr inbounds %struct.ImGuiStyle, ptr %1621, i32 0, i32 17
  %1623 = getelementptr inbounds %struct.ImVec2, ptr %1622, i32 0, i32 1
  %1624 = load float, ptr %1623, align 4, !tbaa !216
  %1625 = fsub float %1619, %1624
  %1626 = load ptr, ptr %2, align 8, !tbaa !5
  %1627 = getelementptr inbounds %struct.ImGuiTable, ptr %1626, i32 0, i32 54
  %1628 = load ptr, ptr %1627, align 8, !tbaa !136
  %1629 = getelementptr inbounds %struct.ImGuiWindow, ptr %1628, i32 0, i32 73
  %1630 = getelementptr inbounds %struct.ImRect, ptr %1629, i32 0, i32 0
  %1631 = getelementptr inbounds %struct.ImVec2, ptr %1630, i32 0, i32 1
  %1632 = load float, ptr %1631, align 4, !tbaa !217
  %1633 = load ptr, ptr %2, align 8, !tbaa !5
  %1634 = getelementptr inbounds %struct.ImGuiTable, ptr %1633, i32 0, i32 54
  %1635 = load ptr, ptr %1634, align 8, !tbaa !136
  %1636 = getelementptr inbounds %struct.ImGuiWindow, ptr %1635, i32 0, i32 73
  %1637 = getelementptr inbounds %struct.ImRect, ptr %1636, i32 0, i32 1
  %1638 = getelementptr inbounds %struct.ImVec2, ptr %1637, i32 0, i32 1
  %1639 = load float, ptr %1638, align 4, !tbaa !218
  %1640 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %1625, float noundef %1632, float noundef %1639)
  %1641 = load ptr, ptr %2, align 8, !tbaa !5
  %1642 = getelementptr inbounds %struct.ImGuiTable, ptr %1641, i32 0, i32 54
  %1643 = load ptr, ptr %1642, align 8, !tbaa !136
  %1644 = getelementptr inbounds %struct.ImGuiWindow, ptr %1643, i32 0, i32 73
  %1645 = getelementptr inbounds %struct.ImRect, ptr %1644, i32 0, i32 1
  %1646 = getelementptr inbounds %struct.ImVec2, ptr %1645, i32 0, i32 1
  store float %1640, ptr %1646, align 4, !tbaa !218
  %1647 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui22TableSetupDrawChannelsEP10ImGuiTable(ptr noundef %1647)
  %1648 = load ptr, ptr %2, align 8, !tbaa !5
  %1649 = getelementptr inbounds %struct.ImGuiTable, ptr %1648, i32 0, i32 1
  %1650 = load i32, ptr %1649, align 4, !tbaa !29
  %1651 = and i32 %1650, 1
  %1652 = icmp ne i32 %1651, 0
  br i1 %1652, label %1653, label %1655

1653:                                             ; preds = %1618
  %1654 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui18TableUpdateBordersEP10ImGuiTable(ptr noundef %1654)
  br label %1655

1655:                                             ; preds = %1653, %1618
  %1656 = load ptr, ptr %35, align 8, !tbaa !5
  %1657 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %1656, i32 0, i32 2
  store float 0.000000e+00, ptr %1657, align 4, !tbaa !219
  %1658 = load ptr, ptr %2, align 8, !tbaa !5
  %1659 = getelementptr inbounds %struct.ImGuiTable, ptr %1658, i32 0, i32 88
  store i8 1, ptr %1659, align 2, !tbaa !9
  %1660 = load ptr, ptr %2, align 8, !tbaa !5
  %1661 = getelementptr inbounds %struct.ImGuiTable, ptr %1660, i32 0, i32 92
  store i8 0, ptr %1661, align 2, !tbaa !220
  %1662 = load ptr, ptr %2, align 8, !tbaa !5
  %1663 = call noundef zeroext i1 @_ZN5ImGui26TableBeginContextMenuPopupEP10ImGuiTable(ptr noundef %1662)
  br i1 %1663, label %1664, label %1666

1664:                                             ; preds = %1655
  %1665 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui20TableDrawContextMenuEP10ImGuiTable(ptr noundef %1665)
  call void @_ZN5ImGui8EndPopupEv()
  br label %1666

1666:                                             ; preds = %1664, %1655
  %1667 = load ptr, ptr %2, align 8, !tbaa !5
  %1668 = getelementptr inbounds %struct.ImGuiTable, ptr %1667, i32 0, i32 91
  %1669 = load i8, ptr %1668, align 1, !tbaa !120, !range !27, !noundef !28
  %1670 = trunc i8 %1669 to i1
  br i1 %1670, label %1671, label %1679

1671:                                             ; preds = %1666
  %1672 = load ptr, ptr %2, align 8, !tbaa !5
  %1673 = getelementptr inbounds %struct.ImGuiTable, ptr %1672, i32 0, i32 1
  %1674 = load i32, ptr %1673, align 4, !tbaa !29
  %1675 = and i32 %1674, 8
  %1676 = icmp ne i32 %1675, 0
  br i1 %1676, label %1677, label %1679

1677:                                             ; preds = %1671
  %1678 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui19TableSortSpecsBuildEP10ImGuiTable(ptr noundef %1678)
  br label %1679

1679:                                             ; preds = %1677, %1671, %1666
  %1680 = load ptr, ptr %2, align 8, !tbaa !5
  %1681 = getelementptr inbounds %struct.ImGuiTable, ptr %1680, i32 0, i32 82
  %1682 = load i16, ptr %1681, align 2, !tbaa !221
  %1683 = sext i16 %1682 to i32
  %1684 = icmp sgt i32 %1683, 0
  br i1 %1684, label %1685, label %1711

1685:                                             ; preds = %1679
  %1686 = load ptr, ptr %2, align 8, !tbaa !5
  %1687 = getelementptr inbounds %struct.ImGuiTable, ptr %1686, i32 0, i32 4
  %1688 = load ptr, ptr %2, align 8, !tbaa !5
  %1689 = getelementptr inbounds %struct.ImGuiTable, ptr %1688, i32 0, i32 5
  %1690 = load ptr, ptr %2, align 8, !tbaa !5
  %1691 = getelementptr inbounds %struct.ImGuiTable, ptr %1690, i32 0, i32 82
  %1692 = load i16, ptr %1691, align 2, !tbaa !221
  %1693 = sext i16 %1692 to i32
  %1694 = sub nsw i32 %1693, 1
  %1695 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1689, i32 noundef %1694)
  %1696 = load i16, ptr %1695, align 2, !tbaa !108
  %1697 = sext i16 %1696 to i32
  %1698 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1687, i32 noundef %1697)
  %1699 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1698, i32 0, i32 3
  %1700 = load float, ptr %1699, align 4, !tbaa !191
  %1701 = load ptr, ptr %2, align 8, !tbaa !5
  %1702 = getelementptr inbounds %struct.ImGuiTable, ptr %1701, i32 0, i32 44
  %1703 = getelementptr inbounds %struct.ImRect, ptr %1702, i32 0, i32 0
  %1704 = getelementptr inbounds %struct.ImVec2, ptr %1703, i32 0, i32 0
  %1705 = load float, ptr %1704, align 8, !tbaa !177
  %1706 = fsub float %1700, %1705
  %1707 = load ptr, ptr %2, align 8, !tbaa !5
  %1708 = getelementptr inbounds %struct.ImGuiTable, ptr %1707, i32 0, i32 54
  %1709 = load ptr, ptr %1708, align 8, !tbaa !136
  %1710 = getelementptr inbounds %struct.ImGuiWindow, ptr %1709, i32 0, i32 23
  store float %1706, ptr %1710, align 8, !tbaa !222
  br label %1711

1711:                                             ; preds = %1685, %1679
  %1712 = load ptr, ptr %2, align 8, !tbaa !5
  %1713 = getelementptr inbounds %struct.ImGuiTable, ptr %1712, i32 0, i32 80
  %1714 = load i16, ptr %1713, align 2, !tbaa !223
  %1715 = sext i16 %1714 to i32
  %1716 = icmp sgt i32 %1715, 0
  br i1 %1716, label %1717, label %1725

1717:                                             ; preds = %1711
  %1718 = load ptr, ptr %35, align 8, !tbaa !5
  %1719 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %1718, i32 0, i32 3
  %1720 = load float, ptr %1719, align 4, !tbaa !224
  %1721 = load ptr, ptr %2, align 8, !tbaa !5
  %1722 = getelementptr inbounds %struct.ImGuiTable, ptr %1721, i32 0, i32 54
  %1723 = load ptr, ptr %1722, align 8, !tbaa !136
  %1724 = getelementptr inbounds %struct.ImGuiWindow, ptr %1723, i32 0, i32 24
  store float %1720, ptr %1724, align 4, !tbaa !225
  br label %1725

1725:                                             ; preds = %1717, %1711
  %1726 = load ptr, ptr %35, align 8, !tbaa !5
  %1727 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %1726, i32 0, i32 3
  store float 0.000000e+00, ptr %1727, align 4, !tbaa !224
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #10
  %1728 = load ptr, ptr %2, align 8, !tbaa !5
  %1729 = getelementptr inbounds %struct.ImGuiTable, ptr %1728, i32 0, i32 54
  %1730 = load ptr, ptr %1729, align 8, !tbaa !136
  store ptr %1730, ptr %50, align 8, !tbaa !5
  %1731 = load ptr, ptr %2, align 8, !tbaa !5
  %1732 = getelementptr inbounds %struct.ImGuiTable, ptr %1731, i32 0, i32 1
  %1733 = load i32, ptr %1732, align 4, !tbaa !29
  %1734 = and i32 %1733, 1048576
  %1735 = icmp ne i32 %1734, 0
  br i1 %1735, label %1736, label %1743

1736:                                             ; preds = %1725
  %1737 = load ptr, ptr %2, align 8, !tbaa !5
  %1738 = getelementptr inbounds %struct.ImGuiTable, ptr %1737, i32 0, i32 56
  %1739 = load ptr, ptr %1738, align 8, !tbaa !226
  %1740 = load ptr, ptr %50, align 8, !tbaa !5
  %1741 = getelementptr inbounds %struct.ImGuiWindow, ptr %1740, i32 0, i32 88
  %1742 = load ptr, ptr %1741, align 8, !tbaa !227
  call void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24) %1739, ptr noundef %1742, i32 noundef 2)
  br label %1753

1743:                                             ; preds = %1725
  %1744 = load ptr, ptr %50, align 8, !tbaa !5
  %1745 = getelementptr inbounds %struct.ImGuiWindow, ptr %1744, i32 0, i32 88
  %1746 = load ptr, ptr %1745, align 8, !tbaa !227
  %1747 = load ptr, ptr %50, align 8, !tbaa !5
  %1748 = getelementptr inbounds %struct.ImGuiWindow, ptr %1747, i32 0, i32 75
  %1749 = getelementptr inbounds %struct.ImRect, ptr %1748, i32 0, i32 0
  %1750 = load ptr, ptr %50, align 8, !tbaa !5
  %1751 = getelementptr inbounds %struct.ImGuiWindow, ptr %1750, i32 0, i32 75
  %1752 = getelementptr inbounds %struct.ImRect, ptr %1751, i32 0, i32 1
  call void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196) %1746, ptr noundef nonnull align 4 dereferenceable(8) %1749, ptr noundef nonnull align 4 dereferenceable(8) %1752, i1 noundef zeroext false)
  br label %1753

1753:                                             ; preds = %1743, %1736
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #10
  ret void

1754:                                             ; preds = %1461, %927, %372
  unreachable
}

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef, ptr noundef, i32 noundef) #6

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #7

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL7ImFloorf(float noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16), float noundef, float noundef, float noundef, float noundef) unnamed_addr #6 align 2

declare noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui22TableGetMaxColumnWidthEPK10ImGuiTablei(ptr noundef, i32 noundef) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef, float noundef, float noundef) #3

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui26TableBeginContextMenuPopupEP10ImGuiTable(ptr noundef) #6

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

declare void @_ZN5ImGui8EndPopupEv() #9

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

declare void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, i32 noundef) #9

declare void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) #9

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="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 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { 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 #9 = { "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 #10 = { nounwind }
attributes #11 = { noreturn 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, !26, i64 554}
!10 = !{!"_ZTS10ImGuiTable", !11, i64 0, !11, i64 4, !6, i64 8, !6, i64 16, !12, i64 24, !13, i64 40, !14, i64 56, !6, i64 72, !6, i64 80, !6, i64 88, !11, i64 96, !11, i64 100, !11, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !15, i64 120, !15, i64 122, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !11, i64 144, !11, i64 146, !11, i64 148, !7, i64 152, !11, i64 160, !11, i64 164, !16, i64 168, !16, i64 172, !16, i64 176, !16, i64 180, !16, i64 184, !16, i64 188, !16, i64 192, !16, i64 196, !16, i64 200, !16, i64 204, !16, i64 208, !16, i64 212, !16, i64 216, !16, i64 220, !16, i64 224, !16, i64 228, !17, i64 232, !17, i64 248, !17, i64 264, !17, i64 280, !17, i64 296, !17, i64 312, !17, i64 328, !17, i64 344, !17, i64 360, !6, i64 376, !6, i64 384, !19, i64 392, !6, i64 408, !21, i64 416, !22, i64 440, !23, i64 456, !24, i64 472, !25, i64 488, !15, i64 504, !15, i64 506, !15, i64 508, !15, i64 510, !15, i64 512, !15, i64 514, !15, i64 516, !15, i64 518, !15, i64 520, !15, i64 522, !15, i64 524, !15, i64 526, !15, i64 528, !15, i64 530, !15, i64 532, !15, i64 534, !15, i64 536, !15, i64 538, !15, i64 540, !15, i64 542, !15, i64 544, !15, i64 546, !15, i64 548, !15, i64 550, !15, i64 552, !26, i64 554, !26, i64 555, !26, i64 556, !26, i64 557, !26, i64 558, !26, i64 559, !26, i64 560, !26, i64 561, !26, i64 562, !26, i64 563, !26, i64 564, !26, i64 565, !26, i64 566, !26, i64 567, !26, i64 568, !26, i64 569, !26, i64 570}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!13 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!14 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!15 = !{!"short", !7, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!18 = !{!"_ZTS6ImVec2", !16, i64 0, !16, i64 4}
!19 = !{!"_ZTS15ImGuiTextBuffer", !20, i64 0}
!20 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!21 = !{!"_ZTS22ImGuiTableInstanceData", !11, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !11, i64 16, !11, i64 20}
!22 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!23 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !11, i64 0, !15, i64 4, !15, i64 6, !11, i64 8}
!24 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!25 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !26, i64 12}
!26 = !{!"bool", !7, i64 0}
!27 = !{i8 0, i8 2}
!28 = !{}
!29 = !{!10, !11, i64 4}
!30 = !{!11, !11, i64 0}
!31 = !{!10, !26, i64 562}
!32 = !{!10, !15, i64 506}
!33 = !{!10, !6, i64 80}
!34 = !{!10, !11, i64 108}
!35 = !{!10, !6, i64 72}
!36 = !{!10, !15, i64 528}
!37 = !{!38, !16, i64 14612}
!38 = !{!"_ZTS12ImGuiContext", !26, i64 0, !26, i64 1, !39, i64 8, !42, i64 14336, !45, i64 14552, !11, i64 15676, !11, i64 15680, !6, i64 15688, !16, i64 15696, !16, i64 15700, !46, i64 15704, !49, i64 16232, !11, i64 16240, !11, i64 16244, !11, i64 16248, !11, i64 16252, !26, i64 16256, !26, i64 16257, !26, i64 16258, !26, i64 16259, !26, i64 16260, !6, i64 16264, !50, i64 16272, !50, i64 16288, !40, i64 16304, !11, i64 16308, !51, i64 16312, !51, i64 16328, !51, i64 16344, !52, i64 16360, !53, i64 16376, !11, i64 16392, !18, i64 16396, !6, i64 16408, !6, i64 16416, !6, i64 16424, !6, i64 16432, !6, i64 16440, !18, i64 16448, !11, i64 16456, !16, i64 16460, !18, i64 16464, !18, i64 16472, !11, i64 16480, !11, i64 16484, !11, i64 16488, !26, i64 16492, !26, i64 16493, !16, i64 16496, !16, i64 16500, !11, i64 16504, !11, i64 16508, !16, i64 16512, !26, i64 16516, !26, i64 16517, !26, i64 16518, !26, i64 16519, !26, i64 16520, !26, i64 16521, !18, i64 16524, !6, i64 16536, !55, i64 16544, !11, i64 16548, !11, i64 16552, !26, i64 16556, !26, i64 16557, !6, i64 16560, !11, i64 16568, !16, i64 16572, !7, i64 16576, !56, i64 18256, !11, i64 18568, !26, i64 18572, !11, i64 18576, !11, i64 18580, !11, i64 18584, !11, i64 18588, !58, i64 18592, !59, i64 18616, !60, i64 18680, !62, i64 18824, !63, i64 18840, !64, i64 18856, !65, i64 18872, !66, i64 18888, !67, i64 18904, !68, i64 18920, !68, i64 18936, !11, i64 18952, !69, i64 18960, !16, i64 18976, !6, i64 18984, !6, i64 18992, !6, i64 19000, !11, i64 19008, !70, i64 19016, !11, i64 19064, !11, i64 19068, !11, i64 19072, !6, i64 19080, !11, i64 19088, !11, i64 19092, !11, i64 19096, !11, i64 19100, !11, i64 19104, !11, i64 19108, !11, i64 19112, !11, i64 19116, !11, i64 19120, !11, i64 19124, !11, i64 19128, !55, i64 19132, !71, i64 19136, !26, i64 19140, !26, i64 19141, !26, i64 19142, !26, i64 19143, !26, i64 19144, !26, i64 19145, !26, i64 19146, !72, i64 19152, !26, i64 19200, !26, i64 19201, !26, i64 19202, !11, i64 19204, !11, i64 19208, !11, i64 19212, !11, i64 19216, !11, i64 19220, !11, i64 19224, !17, i64 19228, !17, i64 19244, !11, i64 19260, !11, i64 19264, !11, i64 19268, !72, i64 19272, !72, i64 19320, !72, i64 19368, !72, i64 19416, !11, i64 19464, !11, i64 19468, !6, i64 19472, !6, i64 19480, !6, i64 19488, !16, i64 19496, !16, i64 19500, !26, i64 19504, !18, i64 19508, !18, i64 19516, !16, i64 19524, !26, i64 19528, !26, i64 19529, !26, i64 19530, !11, i64 19532, !11, i64 19536, !11, i64 19540, !73, i64 19544, !17, i64 19608, !11, i64 19624, !11, i64 19628, !16, i64 19632, !11, i64 19636, !11, i64 19640, !11, i64 19644, !11, i64 19648, !74, i64 19656, !7, i64 19672, !11, i64 19688, !75, i64 19696, !6, i64 19712, !11, i64 19720, !76, i64 19728, !77, i64 19744, !79, i64 19784, !80, i64 19800, !6, i64 19816, !81, i64 19824, !83, i64 19864, !84, i64 19880, !11, i64 19896, !11, i64 19900, !16, i64 19904, !16, i64 19908, !11, i64 19912, !11, i64 19916, !11, i64 19920, !16, i64 19924, !18, i64 19928, !85, i64 19936, !88, i64 23664, !89, i64 23688, !11, i64 23808, !11, i64 23812, !11, i64 23816, !11, i64 23820, !16, i64 23824, !16, i64 23828, !11, i64 23832, !47, i64 23836, !91, i64 23852, !16, i64 23900, !16, i64 23904, !26, i64 23908, !26, i64 23909, !16, i64 23912, !16, i64 23916, !16, i64 23920, !16, i64 23924, !15, i64 23928, !15, i64 23930, !20, i64 23936, !65, i64 23952, !92, i64 23968, !92, i64 23984, !11, i64 24000, !7, i64 24004, !93, i64 24008, !6, i64 24064, !26, i64 24072, !16, i64 24076, !19, i64 24080, !96, i64 24096, !97, i64 24112, !98, i64 24128, !99, i64 24144, !11, i64 24160, !7, i64 24168, !26, i64 24240, !100, i64 24244, !6, i64 24248, !19, i64 24256, !6, i64 24272, !6, i64 24280, !16, i64 24288, !26, i64 24292, !11, i64 24296, !11, i64 24300, !11, i64 24304, !11, i64 24308, !19, i64 24312, !101, i64 24328, !7, i64 24352, !7, i64 24353, !7, i64 24354, !26, i64 24355, !7, i64 24356, !11, i64 24360, !102, i64 24364, !103, i64 24384, !6, i64 24424, !7, i64 24432, !11, i64 24672, !11, i64 24676, !16, i64 24680, !11, i64 24684, !11, i64 24688, !11, i64 24692, !20, i64 24696}
!39 = !{!"_ZTS7ImGuiIO", !11, i64 0, !11, i64 4, !18, i64 8, !16, i64 16, !16, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !16, i64 56, !26, i64 60, !6, i64 64, !18, i64 72, !26, i64 80, !26, i64 81, !26, i64 82, !26, i64 83, !26, i64 84, !26, i64 85, !26, i64 86, !26, i64 87, !26, i64 88, !26, i64 89, !26, i64 90, !26, i64 91, !26, i64 92, !26, i64 93, !26, i64 94, !26, i64 95, !16, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !16, i64 116, !26, i64 120, !26, i64 121, !26, i64 122, !26, i64 123, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !26, i64 208, !26, i64 209, !26, i64 210, !26, i64 211, !26, i64 212, !26, i64 213, !26, i64 214, !16, i64 216, !11, i64 220, !11, i64 224, !11, i64 228, !11, i64 232, !11, i64 236, !18, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !18, i64 3584, !7, i64 3592, !16, i64 3600, !16, i64 3604, !40, i64 3608, !11, i64 3612, !26, i64 3616, !26, i64 3617, !26, i64 3618, !26, i64 3619, !11, i64 3620, !7, i64 3624, !26, i64 14056, !18, i64 14060, !7, i64 14068, !7, i64 14112, !7, i64 14152, !7, i64 14157, !7, i64 14162, !7, i64 14172, !7, i64 14182, !7, i64 14187, !7, i64 14192, !26, i64 14197, !7, i64 14200, !7, i64 14220, !7, i64 14240, !7, i64 14280, !16, i64 14300, !26, i64 14304, !26, i64 14305, !7, i64 14306, !26, i64 14307, !15, i64 14308, !41, i64 14312}
!40 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!41 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!42 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, 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, !43, i64 184, !44, i64 200}
!43 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !11, i64 0, !11, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !11, i64 0, !11, i64 4, !6, i64 8}
!45 = !{!"_ZTS10ImGuiStyle", !16, i64 0, !16, i64 4, !18, i64 8, !16, i64 16, !16, i64 20, !18, i64 24, !18, i64 32, !11, i64 40, !16, i64 44, !16, i64 48, !16, i64 52, !16, i64 56, !18, i64 60, !16, i64 68, !16, i64 72, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !16, i64 144, !11, i64 148, !18, i64 152, !18, i64 160, !16, i64 168, !18, i64 172, !18, i64 180, !18, i64 188, !18, i64 196, !16, i64 204, !16, i64 208, !26, i64 212, !26, i64 213, !26, i64 214, !16, i64 216, !16, i64 220, !7, i64 224, !16, i64 1104, !16, i64 1108, !16, i64 1112, !11, i64 1116, !11, i64 1120}
!46 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !16, i64 16, !16, i64 20, !16, i64 24, !47, i64 28, !11, i64 44, !48, i64 48, !7, i64 64, !16, i64 448, !7, i64 452, !6, i64 520}
!47 = !{!"_ZTS6ImVec4", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12}
!48 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!49 = !{!"double", !7, i64 0}
!50 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !11, i64 0, !11, i64 4, !6, i64 8}
!51 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !11, i64 0, !11, i64 4, !6, i64 8}
!52 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!53 = !{!"_ZTS12ImGuiStorage", !54, i64 0}
!54 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!55 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!56 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !57, i64 280, !57, i64 296}
!57 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!58 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !11, i64 4, !16, i64 8, !11, i64 12, !11, i64 16, !26, i64 20}
!59 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !17, i64 12, !17, i64 28, !17, i64 44}
!60 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !18, i64 20, !18, i64 28, !18, i64 36, !18, i64 44, !18, i64 52, !26, i64 60, !26, i64 61, !17, i64 64, !6, i64 80, !6, i64 88, !16, i64 96, !11, i64 100, !11, i64 104, !61, i64 108, !18, i64 136}
!61 = !{!"_ZTS16ImGuiWindowClass", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !26, i64 24, !26, i64 25}
!62 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!63 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!70 = !{!"_ZTS20ImGuiPlatformMonitor", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !16, i64 32, !6, i64 40}
!71 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!72 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !11, i64 8, !11, i64 12, !17, i64 16, !11, i64 32, !16, i64 36, !16, i64 40, !16, i64 44}
!73 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !26, i64 57, !26, i64 58}
!74 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!77 = !{!"_ZTS6ImPoolI10ImGuiTableE", !78, i64 0, !53, i64 16, !11, i64 32, !11, i64 36}
!78 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!80 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!81 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !82, i64 0, !53, i64 16, !11, i64 32, !11, i64 36}
!82 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!85 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !41, i64 24, !20, i64 40, !20, i64 56, !26, i64 72, !11, i64 76, !16, i64 80, !86, i64 84, !16, i64 3712, !26, i64 3716, !26, i64 3717, !26, i64 3718, !11, i64 3720}
!86 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !11, i64 0, !11, i64 4, !11, i64 8, !7, i64 12, !11, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !16, i64 28, !87, i64 32}
!87 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !15, i64 3582, !15, i64 3584, !11, i64 3588, !11, i64 3592}
!88 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !11, i64 0, !20, i64 8}
!89 = !{!"_ZTS6ImFont", !79, i64 0, !16, i64 16, !16, i64 20, !41, i64 24, !90, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !15, i64 80, !15, i64 82, !15, i64 84, !15, i64 86, !16, i64 88, !16, i64 92, !26, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !11, i64 112, !7, i64 116}
!90 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!91 = !{!"_ZTS21ImGuiComboPreviewData", !17, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !16, i64 40, !11, i64 44}
!92 = !{!"_ZTS20ImGuiPlatformImeData", !26, i64 0, !18, i64 4, !16, i64 12}
!93 = !{!"_ZTS16ImGuiDockContext", !53, i64 0, !94, i64 16, !95, i64 32, !26, i64 48}
!94 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !11, i64 0, !11, i64 4, !6, i64 8}
!95 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !11, i64 0, !11, i64 4, !6, i64 8}
!96 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!97 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !20, i64 0}
!98 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !20, i64 0}
!99 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!100 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!101 = !{!"_ZTS14ImGuiTextIndex", !66, i64 0, !11, i64 16}
!102 = !{!"_ZTS18ImGuiMetricsConfig", !26, i64 0, !26, i64 1, !26, i64 2, !26, i64 3, !26, i64 4, !26, i64 5, !26, i64 6, !26, i64 7, !26, i64 8, !11, i64 12, !11, i64 16}
!103 = !{!"_ZTS14ImGuiStackTool", !11, i64 0, !11, i64 4, !11, i64 8, !104, i64 16, !26, i64 32, !16, i64 36}
!104 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !11, i64 0, !11, i64 4, !6, i64 8}
!105 = !{!10, !16, i64 180}
!106 = !{!26, !26, i64 0}
!107 = !{!16, !16, i64 0}
!108 = !{!15, !15, i64 0}
!109 = !{!10, !15, i64 510}
!110 = !{!111, !15, i64 80}
!111 = !{!"_ZTS16ImGuiTableColumn", !11, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !17, i64 32, !11, i64 48, !16, i64 52, !16, i64 56, !16, i64 60, !16, i64 64, !16, i64 68, !16, i64 72, !16, i64 76, !15, i64 80, !15, i64 82, !15, i64 84, !15, i64 86, !15, i64 88, !15, i64 90, !15, i64 92, !15, i64 94, !15, i64 96, !26, i64 98, !26, i64 99, !26, i64 100, !26, i64 101, !26, i64 102, !26, i64 103, !26, i64 104, !26, i64 105, !7, i64 106, !7, i64 107, !7, i64 108, !7, i64 109, !7, i64 109, !7, i64 109, !7, i64 110}
!112 = !{!111, !11, i64 48}
!113 = !{!111, !16, i64 28}
!114 = !{!111, !11, i64 0}
!115 = !{!111, !26, i64 100}
!116 = !{!111, !26, i64 99}
!117 = !{!10, !26, i64 561}
!118 = !{!111, !26, i64 98}
!119 = !{!111, !15, i64 90}
!120 = !{!10, !26, i64 557}
!121 = !{!111, !16, i64 16}
!122 = !{!111, !16, i64 24}
!123 = !{!111, !7, i64 108}
!124 = !{!111, !7, i64 107}
!125 = !{!111, !15, i64 84}
!126 = !{!111, !15, i64 86}
!127 = !{!111, !15, i64 88}
!128 = !{!111, !15, i64 82}
!129 = !{!111, !26, i64 105}
!130 = !{!111, !16, i64 20}
!131 = distinct !{!131, !132}
!132 = !{!"llvm.loop.mustprogress"}
!133 = !{!10, !15, i64 504}
!134 = !{!10, !15, i64 530}
!135 = !{!10, !6, i64 376}
!136 = !{!10, !6, i64 384}
!137 = !{!138, !26, i64 240}
!138 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !11, i64 24, !61, i64 28, !6, i64 56, !11, i64 64, !18, i64 68, !11, i64 76, !18, i64 80, !18, i64 88, !18, i64 96, !18, i64 104, !18, i64 112, !18, i64 120, !18, i64 128, !16, i64 136, !16, i64 140, !16, i64 144, !16, i64 148, !16, i64 152, !16, i64 156, !16, i64 160, !16, i64 164, !11, i64 168, !11, i64 172, !11, i64 176, !11, i64 180, !18, i64 184, !18, i64 192, !18, i64 200, !18, i64 208, !18, i64 216, !18, i64 224, !26, i64 232, !26, i64 233, !26, i64 234, !26, i64 235, !26, i64 236, !26, i64 237, !26, i64 238, !26, i64 239, !26, i64 240, !26, i64 241, !26, i64 242, !26, i64 243, !26, i64 244, !26, i64 245, !7, i64 246, !15, i64 248, !15, i64 250, !15, i64 252, !15, i64 254, !15, i64 256, !11, i64 260, !7, i64 264, !7, i64 265, !7, i64 266, !26, i64 267, !11, i64 268, !7, i64 272, !7, i64 273, !7, i64 274, !7, i64 275, !11, i64 276, !11, i64 277, !11, i64 278, !11, i64 279, !18, i64 280, !18, i64 288, !65, i64 296, !139, i64 312, !17, i64 544, !17, i64 560, !17, i64 576, !17, i64 592, !17, i64 608, !17, i64 624, !17, i64 640, !142, i64 656, !142, i64 660, !11, i64 664, !11, i64 668, !16, i64 672, !16, i64 676, !53, i64 680, !143, i64 696, !16, i64 712, !16, i64 716, !11, i64 720, !6, i64 728, !144, i64 736, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !7, i64 1000, !7, i64 1008, !7, i64 1040, !11, i64 1056, !11, i64 1060, !11, i64 1064, !26, i64 1068, !26, i64 1069, !26, i64 1069, !26, i64 1069, !26, i64 1069, !15, i64 1070, !151, i64 1072, !6, i64 1096, !6, i64 1104, !11, i64 1112, !11, i64 1116, !17, i64 1120}
!139 = !{!"_ZTS19ImGuiWindowTempData", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !16, i64 56, !16, i64 60, !26, i64 64, !26, i64 65, !140, i64 68, !140, i64 72, !140, i64 76, !18, i64 80, !71, i64 88, !15, i64 92, !15, i64 94, !26, i64 96, !26, i64 97, !26, i64 98, !26, i64 99, !18, i64 100, !141, i64 108, !11, i64 136, !11, i64 140, !51, i64 144, !6, i64 160, !6, i64 168, !11, i64 176, !11, i64 180, !11, i64 184, !16, i64 188, !16, i64 192, !79, i64 200, !79, i64 216}
!140 = !{!"_ZTS6ImVec1", !16, i64 0}
!141 = !{!"_ZTS16ImGuiMenuColumns", !11, i64 0, !11, i64 4, !15, i64 8, !15, i64 10, !15, i64 12, !15, i64 14, !15, i64 16, !7, i64 18}
!142 = !{!"_ZTS8ImVec2ih", !15, i64 0, !15, i64 2}
!143 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!144 = !{!"_ZTS10ImDrawList", !145, i64 0, !41, i64 16, !146, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !147, i64 88, !148, i64 104, !48, i64 120, !149, i64 136, !150, i64 168, !16, i64 192}
!145 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!146 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!147 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!148 = !{!"_ZTS8ImVectorIPvE", !11, i64 0, !11, i64 4, !6, i64 8}
!149 = !{!"_ZTS15ImDrawCmdHeader", !47, i64 0, !6, i64 16, !11, i64 24}
!150 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !80, i64 8}
!151 = !{!"_ZTS20ImGuiWindowDockStyle", !7, i64 0}
!152 = !{!10, !15, i64 534}
!153 = !{!10, !15, i64 532}
!154 = !{!111, !26, i64 103}
!155 = !{!10, !26, i64 556}
!156 = !{!10, !16, i64 188}
!157 = distinct !{!157, !132}
!158 = !{!10, !15, i64 508}
!159 = !{!10, !16, i64 216}
!160 = !{i64 0, i64 4, !107, i64 4, i64 4, !107, i64 8, i64 4, !107, i64 12, i64 4, !107}
!161 = !{!10, !16, i64 184}
!162 = !{!10, !16, i64 196}
!163 = !{!10, !16, i64 200}
!164 = !{!10, !26, i64 568}
!165 = !{!138, !26, i64 233}
!166 = !{!38, !16, i64 14668}
!167 = !{!10, !16, i64 204}
!168 = !{!10, !16, i64 208}
!169 = !{!111, !16, i64 4}
!170 = distinct !{!170, !132}
!171 = distinct !{!171, !132}
!172 = !{!10, !15, i64 120}
!173 = !{!21, !11, i64 20}
!174 = !{!21, !11, i64 16}
!175 = !{!10, !15, i64 512}
!176 = !{!10, !15, i64 514}
!177 = !{!10, !16, i64 232}
!178 = !{!10, !16, i64 236}
!179 = !{!10, !16, i64 240}
!180 = !{!10, !16, i64 244}
!181 = !{!21, !16, i64 4}
!182 = !{!38, !11, i64 16504}
!183 = !{!10, !15, i64 544}
!184 = !{!17, !16, i64 0}
!185 = !{!10, !6, i64 88}
!186 = !{!10, !15, i64 540}
!187 = !{!111, !7, i64 106}
!188 = !{!111, !16, i64 40}
!189 = !{!111, !16, i64 32}
!190 = !{!111, !16, i64 52}
!191 = !{!111, !16, i64 12}
!192 = !{!111, !16, i64 8}
!193 = !{!17, !16, i64 4}
!194 = !{!111, !16, i64 36}
!195 = !{!111, !16, i64 44}
!196 = !{!111, !26, i64 102}
!197 = !{!111, !26, i64 101}
!198 = !{!111, !26, i64 104}
!199 = !{!111, !16, i64 60}
!200 = !{!38, !16, i64 3592}
!201 = !{!111, !16, i64 56}
!202 = !{!10, !26, i64 570}
!203 = !{!111, !16, i64 68}
!204 = !{!111, !16, i64 64}
!205 = !{!111, !16, i64 76}
!206 = !{!111, !16, i64 72}
!207 = !{!17, !16, i64 8}
!208 = distinct !{!208, !132}
!209 = !{!10, !16, i64 264}
!210 = !{!10, !16, i64 272}
!211 = !{!10, !16, i64 288}
!212 = !{!10, !16, i64 280}
!213 = !{!10, !16, i64 168}
!214 = !{!10, !16, i64 172}
!215 = !{!138, !16, i64 652}
!216 = !{!38, !16, i64 14648}
!217 = !{!138, !16, i64 596}
!218 = !{!138, !16, i64 604}
!219 = !{!21, !16, i64 8}
!220 = !{!10, !26, i64 558}
!221 = !{!10, !15, i64 542}
!222 = !{!138, !16, i64 160}
!223 = !{!10, !15, i64 538}
!224 = !{!21, !16, i64 12}
!225 = !{!138, !16, i64 164}
!226 = !{!10, !6, i64 408}
!227 = !{!138, !6, i64 728}


; 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 local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable = external hidden unnamed_addr constant [44 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [12 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #1

; 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: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef, float noundef) local_unnamed_addr #3

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL5ImMinIfET_S0_S0_(float noundef, float noundef) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17TableUpdateLayoutEP10ImGuiTable(ptr noundef %0) local_unnamed_addr #6 {
  %2 = alloca %struct.ImRect, align 4
  %3 = alloca %struct.ImRect, align 4
  %4 = alloca %struct.ImRect, align 4
  %5 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %6 = getelementptr inbounds i8, ptr %0, i64 554
  %7 = load i8, ptr %6, align 2, !tbaa !9, !range !27, !noundef !28
  %8 = icmp eq i8 %7, 0
  br i1 %8, label %10, label %9

9:                                                ; preds = %1
  tail call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 743, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #10
  unreachable

10:                                               ; preds = %1
  %11 = getelementptr inbounds i8, ptr %0, i64 4
  %12 = load i32, ptr %11, align 4, !tbaa !29
  %13 = and i32 %12, 57344
  %14 = getelementptr inbounds i8, ptr %0, i64 562
  store i8 1, ptr %14, align 2, !tbaa !30
  %15 = getelementptr inbounds i8, ptr %0, i64 506
  store i16 0, ptr %15, align 2, !tbaa !31
  %16 = getelementptr inbounds i8, ptr %0, i64 80
  %17 = load ptr, ptr %16, align 8, !tbaa !32
  %18 = getelementptr inbounds i8, ptr %0, i64 108
  %19 = load i32, ptr %18, align 4, !tbaa !33
  tail call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %17, i32 noundef %19)
  %20 = getelementptr inbounds i8, ptr %0, i64 72
  %21 = load ptr, ptr %20, align 8, !tbaa !34
  %22 = load i32, ptr %18, align 4, !tbaa !33
  tail call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %21, i32 noundef %22)
  %23 = getelementptr inbounds i8, ptr %0, i64 528
  store i16 -1, ptr %23, align 8, !tbaa !35
  %24 = getelementptr inbounds i8, ptr %5, i64 14612
  %25 = load float, ptr %24, align 4, !tbaa !36
  %26 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %25)
  %27 = getelementptr inbounds i8, ptr %0, i64 180
  store float %26, ptr %27, align 4, !tbaa !104
  %28 = load i32, ptr %18, align 4, !tbaa !33
  %29 = icmp sgt i32 %28, 0
  br i1 %29, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %10
  %30 = getelementptr inbounds i8, ptr %0, i64 40
  %31 = getelementptr inbounds i8, ptr %0, i64 24
  %32 = getelementptr inbounds i8, ptr %0, i64 510
  %33 = getelementptr inbounds i8, ptr %0, i64 561
  %34 = getelementptr inbounds i8, ptr %0, i64 557
  br label %38

._crit_edge:                                      ; preds = %135, %10
  %35 = phi i32 [ %28, %10 ], [ %137, %135 ]
  %.0469.lcssa = phi float [ 0.000000e+00, %10 ], [ %.2471, %135 ]
  %.0458.lcssa = phi float [ 0.000000e+00, %10 ], [ %.2460, %135 ]
  %.0455.lcssa = phi i8 [ 0, %10 ], [ %.2457, %135 ]
  %.0452.lcssa = phi i1 [ false, %10 ], [ %.2454, %135 ]
  %.0450.lcssa = phi i32 [ -1, %10 ], [ %.1451, %135 ]
  %.0447.lcssa = phi i32 [ 0, %10 ], [ %.2449, %135 ]
  %.0.lcssa = phi i16 [ 0, %10 ], [ %.2, %135 ]
  %36 = load i32, ptr %11, align 4, !tbaa !29
  %37 = and i32 %36, 8
  %.not494 = icmp eq i32 %37, 0
  br i1 %.not494, label %146, label %139

38:                                               ; preds = %.lr.ph, %135
  %.0574 = phi i16 [ 0, %.lr.ph ], [ %.2, %135 ]
  %.0447573 = phi i32 [ 0, %.lr.ph ], [ %.2449, %135 ]
  %.0450572 = phi i32 [ -1, %.lr.ph ], [ %.1451, %135 ]
  %.0452571 = phi i1 [ false, %.lr.ph ], [ %.2454, %135 ]
  %.0455570 = phi i8 [ 0, %.lr.ph ], [ %.2457, %135 ]
  %.0458569 = phi float [ 0.000000e+00, %.lr.ph ], [ %.2460, %135 ]
  %.0469568 = phi float [ 0.000000e+00, %.lr.ph ], [ %.2471, %135 ]
  %.0472567 = phi i32 [ 0, %.lr.ph ], [ %136, %135 ]
  %39 = tail call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %30, i32 noundef %.0472567)
  %40 = load i16, ptr %39, align 2, !tbaa !105
  %41 = sext i16 %40 to i32
  %.not520 = icmp eq i32 %.0472567, %41
  br i1 %.not520, label %43, label %42

42:                                               ; preds = %38
  store i8 0, ptr %14, align 2, !tbaa !30
  br label %43

43:                                               ; preds = %42, %38
  %44 = tail call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %31, i32 noundef %41)
  %45 = load i16, ptr %32, align 2, !tbaa !106
  %.not521 = icmp sgt i16 %45, %40
  br i1 %.not521, label %50, label %46

46:                                               ; preds = %43
  tail call void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef nonnull %0, ptr noundef nonnull %44, i32 noundef 0)
  %47 = getelementptr inbounds i8, ptr %44, i64 80
  store i16 -1, ptr %47, align 4, !tbaa !107
  %48 = getelementptr inbounds i8, ptr %44, i64 48
  store i32 0, ptr %48, align 4, !tbaa !109
  %49 = getelementptr inbounds i8, ptr %44, i64 28
  store float -1.000000e+00, ptr %49, align 4, !tbaa !110
  br label %50

50:                                               ; preds = %46, %43
  %51 = load i32, ptr %11, align 4, !tbaa !29
  %52 = and i32 %51, 4
  %.not522 = icmp eq i32 %52, 0
  br i1 %.not522, label %56, label %53

53:                                               ; preds = %50
  %54 = load i32, ptr %44, align 4, !tbaa !111
  %55 = and i32 %54, 128
  %.not523 = icmp eq i32 %55, 0
  br i1 %.not523, label %._crit_edge609, label %56

._crit_edge609:                                   ; preds = %53
  %.phi.trans.insert = getelementptr inbounds i8, ptr %44, i64 100
  %.pre = load i8, ptr %.phi.trans.insert, align 4, !tbaa !112, !range !27
  br label %58

56:                                               ; preds = %53, %50
  %57 = getelementptr inbounds i8, ptr %44, i64 100
  store i8 1, ptr %57, align 4, !tbaa !112
  br label %58

58:                                               ; preds = %._crit_edge609, %56
  %59 = phi i8 [ %.pre, %._crit_edge609 ], [ 1, %56 ]
  %60 = getelementptr inbounds i8, ptr %44, i64 99
  %61 = load i8, ptr %60, align 1, !tbaa !113, !range !27, !noundef !28
  %.not524 = icmp eq i8 %61, %59
  br i1 %.not524, label %63, label %62

62:                                               ; preds = %58
  store i8 %59, ptr %60, align 1, !tbaa !113
  store i8 1, ptr %33, align 1, !tbaa !114
  br label %63

63:                                               ; preds = %62, %58
  %64 = trunc nuw i8 %59 to i1
  %65 = load i32, ptr %44, align 4
  %66 = and i32 %65, 1
  %67 = icmp eq i32 %66, 0
  %68 = select i1 %64, i1 %67, i1 false
  %69 = getelementptr inbounds i8, ptr %44, i64 98
  %70 = zext i1 %68 to i8
  store i8 %70, ptr %69, align 2, !tbaa !115
  %71 = getelementptr inbounds i8, ptr %44, i64 90
  %72 = load i16, ptr %71, align 2, !tbaa !116
  %.not525 = icmp eq i16 %72, -1
  %brmerge = select i1 %.not525, i1 true, i1 %68
  %73 = icmp slt i16 %72, 1
  %74 = and i32 %51, 67108864
  %.not526 = icmp ne i32 %74, 0
  %or.cond558.not.not.not632 = or i1 %.not526, %73
  %.not630 = and i1 %or.cond558.not.not.not632, %brmerge
  br i1 %.not630, label %76, label %75

75:                                               ; preds = %63
  store i8 1, ptr %34, align 1, !tbaa !117
  br label %76

76:                                               ; preds = %63, %75
  %77 = and i32 %65, 16
  %.not527 = icmp eq i32 %77, 0
  %.in528.in.v = select i1 %.not527, i64 24, i64 16
  %.in528.in = getelementptr inbounds i8, ptr %44, i64 %.in528.in.v
  %.in528 = load float, ptr %.in528.in, align 4, !tbaa !118
  %78 = fcmp olt float %.in528, 0.000000e+00
  br i1 %78, label %79, label %82

79:                                               ; preds = %76
  %80 = getelementptr inbounds i8, ptr %44, i64 108
  store i8 7, ptr %80, align 4, !tbaa !119
  %81 = getelementptr inbounds i8, ptr %44, i64 107
  store i8 7, ptr %81, align 1, !tbaa !120
  br label %82

82:                                               ; preds = %79, %76
  br i1 %68, label %85, label %83

83:                                               ; preds = %82
  %84 = getelementptr inbounds i8, ptr %44, i64 84
  store i16 -1, ptr %84, align 4, !tbaa !121
  br label %135

85:                                               ; preds = %82
  %86 = trunc nsw i32 %.0450572 to i16
  %87 = getelementptr inbounds i8, ptr %44, i64 86
  store i16 %86, ptr %87, align 2, !tbaa !122
  %88 = getelementptr inbounds i8, ptr %44, i64 88
  store i16 -1, ptr %88, align 4, !tbaa !123
  %.not529 = icmp eq i32 %.0450572, -1
  br i1 %.not529, label %92, label %89

89:                                               ; preds = %85
  %90 = tail call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %31, i32 noundef %.0450572)
  %91 = getelementptr inbounds i8, ptr %90, i64 88
  store i16 %40, ptr %91, align 4, !tbaa !123
  br label %93

92:                                               ; preds = %85
  store i16 %40, ptr %23, align 8, !tbaa !35
  br label %93

93:                                               ; preds = %92, %89
  %94 = load i16, ptr %15, align 2, !tbaa !31
  %95 = add i16 %94, 1
  store i16 %95, ptr %15, align 2, !tbaa !31
  %96 = getelementptr inbounds i8, ptr %44, i64 84
  store i16 %94, ptr %96, align 4, !tbaa !121
  %97 = load ptr, ptr %16, align 8, !tbaa !32
  tail call void @_Z16ImBitArraySetBitPji(ptr noundef %97, i32 noundef %41)
  %98 = load ptr, ptr %20, align 8, !tbaa !34
  %99 = getelementptr inbounds i8, ptr %44, i64 82
  %100 = load i16, ptr %99, align 2, !tbaa !124
  %101 = sext i16 %100 to i32
  tail call void @_Z16ImBitArraySetBitPji(ptr noundef %98, i32 noundef %101)
  %102 = load i16, ptr %96, align 4, !tbaa !121
  %103 = load i16, ptr %99, align 2, !tbaa !124
  %.not530 = icmp sgt i16 %102, %103
  br i1 %.not530, label %104, label %105

104:                                              ; preds = %93
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 817, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #10
  unreachable

105:                                              ; preds = %93
  %106 = getelementptr inbounds i8, ptr %44, i64 105
  %107 = load i8, ptr %106, align 1, !tbaa !125, !range !27, !noundef !28
  %108 = trunc nuw i8 %107 to i1
  br i1 %108, label %112, label %109

109:                                              ; preds = %105
  %110 = tail call noundef float @_ZN5ImGui23TableGetColumnWidthAutoEP10ImGuiTableP16ImGuiTableColumn(ptr noundef nonnull %0, ptr noundef nonnull %44)
  %111 = getelementptr inbounds i8, ptr %44, i64 20
  store float %110, ptr %111, align 4, !tbaa !126
  br label %112

112:                                              ; preds = %109, %105
  %113 = load i32, ptr %44, align 4, !tbaa !111
  %114 = and i32 %113, 32
  %115 = icmp eq i32 %114, 0
  %spec.select = select i1 %115, i8 1, i8 %.0455570
  %116 = and i32 %113, 16
  %.not531 = icmp eq i32 %116, 0
  br i1 %.not531, label %123, label %117

117:                                              ; preds = %112
  %118 = getelementptr inbounds i8, ptr %44, i64 28
  %119 = load float, ptr %118, align 4, !tbaa !110
  %120 = fcmp ule float %119, 0.000000e+00
  %brmerge535 = or i1 %115, %120
  br i1 %brmerge535, label %123, label %121

121:                                              ; preds = %117
  %122 = getelementptr inbounds i8, ptr %44, i64 20
  store float %119, ptr %122, align 4, !tbaa !126
  br label %123

123:                                              ; preds = %117, %121, %112
  %124 = getelementptr inbounds i8, ptr %44, i64 107
  %125 = load i8, ptr %124, align 1, !tbaa !120
  %.not532 = icmp ne i8 %125, 0
  %spec.select536 = select i1 %.not532, i1 true, i1 %.0452571
  %126 = and i32 %113, 8
  %.not533 = icmp eq i32 %126, 0
  %127 = getelementptr inbounds i8, ptr %44, i64 20
  %128 = load float, ptr %127, align 4, !tbaa !126
  br i1 %.not533, label %132, label %129

129:                                              ; preds = %123
  %130 = fadd float %.0458569, %128
  %131 = add nsw i32 %.0447573, 1
  br label %135

132:                                              ; preds = %123
  %133 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %.0469568, float noundef %128)
  %134 = add i16 %.0574, 1
  br label %135

135:                                              ; preds = %129, %132, %83
  %.2471 = phi float [ %.0469568, %83 ], [ %.0469568, %129 ], [ %133, %132 ]
  %.2460 = phi float [ %.0458569, %83 ], [ %130, %129 ], [ %.0458569, %132 ]
  %.2457 = phi i8 [ %.0455570, %83 ], [ %spec.select, %129 ], [ %spec.select, %132 ]
  %.2454 = phi i1 [ %.0452571, %83 ], [ %spec.select536, %129 ], [ %spec.select536, %132 ]
  %.1451 = phi i32 [ %.0450572, %83 ], [ %41, %129 ], [ %41, %132 ]
  %.2449 = phi i32 [ %.0447573, %83 ], [ %131, %129 ], [ %.0447573, %132 ]
  %.2 = phi i16 [ %.0574, %83 ], [ %.0574, %129 ], [ %134, %132 ]
  %136 = add nuw nsw i32 %.0472567, 1
  %137 = load i32, ptr %18, align 4, !tbaa !33
  %138 = icmp slt i32 %136, %137
  br i1 %138, label %38, label %._crit_edge, !llvm.loop !127

139:                                              ; preds = %._crit_edge
  %140 = getelementptr inbounds i8, ptr %0, i64 504
  %141 = load i16, ptr %140, align 8, !tbaa !129
  %142 = icmp eq i16 %141, 0
  %143 = and i32 %36, 134217728
  %.not495 = icmp eq i32 %143, 0
  %or.cond537 = and i1 %.not495, %142
  br i1 %or.cond537, label %144, label %146

144:                                              ; preds = %139
  %145 = getelementptr inbounds i8, ptr %0, i64 557
  store i8 1, ptr %145, align 1, !tbaa !117
  br label %146

146:                                              ; preds = %144, %139, %._crit_edge
  %147 = trunc nsw i32 %.0450.lcssa to i16
  %148 = getelementptr inbounds i8, ptr %0, i64 530
  store i16 %147, ptr %148, align 2, !tbaa !130
  %149 = load i16, ptr %23, align 8, !tbaa !35
  %150 = icmp sgt i16 %149, -1
  %sext.mask = and i32 %.0450.lcssa, 32768
  %151 = icmp eq i32 %sext.mask, 0
  %or.cond538 = select i1 %150, i1 %151, i1 false
  br i1 %or.cond538, label %152, label %.critedge

.critedge:                                        ; preds = %146
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 847, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #10
  unreachable

152:                                              ; preds = %146
  br i1 %.0452.lcssa, label %153, label %.critedge540

153:                                              ; preds = %152
  %154 = getelementptr inbounds i8, ptr %0, i64 376
  %155 = load ptr, ptr %154, align 8, !tbaa !131
  %156 = getelementptr inbounds i8, ptr %0, i64 384
  %157 = load ptr, ptr %156, align 8, !tbaa !132
  %.not496 = icmp eq ptr %155, %157
  br i1 %.not496, label %160, label %158

158:                                              ; preds = %153
  %159 = getelementptr inbounds i8, ptr %157, i64 240
  store i8 0, ptr %159, align 8, !tbaa !133
  br label %160

160:                                              ; preds = %153, %158
  %161 = getelementptr inbounds i8, ptr %0, i64 561
  store i8 1, ptr %161, align 1, !tbaa !114
  br label %.critedge540

.critedge540:                                     ; preds = %152, %160
  %162 = getelementptr inbounds i8, ptr %0, i64 534
  store i16 -1, ptr %162, align 2, !tbaa !148
  %163 = getelementptr inbounds i8, ptr %0, i64 532
  store i16 -1, ptr %163, align 4, !tbaa !149
  %164 = icmp sgt i32 %35, 0
  br i1 %164, label %.lr.ph585, label %._crit_edge586

.lr.ph585:                                        ; preds = %.critedge540
  %165 = getelementptr inbounds i8, ptr %0, i64 24
  %166 = icmp eq i32 %13, 16384
  %167 = getelementptr inbounds i8, ptr %0, i64 556
  %.not633 = icmp eq i32 %13, 24576
  %168 = sitofp i32 %.0447.lcssa to float
  %169 = getelementptr inbounds i8, ptr %0, i64 188
  br label %189

._crit_edge586:                                   ; preds = %280, %.critedge540
  %.0477.lcssa = phi float [ 0.000000e+00, %.critedge540 ], [ %.2479, %280 ]
  %.0473.lcssa = phi float [ 0.000000e+00, %.critedge540 ], [ %.2475, %280 ]
  %.0477.lcssa.fr = freeze float %.0477.lcssa
  %170 = getelementptr inbounds i8, ptr %0, i64 508
  store i16 %.0.lcssa, ptr %170, align 4, !tbaa !150
  %171 = getelementptr inbounds i8, ptr %0, i64 216
  store float %.0477.lcssa.fr, ptr %171, align 8, !tbaa !151
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #11
  %172 = getelementptr inbounds i8, ptr %0, i64 264
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %2, ptr noundef nonnull align 8 dereferenceable(16) %172, i64 16, i1 false), !tbaa.struct !152
  %173 = getelementptr inbounds i8, ptr %0, i64 184
  %174 = load float, ptr %173, align 8, !tbaa !153
  %175 = getelementptr inbounds i8, ptr %0, i64 196
  %176 = load float, ptr %175, align 4, !tbaa !154
  %177 = getelementptr inbounds i8, ptr %0, i64 200
  %178 = load float, ptr %177, align 8, !tbaa !155
  %179 = fadd float %176, %178
  %180 = load i16, ptr %15, align 2, !tbaa !31
  %181 = sext i16 %180 to i32
  %182 = add nsw i32 %181, -1
  %183 = sitofp i32 %182 to float
  %184 = fmul float %179, %183
  %185 = tail call float @llvm.fmuladd.f32(float %174, float 2.000000e+00, float %184)
  %186 = getelementptr inbounds i8, ptr %0, i64 568
  %187 = load i8, ptr %186, align 8, !tbaa !156, !range !27, !noundef !28
  %188 = trunc nuw i8 %187 to i1
  br i1 %188, label %284, label %293

189:                                              ; preds = %.lr.ph585, %280
  %190 = phi i32 [ %35, %.lr.ph585 ], [ %281, %280 ]
  %.0473584 = phi float [ 0.000000e+00, %.lr.ph585 ], [ %.2475, %280 ]
  %.0477583 = phi float [ 0.000000e+00, %.lr.ph585 ], [ %.2479, %280 ]
  %.0480581 = phi i32 [ 0, %.lr.ph585 ], [ %282, %280 ]
  %191 = load ptr, ptr %16, align 8, !tbaa !32
  %192 = lshr i32 %.0480581, 5
  %193 = zext nneg i32 %192 to i64
  %194 = getelementptr inbounds i32, ptr %191, i64 %193
  %195 = load i32, ptr %194, align 4, !tbaa !157
  %196 = and i32 %.0480581, 31
  %197 = shl nuw i32 1, %196
  %198 = and i32 %195, %197
  %.not514 = icmp eq i32 %198, 0
  br i1 %.not514, label %280, label %199

199:                                              ; preds = %189
  %200 = tail call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %165, i32 noundef %.0480581)
  %201 = load i32, ptr %200, align 4, !tbaa !111
  %202 = and i32 %201, 32
  %203 = icmp ne i32 %202, 0
  %204 = and i32 %201, 16
  %.not515 = icmp eq i32 %204, 0
  br i1 %.not515, label %235, label %205

205:                                              ; preds = %199
  %206 = getelementptr inbounds i8, ptr %200, i64 20
  %207 = load float, ptr %206, align 4, !tbaa !126
  %208 = getelementptr inbounds i8, ptr %200, i64 107
  %209 = load i8, ptr %208, align 1, !tbaa !120
  br i1 %166, label %210, label %._crit_edge610

210:                                              ; preds = %205
  %.not517 = icmp ne i8 %209, 0
  %brmerge542 = or i1 %203, %.not517
  br i1 %brmerge542, label %._crit_edge610, label %.thread

._crit_edge610:                                   ; preds = %205, %210
  %211 = phi float [ %.0469.lcssa, %210 ], [ %207, %205 ]
  %.not518 = icmp eq i8 %209, 0
  br i1 %.not518, label %212, label %219

212:                                              ; preds = %._crit_edge610
  br i1 %203, label %213, label %.thread

213:                                              ; preds = %212
  %214 = getelementptr inbounds i8, ptr %200, i64 103
  %215 = load i8, ptr %214, align 1, !tbaa !158, !range !27, !noundef !28
  %216 = trunc nuw i8 %215 to i1
  br i1 %216, label %217, label %.thread

217:                                              ; preds = %213
  %218 = getelementptr inbounds i8, ptr %200, i64 16
  store float %211, ptr %218, align 4, !tbaa !159
  br label %.thread

219:                                              ; preds = %._crit_edge610
  %220 = getelementptr inbounds i8, ptr %200, i64 16
  store float %211, ptr %220, align 4, !tbaa !159
  %.not559 = icmp eq i8 %209, 1
  br i1 %.not559, label %.thread, label %221

221:                                              ; preds = %219
  %222 = load i8, ptr %167, align 4, !tbaa !160, !range !27, !noundef !28
  %223 = trunc nuw i8 %222 to i1
  br i1 %223, label %224, label %.thread

224:                                              ; preds = %221
  %225 = getelementptr inbounds i8, ptr %200, i64 105
  %226 = load i8, ptr %225, align 1, !tbaa !125, !range !27, !noundef !28
  %227 = trunc nuw i8 %226 to i1
  br i1 %227, label %.thread, label %228

228:                                              ; preds = %224
  %229 = load float, ptr %27, align 4, !tbaa !104
  %230 = fmul float %229, 4.000000e+00
  %231 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %211, float noundef %230)
  store float %231, ptr %220, align 4, !tbaa !159
  br label %.thread

.thread:                                          ; preds = %210, %217, %213, %212, %228, %224, %221, %219
  %232 = getelementptr inbounds i8, ptr %200, i64 16
  %233 = load float, ptr %232, align 4, !tbaa !159
  %234 = fadd float %.0473584, %233
  br label %276

235:                                              ; preds = %199
  %236 = getelementptr inbounds i8, ptr %200, i64 107
  %237 = load i8, ptr %236, align 1, !tbaa !120
  %.not516 = icmp ne i8 %237, 0
  %238 = getelementptr inbounds i8, ptr %200, i64 24
  %239 = load float, ptr %238, align 4
  %240 = fcmp olt float %239, 0.000000e+00
  %or.cond546 = select i1 %.not516, i1 true, i1 %240
  %brmerge548 = or i1 %203, %or.cond546
  br i1 %brmerge548, label %.sink.split, label %248

.sink.split:                                      ; preds = %235
  %241 = getelementptr inbounds i8, ptr %200, i64 28
  %242 = load float, ptr %241, align 4, !tbaa !110
  %243 = fcmp ogt float %242, 0.000000e+00
  %244 = getelementptr inbounds i8, ptr %200, i64 20
  %245 = load float, ptr %244, align 4
  %246 = fdiv float %245, %.0458.lcssa
  %247 = fmul float %246, %168
  %.mux = select i1 %.not633, float %247, float 1.000000e+00
  %.sink = select i1 %243, float %242, float %.mux
  store float %.sink, ptr %238, align 4, !tbaa !161
  br label %248

248:                                              ; preds = %.sink.split, %235
  %249 = phi float [ %239, %235 ], [ %.sink, %.sink.split ]
  %250 = fadd float %.0477583, %249
  %251 = load i16, ptr %163, align 4, !tbaa !149
  %252 = icmp eq i16 %251, -1
  br i1 %252, label %261, label %253

253:                                              ; preds = %248
  %254 = sext i16 %251 to i32
  %255 = tail call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %165, i32 noundef %254)
  %256 = getelementptr inbounds i8, ptr %255, i64 82
  %257 = load i16, ptr %256, align 2, !tbaa !124
  %258 = getelementptr inbounds i8, ptr %200, i64 82
  %259 = load i16, ptr %258, align 2, !tbaa !124
  %260 = icmp sgt i16 %257, %259
  br i1 %260, label %261, label %263

261:                                              ; preds = %253, %248
  %262 = trunc i32 %.0480581 to i16
  store i16 %262, ptr %163, align 4, !tbaa !149
  br label %263

263:                                              ; preds = %261, %253
  %264 = load i16, ptr %162, align 2, !tbaa !148
  %265 = icmp eq i16 %264, -1
  br i1 %265, label %274, label %266

266:                                              ; preds = %263
  %267 = sext i16 %264 to i32
  %268 = tail call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %165, i32 noundef %267)
  %269 = getelementptr inbounds i8, ptr %268, i64 82
  %270 = load i16, ptr %269, align 2, !tbaa !124
  %271 = getelementptr inbounds i8, ptr %200, i64 82
  %272 = load i16, ptr %271, align 2, !tbaa !124
  %273 = icmp slt i16 %270, %272
  br i1 %273, label %274, label %276

274:                                              ; preds = %266, %263
  %275 = trunc i32 %.0480581 to i16
  store i16 %275, ptr %162, align 2, !tbaa !148
  br label %276

276:                                              ; preds = %266, %274, %.thread
  %.1478 = phi float [ %.0477583, %.thread ], [ %250, %274 ], [ %250, %266 ]
  %.1474 = phi float [ %234, %.thread ], [ %.0473584, %274 ], [ %.0473584, %266 ]
  %277 = getelementptr inbounds i8, ptr %200, i64 105
  store i8 0, ptr %277, align 1, !tbaa !125
  %278 = load float, ptr %169, align 4, !tbaa !162
  %279 = tail call float @llvm.fmuladd.f32(float %278, float 2.000000e+00, float %.1474)
  %.pre613 = load i32, ptr %18, align 4, !tbaa !33
  br label %280

280:                                              ; preds = %189, %276
  %281 = phi i32 [ %.pre613, %276 ], [ %190, %189 ]
  %.2479 = phi float [ %.1478, %276 ], [ %.0477583, %189 ]
  %.2475 = phi float [ %279, %276 ], [ %.0473584, %189 ]
  %282 = add nuw nsw i32 %.0480581, 1
  %283 = icmp slt i32 %282, %281
  br i1 %283, label %189, label %._crit_edge586, !llvm.loop !163

284:                                              ; preds = %._crit_edge586
  %285 = getelementptr inbounds i8, ptr %0, i64 384
  %286 = load ptr, ptr %285, align 8, !tbaa !132
  %287 = getelementptr inbounds i8, ptr %286, i64 233
  %288 = load i8, ptr %287, align 1, !tbaa !164, !range !27, !noundef !28
  %289 = trunc nuw i8 %288 to i1
  br i1 %289, label %293, label %290

290:                                              ; preds = %284
  %291 = getelementptr inbounds i8, ptr %5, i64 14668
  %292 = load float, ptr %291, align 4, !tbaa !165
  br label %293

293:                                              ; preds = %._crit_edge586, %284, %290
  %294 = phi float [ %292, %290 ], [ 0.000000e+00, %284 ], [ 0.000000e+00, %._crit_edge586 ]
  %295 = load i32, ptr %11, align 4, !tbaa !29
  %296 = and i32 %295, 16777216
  %.not497 = icmp eq i32 %296, 0
  br i1 %.not497, label %304, label %297

297:                                              ; preds = %293
  %298 = getelementptr inbounds i8, ptr %0, i64 204
  %299 = load float, ptr %298, align 4, !tbaa !166
  %300 = fcmp oeq float %299, 0.000000e+00
  br i1 %300, label %301, label %304

301:                                              ; preds = %297
  %302 = getelementptr inbounds i8, ptr %0, i64 280
  %303 = tail call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %302)
  br label %306

304:                                              ; preds = %297, %293
  %305 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %2)
  br label %306

306:                                              ; preds = %304, %301
  %307 = phi float [ %303, %301 ], [ %305, %304 ]
  %308 = fsub float %307, %294
  %309 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %308)
  %310 = fsub float %309, %185
  %311 = fsub float %310, %.0473.lcssa
  %312 = getelementptr inbounds i8, ptr %0, i64 188
  %313 = load float, ptr %312, align 4, !tbaa !162
  %314 = fmul float %313, 2.000000e+00
  %315 = load i16, ptr %15, align 2, !tbaa !31
  %316 = sitofp i16 %315 to float
  %317 = call float @llvm.fmuladd.f32(float %314, float %316, float %185)
  %318 = getelementptr inbounds i8, ptr %0, i64 208
  store float %317, ptr %318, align 8, !tbaa !167
  %319 = load i32, ptr %18, align 4, !tbaa !33
  %320 = icmp sgt i32 %319, 0
  br i1 %320, label %.lr.ph592, label %._crit_edge593

.lr.ph592:                                        ; preds = %306
  %321 = getelementptr inbounds i8, ptr %0, i64 24
  br label %323

._crit_edge593:                                   ; preds = %367, %306
  %.0482.lcssa = phi float [ %311, %306 ], [ %.2484, %367 ]
  %.lcssa = phi i32 [ %319, %306 ], [ %368, %367 ]
  %322 = fcmp ult float %.0482.lcssa, 1.000000e+00
  br i1 %322, label %.critedge3, label %371

323:                                              ; preds = %.lr.ph592, %367
  %324 = phi i32 [ %319, %.lr.ph592 ], [ %368, %367 ]
  %.0481590 = phi i32 [ 0, %.lr.ph592 ], [ %369, %367 ]
  %.0482589 = phi float [ %311, %.lr.ph592 ], [ %.2484, %367 ]
  %325 = load ptr, ptr %16, align 8, !tbaa !32
  %326 = lshr i32 %.0481590, 5
  %327 = zext nneg i32 %326 to i64
  %328 = getelementptr inbounds i32, ptr %325, i64 %327
  %329 = load i32, ptr %328, align 4, !tbaa !157
  %330 = and i32 %.0481590, 31
  %331 = shl nuw i32 1, %330
  %332 = and i32 %329, %331
  %.not511 = icmp eq i32 %332, 0
  br i1 %.not511, label %367, label %333

333:                                              ; preds = %323
  %334 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %321, i32 noundef %.0481590)
  %335 = load i32, ptr %334, align 4, !tbaa !111
  %336 = and i32 %335, 8
  %.not512 = icmp eq i32 %336, 0
  br i1 %.not512, label %349, label %337

337:                                              ; preds = %333
  %338 = getelementptr inbounds i8, ptr %334, i64 24
  %339 = load float, ptr %338, align 4, !tbaa !161
  %340 = fdiv float %339, %.0477.lcssa.fr
  %341 = fmul float %311, %340
  %342 = load float, ptr %27, align 4, !tbaa !104
  %343 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %341, float noundef %342)
  %344 = fadd float %343, 0x3F847AE140000000
  %345 = fptosi float %344 to i32
  %346 = sitofp i32 %345 to float
  %347 = getelementptr inbounds i8, ptr %334, i64 16
  store float %346, ptr %347, align 4, !tbaa !159
  %348 = fsub float %.0482589, %346
  br label %349

349:                                              ; preds = %337, %333
  %.1483 = phi float [ %348, %337 ], [ %.0482589, %333 ]
  %350 = getelementptr inbounds i8, ptr %334, i64 88
  %351 = load i16, ptr %350, align 4, !tbaa !123
  %352 = icmp eq i16 %351, -1
  br i1 %352, label %353, label %358

353:                                              ; preds = %349
  %354 = load i16, ptr %163, align 4, !tbaa !149
  %.not513 = icmp eq i16 %354, -1
  br i1 %.not513, label %358, label %355

355:                                              ; preds = %353
  %356 = load i32, ptr %334, align 4, !tbaa !111
  %357 = or i32 %356, 1073741824
  store i32 %357, ptr %334, align 4, !tbaa !111
  br label %358

358:                                              ; preds = %355, %353, %349
  %359 = getelementptr inbounds i8, ptr %334, i64 16
  %360 = load float, ptr %359, align 4, !tbaa !159
  %361 = load float, ptr %27, align 4, !tbaa !104
  %362 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %360, float noundef %361)
  %363 = call noundef float @_ZL7ImFloorf(float noundef %362)
  %364 = getelementptr inbounds i8, ptr %334, i64 4
  store float %363, ptr %364, align 4, !tbaa !168
  %365 = load float, ptr %318, align 8, !tbaa !167
  %366 = fadd float %363, %365
  store float %366, ptr %318, align 8, !tbaa !167
  %.pre614 = load i32, ptr %18, align 4, !tbaa !33
  br label %367

367:                                              ; preds = %323, %358
  %368 = phi i32 [ %.pre614, %358 ], [ %324, %323 ]
  %.2484 = phi float [ %.1483, %358 ], [ %.0482589, %323 ]
  %369 = add nuw nsw i32 %.0481590, 1
  %370 = icmp slt i32 %369, %368
  br i1 %370, label %323, label %._crit_edge593, !llvm.loop !169

371:                                              ; preds = %._crit_edge593
  %372 = load i32, ptr %11, align 4, !tbaa !29
  %373 = and i32 %372, 524288
  %.not498 = icmp eq i32 %373, 0
  br i1 %.not498, label %.preheader, label %.critedge3

.preheader:                                       ; preds = %371
  %374 = fcmp ogt float %.0477.lcssa.fr, 0.000000e+00
  %375 = icmp sgt i32 %.lcssa, 0
  %or.cond8598 = and i1 %375, %374
  br i1 %or.cond8598, label %.lr.ph601.split.preheader, label %.critedge3

.lr.ph601.split.preheader:                        ; preds = %.preheader
  %376 = getelementptr inbounds i8, ptr %0, i64 24
  %377 = getelementptr inbounds i8, ptr %0, i64 40
  br label %.lr.ph601.split

.lr.ph601.split:                                  ; preds = %.lr.ph601.split.preheader, %401
  %.0476600.in = phi i32 [ %.0476600, %401 ], [ %.lcssa, %.lr.ph601.split.preheader ]
  %.3599 = phi float [ %.5, %401 ], [ %.0482.lcssa, %.lr.ph601.split.preheader ]
  %.0476600 = add nsw i32 %.0476600.in, -1
  %378 = load ptr, ptr %20, align 8, !tbaa !34
  %379 = lshr i32 %.0476600, 5
  %380 = zext nneg i32 %379 to i64
  %381 = getelementptr inbounds i32, ptr %378, i64 %380
  %382 = load i32, ptr %381, align 4, !tbaa !157
  %383 = and i32 %.0476600, 31
  %384 = shl nuw i32 1, %383
  %385 = and i32 %382, %384
  %.not499 = icmp eq i32 %385, 0
  br i1 %.not499, label %401, label %386

386:                                              ; preds = %.lr.ph601.split
  %387 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %377, i32 noundef %.0476600)
  %388 = load i16, ptr %387, align 2, !tbaa !105
  %389 = sext i16 %388 to i32
  %390 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %376, i32 noundef %389)
  %391 = load i32, ptr %390, align 4, !tbaa !111
  %392 = and i32 %391, 8
  %.not500 = icmp eq i32 %392, 0
  br i1 %.not500, label %401, label %393

393:                                              ; preds = %386
  %394 = getelementptr inbounds i8, ptr %390, i64 16
  %395 = load float, ptr %394, align 4, !tbaa !159
  %396 = fadd float %395, 1.000000e+00
  store float %396, ptr %394, align 4, !tbaa !159
  %397 = getelementptr inbounds i8, ptr %390, i64 4
  %398 = load float, ptr %397, align 4, !tbaa !168
  %399 = fadd float %398, 1.000000e+00
  store float %399, ptr %397, align 4, !tbaa !168
  %400 = fadd float %.3599, -1.000000e+00
  br label %401

401:                                              ; preds = %393, %386, %.lr.ph601.split
  %.5 = phi float [ %.3599, %.lr.ph601.split ], [ %400, %393 ], [ %.3599, %386 ]
  %402 = fcmp oge float %.5, 1.000000e+00
  %403 = icmp ugt i32 %.0476600.in, 1
  %or.cond8 = and i1 %402, %403
  br i1 %or.cond8, label %.lr.ph601.split, label %.critedge3, !llvm.loop !170

.critedge3:                                       ; preds = %401, %.preheader, %371, %._crit_edge593
  %404 = getelementptr inbounds i8, ptr %0, i64 120
  %405 = load i16, ptr %404, align 8, !tbaa !171
  %406 = sext i16 %405 to i32
  %407 = call noundef ptr @_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei(ptr noundef nonnull %0, i32 noundef %406)
  %408 = getelementptr inbounds i8, ptr %407, i64 20
  %409 = load i32, ptr %408, align 4, !tbaa !172
  %410 = getelementptr inbounds i8, ptr %407, i64 16
  store i32 %409, ptr %410, align 4, !tbaa !173
  store i32 -1, ptr %408, align 4, !tbaa !172
  %411 = getelementptr inbounds i8, ptr %0, i64 512
  store i16 -1, ptr %411, align 8, !tbaa !174
  %412 = getelementptr inbounds i8, ptr %0, i64 514
  store i16 -1, ptr %412, align 2, !tbaa !175
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #11
  %413 = getelementptr inbounds i8, ptr %0, i64 232
  %414 = load float, ptr %413, align 8, !tbaa !176
  %415 = getelementptr inbounds i8, ptr %0, i64 236
  %416 = load float, ptr %415, align 4, !tbaa !177
  %417 = getelementptr inbounds i8, ptr %0, i64 240
  %418 = load float, ptr %417, align 8, !tbaa !178
  %419 = getelementptr inbounds i8, ptr %0, i64 244
  %420 = load float, ptr %419, align 4, !tbaa !179
  %421 = getelementptr inbounds i8, ptr %407, i64 4
  %422 = load float, ptr %421, align 4, !tbaa !180
  %423 = fadd float %416, %422
  %424 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %420, float noundef %423)
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %3, float noundef %414, float noundef %416, float noundef %418, float noundef %424)
  %425 = getelementptr inbounds i8, ptr %5, i64 16504
  %426 = load i32, ptr %425, align 8, !tbaa !181
  store i32 0, ptr %425, align 8, !tbaa !181
  %427 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %3, i32 noundef 0, i32 noundef 0)
  store i32 %426, ptr %425, align 8, !tbaa !181
  %428 = getelementptr inbounds i8, ptr %0, i64 544
  %429 = load i16, ptr %428, align 8, !tbaa !182
  %430 = icmp sgt i16 %429, 0
  %. = select i1 %430, ptr %413, ptr %2
  %431 = load float, ptr %., align 4, !tbaa !183
  %432 = load float, ptr %173, align 8, !tbaa !153
  %433 = load float, ptr %175, align 4, !tbaa !154
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  %434 = getelementptr inbounds i8, ptr %0, i64 280
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %434, i64 16, i1 false), !tbaa.struct !152
  %435 = getelementptr inbounds i8, ptr %0, i64 88
  %436 = load ptr, ptr %435, align 8, !tbaa !184
  %437 = load i32, ptr %18, align 4, !tbaa !33
  call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %436, i32 noundef %437)
  %438 = load i32, ptr %18, align 4, !tbaa !33
  %439 = icmp sgt i32 %438, 0
  br i1 %439, label %.lr.ph606, label %._crit_edge607

.lr.ph606:                                        ; preds = %.critedge3
  %440 = fadd float %431, %432
  %441 = fsub float %440, %433
  %442 = getelementptr inbounds i8, ptr %0, i64 40
  %443 = getelementptr inbounds i8, ptr %0, i64 24
  %444 = getelementptr inbounds i8, ptr %0, i64 540
  %445 = getelementptr inbounds i8, ptr %5, i64 3592
  %446 = getelementptr inbounds i8, ptr %2, i64 4
  %447 = getelementptr inbounds i8, ptr %0, i64 570
  %448 = getelementptr inbounds i8, ptr %4, i64 8
  br label %457

._crit_edge607:                                   ; preds = %616, %.critedge3
  %449 = load float, ptr %172, align 8, !tbaa !185
  %450 = getelementptr inbounds i8, ptr %0, i64 24
  %451 = load i16, ptr %148, align 2, !tbaa !130
  %452 = sext i16 %451 to i32
  %453 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %450, i32 noundef %452)
  %454 = getelementptr inbounds i8, ptr %453, i64 40
  %455 = load float, ptr %454, align 4, !tbaa !186
  %456 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %449, float noundef %455)
  br i1 %427, label %620, label %630

457:                                              ; preds = %.lr.ph606, %616
  %.0461605 = phi i32 [ 0, %.lr.ph606 ], [ %617, %616 ]
  %.0462604 = phi float [ %441, %.lr.ph606 ], [ %.2464, %616 ]
  %.0465603 = phi i1 [ %430, %.lr.ph606 ], [ %.1466, %616 ]
  %.0467602 = phi i32 [ 0, %.lr.ph606 ], [ %.1468, %616 ]
  %458 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %442, i32 noundef %.0461605)
  %459 = load i16, ptr %458, align 2, !tbaa !105
  %460 = sext i16 %459 to i32
  %461 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %443, i32 noundef %460)
  %462 = load i16, ptr %444, align 4, !tbaa !187
  %463 = icmp sgt i16 %462, 0
  %464 = zext i1 %463 to i8
  %465 = getelementptr inbounds i8, ptr %461, i64 106
  store i8 %464, ptr %465, align 2, !tbaa !188
  br i1 %.0465603, label %466, label %475

466:                                              ; preds = %457
  %467 = load i16, ptr %428, align 8, !tbaa !182
  %468 = sext i16 %467 to i32
  %469 = icmp eq i32 %.0467602, %468
  br i1 %469, label %470, label %475

470:                                              ; preds = %466
  %471 = load float, ptr %2, align 4, !tbaa !183
  %472 = load float, ptr %413, align 8, !tbaa !176
  %473 = fsub float %471, %472
  %474 = fadd float %.0462604, %473
  br label %475

475:                                              ; preds = %470, %466, %457
  %.1466 = phi i1 [ false, %470 ], [ true, %466 ], [ false, %457 ]
  %.1463 = phi float [ %474, %470 ], [ %.0462604, %466 ], [ %.0462604, %457 ]
  %476 = load i32, ptr %461, align 4, !tbaa !111
  %477 = and i32 %476, -251658241
  store i32 %477, ptr %461, align 4, !tbaa !111
  %478 = load ptr, ptr %20, align 8, !tbaa !34
  %479 = lshr i32 %.0461605, 5
  %480 = zext nneg i32 %479 to i64
  %481 = getelementptr inbounds i32, ptr %478, i64 %480
  %482 = load i32, ptr %481, align 4, !tbaa !157
  %483 = and i32 %.0461605, 31
  %484 = shl nuw i32 1, %483
  %485 = and i32 %482, %484
  %.not509 = icmp eq i32 %485, 0
  br i1 %.not509, label %486, label %498

486:                                              ; preds = %475
  %487 = getelementptr inbounds i8, ptr %461, i64 32
  %488 = getelementptr inbounds i8, ptr %461, i64 40
  store float %.1463, ptr %488, align 4, !tbaa !186
  store float %.1463, ptr %487, align 4, !tbaa !189
  %489 = getelementptr inbounds i8, ptr %461, i64 52
  store float %.1463, ptr %489, align 4, !tbaa !190
  %490 = getelementptr inbounds i8, ptr %461, i64 12
  store float %.1463, ptr %490, align 4, !tbaa !191
  %491 = getelementptr inbounds i8, ptr %461, i64 8
  store float %.1463, ptr %491, align 4, !tbaa !192
  %492 = getelementptr inbounds i8, ptr %461, i64 4
  store float 0.000000e+00, ptr %492, align 4, !tbaa !168
  %493 = load float, ptr %446, align 4, !tbaa !193
  %494 = getelementptr inbounds i8, ptr %461, i64 36
  store float %493, ptr %494, align 4, !tbaa !194
  %495 = getelementptr inbounds i8, ptr %461, i64 44
  store float 0x47EFFFFFE0000000, ptr %495, align 4, !tbaa !195
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %487, ptr noundef nonnull align 4 dereferenceable(16) %4)
  %496 = getelementptr inbounds i8, ptr %461, i64 101
  store <4 x i8> <i8 0, i8 0, i8 0, i8 1>, ptr %496, align 1, !tbaa !196
  %497 = getelementptr inbounds i8, ptr %461, i64 60
  store float 1.000000e+00, ptr %497, align 4, !tbaa !197
  br label %616

498:                                              ; preds = %475
  br i1 %427, label %499, label %508

499:                                              ; preds = %498
  %500 = load float, ptr %445, align 8, !tbaa !198
  %501 = getelementptr inbounds i8, ptr %461, i64 32
  %502 = load float, ptr %501, align 4, !tbaa !189
  %503 = fcmp oge float %500, %502
  %504 = getelementptr inbounds i8, ptr %461, i64 40
  %505 = load float, ptr %504, align 4
  %506 = fcmp olt float %500, %505
  %or.cond551 = select i1 %503, i1 %506, i1 false
  br i1 %or.cond551, label %507, label %508

507:                                              ; preds = %499
  store i16 %459, ptr %411, align 8, !tbaa !174
  br label %508

508:                                              ; preds = %507, %499, %498
  %509 = getelementptr inbounds i8, ptr %461, i64 8
  store float %.1463, ptr %509, align 4, !tbaa !192
  %510 = call noundef float @_ZN5ImGui22TableGetMaxColumnWidthEPK10ImGuiTablei(ptr noundef nonnull %0, i32 noundef %460)
  %511 = getelementptr inbounds i8, ptr %461, i64 4
  %512 = load float, ptr %511, align 4, !tbaa !168
  %513 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %512, float noundef %510)
  store float %513, ptr %511, align 4, !tbaa !168
  %514 = getelementptr inbounds i8, ptr %461, i64 16
  %515 = load float, ptr %514, align 4, !tbaa !159
  %516 = load float, ptr %27, align 4, !tbaa !104
  %517 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %515, float noundef %516)
  %518 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %513, float noundef %517)
  store float %518, ptr %511, align 4, !tbaa !168
  %519 = fadd float %.1463, %518
  %520 = load float, ptr %175, align 4, !tbaa !154
  %521 = fadd float %519, %520
  %522 = load float, ptr %177, align 8, !tbaa !155
  %523 = fadd float %521, %522
  %524 = load float, ptr %312, align 4, !tbaa !162
  %525 = call float @llvm.fmuladd.f32(float %524, float 2.000000e+00, float %523)
  %526 = getelementptr inbounds i8, ptr %461, i64 12
  store float %525, ptr %526, align 4, !tbaa !191
  %527 = load float, ptr %509, align 4, !tbaa !192
  %528 = fadd float %524, %527
  %529 = fadd float %520, %528
  %530 = getelementptr inbounds i8, ptr %461, i64 52
  store float %529, ptr %530, align 4, !tbaa !190
  %531 = fsub float %525, %524
  %532 = fsub float %531, %522
  %533 = getelementptr inbounds i8, ptr %461, i64 56
  store float %532, ptr %533, align 4, !tbaa !199
  %534 = fmul float %518, 0x3FE4CCCCC0000000
  %535 = call noundef float @_ZL7ImFloorf(float noundef %534)
  %536 = getelementptr inbounds i8, ptr %461, i64 60
  store float %535, ptr %536, align 4, !tbaa !197
  %537 = load float, ptr %509, align 4, !tbaa !192
  %538 = getelementptr inbounds i8, ptr %461, i64 32
  store float %537, ptr %538, align 4, !tbaa !189
  %539 = load float, ptr %446, align 4, !tbaa !193
  %540 = getelementptr inbounds i8, ptr %461, i64 36
  store float %539, ptr %540, align 4, !tbaa !194
  %541 = load float, ptr %526, align 4, !tbaa !191
  %542 = getelementptr inbounds i8, ptr %461, i64 40
  store float %541, ptr %542, align 4, !tbaa !186
  %543 = getelementptr inbounds i8, ptr %461, i64 44
  store float 0x47EFFFFFE0000000, ptr %543, align 4, !tbaa !195
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %538, ptr noundef nonnull align 4 dereferenceable(16) %4)
  %544 = load float, ptr %542, align 4, !tbaa !186
  %545 = load float, ptr %538, align 4, !tbaa !189
  %546 = fcmp ogt float %544, %545
  %547 = getelementptr inbounds i8, ptr %461, i64 101
  %548 = zext i1 %546 to i8
  store i8 %548, ptr %547, align 1, !tbaa !200
  %549 = getelementptr inbounds i8, ptr %461, i64 102
  store i8 1, ptr %549, align 2, !tbaa !201
  br i1 %546, label %550, label %.critedge553

550:                                              ; preds = %508
  %551 = load ptr, ptr %435, align 8, !tbaa !184
  call void @_Z16ImBitArraySetBitPji(ptr noundef %551, i32 noundef %460)
  br label %556

.critedge553:                                     ; preds = %508
  %.old = getelementptr inbounds i8, ptr %461, i64 107
  %.old555 = load i8, ptr %.old, align 1, !tbaa !120
  %.not510.old = icmp eq i8 %.old555, 0
  br i1 %.not510.old, label %552, label %556

552:                                              ; preds = %.critedge553
  %553 = getelementptr inbounds i8, ptr %461, i64 108
  %554 = load i8, ptr %553, align 4, !tbaa !119
  %555 = icmp ne i8 %554, 0
  br label %556

556:                                              ; preds = %550, %552, %.critedge553
  %557 = phi i1 [ true, %.critedge553 ], [ true, %550 ], [ %555, %552 ]
  %558 = getelementptr inbounds i8, ptr %461, i64 103
  %559 = zext i1 %557 to i8
  store i8 %559, ptr %558, align 1, !tbaa !158
  %560 = getelementptr inbounds i8, ptr %461, i64 98
  %561 = load i8, ptr %560, align 2, !tbaa !115, !range !27, !noundef !28
  %562 = trunc nuw i8 %561 to i1
  br i1 %562, label %563, label %566

563:                                              ; preds = %556
  %564 = load i8, ptr %447, align 2, !tbaa !202, !range !27, !noundef !28
  %565 = trunc nuw i8 %564 to i1
  br label %566

566:                                              ; preds = %563, %556
  %567 = phi i1 [ true, %556 ], [ %565, %563 ]
  %568 = getelementptr inbounds i8, ptr %461, i64 104
  %569 = zext i1 %567 to i8
  store i8 %569, ptr %568, align 4, !tbaa !203
  %or.cond6.demorgan = and i1 %546, %567
  br i1 %or.cond6.demorgan, label %570, label %571

570:                                              ; preds = %566
  call void @__assert_fail(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 1065, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #10
  unreachable

571:                                              ; preds = %566
  %572 = load i32, ptr %461, align 4, !tbaa !111
  %storemerge.v = select i1 %546, i32 50331648, i32 16777216
  %storemerge = or i32 %572, %storemerge.v
  store i32 %storemerge, ptr %461, align 4, !tbaa !111
  %573 = getelementptr inbounds i8, ptr %461, i64 90
  %574 = load i16, ptr %573, align 2, !tbaa !116
  %.not = icmp eq i16 %574, -1
  br i1 %.not, label %577, label %575

575:                                              ; preds = %571
  %576 = or i32 %storemerge, 67108864
  store i32 %576, ptr %461, align 4, !tbaa !111
  br label %577

577:                                              ; preds = %575, %571
  %578 = phi i32 [ %576, %575 ], [ %storemerge, %571 ]
  %579 = load i16, ptr %411, align 8, !tbaa !174
  %580 = icmp eq i16 %579, %459
  br i1 %580, label %581, label %583

581:                                              ; preds = %577
  %582 = or i32 %578, 134217728
  store i32 %582, ptr %461, align 4, !tbaa !111
  br label %583

583:                                              ; preds = %581, %577
  %584 = load <4 x float>, ptr %530, align 4
  %585 = getelementptr inbounds i8, ptr %461, i64 64
  %586 = shufflevector <4 x float> %584, <4 x float> poison, <4 x i32> zeroinitializer
  store <4 x float> %586, ptr %585, align 4, !tbaa !118
  %587 = load i8, ptr %447, align 2, !tbaa !202, !range !27, !noundef !28
  %588 = icmp eq i8 %587, 0
  br i1 %588, label %589, label %596

589:                                              ; preds = %583
  %590 = getelementptr inbounds i8, ptr %461, i64 107
  %591 = load i8, ptr %590, align 1, !tbaa !120
  %592 = lshr i8 %591, 1
  store i8 %592, ptr %590, align 1, !tbaa !120
  %593 = getelementptr inbounds i8, ptr %461, i64 108
  %594 = load i8, ptr %593, align 4, !tbaa !119
  %595 = lshr i8 %594, 1
  store i8 %595, ptr %593, align 4, !tbaa !119
  br label %596

596:                                              ; preds = %589, %583
  %597 = load i16, ptr %428, align 8, !tbaa !182
  %598 = sext i16 %597 to i32
  %599 = icmp slt i32 %.0467602, %598
  br i1 %599, label %600, label %606

600:                                              ; preds = %596
  %601 = load float, ptr %526, align 4, !tbaa !191
  %602 = fadd float %601, 1.000000e+00
  %603 = load float, ptr %4, align 4, !tbaa !183
  %604 = load float, ptr %448, align 4, !tbaa !204
  %605 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %602, float noundef %603, float noundef %604)
  store float %605, ptr %4, align 4, !tbaa !183
  br label %606

606:                                              ; preds = %600, %596
  %607 = load float, ptr %511, align 4, !tbaa !168
  %608 = load float, ptr %175, align 4, !tbaa !154
  %609 = fadd float %607, %608
  %610 = load float, ptr %177, align 8, !tbaa !155
  %611 = fadd float %609, %610
  %612 = load float, ptr %312, align 4, !tbaa !162
  %613 = call float @llvm.fmuladd.f32(float %612, float 2.000000e+00, float %611)
  %614 = fadd float %.1463, %613
  %615 = add nsw i32 %.0467602, 1
  br label %616

616:                                              ; preds = %606, %486
  %.1468 = phi i32 [ %615, %606 ], [ %.0467602, %486 ]
  %.2464 = phi float [ %614, %606 ], [ %.1463, %486 ]
  %617 = add nuw nsw i32 %.0461605, 1
  %618 = load i32, ptr %18, align 4, !tbaa !33
  %619 = icmp slt i32 %617, %618
  br i1 %619, label %457, label %._crit_edge607, !llvm.loop !205

620:                                              ; preds = %._crit_edge607
  %621 = load i16, ptr %411, align 8, !tbaa !174
  %622 = icmp eq i16 %621, -1
  br i1 %622, label %623, label %630

623:                                              ; preds = %620
  %624 = getelementptr inbounds i8, ptr %5, i64 3592
  %625 = load float, ptr %624, align 8, !tbaa !198
  %626 = fcmp ult float %625, %456
  br i1 %626, label %630, label %627

627:                                              ; preds = %623
  %628 = load i32, ptr %18, align 4, !tbaa !33
  %629 = trunc i32 %628 to i16
  store i16 %629, ptr %411, align 8, !tbaa !174
  br label %630

630:                                              ; preds = %623, %627, %620, %._crit_edge607
  %631 = and i8 %.0455.lcssa, 1
  %632 = icmp ne i8 %631, 0
  %.pre615.pre = load i32, ptr %11, align 4, !tbaa !29
  %633 = and i32 %.pre615.pre, 1
  %.not501 = icmp eq i32 %633, 0
  %or.cond = select i1 %632, i1 true, i1 %.not501
  br i1 %or.cond, label %636, label %634

634:                                              ; preds = %630
  %635 = and i32 %.pre615.pre, -2
  store i32 %635, ptr %11, align 4, !tbaa !29
  br label %636

636:                                              ; preds = %634, %630
  %.pre615 = phi i32 [ %635, %634 ], [ %.pre615.pre, %630 ]
  %637 = load i16, ptr %162, align 2, !tbaa !148
  %.not502 = icmp eq i16 %637, -1
  br i1 %.not502, label %640, label %638

638:                                              ; preds = %636
  %639 = and i32 %.pre615, -65537
  store i32 %639, ptr %11, align 4, !tbaa !29
  br label %640

640:                                              ; preds = %638, %636
  %641 = phi i32 [ %639, %638 ], [ %.pre615, %636 ]
  %642 = and i32 %641, 65536
  %.not503 = icmp eq i32 %642, 0
  br i1 %.not503, label %648, label %643

643:                                              ; preds = %640
  %644 = getelementptr inbounds i8, ptr %0, i64 272
  store float %456, ptr %644, align 8, !tbaa !206
  store float %456, ptr %417, align 8, !tbaa !178
  %645 = getelementptr inbounds i8, ptr %0, i64 288
  %646 = load float, ptr %645, align 8, !tbaa !207
  %647 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %646, float noundef %456)
  store float %647, ptr %645, align 8, !tbaa !207
  br label %648

648:                                              ; preds = %643, %640
  %649 = getelementptr inbounds i8, ptr %0, i64 384
  %650 = load ptr, ptr %649, align 8, !tbaa !132
  %651 = getelementptr inbounds i8, ptr %650, i64 608
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %651, ptr noundef nonnull align 8 dereferenceable(16) %172, i64 16, i1 false), !tbaa.struct !152
  %652 = load float, ptr %434, align 8, !tbaa !208
  %653 = getelementptr inbounds i8, ptr %0, i64 168
  store float %652, ptr %653, align 8, !tbaa !209
  %654 = getelementptr inbounds i8, ptr %0, i64 288
  %655 = load float, ptr %654, align 8, !tbaa !207
  %656 = getelementptr inbounds i8, ptr %0, i64 172
  store float %655, ptr %656, align 4, !tbaa !210
  %657 = load i32, ptr %11, align 4, !tbaa !29
  %658 = and i32 %657, 131072
  %.not504 = icmp eq i32 %658, 0
  br i1 %.not504, label %661, label %659

659:                                              ; preds = %648
  %660 = load float, ptr %419, align 4, !tbaa !179
  br label %671

661:                                              ; preds = %648
  %662 = load ptr, ptr %649, align 8, !tbaa !132
  %663 = getelementptr inbounds i8, ptr %662, i64 652
  %664 = load float, ptr %663, align 4, !tbaa !211
  %665 = and i32 %657, 33554432
  %.not505 = icmp eq i32 %665, 0
  br i1 %.not505, label %666, label %668

666:                                              ; preds = %661
  %667 = load float, ptr %419, align 4, !tbaa !179
  br label %668

668:                                              ; preds = %661, %666
  %669 = phi float [ %667, %666 ], [ 0.000000e+00, %661 ]
  %670 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %664, float noundef %669)
  br label %671

671:                                              ; preds = %668, %659
  %.0446 = phi float [ %660, %659 ], [ %670, %668 ]
  %672 = getelementptr inbounds i8, ptr %5, i64 14648
  %673 = load float, ptr %672, align 4, !tbaa !212
  %674 = fsub float %.0446, %673
  %675 = load ptr, ptr %649, align 8, !tbaa !132
  %676 = getelementptr inbounds i8, ptr %675, i64 596
  %677 = load float, ptr %676, align 4, !tbaa !213
  %678 = getelementptr inbounds i8, ptr %675, i64 604
  %679 = load float, ptr %678, align 4, !tbaa !214
  %680 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %674, float noundef %677, float noundef %679)
  %681 = load ptr, ptr %649, align 8, !tbaa !132
  %682 = getelementptr inbounds i8, ptr %681, i64 604
  store float %680, ptr %682, align 4, !tbaa !214
  call void @_ZN5ImGui22TableSetupDrawChannelsEP10ImGuiTable(ptr noundef nonnull %0)
  %683 = load i32, ptr %11, align 4, !tbaa !29
  %684 = and i32 %683, 1
  %.not506 = icmp eq i32 %684, 0
  br i1 %.not506, label %686, label %685

685:                                              ; preds = %671
  call void @_ZN5ImGui18TableUpdateBordersEP10ImGuiTable(ptr noundef nonnull %0)
  br label %686

686:                                              ; preds = %685, %671
  %687 = getelementptr inbounds i8, ptr %407, i64 8
  store float 0.000000e+00, ptr %687, align 4, !tbaa !215
  store i8 1, ptr %6, align 2, !tbaa !9
  %688 = getelementptr inbounds i8, ptr %0, i64 558
  store i8 0, ptr %688, align 2, !tbaa !216
  %689 = call noundef zeroext i1 @_ZN5ImGui26TableBeginContextMenuPopupEP10ImGuiTable(ptr noundef nonnull %0)
  br i1 %689, label %690, label %691

690:                                              ; preds = %686
  call void @_ZN5ImGui20TableDrawContextMenuEP10ImGuiTable(ptr noundef nonnull %0)
  call void @_ZN5ImGui8EndPopupEv()
  br label %691

691:                                              ; preds = %690, %686
  %692 = getelementptr inbounds i8, ptr %0, i64 557
  %693 = load i8, ptr %692, align 1, !tbaa !117, !range !27, !noundef !28
  %694 = trunc nuw i8 %693 to i1
  br i1 %694, label %695, label %699

695:                                              ; preds = %691
  %696 = load i32, ptr %11, align 4, !tbaa !29
  %697 = and i32 %696, 8
  %.not507 = icmp eq i32 %697, 0
  br i1 %.not507, label %699, label %698

698:                                              ; preds = %695
  call void @_ZN5ImGui19TableSortSpecsBuildEP10ImGuiTable(ptr noundef nonnull %0)
  br label %699

699:                                              ; preds = %698, %695, %691
  %700 = getelementptr inbounds i8, ptr %0, i64 542
  %701 = load i16, ptr %700, align 2, !tbaa !217
  %702 = icmp sgt i16 %701, 0
  br i1 %702, label %703, label %._crit_edge618

._crit_edge618:                                   ; preds = %699
  %.pre616.pre = load ptr, ptr %649, align 8, !tbaa !132
  br label %717

703:                                              ; preds = %699
  %704 = zext nneg i16 %701 to i32
  %705 = getelementptr inbounds i8, ptr %0, i64 40
  %706 = add nsw i32 %704, -1
  %707 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %705, i32 noundef %706)
  %708 = load i16, ptr %707, align 2, !tbaa !105
  %709 = sext i16 %708 to i32
  %710 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %450, i32 noundef %709)
  %711 = getelementptr inbounds i8, ptr %710, i64 12
  %712 = load float, ptr %711, align 4, !tbaa !191
  %713 = load float, ptr %413, align 8, !tbaa !176
  %714 = fsub float %712, %713
  %715 = load ptr, ptr %649, align 8, !tbaa !132
  %716 = getelementptr inbounds i8, ptr %715, i64 160
  store float %714, ptr %716, align 8, !tbaa !218
  br label %717

717:                                              ; preds = %._crit_edge618, %703
  %.pre616 = phi ptr [ %.pre616.pre, %._crit_edge618 ], [ %715, %703 ]
  %718 = getelementptr inbounds i8, ptr %0, i64 538
  %719 = load i16, ptr %718, align 2, !tbaa !219
  %720 = icmp sgt i16 %719, 0
  br i1 %720, label %721, label %725

721:                                              ; preds = %717
  %722 = getelementptr inbounds i8, ptr %407, i64 12
  %723 = load float, ptr %722, align 4, !tbaa !220
  %724 = getelementptr inbounds i8, ptr %.pre616, i64 164
  store float %723, ptr %724, align 4, !tbaa !221
  br label %725

725:                                              ; preds = %721, %717
  %726 = getelementptr inbounds i8, ptr %407, i64 12
  store float 0.000000e+00, ptr %726, align 4, !tbaa !220
  %727 = load i32, ptr %11, align 4, !tbaa !29
  %728 = and i32 %727, 1048576
  %.not508 = icmp eq i32 %728, 0
  br i1 %.not508, label %734, label %729

729:                                              ; preds = %725
  %730 = getelementptr inbounds i8, ptr %0, i64 408
  %731 = load ptr, ptr %730, align 8, !tbaa !222
  %732 = getelementptr inbounds i8, ptr %.pre616, i64 728
  %733 = load ptr, ptr %732, align 8, !tbaa !223
  call void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24) %731, ptr noundef %733, i32 noundef 2)
  br label %739

734:                                              ; preds = %725
  %735 = getelementptr inbounds i8, ptr %.pre616, i64 728
  %736 = load ptr, ptr %735, align 8, !tbaa !223
  %737 = getelementptr inbounds i8, ptr %.pre616, i64 624
  %738 = getelementptr inbounds i8, ptr %.pre616, i64 632
  call void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196) %736, ptr noundef nonnull align 4 dereferenceable(8) %737, ptr noundef nonnull align 4 dereferenceable(8) %738, i1 noundef zeroext false)
  br label %739

739:                                              ; preds = %734, %729
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #11
  ret void
}

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

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #7

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL7ImFloorf(float noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16), float noundef, float noundef, float noundef, float noundef) unnamed_addr #6 align 2

declare noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui22TableGetMaxColumnWidthEPK10ImGuiTablei(ptr noundef, i32 noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef, float noundef, float noundef) local_unnamed_addr #3

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

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

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

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

declare void @_ZN5ImGui8EndPopupEv() local_unnamed_addr #9

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

declare void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, i32 noundef) local_unnamed_addr #9

declare void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) local_unnamed_addr #9

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="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 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { 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 #9 = { "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 #10 = { noreturn nounwind }
attributes #11 = { 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, !26, i64 554}
!10 = !{!"_ZTS10ImGuiTable", !11, i64 0, !11, i64 4, !6, i64 8, !6, i64 16, !12, i64 24, !13, i64 40, !14, i64 56, !6, i64 72, !6, i64 80, !6, i64 88, !11, i64 96, !11, i64 100, !11, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !15, i64 120, !15, i64 122, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !11, i64 144, !11, i64 146, !11, i64 148, !7, i64 152, !11, i64 160, !11, i64 164, !16, i64 168, !16, i64 172, !16, i64 176, !16, i64 180, !16, i64 184, !16, i64 188, !16, i64 192, !16, i64 196, !16, i64 200, !16, i64 204, !16, i64 208, !16, i64 212, !16, i64 216, !16, i64 220, !16, i64 224, !16, i64 228, !17, i64 232, !17, i64 248, !17, i64 264, !17, i64 280, !17, i64 296, !17, i64 312, !17, i64 328, !17, i64 344, !17, i64 360, !6, i64 376, !6, i64 384, !19, i64 392, !6, i64 408, !21, i64 416, !22, i64 440, !23, i64 456, !24, i64 472, !25, i64 488, !15, i64 504, !15, i64 506, !15, i64 508, !15, i64 510, !15, i64 512, !15, i64 514, !15, i64 516, !15, i64 518, !15, i64 520, !15, i64 522, !15, i64 524, !15, i64 526, !15, i64 528, !15, i64 530, !15, i64 532, !15, i64 534, !15, i64 536, !15, i64 538, !15, i64 540, !15, i64 542, !15, i64 544, !15, i64 546, !15, i64 548, !15, i64 550, !15, i64 552, !26, i64 554, !26, i64 555, !26, i64 556, !26, i64 557, !26, i64 558, !26, i64 559, !26, i64 560, !26, i64 561, !26, i64 562, !26, i64 563, !26, i64 564, !26, i64 565, !26, i64 566, !26, i64 567, !26, i64 568, !26, i64 569, !26, i64 570}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!13 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!14 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!15 = !{!"short", !7, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!18 = !{!"_ZTS6ImVec2", !16, i64 0, !16, i64 4}
!19 = !{!"_ZTS15ImGuiTextBuffer", !20, i64 0}
!20 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!21 = !{!"_ZTS22ImGuiTableInstanceData", !11, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !11, i64 16, !11, i64 20}
!22 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!23 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !11, i64 0, !15, i64 4, !15, i64 6, !11, i64 8}
!24 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!25 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !26, i64 12}
!26 = !{!"bool", !7, i64 0}
!27 = !{i8 0, i8 2}
!28 = !{}
!29 = !{!10, !11, i64 4}
!30 = !{!10, !26, i64 562}
!31 = !{!10, !15, i64 506}
!32 = !{!10, !6, i64 80}
!33 = !{!10, !11, i64 108}
!34 = !{!10, !6, i64 72}
!35 = !{!10, !15, i64 528}
!36 = !{!37, !16, i64 14612}
!37 = !{!"_ZTS12ImGuiContext", !26, i64 0, !26, i64 1, !38, i64 8, !41, i64 14336, !44, i64 14552, !11, i64 15676, !11, i64 15680, !6, i64 15688, !16, i64 15696, !16, i64 15700, !45, i64 15704, !48, i64 16232, !11, i64 16240, !11, i64 16244, !11, i64 16248, !11, i64 16252, !26, i64 16256, !26, i64 16257, !26, i64 16258, !26, i64 16259, !26, i64 16260, !6, i64 16264, !49, i64 16272, !49, i64 16288, !39, i64 16304, !11, i64 16308, !50, i64 16312, !50, i64 16328, !50, i64 16344, !51, i64 16360, !52, i64 16376, !11, i64 16392, !18, i64 16396, !6, i64 16408, !6, i64 16416, !6, i64 16424, !6, i64 16432, !6, i64 16440, !18, i64 16448, !11, i64 16456, !16, i64 16460, !18, i64 16464, !18, i64 16472, !11, i64 16480, !11, i64 16484, !11, i64 16488, !26, i64 16492, !26, i64 16493, !16, i64 16496, !16, i64 16500, !11, i64 16504, !11, i64 16508, !16, i64 16512, !26, i64 16516, !26, i64 16517, !26, i64 16518, !26, i64 16519, !26, i64 16520, !26, i64 16521, !18, i64 16524, !6, i64 16536, !54, i64 16544, !11, i64 16548, !11, i64 16552, !26, i64 16556, !26, i64 16557, !6, i64 16560, !11, i64 16568, !16, i64 16572, !7, i64 16576, !55, i64 18256, !11, i64 18568, !26, i64 18572, !11, i64 18576, !11, i64 18580, !11, i64 18584, !11, i64 18588, !57, i64 18592, !58, i64 18616, !59, i64 18680, !61, i64 18824, !62, i64 18840, !63, i64 18856, !64, i64 18872, !65, i64 18888, !66, i64 18904, !67, i64 18920, !67, i64 18936, !11, i64 18952, !68, i64 18960, !16, i64 18976, !6, i64 18984, !6, i64 18992, !6, i64 19000, !11, i64 19008, !69, i64 19016, !11, i64 19064, !11, i64 19068, !11, i64 19072, !6, i64 19080, !11, i64 19088, !11, i64 19092, !11, i64 19096, !11, i64 19100, !11, i64 19104, !11, i64 19108, !11, i64 19112, !11, i64 19116, !11, i64 19120, !11, i64 19124, !11, i64 19128, !54, i64 19132, !70, i64 19136, !26, i64 19140, !26, i64 19141, !26, i64 19142, !26, i64 19143, !26, i64 19144, !26, i64 19145, !26, i64 19146, !71, i64 19152, !26, i64 19200, !26, i64 19201, !26, i64 19202, !11, i64 19204, !11, i64 19208, !11, i64 19212, !11, i64 19216, !11, i64 19220, !11, i64 19224, !17, i64 19228, !17, i64 19244, !11, i64 19260, !11, i64 19264, !11, i64 19268, !71, i64 19272, !71, i64 19320, !71, i64 19368, !71, i64 19416, !11, i64 19464, !11, i64 19468, !6, i64 19472, !6, i64 19480, !6, i64 19488, !16, i64 19496, !16, i64 19500, !26, i64 19504, !18, i64 19508, !18, i64 19516, !16, i64 19524, !26, i64 19528, !26, i64 19529, !26, i64 19530, !11, i64 19532, !11, i64 19536, !11, i64 19540, !72, i64 19544, !17, i64 19608, !11, i64 19624, !11, i64 19628, !16, i64 19632, !11, i64 19636, !11, i64 19640, !11, i64 19644, !11, i64 19648, !73, i64 19656, !7, i64 19672, !11, i64 19688, !74, i64 19696, !6, i64 19712, !11, i64 19720, !75, i64 19728, !76, i64 19744, !78, i64 19784, !79, i64 19800, !6, i64 19816, !80, i64 19824, !82, i64 19864, !83, i64 19880, !11, i64 19896, !11, i64 19900, !16, i64 19904, !16, i64 19908, !11, i64 19912, !11, i64 19916, !11, i64 19920, !16, i64 19924, !18, i64 19928, !84, i64 19936, !87, i64 23664, !88, i64 23688, !11, i64 23808, !11, i64 23812, !11, i64 23816, !11, i64 23820, !16, i64 23824, !16, i64 23828, !11, i64 23832, !46, i64 23836, !90, i64 23852, !16, i64 23900, !16, i64 23904, !26, i64 23908, !26, i64 23909, !16, i64 23912, !16, i64 23916, !16, i64 23920, !16, i64 23924, !15, i64 23928, !15, i64 23930, !20, i64 23936, !64, i64 23952, !91, i64 23968, !91, i64 23984, !11, i64 24000, !7, i64 24004, !92, i64 24008, !6, i64 24064, !26, i64 24072, !16, i64 24076, !19, i64 24080, !95, i64 24096, !96, i64 24112, !97, i64 24128, !98, i64 24144, !11, i64 24160, !7, i64 24168, !26, i64 24240, !99, i64 24244, !6, i64 24248, !19, i64 24256, !6, i64 24272, !6, i64 24280, !16, i64 24288, !26, i64 24292, !11, i64 24296, !11, i64 24300, !11, i64 24304, !11, i64 24308, !19, i64 24312, !100, i64 24328, !7, i64 24352, !7, i64 24353, !7, i64 24354, !26, i64 24355, !7, i64 24356, !11, i64 24360, !101, i64 24364, !102, i64 24384, !6, i64 24424, !7, i64 24432, !11, i64 24672, !11, i64 24676, !16, i64 24680, !11, i64 24684, !11, i64 24688, !11, i64 24692, !20, i64 24696}
!38 = !{!"_ZTS7ImGuiIO", !11, i64 0, !11, i64 4, !18, i64 8, !16, i64 16, !16, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !16, i64 56, !26, i64 60, !6, i64 64, !18, i64 72, !26, i64 80, !26, i64 81, !26, i64 82, !26, i64 83, !26, i64 84, !26, i64 85, !26, i64 86, !26, i64 87, !26, i64 88, !26, i64 89, !26, i64 90, !26, i64 91, !26, i64 92, !26, i64 93, !26, i64 94, !26, i64 95, !16, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !16, i64 116, !26, i64 120, !26, i64 121, !26, i64 122, !26, i64 123, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !26, i64 208, !26, i64 209, !26, i64 210, !26, i64 211, !26, i64 212, !26, i64 213, !26, i64 214, !16, i64 216, !11, i64 220, !11, i64 224, !11, i64 228, !11, i64 232, !11, i64 236, !18, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !18, i64 3584, !7, i64 3592, !16, i64 3600, !16, i64 3604, !39, i64 3608, !11, i64 3612, !26, i64 3616, !26, i64 3617, !26, i64 3618, !26, i64 3619, !11, i64 3620, !7, i64 3624, !26, i64 14056, !18, i64 14060, !7, i64 14068, !7, i64 14112, !7, i64 14152, !7, i64 14157, !7, i64 14162, !7, i64 14172, !7, i64 14182, !7, i64 14187, !7, i64 14192, !26, i64 14197, !7, i64 14200, !7, i64 14220, !7, i64 14240, !7, i64 14280, !16, i64 14300, !26, i64 14304, !26, i64 14305, !7, i64 14306, !26, i64 14307, !15, i64 14308, !40, i64 14312}
!39 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!40 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!41 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, 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, !42, i64 184, !43, i64 200}
!42 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !11, i64 0, !11, i64 4, !6, i64 8}
!43 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !11, i64 0, !11, i64 4, !6, i64 8}
!44 = !{!"_ZTS10ImGuiStyle", !16, i64 0, !16, i64 4, !18, i64 8, !16, i64 16, !16, i64 20, !18, i64 24, !18, i64 32, !11, i64 40, !16, i64 44, !16, i64 48, !16, i64 52, !16, i64 56, !18, i64 60, !16, i64 68, !16, i64 72, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !16, i64 144, !11, i64 148, !18, i64 152, !18, i64 160, !16, i64 168, !18, i64 172, !18, i64 180, !18, i64 188, !18, i64 196, !16, i64 204, !16, i64 208, !26, i64 212, !26, i64 213, !26, i64 214, !16, i64 216, !16, i64 220, !7, i64 224, !16, i64 1104, !16, i64 1108, !16, i64 1112, !11, i64 1116, !11, i64 1120}
!45 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !16, i64 16, !16, i64 20, !16, i64 24, !46, i64 28, !11, i64 44, !47, i64 48, !7, i64 64, !16, i64 448, !7, i64 452, !6, i64 520}
!46 = !{!"_ZTS6ImVec4", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12}
!47 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!48 = !{!"double", !7, i64 0}
!49 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !11, i64 0, !11, i64 4, !6, i64 8}
!50 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !11, i64 0, !11, i64 4, !6, i64 8}
!51 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!52 = !{!"_ZTS12ImGuiStorage", !53, i64 0}
!53 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!54 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!55 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !56, i64 280, !56, i64 296}
!56 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!57 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !11, i64 4, !16, i64 8, !11, i64 12, !11, i64 16, !26, i64 20}
!58 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !17, i64 12, !17, i64 28, !17, i64 44}
!59 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !18, i64 20, !18, i64 28, !18, i64 36, !18, i64 44, !18, i64 52, !26, i64 60, !26, i64 61, !17, i64 64, !6, i64 80, !6, i64 88, !16, i64 96, !11, i64 100, !11, i64 104, !60, i64 108, !18, i64 136}
!60 = !{!"_ZTS16ImGuiWindowClass", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !26, i64 24, !26, i64 25}
!61 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!62 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!63 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!69 = !{!"_ZTS20ImGuiPlatformMonitor", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !16, i64 32, !6, i64 40}
!70 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!71 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !11, i64 8, !11, i64 12, !17, i64 16, !11, i64 32, !16, i64 36, !16, i64 40, !16, i64 44}
!72 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !26, i64 57, !26, i64 58}
!73 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!76 = !{!"_ZTS6ImPoolI10ImGuiTableE", !77, i64 0, !52, i64 16, !11, i64 32, !11, i64 36}
!77 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!80 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !81, i64 0, !52, i64 16, !11, i64 32, !11, i64 36}
!81 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!84 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !40, i64 24, !20, i64 40, !20, i64 56, !26, i64 72, !11, i64 76, !16, i64 80, !85, i64 84, !16, i64 3712, !26, i64 3716, !26, i64 3717, !26, i64 3718, !11, i64 3720}
!85 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !11, i64 0, !11, i64 4, !11, i64 8, !7, i64 12, !11, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !16, i64 28, !86, i64 32}
!86 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !15, i64 3582, !15, i64 3584, !11, i64 3588, !11, i64 3592}
!87 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !11, i64 0, !20, i64 8}
!88 = !{!"_ZTS6ImFont", !78, i64 0, !16, i64 16, !16, i64 20, !40, i64 24, !89, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !15, i64 80, !15, i64 82, !15, i64 84, !15, i64 86, !16, i64 88, !16, i64 92, !26, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !11, i64 112, !7, i64 116}
!89 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!90 = !{!"_ZTS21ImGuiComboPreviewData", !17, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !16, i64 40, !11, i64 44}
!91 = !{!"_ZTS20ImGuiPlatformImeData", !26, i64 0, !18, i64 4, !16, i64 12}
!92 = !{!"_ZTS16ImGuiDockContext", !52, i64 0, !93, i64 16, !94, i64 32, !26, i64 48}
!93 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !11, i64 0, !11, i64 4, !6, i64 8}
!94 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !11, i64 0, !11, i64 4, !6, i64 8}
!95 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!96 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !20, i64 0}
!97 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !20, i64 0}
!98 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!99 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!100 = !{!"_ZTS14ImGuiTextIndex", !65, i64 0, !11, i64 16}
!101 = !{!"_ZTS18ImGuiMetricsConfig", !26, i64 0, !26, i64 1, !26, i64 2, !26, i64 3, !26, i64 4, !26, i64 5, !26, i64 6, !26, i64 7, !26, i64 8, !11, i64 12, !11, i64 16}
!102 = !{!"_ZTS14ImGuiStackTool", !11, i64 0, !11, i64 4, !11, i64 8, !103, i64 16, !26, i64 32, !16, i64 36}
!103 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !11, i64 0, !11, i64 4, !6, i64 8}
!104 = !{!10, !16, i64 180}
!105 = !{!15, !15, i64 0}
!106 = !{!10, !15, i64 510}
!107 = !{!108, !15, i64 80}
!108 = !{!"_ZTS16ImGuiTableColumn", !11, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !17, i64 32, !11, i64 48, !16, i64 52, !16, i64 56, !16, i64 60, !16, i64 64, !16, i64 68, !16, i64 72, !16, i64 76, !15, i64 80, !15, i64 82, !15, i64 84, !15, i64 86, !15, i64 88, !15, i64 90, !15, i64 92, !15, i64 94, !15, i64 96, !26, i64 98, !26, i64 99, !26, i64 100, !26, i64 101, !26, i64 102, !26, i64 103, !26, i64 104, !26, i64 105, !7, i64 106, !7, i64 107, !7, i64 108, !7, i64 109, !7, i64 109, !7, i64 109, !7, i64 110}
!109 = !{!108, !11, i64 48}
!110 = !{!108, !16, i64 28}
!111 = !{!108, !11, i64 0}
!112 = !{!108, !26, i64 100}
!113 = !{!108, !26, i64 99}
!114 = !{!10, !26, i64 561}
!115 = !{!108, !26, i64 98}
!116 = !{!108, !15, i64 90}
!117 = !{!10, !26, i64 557}
!118 = !{!16, !16, i64 0}
!119 = !{!108, !7, i64 108}
!120 = !{!108, !7, i64 107}
!121 = !{!108, !15, i64 84}
!122 = !{!108, !15, i64 86}
!123 = !{!108, !15, i64 88}
!124 = !{!108, !15, i64 82}
!125 = !{!108, !26, i64 105}
!126 = !{!108, !16, i64 20}
!127 = distinct !{!127, !128}
!128 = !{!"llvm.loop.mustprogress"}
!129 = !{!10, !15, i64 504}
!130 = !{!10, !15, i64 530}
!131 = !{!10, !6, i64 376}
!132 = !{!10, !6, i64 384}
!133 = !{!134, !26, i64 240}
!134 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !11, i64 24, !60, i64 28, !6, i64 56, !11, i64 64, !18, i64 68, !11, i64 76, !18, i64 80, !18, i64 88, !18, i64 96, !18, i64 104, !18, i64 112, !18, i64 120, !18, i64 128, !16, i64 136, !16, i64 140, !16, i64 144, !16, i64 148, !16, i64 152, !16, i64 156, !16, i64 160, !16, i64 164, !11, i64 168, !11, i64 172, !11, i64 176, !11, i64 180, !18, i64 184, !18, i64 192, !18, i64 200, !18, i64 208, !18, i64 216, !18, i64 224, !26, i64 232, !26, i64 233, !26, i64 234, !26, i64 235, !26, i64 236, !26, i64 237, !26, i64 238, !26, i64 239, !26, i64 240, !26, i64 241, !26, i64 242, !26, i64 243, !26, i64 244, !26, i64 245, !7, i64 246, !15, i64 248, !15, i64 250, !15, i64 252, !15, i64 254, !15, i64 256, !11, i64 260, !7, i64 264, !7, i64 265, !7, i64 266, !26, i64 267, !11, i64 268, !7, i64 272, !7, i64 273, !7, i64 274, !7, i64 275, !11, i64 276, !11, i64 277, !11, i64 278, !11, i64 279, !18, i64 280, !18, i64 288, !64, i64 296, !135, i64 312, !17, i64 544, !17, i64 560, !17, i64 576, !17, i64 592, !17, i64 608, !17, i64 624, !17, i64 640, !138, i64 656, !138, i64 660, !11, i64 664, !11, i64 668, !16, i64 672, !16, i64 676, !52, i64 680, !139, i64 696, !16, i64 712, !16, i64 716, !11, i64 720, !6, i64 728, !140, i64 736, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !7, i64 1000, !7, i64 1008, !7, i64 1040, !11, i64 1056, !11, i64 1060, !11, i64 1064, !26, i64 1068, !26, i64 1069, !26, i64 1069, !26, i64 1069, !26, i64 1069, !15, i64 1070, !147, i64 1072, !6, i64 1096, !6, i64 1104, !11, i64 1112, !11, i64 1116, !17, i64 1120}
!135 = !{!"_ZTS19ImGuiWindowTempData", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !16, i64 56, !16, i64 60, !26, i64 64, !26, i64 65, !136, i64 68, !136, i64 72, !136, i64 76, !18, i64 80, !70, i64 88, !15, i64 92, !15, i64 94, !26, i64 96, !26, i64 97, !26, i64 98, !26, i64 99, !18, i64 100, !137, i64 108, !11, i64 136, !11, i64 140, !50, i64 144, !6, i64 160, !6, i64 168, !11, i64 176, !11, i64 180, !11, i64 184, !16, i64 188, !16, i64 192, !78, i64 200, !78, i64 216}
!136 = !{!"_ZTS6ImVec1", !16, i64 0}
!137 = !{!"_ZTS16ImGuiMenuColumns", !11, i64 0, !11, i64 4, !15, i64 8, !15, i64 10, !15, i64 12, !15, i64 14, !15, i64 16, !7, i64 18}
!138 = !{!"_ZTS8ImVec2ih", !15, i64 0, !15, i64 2}
!139 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!140 = !{!"_ZTS10ImDrawList", !141, i64 0, !40, i64 16, !142, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !143, i64 88, !144, i64 104, !47, i64 120, !145, i64 136, !146, i64 168, !16, i64 192}
!141 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!142 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!143 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!144 = !{!"_ZTS8ImVectorIPvE", !11, i64 0, !11, i64 4, !6, i64 8}
!145 = !{!"_ZTS15ImDrawCmdHeader", !46, i64 0, !6, i64 16, !11, i64 24}
!146 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !79, i64 8}
!147 = !{!"_ZTS20ImGuiWindowDockStyle", !7, i64 0}
!148 = !{!10, !15, i64 534}
!149 = !{!10, !15, i64 532}
!150 = !{!10, !15, i64 508}
!151 = !{!10, !16, i64 216}
!152 = !{i64 0, i64 4, !118, i64 4, i64 4, !118, i64 8, i64 4, !118, i64 12, i64 4, !118}
!153 = !{!10, !16, i64 184}
!154 = !{!10, !16, i64 196}
!155 = !{!10, !16, i64 200}
!156 = !{!10, !26, i64 568}
!157 = !{!11, !11, i64 0}
!158 = !{!108, !26, i64 103}
!159 = !{!108, !16, i64 16}
!160 = !{!10, !26, i64 556}
!161 = !{!108, !16, i64 24}
!162 = !{!10, !16, i64 188}
!163 = distinct !{!163, !128}
!164 = !{!134, !26, i64 233}
!165 = !{!37, !16, i64 14668}
!166 = !{!10, !16, i64 204}
!167 = !{!10, !16, i64 208}
!168 = !{!108, !16, i64 4}
!169 = distinct !{!169, !128}
!170 = distinct !{!170, !128}
!171 = !{!10, !15, i64 120}
!172 = !{!21, !11, i64 20}
!173 = !{!21, !11, i64 16}
!174 = !{!10, !15, i64 512}
!175 = !{!10, !15, i64 514}
!176 = !{!10, !16, i64 232}
!177 = !{!10, !16, i64 236}
!178 = !{!10, !16, i64 240}
!179 = !{!10, !16, i64 244}
!180 = !{!21, !16, i64 4}
!181 = !{!37, !11, i64 16504}
!182 = !{!10, !15, i64 544}
!183 = !{!17, !16, i64 0}
!184 = !{!10, !6, i64 88}
!185 = !{!10, !16, i64 264}
!186 = !{!108, !16, i64 40}
!187 = !{!10, !15, i64 540}
!188 = !{!108, !7, i64 106}
!189 = !{!108, !16, i64 32}
!190 = !{!108, !16, i64 52}
!191 = !{!108, !16, i64 12}
!192 = !{!108, !16, i64 8}
!193 = !{!17, !16, i64 4}
!194 = !{!108, !16, i64 36}
!195 = !{!108, !16, i64 44}
!196 = !{!26, !26, i64 0}
!197 = !{!108, !16, i64 60}
!198 = !{!37, !16, i64 3592}
!199 = !{!108, !16, i64 56}
!200 = !{!108, !26, i64 101}
!201 = !{!108, !26, i64 102}
!202 = !{!10, !26, i64 570}
!203 = !{!108, !26, i64 104}
!204 = !{!17, !16, i64 8}
!205 = distinct !{!205, !128}
!206 = !{!10, !16, i64 272}
!207 = !{!10, !16, i64 288}
!208 = !{!10, !16, i64 280}
!209 = !{!10, !16, i64 168}
!210 = !{!10, !16, i64 172}
!211 = !{!134, !16, i64 652}
!212 = !{!37, !16, i64 14648}
!213 = !{!134, !16, i64 596}
!214 = !{!134, !16, i64 604}
!215 = !{!21, !16, i64 8}
!216 = !{!10, !26, i64 558}
!217 = !{!10, !15, i64 542}
!218 = !{!134, !16, i64 160}
!219 = !{!10, !15, i64 538}
!220 = !{!21, !16, i64 12}
!221 = !{!134, !16, i64 164}
!222 = !{!10, !6, i64 408}
!223 = !{!134, !6, i64 728}


; Effective O3 passes: AggressiveInstCombinePass,BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass